DRY and maintainable OpenTofu/Terraform code.
Terragrunt is a flexible orchestration tool that allows Infrastructure as Code to scale. Get StartedKey features
Keep your OpenTofu/Terraform code DRY
Define OpenTofu/Terraform code once, no matter how many environments you have.
Keep your backend configuration DRY
Get rid of duplicated backend code. Define how to manage your OpenTofu/Terraform state once in a root directory and inherit in all child modules.
Learn moreKeep your OpenTofu/Terraform CLI arguments DRY
Set CLI arguments for repeatable OpenTofu/Terraform commands once in Terragrunt configuration.
Learn moreExecute OpenTofu/Terraform commands on multiple modules at once
Run one command for all modules instead of executing it in each module independently.
Learn moreBefore & After hooks
Execute custom code before or after running OpenTofu/Terraform.
terraform {
before_hook "before_hook_1" {
commands = ["apply", "plan"]
execute = ["echo", "Foo"]
run_on_error = true
}
after_hook "after_hook_1" {
commands = ["init-from-module"]
execute = ["cp", "{get_parent_terragrunt_dir()}/foo.tf", "."]
}
}
Built by Gruntwork
Your entire infrastructure. Defined as code. In about a day.
Explore Gruntwork.io