Category Terraform Notes

HCL Type System: Complex Types Deep Dive

HCL Type System: Complex Types Deep Dive Why Types Matter in Infrastructure Code A lot of Terraform configs run fine for months — until someone passes a list where a map is expected, or a module consumer can’t figure out…

locals: Stop Repeating Yourself

locals: Stop Repeating Yourself The Problem Locals Solve You have a project name, an environment tag, and a naming convention. They appear in resource names, tags, bucket prefixes, DNS entries, and log group paths — repeated fifteen times across your…

Variable Precedence & .tfvars

Variable Precedence & .tfvars: Who Wins the Override War? When Multiple Sources Compete for the Same Variable Terraform lets you set variable values from numerous sources simultaneously — defaults, files, command-line flags, environment variables. They don’t all have equal weight.…

Resources & Data Sources: The Building Blocks

Resources & Data Sources: The Building Blocks Two Fundamental Block Types — And They Solve Different Problems Everything you do in Terraform comes down to two block types. Understanding when to use each one — and what happens when you…

Managing Terraform & Provider Versions

Managing Terraform & Provider Versions Why Version Pinning Exists You build infrastructure with Terraform 1.5 today. Six months later a teammate clones the repo and runs terraform init. They have Terraform 1.12 installed. New versions introduce subtle behavior changes —…