Terraform хорош для IaC, но в больших проектах код копируется по регионам и окружениям. Terragrunt решает это через terragrunt.hcl поверх main.tf.
В папке с main.tf добавьте terragrunt.hcl. Вместо
terraform init && apply пишите terragrunt apply. Auto-init сам подтянет провайдеры, работает с Terraform/OpenTofu.Пример:
# main.tf
variable "content" {}
resource "local_file" "file" { content = var.content; filename = "hi.txt" }
# terragrunt.hcl
inputs = { content = "from terragrunt" }
terragrunt apply создаст .terragrunt-cache (в .gitignore) и файл.
Вынесите логику в shared/main.tf с переменными. В env/ terragrunt.hcl:
terraform { source = "../shared" }
inputs = { content = "env-specific"; output_path = "${get_terragrunt_dir()}/hi.txt" }Логика одна, запускайте из dev/prod. Backend/provider дубли не нужны — Terragrunt генерит.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt