Files
tf_provider/PLAN_FLASH_reversion_cleanup.md

5.7 KiB
Raw Permalink Blame History

План: чистка реестра + новая нумерация версий по стендам

Для Flash. Цель — убрать ВСЕ старые залитые версии (легаси) и ввести единый принцип нумерации, чтобы старое (5.1.17 и т.п.) больше нигде не всплывало.

Новый принцип нумерации (ЗАФИКСИРОВАТЬ)

Стенд Namespace Диапазон версий Первая версия по новой схеме
prod nubes 1.*.* 1.0.0
dev nubes-dev 2.*.* 2.0.0
test nubes-test 3.*.* 3.0.0

Старые схемы (prod=2.*, dev=3.*, test=5.*, а также 0.0.1) — ЛЕГАСИ. Никогда больше не использовать.

Текущее состояние в S3 (нужно УДАЛИТЬ ВСЁ)

Бакет nubes-terraform-registry, префикс tf-registry.containerk8s.services.ngcloud.ru/<ns>/nubes/:

  • nubes-dev: 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6
  • nubes (prod): 2.0.2 2.0.3 2.0.5 2.0.6
  • nubes-test: 0.0.1 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.1.17

Шаг 1 — Удалить все залитые версии из S3

Креды на запись: subuser super аккаунта 1112_terraform, передаются через переменные окружения S3_ACCESS_KEY и S3_SECRET_KEY.

mc alias set super-s3 https://s3.msk-1.ngcloud.ru "$S3_ACCESS_KEY" "$S3_SECRET_KEY" --api S3v4

# Удалить ВСЕ версии каждого стенда (рекursивно, включая подфайлы)
mc rm --recursive --force super-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes/
mc rm --recursive --force super-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes/
mc rm --recursive --force super-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes/nubes/

Проверка после удаления (должно быть пусто):

mc ls super-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes/
mc ls super-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes/
mc ls super-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes/nubes/

Шаг 2 — Зафиксировать новую нумерацию в конфигах и док-файлах

Обновить (каждый файл — по новому принципу prod=1., dev=2., test=3.*):

  1. VERSIONS.md — таблица версий по стендам + схема:
    • PROD → 1.* (первая 1.0.0)
    • DEV → 2.* (первая 2.0.0)
    • TEST → 3.* (первая 3.0.0)
  2. TOOLS/config/prod/profile.envVERSION="1.0.0"
  3. TOOLS/config/dev/profile.envVERSION="2.0.0"
  4. TOOLS/config/test/profile.envVERSION="3.0.0"
  5. DOCS_PIPELINE/README.md — раздел про нумерацию версий (схема выше).
  6. docs/30_registry/guides/getting-started.mdversion = "..." в примере привести к актуальной (или оставить как «подставьте нужную», но НЕ 5.0.5 и не 5.1.17).

⚠️ Проверить, что в этих файлах нигде не осталось 5.1.17, 5.0.x, 3.0.x (кроме новой схемы), 2.0.x (кроме новой 1.x для prod). Сделать grep -rn.

Шаг 3 — Перегенерировать провайдеры по новой схеме (01→02→03)

Для каждого стенда (порядок test → dev → prod), версия = первая по новой схеме:

cd /home/naeel/TF/tf_provider

# TEST → 3.0.0
./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/test
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/test
S3_ACCESS_KEY="$S3_ACCESS_KEY" S3_SECRET_KEY="$S3_SECRET_KEY" \
  ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/test 3.0.0

# DEV → 2.0.0
./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/dev
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/dev
S3_ACCESS_KEY="$S3_ACCESS_KEY" S3_SECRET_KEY="$S3_SECRET_KEY" \
  ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/dev 2.0.0

# PROD → 1.0.0
./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/prod
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/prod
S3_ACCESS_KEY="$S3_ACCESS_KEY" S3_SECRET_KEY="$S3_SECRET_KEY" \
  ./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/prod 1.0.0

Документацию (04) НЕ запускать — пользователь пока не просил.

Предусловия (ПРОВЕРЕНО)

  • Go 1.23.1, docker, mc, GPG-ключи — на месте.
  • Токены API secrets/{dev,test,prod}.token — ОБНОВЛЕНЫ 2026-09-03 (валидны, exp 2027-03-02).
  • operation_timeouts.json в каждом профиле — на месте.
  • S3-креды на запись бинарников — super subuser (см. выше).
  • registry.env: hostname tf-registry.containerk8s.services.ngcloud.ru, bucket nubes-terraform-registry.

Контроль

После каждого 03 — сообщение Done. Version X.Y.Z uploaded. После всех — в S3 должны остаться ТОЛЬКО:

  • nubes/nubes/1.0.0/
  • nubes-dev/nubes/2.0.0/
  • nubes-test/nubes/3.0.0/