Define OpenTofu/Terraform code once, no matter how many environments you have.
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 moreSet CLI arguments for repeatable OpenTofu/Terraform commands once in Terragrunt configuration.
Learn moreRun one command for all modules instead of executing it in each module independently.
Learn moreExecute 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", "."]
}
}