runatlantis.io/docs/requirements.md
Atlantis works with most Git hosts and Terraform setups. Read on to confirm it works with yours.
Atlantis integrates with the following Git hosts:
Atlantis supports all backend types except for local state. We don't support local state because Atlantis does not have permanent storage and it doesn't commit the new statefile back to version control.
:::tip If you're looking for an easy remote state solution, check out free remote state storage from Terraform Cloud. This is fully supported by Atlantis. :::
Atlantis supports any Terraform repository structure, for example:
.
├── main.tf
└── ...
.
├── project1
│ ├── main.tf
| └── ...
└── project2
├── main.tf
└── ...
.
├── project1
│ ├── main.tf
| └── ...
└── modules
└── module1
├── main.tf
└── ...
With modules, if you want project1 automatically planned when module1 is modified
you need to create an atlantis.yaml file. See atlantis.yaml Use Cases for more details.
See Terraform's docs if you are unfamiliar with workspaces.
If you're using Terraform >= 0.9.0, Atlantis supports workspaces through an
atlantis.yaml file that tells Atlantis the names of your workspaces
(see atlantis.yaml Use Cases for more details)
.
├── production.tfvars
│── staging.tfvars
└── main.tf
Atlantis supports .tfvars files in two ways:
Atlantis automatically includes workspace-specific variable files if they exist in an env/ directory:
.
├── main.tf
├── variables.tf
└── env/
├── default.tfvars
├── staging.tfvars
└── production.tfvars
When using this structure, Atlantis will automatically include the appropriate file based on the workspace:
atlantis plan includes env/default.tfvarsatlantis plan -w staging includes env/staging.tfvarsatlantis plan -w production includes env/production.tfvarsThis requires no additional configuration and works automatically.
For other .tfvars file locations or structures, you need to create
an atlantis.yaml file to tell Atlantis to use -var-file={YOUR_FILE}.
See atlantis.yaml Use Cases for more details.
Atlantis supports multiple repos as well–as long as there is a webhook configured for each repo.
Atlantis supports all Terraform versions (including 0.12) and can be configured to use different versions for different repositories/projects. See Terraform Versions.