Files
tf_provider/PLAN_regenerate_providers_0.0.1.md

3.9 KiB

План: перегенерация провайдеров всех стендов (версия 0.0.1)

Для Flash. Генерацию выполняет Flash по этому плану. Документацию НЕ трогать.

Цель

Перегенерировать код Terraform-провайдера Nubes для 3 стендов из API и залить бинарники версии 0.0.1. Документацию не генерировать и не публиковать.

Версия

0.0.1 — для всех трёх стендов.

Порядок стендов

testdevprod

Команды (для каждого стенда, по порядку)

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

Полные команды:

# 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/<ns>/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. Проверка версии в реестре после заливки (опционально):

curl -s https://tf-registry.containerk8s.services.ngcloud.ru/v1/providers/<ns>/nubes/versions

(должна появиться 0.0.1).