diff --git a/HISTORY/2026-09-30_dev_registry_prune_versions.md b/HISTORY/2026-09-30_dev_registry_prune_versions.md new file mode 100644 index 0000000..0d4c377 --- /dev/null +++ b/HISTORY/2026-09-30_dev_registry_prune_versions.md @@ -0,0 +1,89 @@ +# 2026-09-30 — Очистка dev-реестра: удалены версии провайдера старше 2.0.21 + +> Команда владельца: «в деве — сотри ФИЗИЧЕСКИ все провайдеры старше 21 версии». +> Операция **необратимая** (бакет без версионирования), выполнена 2026-09-30. + +## Что и где + +| Параметр | Значение | +|---|---| +| Хранилище | S3 `https://s3.msk-1.ngcloud.ru`, бакет `nubes-terraform-registry` | +| Префикс | `tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes/` | +| Стенд | **только dev** (`nubes-dev`); `nubes-test` и `nubes` не тронуты | +| Инструмент | `mc` (`/usr/bin/mc`), alias `prod-s3`, `--api S3v4`, креды из `secrets/.s3cfg_provider` | +| Версионирование бакета | `un-versioned` — удаление физическое, без «теневых» копий | + +Состав одной версии — 5 объектов: + +``` +terraform-provider-nubes__darwin_amd64.zip (~13 MiB) +terraform-provider-nubes__linux_amd64.zip (~13 MiB) +terraform-provider-nubes__windows_amd64.zip (~13 MiB) +terraform-provider-nubes__SHA256SUMS +terraform-provider-nubes__SHA256SUMS.sig +``` + +## Было → стало + +| | До | После | +|---|---|---| +| Версий | 25 (`2.0.0` … `2.0.24`) | **4** (`2.0.21`, `2.0.22`, `2.0.23`, `2.0.24`) | +| Объектов | 125 | **20** | +| Объём (zip) | ~975 MiB | ~156 MiB | + +## Удалено (21 версия, 105 объектов) + +``` +2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 +2.0.8 2.0.9 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 +2.0.16 2.0.17 2.0.18 2.0.19 2.0.20 +``` + +Каждая версия: 5 объектов (3 zip ~13 MiB + `SHA256SUMS` + `SHA256SUMS.sig`). + +Команда (по версии): + +```bash +mc rm --recursive --force \ + "prod-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes//" +``` + +Перед удалением снят полный манифест (125 строк): + +```bash +mc ls -r "prod-s3/nubes-terraform-registry/tf-registry.containerk8s.services.ngcloud.ru/nubes-dev/nubes/" +``` + +## Оставлено + +``` +2.0.21 2.0.22 2.0.23 2.0.24 (20 объектов, 4 × 5) +``` + +Актуальная версия dev — `2.0.24` (см. `VERSIONS.md`). + +## Проверки после удаления + +| Проверка | Результат | +|---|---| +| `mc ls` префикса dev | только `2.0.21/`, `2.0.22/`, `2.0.23/`, `2.0.24/` | +| `mc ls -r` (всего объектов) | 20 (по 5 на версию) | +| API `…/nubes-dev/nubes/versions` | `['2.0.21','2.0.22','2.0.23','2.0.24']`, count 4 | +| Скачивание `2.0.24`/`2.0.23` (linux/amd64) | HTTP **206**, ZIP-магия `50 4b 03 04` | +| Скачивание `2.0.20`/`2.0.0` (linux/amd64) | HTTP **404** (объекта нет) | +| Контроль: `nubes-test` | `3.0.0` — не тронуто | +| Контроль: `nubes` (prod) | `1.0.0` — не тронуто | + +> Примечание: эндпоинт `…//download//` отдаёт метаданные (JSON с `download_url`) +> **не проверяя наличие объекта** — статус 200 у него ничего не доказывает. Фактическая +> доступность проверяется загрузкой по `download_url` (как в таблице выше). + +## Риски и восстановление + +- ⛔ **Резервные копии zip не делались** — по прямому указанию «стереть физически» + (плюс канал до S3 из локальной сети медленный). Восстановление возможно **только + пересборкой** нужной версии из git-истории пакета; + `download_url`/`SHA256SUMS` удалённых версий не сохранялись. +- Пользователи, закрепившие в dev-стендах версии `< 2.0.21`, получат 404 при `terraform init` + и должны перейти на `2.0.21+`. +- `test` и `prod` не затронуты. diff --git a/VERSIONS.md b/VERSIONS.md index 23eb569..692949b 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -8,6 +8,10 @@ | DEV | `nubes-dev` | `2.0.24` | 2026-09-30 | (fix: UUID внутри map-fixed JSON нормализуется к lowercase **при отправке** в API — `resources_core.BuildJSON` → `jsonutil.LowercaseUUIDsInText`; без этого create Штурвала падал «Edge не развёрнут в указанном vDC», пока в HCL стоял костыль `lower(...)`) | | TEST | `nubes-test` | `3.0.0` | 2026-09-03 | (новая нумерация) | +> ⚠️ **Хранение в реестре (2026-09-30):** в dev-реестре (`nubes-dev/nubes`) оставлены только +> `2.0.21`–`2.0.24`; версии `2.0.0`–`2.0.20` удалены физически (бакет un-versioned). +> Подробности и проверки: `HISTORY/2026-09-30_dev_registry_prune_versions.md`. + ## Как проверить ```bash