Easy CLI with useful terraform/terragrunt tools
Build with ❤ in Golang
Table of Contents generated with DocToc
The concern is: I have a lot of changes in terraform and I need a clear way of the concepts that are going to be deleted|changed|created only with the resource address. It can be messy to have a super tf plan output when there are many changes.
curl --proto '=https' --tlsv1.2 -sSfL https://raw.githubusercontent.com/containerscrew/tftools/main/scripts/install.sh | sh
curl --proto '=https' --tlsv1.2 -sSfL https://raw.githubusercontent.com/containerscrew/tftools/main/scripts/install.sh | sh -v "v0.8.0"
Note
If you don't specify -v
flag, by default will install always latest version.
In this other repo I have a container image where you can find this tool tftools
installed.
https://hub.docker.com/r/containerscrew/infratools/
Take a look inside install documentation for other installation methods.
Take a look inside docs usage
tftools usage
is subcommand that prints the contents of usage.md in pretty terminal markdown render
tftools usage
Requires internet connectivity, as it fetches the usage.md file.
This summarized output can be useful, for example, for:
- You are migrating a terraform module and there are many changes that may be important in terms of destroying/creating resources (e.g., if you are migrating an EKS module from v17.X to v19.X).
- You use GitOps and deploy terraform from pipeline. The pipeline that makes the
terraform plan
can always show a summary of what is going to change (instead of having a super output of the original terraform plan).
- Improve error handling
- Add tests, although I have no experience
- Code refactor is certainly needed!
- Create new subcommand for an interative terraform state mv target migration (when you need to move a lot of resources)
- Other subcommand when you need to apply only certain targets (terraform apply -target=x -target=x ...)
Pull requests are welcome! Any code refactoring, improvement, implementation.