TOOLS — Генераторы Terraform-провайдера Nubes
Каждый инструмент — независимый Go-модуль.
yaml-generator
API Nubes → resources_yaml/*.yaml
cd yaml-generator && go build -o ../bin/yaml-generator .
./bin/yaml-generator
Структура: main.go + internal/{client,config,normalize,spec,types}.
resource-generator
resources_yaml/*.yaml → internal/resources_gen/*.go + registry.go
cd resource-generator && go build -o ../bin/resource-generator .
./bin/resource-generator
Структура: main.go + internal/{helpers,loader,params,templates,types,writers}.
Как запускать правильно
Не запускайте TOOLS/resource-generator/bin/resource-generator вручную и не полагайтесь на старый бинарник из TOOLS/resource-generator/bin/.
Используйте канонический скрипт из корня репозитория, он всегда пересобирает генераторы из текущих исходников перед запуском:
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/dev
Для других стендов подставляйте нужный профиль:
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/test
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/prod
Это устраняет случайный запуск устаревшего бинаря и гарантирует, что новые kind из YAML, включая modifier, будут обработаны текущим кодом генератора.
docs-generator
resources_yaml/*.yaml → Markdown-документация в docs/30_registry/resources/
cd docs-generator && go build -o ../bin/docs-generator .
# Документация ресурсов
./bin/docs-generator
# Operations-документация
./bin/docs-generator --ops
Структура: main.go + internal/{types,writers,ops}.