Поддержка OpenTofu
TerraCi полноценно поддерживает OpenTofu, open-source форк Terraform.
Конфигурация
Переключитесь на OpenTofu, обновив .terraci.yaml:
yaml
gitlab:
terraform_binary: "tofu"
terraform_image: "ghcr.io/opentofu/opentofu:1.6"Как это работает
При установке terraform_binary: "tofu", TerraCi:
- Устанавливает
TERRAFORM_BINARY=tofuв переменных пайплайна - Использует
${TERRAFORM_BINARY}во всех скриптах - Генерирует команды
tofu init,tofu plan,tofu apply
Сгенерированный пайплайн
yaml
variables:
TERRAFORM_BINARY: "tofu"
default:
image: ghcr.io/opentofu/opentofu:1.6
before_script:
- ${TERRAFORM_BINARY} init
plan-platform-prod-vpc:
script:
- cd platform/prod/us-east-1/vpc
- ${TERRAFORM_BINARY} plan -out=plan.tfplanОфициальные образы OpenTofu
| Образ | Описание |
|---|---|
ghcr.io/opentofu/opentofu:latest | Последняя стабильная |
ghcr.io/opentofu/opentofu:1.6 | Версия 1.6.x |
ghcr.io/opentofu/opentofu:1.6.0 | Конкретная версия |
Миграция с Terraform
Обновите
.terraci.yaml:yamlgitlab: terraform_binary: "tofu" terraform_image: "ghcr.io/opentofu/opentofu:1.6"Перегенерируйте пайплайны:
bashterraci generate -o .gitlab-ci.ymlПротестируйте с dry-run:
bashterraci generate --dry-run
Совместимость состояний
OpenTofu совместим с файлами состояния Terraform. Можно:
- Сохранить существующие state-файлы Terraform
- Мигрировать на OpenTofu без изменения state
- Использовать те же S3/GCS бэкенды
Разрешение зависимостей TerraCi работает идентично для обоих инструментов.