From 0de72e09f0f9bfc530f39623a90a2a2f8e774df1 Mon Sep 17 00:00:00 2001 From: Nail Date: Thu, 24 Sep 2026 19:00:12 +0300 Subject: [PATCH] =?UTF-8?q?docs(history):=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D1=8C=20=D0=B7=D0=B0=202026-09-24=20=E2=80=94=20adopt=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BA=D0=BB=D0=B0=D1=81=D1=82=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=20=D0=A8=D1=82=D1=83=D1=80=D0=B2=D0=B0=D0=BB,=20=D0=B4=D0=B8?= =?UTF-8?q?=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82=D0=B8=D0=BA=D0=B0=20dev-00?= =?UTF-8?q?=20=D0=B8=20=D0=BD=D0=B0=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20freeze-on-destroy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._shturval_dev00_adopt_and_freeze_design.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 HISTORY/2026-09-24_shturval_dev00_adopt_and_freeze_design.md 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.