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.

Other categories