TOOLS/ — generators + scripts + config + ARCHITECTURE.md ├── yaml-generator/ (code) ├── resource-generator/ (code) ├── docs-generator/ (code) ├── scripts/ (← devops/*.sh) ├── config/ (← devops/profiles/ + devops/config/) │ ├── test/ profile.env, services_list.txt, operation_timeouts.json │ ├── prod/ │ └── dev/ └── ARCHITECTURE.md (← devops/ARCHITECTURE.md) generated/ — pipeline output only (gitignored) ├── test/resources_yaml/, go/, docs/, provider_build/ ├── prod/ └── dev/ provider/ — code only, no generated files resources_yaml/ — DELETED (generated) internal/resources_gen/ — DELETED (generated) devops/ — removed (replaced by TOOLS/scripts + TOOLS/config + generated/) Generators now fail if NUBES_*_DIR not set (no defaults to provider/). Provider requires pipeline to populate resources_gen/ before build.
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}.
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}.