Overview
When creating or editing a template, you can specify which version of Infrastructure as Code (IaC) tools to use for your deployments. env zero supports version management for Terraform, OpenTofu, Terragrunt, Pulumi, and Ansible.
Version Resolution Order
When determining which version to use, env zero follows this priority order:
- Environment Variables (highest priority)
- Version Files (in repository)
- Template Settings (specified in UI)
- Default Values (lowest priority)
Setting Version in Template Settings
To associate a specific IaC version with a template:
- Go to the organization’s Templates page
- Click the Settings button of your desired Template
- Select your desired version from the
"Template Type" Version dropdown
- Click Save to commit your changes
Changing a version in an existing template might affect running environments.
Version Specification Methods
1. Environment Variables
You can override the template version setting using environment variables:
| IaC Tool | Environment Variable |
|---|
| Terraform | ENV0_TF_VERSION |
| OpenTofu | ENV0_OPENTOFU_VERSION |
| Terragrunt | ENV0_TERRAGRUNT_VERSION |
| Pulumi | ENV0_PULUMI_VERSION |
| Ansible | ENV0_ANSIBLE_VERSION |
2. Version Files
For Terraform, OpenTofu, and Terragrunt, env zero can automatically detect versions from standard version files located in the directory path you specify in your template configuration (the “Terraform Folder”, “OpenTofu Folder”, or “Terragrunt Folder” field):
| IaC Tool | Version File |
|---|
| Terraform | .terraform-version |
| OpenTofu | .opentofu-version |
| Terragrunt | .terragrunt-version |
3. Special Version Values
Automatic Version Detection
When selecting a version in the template settings, you can choose special values:
- Terraform: “Resolve from terraform code” - Automatically detects and uses the minimum required version specified in your Terraform code’s
required_version constraint
- OpenTofu: “Resolve from code” - Similar to Terraform, extracts required version from your code
Latest Versions
You can specify “latest” for supported IaC tools:
- Terraform: Latest version up to 1.5.x
- Pulumi: Latest available version
- OpenTofu: Latest available version
- Ansible: Latest available version
Terraform versions ≥ 1.6.0 aren’t supportedTerraform versions 1.6.0 and higher are under a BSL license and are not supported in env zero. Consider switching to OpenTofu, the drop-in replacement for Terraform.
Default Behavior
If no version is explicitly specified through any method:
| IaC Tool | Default Behavior | Fallback Version |
|---|
| Terraform | Detects minimum required version from code | 0.12.24 |
| OpenTofu | Detects minimum required version from code | N/A |
| Pulumi | Uses latest version | N/A |
| Terragrunt | Requires explicit version | N/A |
| Ansible | Uses latest version | N/A |