Поиск модулей
Сканирует структуру директорий для поиска Terraform-модулей. Настраиваемая глубина (4-5 уровней).
Подробнее
# Homebrew (macOS/Linux)
brew install edelwud/tap/terraci
# Go
go install github.com/edelwud/terraci/cmd/terraci@latest
# Docker
docker run --rm -v $(pwd):/workspace ghcr.io/edelwud/terraci:latest generate# Инициализация конфига
terraci init
# Генерация пайплайна
terraci generate -o .gitlab-ci.yml
# Только изменённые модули
terraci generate --changed-only --base-ref main1. Поиск модулей по структуре директорий:
platform/prod/eu-central-1/
├── vpc/ → platform/prod/eu-central-1/vpc
├── eks/ → platform/prod/eu-central-1/eks
└── rds/ → platform/prod/eu-central-1/rds2. Извлечение зависимостей из terraform_remote_state:
# eks/main.tf
data "terraform_remote_state" "vpc" {
backend = "s3"
config = {
key = "platform/prod/eu-central-1/vpc/terraform.tfstate"
}
}3. Построение порядка выполнения:
Уровень 0: vpc (нет зависимостей)
Уровень 1: eks, rds (зависят от vpc)4. Генерация пайплайна:
stages:
- plan-0
- apply-0
- plan-1
- apply-1
plan-vpc:
stage: plan-0
apply-vpc:
stage: apply-0
needs: [plan-vpc]
plan-eks:
stage: plan-1
needs: [apply-vpc]# .terraci.yaml
structure:
pattern: "{service}/{environment}/{region}/{module}"
gitlab:
image: hashicorp/terraform:1.6
plan_enabled: true
exclude:
- "*/test/*"