docs(history): раскладка HISTORY по тематическим папкам (75 файлов)
Было: 41 файл в корне HISTORY/ + авторские папки OPUS/ и SONNET/ (34 файла). Стало — тематическая нумерация в стиле NOTES/ (10_, 20_, …): 10_reviews/ ревью кода и разборы от LLM (2) 20_releases/ заливки версий в реестр, чистки реестра, нумерация версий (8) 30_provider/ ядро провайдера: архитектура, модификаторы, UUID, nested (6) 40_generator/ генератор YAML/спеки, формат MAN (3) 50_docs/ пайплайн документации, навигация, публикация, хостинг S3 (9) 60_stands/ стенды и примеры: CRUD, FullPipe, Штурвал, TEST_STAND (7) 70_infra/ реестр, API Gateway, DDoS-Guard, VPN/213, зеркала (4) 90_llm/ диалоги и промпты с LLM вне тематики: OPUS/, SONNET/, gemini/ (34) OPUS/ и SONNET/ перенесены как есть в 90_llm/ — чтобы не рвать пары «бриф → ответ» внутри диалогов. Все переносы — через git mv (история сохранена). Перед правкой: TMP/backup_2026-10-02/HISTORY_before_restructure.tar.gz. Перекрёстные ссылки обновляются следующим коммитом.
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
# 2026-10-01 — Стенд `TEST_STAND/FPipeGmail`: копия dev-примера, адаптированная под test
|
||||
|
||||
> Команда владельца: «`DEV_STAND/FPipeGmail` — это в дев. Надо — сделать такую же папку
|
||||
> в `TEST_STAND` и соответственно изменить параметры в tf-конфигах, и посмотри чтобы
|
||||
> не было коллизий — там в стенде есть и эдж и вдц. Найди имя огра».
|
||||
|
||||
## Что сделано
|
||||
|
||||
Создана `TEST_STAND/FPipeGmail/` — копия `DEV_STAND/FPipeGmail` **без** `.terraform/`,
|
||||
`terraform.tfstate*`, `.terraform.lock.hcl` (это состояние dev, к test оно не относится).
|
||||
Состав: `vdc.tf`, `edge.tf`, `modifiers.tf`, `vm.tf`, `shturval.tf`, `variables.tf`,
|
||||
`outputs.tf`, `provider.tf`, `versions.tf`, `terraform.tfvars` (+ `.example`).
|
||||
|
||||
## Найденные данные test-стенда (из API, не из догадок)
|
||||
|
||||
| Что | Значение | Откуда |
|
||||
|---|---|---|
|
||||
| Организация (vcOrg) | **`NaeelOrg`**, uuid `3f0850f2-3506-4efd-b84b-7270b5027ab5`, `running`, `iaas` | `GET /instances?serviceId=19` |
|
||||
| ipSpace на организации | `internet-ipv4-v1`, уже выделено **10** IP | `GET /instances/3f0850f2-…` → `vIPConfigure` |
|
||||
| networkProvider | `snb1` | `GET /instances/e3c9e4f1-…` (существующий vDC `naeel-vdc`) |
|
||||
| providerVdc | `Intel Broadwell 2.4` | там же |
|
||||
| storage | `SSD` | там же (`storageConfig`) |
|
||||
| realm | `sandbox.nubes.ru` | `GET /instances/3f0850f2-…` |
|
||||
|
||||
## Изменённые параметры (dev → test)
|
||||
|
||||
| Файл | Было (dev) | Стало (test) |
|
||||
|---|---|---|
|
||||
| `versions.tf` | `…/nubes-dev/nubes`, `2.0.1` | **`…/nubes-test/nubes`, `3.0.0`** |
|
||||
| `variables.tf` → `api_endpoint` | `lk-api-gateway-dev…` | **`lk-api-gateway-test…`** |
|
||||
| `terraform.tfvars` → `organization` | `kontra` | **`NaeelOrg`** |
|
||||
| `terraform.tfvars` → `api_token` | dev-токен | **test-токен** (`secrets/test.token`) |
|
||||
| `terraform.tfvars` → `ip_count` | `4` | **`10`**, затем **`12`** (см. раздел про первый apply) |
|
||||
| `terraform.tfvars` → `vdc_storage_config` | `SATA / 200` | **`SSD / 200`** (в test vDC строят на SSD) |
|
||||
| `shturval.tf` → `shturval_resource_name` | `shturval-dev1` | **`shturval-test1`** |
|
||||
| `shturval.tf` → `shturval_cluster_name` | `shturval-dev-01` | **`shturval-test-01`** |
|
||||
| `shturval.tf` → `shturval_worker_group_name` | `workers-shturval-dev` | **`workers-shturval-test`** |
|
||||
|
||||
Не менялись (совпадают с test): `vdc_network_provider=snb1`, `vdc_provider_vdc="Intel Broadwell 2.4"`,
|
||||
`ip_space_name=internet-ipv4-v1`, DNS/пул Edge, имена `fullpipe-vdc` / `fullpipe-edge` / `fullpipe-vapp-02`.
|
||||
|
||||
## Исключение блока ВМ (2026-10-01, по команде владельца)
|
||||
|
||||
Файл `TEST_STAND/FPipeGmail/vm.tf` (всё, что относится к vApp и ВМ: переменные, оба ресурса,
|
||||
выводы) **закомментирован целиком** блочным комментарием `/* … */`.
|
||||
|
||||
- Причина: в test инстанс vApp не прошёл валидацию схемы
|
||||
(«Не удалось произвести валидацию схемы инстанса. Запустите операцию reconcile»).
|
||||
- Дополнительно: в test разработчику нужно поднять остальную цепочку (vDC → Edge → IP → SNAT → Штурвал),
|
||||
а ВМ/vApp — позже.
|
||||
- Как вернуть: удалить первую и последнюю строки блочного комментария в `vm.tf`.
|
||||
|
||||
После правки: `terraform fmt -check` — OK, `terraform validate` — Success,
|
||||
`terraform plan` — **1 to add** (только `nubes_k8s_sthutrval_cluster.shturval`).
|
||||
Инстансов vApp/ВМ стенда в тенанте нет — все записи `deleted`.
|
||||
|
||||
## Первый `apply` в test: ошибки и что с ними делать (2026-10-01)
|
||||
|
||||
Создались: `nubes_vc_vdc.vdc` (`fullpipe-vdc`), `nubes_vc_nsxt.edge` (`fullpipe-edge`),
|
||||
`nubes_vc_org_ip_allocation.org_ip`, `nubes_vc_nsxt_snat.snat`. Упали два ресурса:
|
||||
|
||||
| Ресурс | Ошибка | Причина / решение |
|
||||
|---|---|---|
|
||||
| `nubes_k8s_sthutrval_cluster.shturval` | операция `61F4FF33-…`: «Кол-во свободных Ip в тенанте `WZ03709-iaas`: 1. Необходимо 2… Перейдите в настройки услуги „Организация в Cloud Director“(3f0850f2-…) → Операция modify» | **квота внешних IP**: на `NaeelOrg` было `count=10`, свободным остался 1 (часть держит кластер `iot-naeel`). Решение: `ip_count` **10 → 12** и применить модификатор |
|
||||
| `nubes_vapp.vapp` (`fullpipe-vapp-02`) | «Не удалось произвести валидацию схемы инстанса. Запустите операцию `reconcile` у инстанса „Виртуальный каталог ВМ (vApp)“» | инстанс ушёл в `not created`; вероятно плавающая ошибка — проверить после увеличения IP, при повторе сделать `reconcile` |
|
||||
|
||||
После `terraform destroy` (сделан владельцем):
|
||||
|
||||
| Объект | Состояние | Почему |
|
||||
|---|---|---|
|
||||
| `fullpipe-vdc` (21) | `suspended` | `suspend_on_destroy = true` — «заморозка» |
|
||||
| `fullpipe-edge` (22) | `running` | `keep_on_destroy = true` — destroy эдж не трогает |
|
||||
| локальный `state` | пуст | — |
|
||||
|
||||
Порядок исправления:
|
||||
|
||||
```bash
|
||||
# 1) поднять квоту внешних IP (terraform.tfvars: ip_count="12") — выполняет владелец:
|
||||
terraform apply -target=nubes_vc_org_ip_allocation.org_ip
|
||||
|
||||
# 2) при необходимости — reconcile у vApp в ЛК
|
||||
|
||||
# 3) полный цикл (vApp и Штурвал пересоздаются, vDC размораживается, Edge усыновляется):
|
||||
terraform apply
|
||||
```
|
||||
|
||||
## Проверка коллизий (в test уже есть эдж и vDC)
|
||||
|
||||
Занято в test сейчас:
|
||||
|
||||
| Услуга | Имена | Статус |
|
||||
|---|---|---|
|
||||
| vDC (21) | `naeel-vdc`, `VDC для кластера iot-naeel` | running |
|
||||
| Edge (22) | `naeel_vc_nsxt`, `Edge для кластера IOT naeel` | running |
|
||||
| vApp (26) | `vapp-222`, `vm-sless-vapp`, `vm-sless-demo-vapp` | deleted |
|
||||
| ВМ (28) | `vm-sless`, `vm-sless-1`, `vm-sless-demo` | deleted |
|
||||
| Штурвал (150) | `naeel-wheel` (deleted), `Кластер Kubernetes [iot-naeel]` | running |
|
||||
|
||||
Наши имена (`fullpipe-vdc`, `fullpipe-edge`, `fullpipe-vapp-02`, `web02`, `shturval-test1`)
|
||||
**свободны** — пересечений нет.
|
||||
|
||||
## Проверки конфигурации
|
||||
|
||||
```bash
|
||||
terraform init # установлен nubes-test/nubes 3.0.0 (подпись CB3A0DF161ECC416)
|
||||
terraform fmt -check -recursive # OK
|
||||
terraform validate # Success! The configuration is valid.
|
||||
terraform plan # Plan: 7 to add, 0 to change, 0 to destroy
|
||||
```
|
||||
|
||||
⚠️ `terraform apply` **не выполнялся** — по правилам запускает только владелец.
|
||||
|
||||
## Риск, который надо помнить
|
||||
|
||||
- `nubes_vc_org_ip_allocation` (модификатор `vIPConfigure`) **перезаписывает массив внешних IP целиком**.
|
||||
В test на `NaeelOrg` уже выделено 10 адресов (их использует кластер `iot-naeel`), поэтому
|
||||
`ip_count="10"` — уменьшение сломает чужой стенд.
|
||||
- В `.gitignore` уже закрыты `terraform.tfvars`, `.terraform/`, `.terraform.lock.hcl`,
|
||||
`terraform.tfstate*` — в репозиторий попадут только `.tf` и `terraform.tfvars.example`.
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- `HISTORY/2026-09-25_fullpipe_example_shturval_and_docs.md` — исходный пример FPipeGmail (dev).
|
||||
- `HISTORY/2026-10-01_release_x_0_0_all_stands.md` — актуальные версии провайдеров стендов.
|
||||
Reference in New Issue
Block a user