diff --git a/HISTORY/2026-09-24_shturval_dev00_adopt_and_freeze_design.md b/HISTORY/2026-09-24_shturval_dev00_adopt_and_freeze_design.md new file mode 100644 index 0000000..70ea054 --- /dev/null +++ b/HISTORY/2026-09-24_shturval_dev00_adopt_and_freeze_design.md @@ -0,0 +1,40 @@ +# 2026-09-24 — Штурвал dev-00: диагностика, adopt и дизайн «freeze on destroy» + +Краткая запись по дню. Разбор с источниками (файл:строка, ответы API, логи) — +`NOTES/30_analysis/SHTURVAL_DEV00_DIAG_AND_FREEZE_DESIGN_2026-09-24.md`, +резюме для продолжения — `NOTES/40_chat_summaries/CHAT_RESUME_2026-09-24_shturval_freeze.md`. + +## Изменения в репозитории + +| Что | Файл | Коммит | +|---|---|---| +| `adopt_existing_on_create = true` для кластера Штурвала (иначе apply падал на существующем suspended-инстансе) | `DEV_STAND/FullPipe/shturval.tf` | `57abb7b` | +| Документация сессии (диагностика + дизайн freeze) | `NOTES/30_analysis/…`, `NOTES/40_chat_summaries/…` | `3df93ad` | + +Бэкап перед правкой: `TMP/backup_2026-09-24/shturval.tf.before-adopt`. + +## Итоги диагностики кластера `shturval-dev-00` + +- Кластер здоров: 2 ноды Ready (k8s v1.35.1, платформа 2.14.0), `shturvalserviceconfigs` 41/41 `ready`, + `nodeconfigitems` 4/4, endpoints есть у всех 35 сервисов. +- Единственный «мусор» — 4 подвисших пода `kube-system/shturval-init-job` (3 Error + 1 Unknown) при + `Complete 1/1` у Job. Причина: webhook-и Штурвала недоступны, пока Cilium не поднял сеть + (`connect: operation not permitted`). Самоочистка по `ttlSecondsAfterFinished: 86400` (~25.09 14:31 UTC). +- Счётчики ЛК расшифрованы: `Pods` = готовые/всего (без Completed), «Системные сервисы» = число сервисов в режиме + `auto` (17/24 во время установки → 24/24), «Ingress» — домен-шаблон, «Конфигурация узлов» — NodeConfigItems. + +## Итоги разбора destroy + +- `nubes_vc_org_ip_allocation` при `keep_on_destroy = false` отправляет `count=0` и падает, если квота занята + (2 адреса держит кластер: `.146` API, `.148` ingress; `suspend` их не освобождает). +- Упавший destroy оставляет «рваное» состояние: SNAT снят, edge/vDC/квота — нет. +- `adopt_existing_on_create = true` решает восстановление: apply усыновил инстанс `94627ff4-…` и сам сделал + `resume`; SNAT восстановлен (`internet-ipv4-v1`). Проверено на живом стенде. + +## Принятое направление (дизайн) + +Три режима destroy в одной общей логике: `delete` (дефолт), `suspend` (где сервис умеет), +`keep` → `state_only` (эдж, SNAT, квота IP). Реализация — через генератор +(`TOOLS/resource-generator`), без ручных правок `resources_gen/`. Дефолты провайдера остаются разрушающими, +freeze включается явно в `.tf` стенда; в `Delete` обязательны предупреждения («заморожено», «оставлено как есть»). +Полный teardown — только явный opt-out и в порядке: кластер → `count=0` → SNAT → эдж → vDC.