chore(dev-registry): физически удалены версии провайдера старше 2.0.21

В dev-реестре (s3://nubes-terraform-registry/.../nubes-dev/nubes/) удалены
версии 2.0.0–2.0.20 — 21 версия, 105 объектов (~800 MiB). Бакет un-versioned.

Осталось: 2.0.21, 2.0.22, 2.0.23, 2.0.24 (20 объектов).
Проверено: mc ls (20 объектов), API /versions (4), download 2.0.23/2.0.24 → HTTP 206
(ZIP), 2.0.0/2.0.20 → HTTP 404; nubes-test (3.0.0) и nubes (1.0.0) не тронуты.

Резервные копии zip не делались (прямое указание «стереть физически»);
восстановление — только пересборкой из git-истории.
Документация: HISTORY/2026-09-30_dev_registry_prune_versions.md, VERSIONS.md.
This commit is contained in:
Repinoid
2026-09-30 10:50:45 +03:00
parent 46dc548af4
commit fd3ab32534
2 changed files with 93 additions and 0 deletions
@@ -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_<v>_darwin_amd64.zip (~13 MiB)
terraform-provider-nubes_<v>_linux_amd64.zip (~13 MiB)
terraform-provider-nubes_<v>_windows_amd64.zip (~13 MiB)
terraform-provider-nubes_<v>_SHA256SUMS
terraform-provider-nubes_<v>_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/<v>/"
```
Перед удалением снят полный манифест (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` — не тронуто |
> Примечание: эндпоинт `…/<v>/download/<os>/<arch>` отдаёт метаданные (JSON с `download_url`)
> **не проверяя наличие объекта** — статус 200 у него ничего не доказывает. Фактическая
> доступность проверяется загрузкой по `download_url` (как в таблице выше).
## Риски и восстановление
- ⛔ **Резервные копии zip не делались** — по прямому указанию «стереть физически»
(плюс канал до S3 из локальной сети медленный). Восстановление возможно **только
пересборкой** нужной версии из git-истории пакета;
`download_url`/`SHA256SUMS` удалённых версий не сохранялись.
- Пользователи, закрепившие в dev-стендах версии `< 2.0.21`, получат 404 при `terraform init`
и должны перейти на `2.0.21+`.
- `test` и `prod` не затронуты.
+4
View File
@@ -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(...)`) | | 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 | (новая нумерация) | | 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 ```bash