From bed269cf27a5d9c96669320e57b7bec1b161b0cb Mon Sep 17 00:00:00 2001 From: Repinoid Date: Wed, 30 Sep 2026 19:16:48 +0300 Subject: [PATCH] =?UTF-8?q?release:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B7=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B2=D0=BA=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=B9=D0=B4=D0=B5=D1=80=D0=B0=20=D0=B2=D0=BE=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=203=20=D1=81=D1=82=D0=B5=D0=BD=D0=B4=D0=B0=20=E2=80=94?= =?UTF-8?q?=20prod=201.0.0,=20dev=202.0.0,=20test=203.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Полный цикл 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 --- ...30_release_1_0_0_2_0_0_3_0_0_all_stands.md | 60 +++++++++++++++++++ TOOLS/config/dev/profile.env | 2 +- VERSIONS.md | 10 ++-- 3 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 HISTORY/2026-09-30_release_1_0_0_2_0_0_3_0_0_all_stands.md diff --git a/HISTORY/2026-09-30_release_1_0_0_2_0_0_3_0_0_all_stands.md b/HISTORY/2026-09-30_release_1_0_0_2_0_0_3_0_0_all_stands.md new file mode 100644 index 0000000..20ada91 --- /dev/null +++ b/HISTORY/2026-09-30_release_1_0_0_2_0_0_3_0_0_all_stands.md @@ -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__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` — состояние пайплайна генерации. diff --git a/TOOLS/config/dev/profile.env b/TOOLS/config/dev/profile.env index 334ed4a..4e41d29 100644 --- a/TOOLS/config/dev/profile.env +++ b/TOOLS/config/dev/profile.env @@ -4,7 +4,7 @@ TOKEN_FILE="secrets/dev.token" # Release versions # Version -VERSION="2.0.24" +VERSION="2.0.0" NAMESPACE="nubes-dev" PROVIDER_NAME="nubes" diff --git a/VERSIONS.md b/VERSIONS.md index 692949b..2dff663 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -2,11 +2,11 @@ > Обновлять после **каждой** заливки. Это единственный источник правды. -| Стенд | Namespace | Версия | Дата заливки | -|---|---|---|---| -| PROD | `nubes` | `1.0.0` | 2026-09-03 | (новая нумерация) | -| 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 | (новая нумерация) | +| Стенд | Namespace | Версия | Дата заливки | Примечание | +|---|---|---|---|---| +| PROD | `nubes` | `1.0.0` | 2026-09-30 | **перезалит свежей сборкой** (перегенерация YAML + сборка из текущего кода) | +| DEV | `nubes-dev` | `2.0.0` | 2026-09-30 | **перезалит свежей сборкой**; в реестре также остаются `2.0.21`–`2.0.24` | +| TEST | `nubes-test` | `3.0.0` | 2026-09-30 | **перезалит свежей сборкой** | > ⚠️ **Хранение в реестре (2026-09-30):** в dev-реестре (`nubes-dev/nubes`) оставлены только > `2.0.21`–`2.0.24`; версии `2.0.0`–`2.0.20` удалены физически (бакет un-versioned).