release: перезаливка провайдера во все 3 стенда — prod 1.0.0, dev 2.0.0, test 3.0.0

Полный цикл 03 (01+02 → сборка 3 платформ → GPG → заливка S3) по каждому стенду:
- prod nubes/nubes 1.0.0;
- dev  nubes-dev/nubes 2.0.0  (VERSION в profile.env: 2.0.24 → 2.0.0);
- test nubes-test/nubes 3.0.0.

Проверено: sha256 залитого linux-бинарника == локальной сборке на всех трёх;
API /versions отдаёт 1.0.0 / 2.0.0 / 3.0.0; в S3 по 5 объектов на версию.

Последствия (приняты владельцем): версии X.0.0 перезаписаны → у пользователей
с .terraform.lock.hcl будет checksum mismatch (лечится terraform init -upgrade).
Подробности: HISTORY/2026-09-30_release_1_0_0_2_0_0_3_0_0_all_stands.md
This commit is contained in:
Repinoid
2026-09-30 19:16:48 +03:00
parent fd3ab32534
commit bed269cf27
3 changed files with 66 additions and 6 deletions
@@ -0,0 +1,60 @@
# 2026-09-30 — Перезаливка провайдера во все три стенда под версиями 1.0.0 / 2.0.0 / 3.0.0
> Команда владельца: «надо — чтобы в 1.0.0 2.0.0 3.0.0 стали НОВЫЕ провайдеры…
> ПОХУЙ на пользователей! ПОХУЙ на старые версии!!! генери всё новое и ЗАЛИВАЙ».
## Что сделано
Полный цикл по каждому стенду: перегенерация (`01` YAML → `02` Go+доки) и
сборка+подпись+заливка (`03`) — всё одной командой `03` (она сама вызывает `01` и `02`).
| Стенд | Namespace | Версия | `VERSION` в profile.env | Результат |
|---|---|---|---|---|
| prod | `nubes` | `1.0.0` | `1.0.0` (без изменений) | `Done. Version 1.0.0 uploaded.` |
| dev | `nubes-dev` | `2.0.0` | `2.0.24` → **`2.0.0`** | `Done. Version 2.0.0 uploaded.` |
| test | `nubes-test` | `3.0.0` | `3.0.0` (без изменений) | `Done. Version 3.0.0 uploaded.` |
Команды:
```bash
export MC_CONFIG_DIR=/tmp/mc-cfg
./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/dev 2.0.0
./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/test 3.0.0
./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/prod 1.0.0
```
Что делает `03`: `01` (YAML-спеки стенда) → `02` (Go-ресурсы + доки) → сборка
3 платформ (`linux/windows/darwin amd64`, `CGO_ENABLED=0`, `-ldflags=-X main.version=…`)
→ `terraform-provider-nubes_<v>_SHA256SUMS` → GPG-подпись (`secrets/private_key.asc`,
`CB3A0DF161ECC416`) → заливка 5 объектов в S3.
## Проверки после заливки
| Стенд | Версия | `linux/amd64` скачивание | sha256 залитого vs локальной сборки |
|---|---|---|---|
| dev | `2.0.0` | HTTP 200, 13 169 112 B | ✅ совпадает |
| test | `3.0.0` | HTTP 200, 13 095 908 B | ✅ совпадает |
| prod | `1.0.0` | HTTP 200, 13 103 414 B | ✅ совпадает |
Дополнительно:
- API `/versions`: `nubes-dev` → `['2.0.0','2.0.21','2.0.22','2.0.23','2.0.24']`,
`nubes-test` → `['3.0.0']`, `nubes` → `['1.0.0']`;
- в S3 у каждой версии ровно 5 объектов (3 zip + `SHA256SUMS` + `SHA256SUMS.sig`).
## ⚠️ Последствия (приняты владельцем сознательно)
- Версии `1.0.0`, `2.0.0`, `3.0.0` **перезаписаны** — под теми же номерами теперь
другие бинарники. У всех, у кого есть `.terraform.lock.hcl`, будет
`checksum mismatch` при `terraform init`; лечится `terraform init -upgrade`.
- Старые версии **не удалялись** (кроме ранее вычищенного dev `< 2.0.21`):
в dev остаются `2.0.21`–`2.0.24`, в test `3.0.0` и в prod `1.0.0` — теперь уже как
свежие сборки.
- `VERSION` в `TOOLS/config/dev/profile.env` понижен `2.0.24` → `2.0.0`
(чтобы доки и артефакты генерировались с новой версией); закоммичено.
## Связанные документы
- `VERSIONS.md` — обновлённая таблица текущих версий.
- `HISTORY/2026-09-30_dev_registry_prune_versions.md` — предыдущая очистка dev-реестра.
- `HISTORY/2026-09-30_yaml_pipeline_hardening.md` — состояние пайплайна генерации.
+1 -1
View File
@@ -4,7 +4,7 @@ TOKEN_FILE="secrets/dev.token"
# Release versions # Release versions
# Version # Version
VERSION="2.0.24" VERSION="2.0.0"
NAMESPACE="nubes-dev" NAMESPACE="nubes-dev"
PROVIDER_NAME="nubes" PROVIDER_NAME="nubes"
+5 -5
View File
@@ -2,11 +2,11 @@
> Обновлять после **каждой** заливки. Это единственный источник правды. > Обновлять после **каждой** заливки. Это единственный источник правды.
| Стенд | Namespace | Версия | Дата заливки | | Стенд | Namespace | Версия | Дата заливки | Примечание |
|---|---|---|---| |---|---|---|---|---|
| PROD | `nubes` | `1.0.0` | 2026-09-03 | (новая нумерация) | | PROD | `nubes` | `1.0.0` | 2026-09-30 | **перезалит свежей сборкой** (перегенерация YAML + сборка из текущего кода) |
| 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.0` | 2026-09-30 | **перезалит свежей сборкой**; в реестре также остаются `2.0.21`–`2.0.24` |
| TEST | `nubes-test` | `3.0.0` | 2026-09-03 | (новая нумерация) | | TEST | `nubes-test` | `3.0.0` | 2026-09-30 | **перезалит свежей сборкой** |
> ⚠️ **Хранение в реестре (2026-09-30):** в dev-реестре (`nubes-dev/nubes`) оставлены только > ⚠️ **Хранение в реестре (2026-09-30):** в dev-реестре (`nubes-dev/nubes`) оставлены только
> `2.0.21`–`2.0.24`; версии `2.0.0`–`2.0.20` удалены физически (бакет un-versioned). > `2.0.21`–`2.0.24`; версии `2.0.0`–`2.0.20` удалены физически (бакет un-versioned).