gitmyhub

atlantis

Go ★ 9.1k updated 3d ago

Terraform Pull Request Automation

Atlantis is a self-hosted server that automates Terraform infrastructure changes through pull requests, posting plan results as comments so your whole team can review before anything is applied to your cloud.

GoTerraformsetup: hardcomplexity 4/5

Atlantis is a self-hosted server application that automates Terraform workflows through pull requests on GitHub, GitLab, or Bitbucket. Terraform is a tool that infrastructure teams use to describe and manage cloud resources (servers, databases, networking rules, and so on) using code files. Atlantis sits between your code repository and Terraform, listening for changes and running Terraform commands on your behalf.

The way it works is straightforward. When a developer opens a pull request that touches Terraform configuration files, Atlantis automatically runs a plan, which is Terraform's way of calculating what would change in your infrastructure if the code were applied. It then posts the results of that plan as a comment directly on the pull request, so anyone reviewing the change can see exactly what infrastructure will be created, modified, or deleted before approving.

Once the pull request is reviewed and approved, a team member can trigger the actual apply, which carries out those changes, again from within the pull request itself. The whole flow keeps infrastructure changes visible to the entire team and recorded in the same place as the code change that caused them.

The main benefit the project highlights is making infrastructure changes accessible to engineers who are not specialists in operations or cloud management. Because the plan output appears as a pull request comment, anyone on the team can understand what a change does without needing to run Terraform commands themselves or have direct access to cloud credentials.

Atlantis is written in Go and is distributed as a standalone binary. Documentation and a getting-started guide are available at runatlantis.io. Community support is available through the CNCF Slack workspace.

Where it fits