Define Terraform code once, no matter how many environments you have.
Get rid of duplicated backend code. Define how to manage your Terraform state once in a root directory and inherit in all child modules.
Learn moreSet CLI arguments for repeatable 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 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", "."]
}
}