Skip to content

Commit

Permalink
Address comments about adding further detail and examples
Browse files Browse the repository at this point in the history
Also updated versions mentioned to be more recent.
  • Loading branch information
grimm26 committed Dec 10, 2022
1 parent af2579a commit e9d304e
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions runatlantis.io/docs/terraform-versions.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Terraform Versions

You can customize which version of Terraform Atlantis defaults to by setting
the `--default-tf-version` flag (ex. `--default-tf-version=v0.12.0`).
the `--default-tf-version` flag (ex. `--default-tf-version=v1.3.6`).

## Via `atlantis.yaml`
If you wish to use a different version than the default for a specific repo or project, you need
Expand All @@ -10,25 +10,41 @@ to create an `atlantis.yaml` file and set the `terraform_version` key:
version: 3
projects:
- dir: .
terraform_version: v0.10.5
terraform_version: v1.1.5
```
See [atlantis.yaml Use Cases](repo-level-atlantis-yaml.html#terraform-versions) for more details.
## Via terraform config
Alternatively, one can use the terraform configuration block's `required_version` key to [specify an exact version or version constraint](https://developer.hashicorp.com/terraform/language/expressions/version-constraints#version-constraint-syntax):
Alternatively, one can use the terraform configuration block's `required_version` key to specify an exact version (`x.y.z` or `= x.y.z`), or as of [atlantis v0.21.0](https://github.com/runatlantis/atlantis/releases/tag/v0.21.0), a comparison or pessimistic [version constraint](https://developer.hashicorp.com/terraform/language/expressions/version-constraints#version-constraint-syntax):
#### Exactly version 1.2.9
```tf
terraform {
required_version = "0.12.0"
required_version = "= 1.2.9"
}
```
#### Any patch/tiny version of minor version 1.2 (1.2.z)
```tf
terraform {
required_version = "~> 1.2.0"
}
```
#### Any minor version of major version 1 (1.y.z)
```tf
terraform {
required_version = "~> 1.2"
}
```
#### Any version that is at least 1.2.0
```tf
terraform {
required_version = ">= 1.2.0"
}
```
See [Terraform `required_version`](https://developer.hashicorp.com/terraform/language/settings#specifying-a-required-terraform-version) for reference.

::: tip NOTE
A `terraform_version` specified in the `atlantis.yaml` file takes precedence over both the default version and the `required_version` in the terraform config.
:::

::: tip NOTE
Atlantis will automatically download the version specified.
Atlantis will automatically download the latest version that fulfills the constraint specified.
A `terraform_version` specified in the `atlantis.yaml` file takes precedence over both the [`--default-tf-version`](server-configuration.html#default-tf-version) flag and the `required_version` in the terraform hcl.
:::

::: tip NOTE
Expand Down

0 comments on commit e9d304e

Please sign in to comment.