Terraform tools
Check it parses, and format it the way terraform fmt would.
Terraform Validator & Formatter
Does it parse, and is it formatted?
Check Terraform for syntax errors and get the exact line: unclosed braces, unterminated strings and heredocs.
Terraform dynamic Block Generator
It is ingress.value, not each.value
Convert repeated nested Terraform blocks into a dynamic block, with the iterator named correctly and the meta-argument blocks that cannot be dynamic flagged.
Terraform check and precondition Generator
A failed check does not stop the apply
Generate Terraform precondition, postcondition and check blocks, and see which of them actually stops a run and which only warns.
Terraform variables.tf Generator
From the var. references you already wrote
Generate variables.tf from the var. references in a Terraform file, with the type inferred from usage and labelled as the guess it is.
Terraform Unused Declaration Linter
Dead variables, locals and data sources
Find Terraform variables, locals and data sources that are declared and never used, plus references with no declaration behind them.
Terraform Atlantis YAML Generator
when_modified misses your modules
Generate an atlantis.yaml for Terraform projects, with the when_modified paths that shared modules need or a module change plans nothing.
Terraform Function Tester and HCL Console
terraform console, in a tab
Evaluate Terraform expressions and built-in functions in your browser. No init, no state, no provider, and nothing leaves the page.
Terraform for Expression Tester
Where do the keys collide?
Test a Terraform for expression against real data and find the duplicate keys that silently drop elements when it feeds a for_each.
Terraform Interpolation Tester
null becomes an empty string
Test Terraform string interpolation and see what each part converts to, including the null that silently renders as nothing.
Terraform templatefile Tester
Render it before you apply it
Render a Terraform template with its variables, including the if and for directives, and find the shell syntax that collides with interpolation.
Terraform Resource Count Calculator
How many objects, not how many blocks
Work out how many instances Terraform count and for_each expressions actually create, and catch the ones that expand to zero.
Terraform count to for_each Converter
With the moved blocks it needs
Convert Terraform count to for_each and get the moved blocks the change needs, so the refactor does not destroy every existing instance.
Terraform moved Block Generator
Rename without destroying
Generate Terraform moved blocks from old and new addresses, with the cycles, type changes and redundant module moves that Terraform rejects flagged first.
Terraform state mv Command Builder
No plan, no undo
Build terraform state mv commands with correct shell quoting, plus the backup command to run first, because state mv takes effect immediately.
Terraform target Flag Builder
And why to stop using it
Build quoted terraform -target and -replace flags from a list of addresses, with the reason Terraform calls targeting an escape hatch.
Terraform outputs.tf Generator
Outputs are not sensitive by default
Generate outputs.tf from Terraform resource blocks, with the resources whose outputs need sensitive = true called out first.
Terraform Remote State Data Source Generator
It grants read of the whole state
Generate a terraform_remote_state data source from a backend block, and see why passing values through a parameter store is usually better.
Terraform Provider Block Generator
docker is not hashicorp/docker
Generate required_providers and provider blocks from the resource types in your Terraform, with the providers that are not published by HashiCorp named.
Terraform .gitignore Generator and Checker
.terraform* eats the lock file
Check a Terraform .gitignore for the pattern that excludes .terraform.lock.hcl, plus the state, plan and tfvars files that must not be committed.
Terraform to OpenTofu Migration Checker
The state is the part to watch
Check what a Terraform configuration needs before moving to OpenTofu: the state format at the 1.5 fork point, the lock file, and the cloud block.
Terraform tfvars to JSON Converter
The JSON file wins
Convert a .tfvars file to terraform.tfvars.json. The JSON form is loaded after the HCL form, so leaving both in place changes which values apply.
Terraform Version Constraint Parser
What ~> actually allows
Spell out what a Terraform version constraint allows. ~> 1.2 and ~> 1.2.0 permit different things, and this shows the range for each.
Terraform Resource Address Parser
Quote it before the shell eats it
Break a Terraform resource address into its parts, and find the two things that break CLI commands: an attribute on the end and unquoted brackets.
Terraform cidrsubnet Calculator
newbits is added, not the target
Resolve cidrsubnet, cidrhost and cidrnetmask exactly, and catch the mistake that breaks every plan: newbits is added to the prefix, not the prefix you want.
Terraform Import Block Generator
The id is not the name
Turn resource blocks into Terraform import blocks, with the id format named for each type. An SQS queue imports by URL, an IAM role by name.
Terraform Lock File Viewer
Why CI fails and your laptop does not
Read .terraform.lock.hcl and find the missing platform hashes that make init fail on Linux after working on a Mac.
Terraform Variables Checker
A missing value hangs CI
Compare variables.tf against your tfvars: find the required variable that will make Terraform prompt, and the typo'd key Terraform only warns about.
Terraform tfvars to Env Vars Converter
Lists and maps have to be JSON
Convert a .tfvars file to TF_VAR_ exports. Lists and maps must be JSON, and env vars lose to any tfvars file in the directory.
Terraform Deprecated Syntax Checker
What a current Terraform rejects
Find Terraform syntax that a current version rejects or warns on: quoted types, list() and map(), template_file, and interpolation-only strings.
Terraform State File Viewer
Read it without uploading it
Read a terraform.tfstate in your browser: resources, tainted and deposed instances, and which attributes hold credentials in plaintext.
Terraform Plan JSON Viewer
It is not redacted
Read terraform show -json output: what is destroyed, which attribute forces each replacement, and the sensitive values the JSON does not redact.
Terraform HCL to JSON Converter
And what the conversion loses
Convert Terraform HCL to its JSON syntax, with the expressions that become strings named rather than silently changed.
Terraform Module Source Validator
version only works for the registry
Check Terraform module sources for the pinning mistakes that let a module change under you: version on a git source, a branch ref, or no constraint at all.
Terraform Backend Config Decoder
Is state actually locked?
Read a Terraform backend block and find the missing state lock, the absent encryption, and the interpolation that can never work.
Terraform Naming Convention Validator
A hyphen makes a resource unreferenceable
Check Terraform resource, variable and output names for the hyphen that breaks every reference, duplicates across files, and names that repeat their own type.