docs: remove S3 credentials from release plans

This commit is contained in:
“Naeel”
2026-09-03 10:53:36 +03:00
parent 62d8d7b45d
commit 9ebe5b19d6
2 changed files with 184 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
# План: чистка реестра + новая нумерация версий по стендам
> Для 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/`
+78
View File
@@ -0,0 +1,78 @@
# План: перегенерация провайдеров всех стендов (версия 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/<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.`
Проверка версии в реестре после заливки (опционально):
```bash
curl -s https://tf-registry.containerk8s.services.ngcloud.ru/v1/providers/<ns>/nubes/versions
```
(должна появиться `0.0.1`).