The simplest method for handling Terraform versions is to tenv. tenv is a version manager for Terraform, OpenTofu, Terragrunt, and Atmos, which are written in Go. This versatile version manager simplifies the complexity of version control, helping to avoid spending time on IaC tools’ version management and ensuring developers and DevOps can focus on what is important the most - crafting innovative products and driving business value. Why do I need Terraform version manager? Managing a single Terraform project makes installing, upgrading, or switching to tools like OpenTofu straightforward. However, handling multiple projects with different Terraform versions can be challenging. Regular upgrades and tool switches require careful coordination to maintain functionality and stability across projects. The list of key challenges: Version Compatibility: Different projects may need specific Terraform versions, which might not be backward compatible. Dependency Management: Dependencies for each project must match the Terraform version of that project. Environment Consistency: It becomes challenging to maintain consistency throughout the development, staging, and production environments. Tooling and Integration: Various Terraform versions may require modifications to CI/CD pipelines and integrations. tenv terraform version manager covers all described challenges under the hood in a single binary that helps to manage Terraform versions transparently. 🚀 tenv version manager installation MacOS brew install tenv Windows choco install tenv Linux For Linux, you can install tenv version manager via packaged binaries (.deb, .rpm, .apk, pkg.tar.zst , .zip or .tar.gz format) by visiting the release page or by apk/yay/snap/nix package managers. To get more information about the Linux tenv installation, check README.md. Manage Terraform versions via tenv version manager Once you have tenv version manager installed, you can use it to install specific versions of Terraform. To install Terraform, do the following steps: Open a terminal, go to the directory with Terraform code (if you have any) and execute the following command to install terraform version: $ tenv tf install No version files found for Terraform, fallback to latest strategy Fetching all releases information from https://releases.hashicorp.com/terraform/index.json Found compatible version remotely : 1.8.5 Installing Terraform 1.8.5 Fetching release information from https://releases.hashicorp.com/terraform/1.8.5/index.json Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_darwin_amd64.zip Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_SHA256SUMS Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_SHA256SUMS.sig Downloading https://www.hashicorp.com/.well-known/pgp-key.txt Installation of Terraform 1.8.5 successful Based on .tf code, tenv version manager automatically detect and install the necessary version of Terraform. If no version detected in sources, the latest version will be installed. On the other hand, if necessary, a specific Terraform version can also be installed. Let's try to install Terraform 1.5.7: $ tenv tf install 1.5.7 Installing Terraform 1.5.7 Fetching release information from https://releases.hashicorp.com/terraform/1.5.7/index.json Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_darwin_amd64.zip Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_SHA256SUMS Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_SHA256SUMS.sig Downloading https://www.hashicorp.com/.well-known/pgp-key.txt Installation of Terraform 1.5.7 successful The install command also supports version constraints such as: latest - the latest available stable version latest-pre - the latest available version, including unstable ones latest-allowed or min-required - tenv will scan your Terraform files to detect which version is maximally allowed or minimally required. As the last step, verify the Terraform version. To do it, use the following command: $ terraform version Terraform v1.8.5 on darwin_amd64 That's it. No symlinks, additional commands, or custom downloads are required. To read about more installation cases for Terraform, you can check the official README.md file. Support Us, Contact Us If you like this post, support us, download tenv, try to use it and give us feedback in our official discussions channel! Press a star 🌟 on GitHub if you like the tenv version manager. The simplest method for handling Terraform versions is to tenv . tenv is a version manager for Terraform , OpenTofu , Terragrunt , and Atmos , which are written in Go. This versatile version manager simplifies the complexity of version control, helping to avoid spending time on IaC tools’ version management and ensuring developers and DevOps can focus on what is important the most - crafting innovative products and driving business value. tenv tenv Terraform OpenTofu Terragrunt Atmos Why do I need Terraform version manager? Managing a single Terraform project makes installing, upgrading, or switching to tools like OpenTofu straightforward. However, handling multiple projects with different Terraform versions can be challenging. Regular upgrades and tool switches require careful coordination to maintain functionality and stability across projects. The list of key challenges: Version Compatibility: Different projects may need specific Terraform versions, which might not be backward compatible. Dependency Management: Dependencies for each project must match the Terraform version of that project. Environment Consistency: It becomes challenging to maintain consistency throughout the development, staging, and production environments. Tooling and Integration: Various Terraform versions may require modifications to CI/CD pipelines and integrations. Version Compatibility: Different projects may need specific Terraform versions, which might not be backward compatible. Dependency Management: Dependencies for each project must match the Terraform version of that project. Environment Consistency: It becomes challenging to maintain consistency throughout the development, staging, and production environments. Tooling and Integration: Various Terraform versions may require modifications to CI/CD pipelines and integrations. tenv terraform version manager covers all described challenges under the hood in a single binary that helps to manage Terraform versions transparently. tenv 🚀 tenv version manager installation MacOS brew install tenv brew install tenv Windows choco install tenv choco install tenv Linux For Linux, you can install tenv version manager via packaged binaries (.deb, .rpm, .apk, pkg.tar.zst , .zip or .tar.gz format) by visiting the release page or by apk/yay/snap/nix package managers. To get more information about the Linux tenv installation, check README.md . tenv README.md Manage Terraform versions via tenv version manager Once you have tenv version manager installed, you can use it to install specific versions of Terraform. To install Terraform, do the following steps: tenv Open a terminal, go to the directory with Terraform code (if you have any) and execute the following command to install terraform version: $ tenv tf install No version files found for Terraform, fallback to latest strategy Fetching all releases information from https://releases.hashicorp.com/terraform/index.json Found compatible version remotely : 1.8.5 Installing Terraform 1.8.5 Fetching release information from https://releases.hashicorp.com/terraform/1.8.5/index.json Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_darwin_amd64.zip Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_SHA256SUMS Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_SHA256SUMS.sig Downloading https://www.hashicorp.com/.well-known/pgp-key.txt Installation of Terraform 1.8.5 successful $ tenv tf install No version files found for Terraform, fallback to latest strategy Fetching all releases information from https://releases.hashicorp.com/terraform/index.json Found compatible version remotely : 1.8.5 Installing Terraform 1.8.5 Fetching release information from https://releases.hashicorp.com/terraform/1.8.5/index.json Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_darwin_amd64.zip Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_SHA256SUMS Downloading https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_SHA256SUMS.sig Downloading https://www.hashicorp.com/.well-known/pgp-key.txt Installation of Terraform 1.8.5 successful Based on .tf code, tenv version manager automatically detect and install the necessary version of Terraform. If no version detected in sources, the latest version will be installed. .tf tenv On the other hand, if necessary, a specific Terraform version can also be installed. Let's try to install Terraform 1.5.7: $ tenv tf install 1.5.7 Installing Terraform 1.5.7 Fetching release information from https://releases.hashicorp.com/terraform/1.5.7/index.json Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_darwin_amd64.zip Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_SHA256SUMS Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_SHA256SUMS.sig Downloading https://www.hashicorp.com/.well-known/pgp-key.txt Installation of Terraform 1.5.7 successful $ tenv tf install 1.5.7 Installing Terraform 1.5.7 Fetching release information from https://releases.hashicorp.com/terraform/1.5.7/index.json Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_darwin_amd64.zip Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_SHA256SUMS Downloading https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_SHA256SUMS.sig Downloading https://www.hashicorp.com/.well-known/pgp-key.txt Installation of Terraform 1.5.7 successful The install command also supports version constraints such as: latest - the latest available stable version latest-pre - the latest available version, including unstable ones latest-allowed or min-required - tenv will scan your Terraform files to detect which version is maximally allowed or minimally required. latest - the latest available stable version latest latest-pre - the latest available version, including unstable ones latest-pre latest-allowed or min-required - tenv will scan your Terraform files to detect which version is maximally allowed or minimally required. latest-allowed tenv As the last step, verify the Terraform version. To do it, use the following command: $ terraform version Terraform v1.8.5 on darwin_amd64 $ terraform version Terraform v1.8.5 on darwin_amd64 That's it. No symlinks, additional commands, or custom downloads are required. To read about more installation cases for Terraform, you can check the official README.md file. README.md Support Us, Contact Us If you like this post, support us, download tenv , try to use it and give us feedback in our official discussions channel ! tenv discussions channel Press a star 🌟 on GitHub if you like the tenv version manager. on GitHub