Files
tf_provider/HISTORY/2026-10-01_test_stand_fpipegmail.md
T
Repinoid 5faf33c43d chore(test-stand): закомментировать vm.tf — vApp (26) и ВМ (28) исключены из стенда
vm.tf целиком обёрнут в блочный комментарий /* … */ со пояснением причины:
в test инстанс vApp не прошёл валидацию схемы (нужен reconcile). Вернуть —
удалить обрамляющие строки.

Проверено: terraform fmt -check OK, validate Success,
plan = 1 to add (только Штурвал); инстансов vApp/ВМ стенда в тенанте нет (все deleted).
2026-10-01 09:52:13 +03:00

125 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` — актуальные версии провайдеров стендов.