[Databricks on AWS #6] How We Structure the Terraform: Terragrunt, YAML-Driven Modules, and Atlantis GitOps A developer detailed how their team structured Terraform for a multi-workspace Databricks AI platform on AWS using Terragrunt, YAML-driven modules, and Atlantis GitOps. The layout separates reusable modules from per-environment trees, with humans editing only YAML files while Terragrunt injects environment prefixes and generates provider overrides for each workspace. The approach avoids copy-paste sprawl and enforces naming discipline across dev and prod environments. πŸ“š Series: Databricks on AWS Part 6 - Building a Databricks AI Platform on AWS - RBAC with Function-Role Groups - Compute Governance: Pools, Policies, Clusters - The BOOTSTRAP TIMEOUT Mystery - Fixing It with AWS PrivateLink How We Structure the Terraform← you are hereFive parts of whatwe built β€” the workspaces, the RBAC, the compute, the network mystery, the PrivateLink fix. This one is thehow: the repo layout and Terragrunt patterns that hold it all together, plus the two footguns that will bite you on day one. Over five parts we stood up an AI platform on Databricks + AWS. Along the way I kept saying "we apply this," "the module for that," "the provider override" β€” and mostly waved my hands at the plumbing. This finale is the plumbing: how the Terraform is actually organized, why humans never touch a .tf file, and the two ordering gotchas that turn a clean plan into a red one. If you're standing up a multi-workspace Databricks estate and want a layout that scales past the first workspace without copy-paste sprawl, this is the shape that worked for us. Two ideas do all the work: reusable modules and per-environment trees . infra/ β”œβ”€β”€ modules/ reusable Terraform modules the "what" β”œβ”€β”€