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 (ENV0_TOOL_VERSION Environment Variable)
  2. Version Files (.tool-version repository file)
  3. Template Settings (Specified in UI)

Version Specification Methods

1. Environment Variables

You can override the template version setting using environment variables:
IaC ToolEnvironment Variable
TerraformENV0_TERRAFORM_VERSION
OpenTofuENV0_OPENTOFU_VERSION
TerragruntENV0_TERRAGRUNT_VERSION
PulumiENV0_PULUMI_VERSION
AnsibleENV0_ANSIBLE_VERSION

2. Version Files

env zero can automatically detect versions from standard version files located under the directory you configure in the template. If you want to reuse the same version files for multiple folders, set the environment variable ENV0_RESOLVE_FILE_VERSION_RECURSIVELY=true.
IaC ToolVersion File
Terraform.terraform-version
OpenTofu.opentofu-version
Terragrunt.terragrunt-version
Ansible.ansiable-version
Pulumi.pulumi-version

3. Template Settings

To associate a specific IaC version with a template:
  1. Open the relevant Template.
  2. Go to the Settings tab and expand Advanced Settings.
  3. Select the desired version from the "Template Type" Version dropdown.
  4. Click Save.
Interface screenshot showing configuration options
Changing a version in an existing template might affect running environments.

Special Version Values

Automatic Version Detection

When selecting a version in the template settings, you can choose special values:
  • Terraform: “Resolve from 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
The version value for automatic detection is RESOLVE_FROM_CODE.
Screenshot showing Resolve from terraform code option

Latest Version

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
The version value for automatic detection is latest.
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.