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 more
Set CLI arguments for repeatable Terraform commands once in Terragrunt configuration.
Learn more
Run one command for all modules instead 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", "."]
}
}