From 664f04eb49da2773f6665bca9ac483b41743f4fc Mon Sep 17 00:00:00 2001 From: Repinoid Date: Thu, 24 Sep 2026 10:00:57 +0300 Subject: [PATCH] =?UTF-8?q?docs(plans):=20=C2=A710=20=E2=80=94=20=D0=B2?= =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=BE=D1=81=20=D0=9E=D0=BF=D1=83=D1=81=D1=83?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=20=D0=B1=D0=B5=D0=B7=D0=BE=D0=BF=D0=B0?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=83=D0=BD=D0=B8=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B3=D1=80=D0=B0=D1=84=D0=B0?= =?UTF-8?q?=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=20(5=20=D1=81=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D0=BE=D0=B2=20?= =?UTF-8?q?=D1=81=20modify-only)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PLAN_IAC_MODIFY_RESOURCES_2026-09-24.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/NOTES/10_plans/PLAN_IAC_MODIFY_RESOURCES_2026-09-24.md b/NOTES/10_plans/PLAN_IAC_MODIFY_RESOURCES_2026-09-24.md index eb3cb11..e9a4e34 100644 --- a/NOTES/10_plans/PLAN_IAC_MODIFY_RESOURCES_2026-09-24.md +++ b/NOTES/10_plans/PLAN_IAC_MODIFY_RESOURCES_2026-09-24.md @@ -124,3 +124,29 @@ nubes_vc_nsxt → nubes_vc_org_ip_allocation → nubes_vc_nsxt_snat → k8 **Фиксатор:** эпоха `kind: modifier` отменена — ветку не переиспользовать; новые ресурсы hand-written в `resources_core`, без реестра модификаторов. + +--- + +## 10. Раунд 3 — вопрос Опусу: «это не поломает ничего?» (составлен 2026-09-24) + +**Контекст (факт).** Правка шаблона `templates/instance.go` действует на все ресурсы. Замер по +`generated/dev/resources_yaml/*.yaml`: modify-only параметры есть только у **5 сервисов** — +`19_vc_org` (`vIPConfigure`), `22_vc_nsxt` (`ipSpaceName`), `12_s3` (`maxBucketsPerUser`, +`maxObjectsPerBucket`, `maxSizeGbPerUser`), `90_postgres` (`refreshCert`), `109_zones_v2` (`records`). +Цель правки — только первые два; у остальных трёх это рабочие атрибуты `Update`. + +**Вопросы:** + +1. **Критерий отбора.** Предлагается признак в спеке (`owned_by_modifier: true`). Это доменная метка в + универсальном YAML, что противоречит прежнему канону «YAML без доменных меток». Какой критерий корректен + в вашей архитектуре: spec-флаг, «required только в modify» (тогда ловится `vIPConfigure`, но **не** + `ipSpaceName` — он `required: false`), или явный список в генераторе? +2. **Безопасность (б)** (исключить modify-only из create-read-back): безопасно ли это для всех 5 сервисов, + или у s3/postgres/zones read-back нужен (иначе drift/потеря значения в state)? +3. **Поведение для существующих конфигов.** У тех, кто уже пишет `v_ip_configure`/`ip_space_name` в `.tf`, + после (в) модификация молча перестанет отправляться. Правильно ли молчание, или нужно явное падение + (ошибка «параметр управляется ресурсом `…ip_allocation`») — и как это сделать, если схема общая? +4. **Снятие Required у 5 сервисов** — не ломает ли `UseStateForUnknown`/JSON-planmodifier и не порождает + ли drift у тех, у кого поле было обязательным и уже заполнено? +5. **Порядок релиза.** Правильно ли разводить: релиз A — только (б) (чинит create орги, ничего больше + не трогает), релиз B — (а)+(в) вместе с новыми ресурсами-модификаторами?