Files
tf_provider/NOTES/10_plans/PLAN_regenerate_providers_0.0.1.md
T
Repinoid f7fffb9ed7 refactor: разложить рабочие материалы по NOTES/ и HOW_TO/, корневой README — карта проекта
- NOTES/: 10_plans, 20_prompts, 30_analysis, 40_chat_summaries, 60_reference + README в каждой папке
- HOW_TO/: все общие инструкции (сборка/заливка, DevOps-ранбук, добавление сервиса, миграция, генерация доков) + индекс «что нужно -> какой файл»
- новый README.md: карта проекта, пайплайн, стенды, реестр, запреты/грабли
- HOWTO-UPLOAD.md: исправлена легаси-схема версий (prod=1.*, dev=2.*, test=3.*)
- DEVOPS_BUILD_PIPELINE.md: пути скриптов -> TOOLS/scripts, universal_rebuild/main.go -> provider/main.go
- howitwasdone.md / MIGRATION_PLAN_FOR_AGENT.md: пометки о соответствии старых путей
- внутри перенесённых файлов обновлены ссылки на новые пути
2026-09-24 07:51:38 +03:00

4.3 KiB

⚠️ ПЕРЕКРЫТ (пометка 2026-09-24). НЕ ИСПОЛЬЗОВАТЬ. Версия 0.0.1 объявлена ЛЕГАСИ в PLAN_FLASH_reversion_cleanup.md. Актуальная схема: prod=1.*, dev=2.*, test=3.*.

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

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

Цель

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

Версия

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

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

test → dev → prod

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

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 terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes/0.0.1/
test nubes-test terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes/0.0.1/
prod nubes terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/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=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).