# План: перегенерация провайдеров всех стендов (версия 0.0.1) > Для Flash. Генерацию выполняет Flash по этому плану. Документацию НЕ трогать. ## Цель Перегенерировать код Terraform-провайдера Nubes для 3 стендов из API и залить бинарники **версии 0.0.1**. Документацию не генерировать и не публиковать. ## Версия `0.0.1` — для всех трёх стендов. ## Порядок стендов `test` → `dev` → `prod` ## Команды (для каждого стенда, по порядку) ```bash cd /home/naeel/TF/tf_provider # стенд = test | dev | prod ./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/<стенд> ./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/<стенд> ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/<стенд> 0.0.1 ``` Полные команды: ```bash # TEST ./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/test ./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/test ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/test 0.0.1 # DEV ./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/dev ./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/dev ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/dev 0.0.1 # PROD ./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/prod ./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/prod ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/prod 0.0.1 ``` ## Что делает каждый шаг | Шаг | Результат | |---|---| | `01` | тянет YAML-спеки ресурсов из API стенда → `generated/<стенд>/resources_yaml/` | | `02` | YAML → **Go-код** (`generated/<стенд>/go/`) + `.md`-доки (`generated/<стенд>/docs/`, побочный продукт — НЕ публикуем) | | `03` | кросс-сборка linux/windows/darwin amd64 (`go build -ldflags "-X main.version=0.0.1 -X main.address=tf-registry.containerk8s.services.ngcloud.ru//nubes"`) → `SHA256SUMS` + GPG-подпись → `mc cp` в S3 | ## Namespace и target S3 (автоматически из profile.env + registry.env) | Стенд | Namespace | Бинарники в S3 | |---|---|---| | dev | `nubes-dev` | `nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes/0.0.1/` | | test | `nubes-test` | `.../nubes-test/nubes/0.0.1/` | | prod | `nubes` | `.../nubes/nubes/0.0.1/` | ## Предусловия — ПРОВЕРЕНО, всё готово - Go 1.23.1, docker 29.1.3, `mc`, GPG (`secrets/private_key.asc`, `public_key.asc`). - Токены API: `secrets/{dev,test,prod}.token` на месте. - API-эндпоинты доступны (HTTP 403 без токена — ожидаемо, токен передаёт 01). - `TOOLS/config/<стенд>/operation_timeouts.json` на месте. - `registry.env`: `REGISTRY_HOSTNAME=tf-registry.containerk8s.services.ngcloud.ru`, `S3_BUCKET=nubes-terraform-registry`. ## Чего НЕ делать - НЕ запускать `04_build_and_publish_docs.sh` (документация не нужна сейчас). - НЕ менять версию `0.0.1` на другую. - НЕ трогать `.venv`/mkdocs (для 03 не нужны). ## Контроль успеха Каждый `03` должен завершиться сообщением `Done. Version 0.0.1 uploaded.` Проверка версии в реестре после заливки (опционально): ```bash curl -s https://tf-registry.containerk8s.services.ngcloud.ru/v1/providers//nubes/versions ``` (должна появиться `0.0.1`).