Files
tf_provider/HISTORY/2026-10-01_test_stand_fpipegmail.md
T
Repinoid 4c3039146f fix(test-stand): поднять квоту внешних IP 10 -> 12 + документация провалов apply
Первый apply в test: vdc/edge/org_ip/snat создались; упали:
- Штурвал: 'свободных Ip в тенанте WZ03709-iaas: 1, необходимо 2' — на NaeelOrg
  было count=10, часть адресов держит кластер iot-naeel. Поднято до 12.
- vApp: 'не удалось валидировать схему инстанса' -> not created (вероятно плавающая,
  при повторе — reconcile).

После destroy (владелец): fullpipe-vdc = suspended (suspend_on_destroy),
fullpipe-edge = running (keep_on_destroy), локальный state пуст.

Порядок: apply -target=nubes_vc_org_ip_allocation.org_ip -> полный apply.
HISTORY/2026-10-01_test_stand_fpipegmail.md дополнен разделом с ошибками и решением.
2026-10-01 08:45:50 +03:00

110 lines
7.1 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`.
## Первый `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` — актуальные версии провайдеров стендов.