It all started with this code sample with Terraform scripts
For starters,Terraform is open-source software, developed by HashiCorp, that enables predictable and consistent provisioning of IBM Cloud platform, classic infrastructure, and VPC infrastructure resources by using a high-level scripting language. You can use Terraform to automate your IBM Cloud resource provisioning, rapidly build complex, multi-tier cloud environments, and enable Infrastructure as Code (IaC).
Think of a scenario in which you are revisiting your own Terraform scripts and scratching your head to understand what resources it provisions.
To simplify this, there is an in-built Terraform command
You can use the command to generate a
.png file from the dot output
terraform graph -type=plan | dot -Tpng > graph.png
terraform graph -type=plan | dot -Tpng -o graph.png
If there are too many resources, then the graph will look something like this.
As you can see, readability is a challenge and also there are extra nodes in the graph that are not required. So, you need better tools to visualize your Terraform plan.
Blast Radius is a tool for reasoning about Terraform dependency graphs through interactive visualizations. Awesome tool but couldn't make it work with the newer versions of Terraform. As per the Dockerfile in the respective repository and the comments in the issues, the last Terraform version that worked fine was
Terraform Visual is a simple but powerful tool to help you understand your Terraform plan easily.
Click here to see the large image
Needs additional steps like generating
plan.dotfile and then
plan.jsonfile. but, a pretty good tool for any version of Terraform.
Inframap reads your
tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant.
If you know any other visualization tools, please drop in a comment below and would love to give it a try 😄