Skip to main content

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:
  1. Environment Variables (highest priority)
  2. Version Files (in repository)
  3. Template Settings (specified in UI)
  4. Default Values (lowest priority)

Setting Version in Template Settings

To associate a specific IaC version with a template:
  1. Go to the organization’s Templates page
  2. Click the Settings button of your desired Template
  3. Select your desired version from the "Template Type" Version dropdown
  4. Click Save to commit your changes
Interface screenshot showing configuration options
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 ToolEnvironment Variable
TerraformENV0_TF_VERSION
OpenTofuENV0_OPENTOFU_VERSION
TerragruntENV0_TERRAGRUNT_VERSION
PulumiENV0_PULUMI_VERSION
AnsibleENV0_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 ToolVersion 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
Screenshot showing Resolve from terraform code option

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 ToolDefault BehaviorFallback Version
TerraformDetects minimum required version from code0.12.24
OpenTofuDetects minimum required version from codeN/A
PulumiUses latest versionN/A
TerragruntRequires explicit versionN/A
AnsibleUses latest versionN/A