tfvm - Terraform version manager
Always the right terraform version for your project
Features
- fully transparent
- downloads and installs terraform version
- select terraform version via .terraform-version
- invoke selected terraform through tfvm
- also available as github action setup-tfvm (fully transparent terraform setup)
System Requirements
- Linux (386, amd64, arm64), macOS (amd64, arm64) or Windows (386, amd64)
Installation
as root in /usr/local/bin
curl -sL https://raw.githubusercontent.com/cbuschka/tfvm/main/install.sh -o - | sudo bash
as unpriviledged user in ${HOME}/.local/bin
if available, else ${HOME}/bin
as a fallback
curl -sL https://raw.githubusercontent.com/cbuschka/tfvm/main/install.sh -o - | bash
manual installation
- Download tfvm from latest release to your bin dir
- Make executable
chmod o+x tfvm
- Optionally link to tfvm as terraform
ln -s tfvm terraform
Usage
Show which terraform version would be executed
tfvm which
List terraform versions
tfvm list
Configure terraform version
echo "1.3.7" > .terraform-version
tfvm which
"latest" and semver ranges, e.g. >= 1.3.0, <1.4.0
, are also supported.
Invoke selected terraform
tfvm terraform version
Tip: Call selected terraform directly
ln -s tfvm terraform
terraform version
More commands via tfvm usage info
tfvm help
Environment Variables
Supported Environment Variables
Development Requirements
- Go 1.22.x, Linux or macOS for development
- GNU make >= 4.3
Similar tools
Contributing
Contributions are welcome!
By contributing you accept to contribute under the license of this project.
- Fork and clone the repository
- Create a feature branch (git checkout -b foobar)
- Commit your changes (git commit -am 'Add feature foobar')
- Make sure the project builds and all tests are passing
- Push to the branch (git push origin foobar)
- Create a new pull request and describe what you want to achieve or fix
Contributors
License
Copyright (c) 2020-2021 by Cornelius Buschka.
Apache License, Version 2.0
Thanks!
Special thanks goes to JetBrains s.r.o. for supporting the development of this project with
a free IntelliJ IDEA Ultimate license.