Stop the copy-paste madness
SREday London Q3 2025
Connect with me or Stalk me
Your dev environment works perfectly. Now you need staging and production.
Works perfectly
To staging & prod
3x the errors
Sound familiar? There's a better way.
The solution to your infrastructure management problems
Real configurations and practical usage
Path forward
Questions and discussion
Scan for slides
Copy-paste everything
Manual backend setup
Complex inter-module deps
Terragrunt is a thin wrapper around Terraform that eliminates repetition by Gruntwork.io
Configuration file
Reusable infrastructure
Consistent & maintainable
Terragrunt acts as an orchestrator, managing your Terraform modules across environments
One module definition → Multiple environment deployments
| Aspect | Terraform | Terragrunt |
|---|---|---|
| Configuration | Verbose, repetitive | DRY, reusable |
| Remote State | Manual setup | Automatic generation |
| Multi-Environment | Complex | Built-in support |
| Dependencies | Limited | Advanced dependency management |
| Code Maintenance | High effort | Minimal effort |
900 lines of duplicate code!
330 lines total. 70% reduction!
Let's see a typical project structure:
Let's break down the configuration files:
Here's what a terragrunt.hcl file looks like:
That's it! No backend configuration needed.
Terragrunt knows what order to deploy things:
Terragrunt automatically runs VPC first, then database!
terragrunt plan → Same as terraform plan, but with Terragrunt featuresterragrunt apply → Apply changes with dependency resolutionterragrunt run-all plan → Run plan across all modules in directoryterragrunt run-all apply → Apply all modules in correct orderterragrunt destroy → Destroy infrastructureterragrunt validate → Validate configurationterragrunt graph-dependencies → Visualize dependenciesTerragrunt automatically organizes your state files:
Each module gets its own state file
Clear boundaries between dev/staging/prod
No manual backend configuration
Remember: You can always add Terragrunt later when your infrastructure grows!
Install Terragrunt
Create terragrunt.hcl
Run terragrunt plan
brew install terragruntterragrunt.hclterragrunt planterragrunt applyYou can add Terragrunt to existing Terraform projects incrementally!
💡 Bottom Line: If you're managing multiple environments with Terraform, Terragrunt will save you time, reduce errors, and make your infrastructure code more maintainable.
Slides & Examples
Connect with me
Feedback Form
Let's chat about Terragrunt, AWS, or infrastructure automation!
github.com/ceydaduzgec | linkedin.com/in/ceydaduzgec