reversion: prod=1.*, dev=2.*, test=3.*; cleanup registry; test 3.0.0 + prod 1.0.0 uploaded (dev skipped: jsonEnv nested bug)

This commit is contained in:
“Naeel”
2026-09-03 09:07:05 +03:00
parent 9e02b696ba
commit 9090488731
7 changed files with 90 additions and 11 deletions
+15
View File
@@ -35,6 +35,21 @@ API стенда ──▶ generated/<стенд>/resources_yaml/ ──▶ gene
В `profile.env` также: `PROVIDER_NAME=nubes`, пути GPG-ключей, актуальная `VERSION` стенда. В `profile.env` также: `PROVIDER_NAME=nubes`, пути GPG-ключей, актуальная `VERSION` стенда.
## Нумерация версий провайдера по стендам
> ⛔ **ЕДИНСТВЕННАЯ схема (с 2026-09-03).** Старые диапазоны (`prod=2.*`, `dev=3.*`,
> `test=5.*`, а также `0.0.x`) — ЛЕГАСИ, **НЕ ИСПОЛЬЗОВАТЬ**. Полная чистка реестра
> выполнена 2026-09-03 — старые версии удалены из S3.
| Стенд | Диапазон версий | Первая |
|---|---|---|
| **prod** (`nubes`) | `1.*.*` | `1.0.0` |
| **dev** (`nubes-dev`) | `2.*.*` | `2.0.0` |
| **test** (`nubes-test`) | `3.*.*` | `3.0.0` |
Версия передаётся аргументом в `03_build_and_upload_provider.sh <ver>` и хранится в
`VERSION` в `profile.env`. Источник правды — [`VERSIONS.md`](../../VERSIONS.md).
## Поток A — генерация Markdown (API → YAML → .md) ## Поток A — генерация Markdown (API → YAML → .md)
| Шаг | Скрипт | Результат | | Шаг | Скрипт | Результат |
+61
View File
@@ -0,0 +1,61 @@
# 2026-09-03 — Чистка реестра + новая нумерация версий + баг dev
## Новая схема нумерации версий (с 2026-09-03)
| Стенд | Namespace | Диапазон | Первая |
|---|---|---|---|
| prod | `nubes` | `1.*.*` | `1.0.0` |
| dev | `nubes-dev` | `2.*.*` | `2.0.0` |
| test | `nubes-test` | `3.*.*` | `3.0.0` |
⛔ Старые схемы (`prod=2.*`, `dev=3.*`, `test=5.*`, `0.0.x`) — ЛЕГАСИ, не использовать.
Обновлено: `VERSIONS.md`, `TOOLS/config/*/profile.env`, `DOCS_PIPELINE/README.md`,
`docs/30_registry/guides/getting-started.md`.
## Чистка реестра
Из S3 (`nubes-terraform-registry`, креды super `1112_terraform`) удалены ВСЕ старые версии:
- `nubes-dev`: 3.0.23.0.6
- `nubes`: 2.0.2, 2.0.3, 2.0.5, 2.0.6
- `nubes-test`: 0.0.1, 5.0.15.0.5, 5.1.17
После чистки в каждом namespace — 0 объектов. Легаси (5.1.17 и т.д.) нигде не осталось.
## Статус перегенерации (2026-09-03)
-**test** `3.0.0` — сгенерирован и загружен (`Done. Version 3.0.0 uploaded`).
-**dev** `2.0.0` — НЕ собирается (пропущен по решению пользователя), см. баг ниже.
-**prod** `1.0.0` — в работе.
## Баг dev: nodejs jsonEnv (create vs modify)
Симптом: `03` dev падает на компиляции сгенерированного кода:
```
internal/resources_gen/95_nodejs_resource.go:350-353:
plan.JsonEnv.IsNull / IsUnknown / ValueString undefined
(type *NodejsJsonEnvModel has no field or method ...)
```
Причина: **API dev** для nodejs `jsonEnv`:
- в `create` (op id=58) — `map` **с `sub_params`** (типизированные ключи, напр. DB_PASS) → генератор создаёт вложенную модель `NodejsJsonEnvModel`;
- в `modify` (op id=59) — `map` **без `sub_params`** → генератор для diff генерирует строковое сравнение (`IsNull/ValueString`).
У test/prod `jsonEnv` без sub_params в обоих операциях → строка → собирается.
Корень: `TOOLS/resource-generator/internal/params/params.go`, `AlignParamTypes`
подмешивает `SubParams` из schema в modify только если `HasSubParams` уже true:
```go
if !p.HasSubParams { continue } // modify-jsonEnv (без sub) пропускается
```
Возможный фикс: наследовать `HasSubParams`/`SubParams` из schema для параметров с тем же
code. ⚠️ Нюанс: diff-шаблон исключает nested-поля из `hasServiceParamChanges` — изменение
nested jsonEnv не будет триггерить modify (нужно продумать отдельно).
**Вывод:** сервисы/структуры API стендов отличаются (dev jsonEnv — nested в create).
Каждый стенд рассматривать независимо. dev отложен до решения по генератору/API.
## Прочее (инфраструктура, этот же день)
- Токены API `secrets/*.token` были отозваны на стороне IAM (401 IAM error при валидном exp) — обновлены 2026-09-03.
- S3-креды `.s3cfg_registry` (docs) не имеют прав на бакет бинарников `nubes-terraform-registry`;
заливка бинарников — subuser `super` аккаунта `1112_terraform` (см. `tf_registry/HISTORY/HOWTO-UPLOAD.md`).
+1 -1
View File
@@ -4,7 +4,7 @@ TOKEN_FILE="secrets/dev.token"
# Release versions # Release versions
# Version # Version
VERSION="3.0.8" VERSION="2.0.0"
NAMESPACE="nubes-dev" NAMESPACE="nubes-dev"
PROVIDER_NAME="nubes" PROVIDER_NAME="nubes"
+1 -1
View File
@@ -4,7 +4,7 @@ TOKEN_FILE="secrets/prod.token"
# Release versions # Release versions
# Version # Version
VERSION="2.0.8" VERSION="1.0.0"
NAMESPACE="nubes" NAMESPACE="nubes"
PROVIDER_NAME="nubes" PROVIDER_NAME="nubes"
+1 -1
View File
@@ -3,7 +3,7 @@ NUBES_API_ENDPOINT="https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
TOKEN_FILE="secrets/test.token" TOKEN_FILE="secrets/test.token"
# Version # Version
VERSION="5.0.8" VERSION="3.0.0"
NAMESPACE="nubes-test" NAMESPACE="nubes-test"
PROVIDER_NAME="nubes" PROVIDER_NAME="nubes"
+10 -7
View File
@@ -4,9 +4,9 @@
| Стенд | Namespace | Версия | Дата заливки | | Стенд | Namespace | Версия | Дата заливки |
|---|---|---|---| |---|---|---|---|
| DEV | `nubes-dev` | `3.0.2` | 2026-08-09 | ✅ из DEV API | | PROD | `nubes` | `1.0.0` | 2026-09-03 | (новая нумерация) |
| TEST | `nubes-test` | `5.0.1` | 2026-08-09 | | | DEV | `nubes-dev` | `2.0.0` | 2026-09-03 | (новая нумерация) |
| PROD | `nubes` | `2.0.1` | — | | | TEST | `nubes-test` | `3.0.0` | 2026-09-03 | (новая нумерация) |
## Как проверить ## Как проверить
@@ -23,8 +23,11 @@ curl -s https://tf-registry.containerk8s.services.ngcloud.ru/v1/providers/nubes/
## Схема версионирования ## Схема версионирования
| Стенд | Первая цифра | > ⛔ ЕДИНСТВЕННАЯ СХЕМА (с 2026-09-03). Старые диапазоны (prod=2.*, dev=3.*,
> test=5.*, а также 0.0.x) — ЛЕГАСИ, НЕ ИСПОЛЬЗОВАТЬ.
| Стенд | Диапазон |
|---|---| |---|---|
| PROD | `2.*` | | PROD | `1.*` |
| DEV | `3.*` | | DEV | `2.*` |
| TEST | `5.*` | | TEST | `3.*` |
+1 -1
View File
@@ -25,7 +25,7 @@ terraform {
required_providers { required_providers {
nubes = { nubes = {
source = "tf-registry.containerk8s.services.ngcloud.ru/nubes/nubes" source = "tf-registry.containerk8s.services.ngcloud.ru/nubes/nubes"
version = "5.0.5" # Поставьте нужную вам версию провайдера version = "3.0.0" # Версия по стенду: prod=1.x, dev=2.x, test=3.x
} }
} }
} }