Files
tf_provider/PLAN_FLASH_reversion_cleanup.md

107 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# План: чистка реестра + новая нумерация версий по стендам
> Для 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`.
```bash
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/
```
Проверка после удаления (должно быть пусто):
```bash
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.env`** → `VERSION="1.0.0"`
3. **`TOOLS/config/dev/profile.env`** → `VERSION="2.0.0"`
4. **`TOOLS/config/test/profile.env`** → `VERSION="3.0.0"`
5. **`DOCS_PIPELINE/README.md`** — раздел про нумерацию версий (схема выше).
6. **`docs/30_registry/guides/getting-started.md`** — `version = "..."` в примере привести
к актуальной (или оставить как «подставьте нужную», но НЕ 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), версия = первая по новой схеме:
```bash
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/`