Skip to main content

Terraform Variable Generator

Define your Terraform input variables using the form and instantly get the corresponding variables.tf and terraform.tfvars output. Supports all primitive and collection types, sensitive values, default values, and validation blocks.

✓ All Terraform variable types ✓ Validation block support ✓ variables.tf + terraform.tfvars ✓ Runs 100% in your browser

Frequently Asked Questions

What does this tool generate?▼

This tool generates two files: variables.tf (the variable declarations with type, description, default, sensitive flag, and optional validation blocks) and terraform.tfvars (the variable value assignments). These are the standard Terraform files for defining and setting input variables.

What Terraform variable types are supported?▼

All primitive types: string, number, bool. Collection types: list(string), list(number), map(string), set(string). And 'any' for untyped variables. For complex nested types like object({}) or tuple([]), you can type them manually in the HCL default value field.

What is the difference between variables.tf and terraform.tfvars?▼

variables.tf declares the variables — their name, type, description, default, and validation rules. It's part of your module's interface and should be committed to source control. terraform.tfvars provides actual values for those variables. For sensitive or environment-specific values, use a .tfvars file that is gitignored, or pass values via environment variables (TF_VAR_name) or -var flags.

What does 'sensitive = true' do?▼

Marking a variable as sensitive tells Terraform to redact its value in plan output, apply output, and state file display. The value is still stored in state, but Terraform won't print it in logs. This is recommended for passwords, API keys, and private keys. You should still encrypt your state backend (S3 + KMS, Terraform Cloud) for full protection.

How do validation blocks work?▼

Validation blocks (introduced in Terraform 0.13) let you add custom constraints to variables. The 'condition' is a Terraform expression that must evaluate to true for the value to be accepted — you can use var.<name> to reference the variable being validated. The 'error_message' is shown when validation fails. Example: condition = var.instance_count >= 1 && var.instance_count <= 100.

What is the correct HCL format for default values?▼

String defaults must be quoted: "us-east-1". Number defaults are plain: 42. Boolean defaults: true or false. List defaults: ["a", "b", "c"]. Map defaults: { key = "value" }. Set defaults use the same syntax as list. Leave the default field empty for required variables (no default means Terraform will prompt for the value or error if not provided).

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →