Terragrunt
Terragrunt — обёртка над Terraform и OpenTofu, которая помогает не дублировать конфигурации и управляет зависимостями между модулями. Semaphore запускает его так же, как Terraform/OpenTofu, с несколькими отличиями, описанными ниже.
Предварительные требования
- Установите бинарный файл
terragrunt, а такжеterraformилиtofuна сервере Semaphore либо на раннере, который выполняет задачи. - Включите приложение Terragrunt Code: по умолчанию оно отключено. Откройте Applications из меню учётной записи и включите переключатель, см. Приложения.
Создание шаблона Terragrunt
- Перейдите в Task Templates и нажмите New Template.
- Выберите приложение Terragrunt Code.
- Укажите Repository и подкаталог с вашим файлом
terragrunt.hcl. - Выберите или создайте рабочее пространство в поле Inventory. Шаблоны Terragrunt используют инвентари типа
terragrunt-workspace, см. Рабочие пространства. - Нажмите Create, затем Run.

Запуск задач
Диалог New Task предлагает те же опции, что и для Terraform: Plan, Destroy, Auto Approve, Upgrade и Reconfigure.
Semaphore вызывает terragrunt run -- <аргументы terraform> и передаёт путь к бинарному файлу Terraform или OpenTofu через --tf-path, если вы не задали --tf-path в аргументах CLI шаблона. Выбор рабочего пространства выполняется командой terragrunt run -- workspace select -or-create=true <name>.
Переменные из выбранных групп переменных передаются как переменные окружения, поэтому для входных переменных используйте префикс TF_VAR_. Дополнительные переменные и переменные опроса передаются в виде аргументов -var name=value.
Примечания
terragruntавтоматически выполняетinitперед каждой командой.- HTTP-backend для состояния и список состояний на вкладке Workspaces работают так же, как для Terraform, см. HTTP backend.
- Чтобы использовать
run-allдля нескольких модулей, добавьте соответствующие аргументы в поле CLI args шаблона.