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:
@@ -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)
|
||||||
|
|
||||||
| Шаг | Скрипт | Результат |
|
| Шаг | Скрипт | Результат |
|
||||||
|
|||||||
@@ -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.2–3.0.6
|
||||||
|
- `nubes`: 2.0.2, 2.0.3, 2.0.5, 2.0.6
|
||||||
|
- `nubes-test`: 0.0.1, 5.0.1–5.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`).
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
@@ -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.*` |
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user