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:
@@ -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` не затронуты.
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user