From 3973f912fc87d756bdf739409c375f050dc15d71 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Thu, 24 Sep 2026 10:24:13 +0300 Subject: [PATCH] =?UTF-8?q?chore(docs):=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20docs/TODO/what=5Fnot=5Fin=5Fterraform.md=20+=20?= =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=B8?= =?UTF-8?q?=D0=B7=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/TODO/what_not_in_terraform.md | 46 ------------------- provider/internal/provider/provider.go | 3 +- .../org_ip_allocation_resource.go | 2 +- 3 files changed, 2 insertions(+), 49 deletions(-) delete mode 100644 docs/TODO/what_not_in_terraform.md diff --git a/docs/TODO/what_not_in_terraform.md b/docs/TODO/what_not_in_terraform.md deleted file mode 100644 index f4a0cae..0000000 --- a/docs/TODO/what_not_in_terraform.md +++ /dev/null @@ -1,46 +0,0 @@ -# Что НЕ надо класть в Terraform и почему - -## Не управляется Terraform — делается в Личном кабинете (один раз) - -### vcOrg / vcVdc / vcNsxt — облачный фундамент - -| Сервис | Почему не Terraform | -|--------|---------------------| -| **Организация в Cloud Director** (vcOrg) | Одна на resources realm. Нельзя создать вторую. При destroy — карантин на 14 дней, блокирует всё. | -| **Виртуальный датацентр vDC** (vcVdc) | Квота: 1 на организацию. Создание через Terraform ломается на API (500 на `GET cfsParams`). | -| **Сетевой шлюз Edge** (vcNsxt) | Квота: 1 на vDC. Требует AVI, SNAT, ipSpace — настройка в 3 шага (create → modify org → modify edge). Terraform не умеет create+modify в одном apply. | - -**Вывод**: фундамент всегда уже есть у любого клиента. Создаётся один раз через ЛК. - -### Штурвал (Kubernetes-кластер) - -| Почему не Terraform | -|---------------------| -| Одноразовая операция. Модификаций почти нет — workers, версия, диски, и то редко. | -| Destroy = потеря кластера со всеми подами и данными. `suspend_on_destroy` спасает, но риск велик. | -| Процесс создания длительный, чувствителен к таймаутам и сбоям — в ЛК виднее что происходит. | - -## Что Управляется Terraform — PaaS/SaaS слой - -``` -PostgreSQL Redis Kafka ClickHouse RabbitMQ MariaDB MongoDB -S3 Buckets Node.js Lucee Gitea Nextcloud Harbor ... -``` - -Эти сервисы создаются/меняются/удаляются многократно, имеют повторяемые конфигурации и связаны зависимостями (app → db, app → s3). - -## Схема - -``` -┌─ Личный кабинет (один раз) ──────────┐ -│ vcOrg → vcVdc → vcNsxt (Edge+AVI) │ -│ Штурвал (Kubernetes-кластер) │ -└──────────────────────────────────────┘ - │ edge_uid - ▼ -┌─ Terraform (IaC, повторяемо) ────────┐ -│ Postgres, S3, Redis, Kafka, │ -│ RabbitMQ, ClickHouse, MariaDB, │ -│ MongoDB, Node.js, Lucee, Gitea ... │ -└──────────────────────────────────────┘ -``` diff --git a/provider/internal/provider/provider.go b/provider/internal/provider/provider.go index 13b2e73..0e3f22b 100644 --- a/provider/internal/provider/provider.go +++ b/provider/internal/provider/provider.go @@ -183,8 +183,7 @@ func (p *NubesProvider) Resources(ctx context.Context) []func() resource.Resourc resources := resources_gen.AllResources() resources = append(resources, resources_core.NewServiceOperationResource) // Ресурсы-модификаторы для операций, которых нет в create-схеме ресурсов-инстансов. - // Организация и шлюз создаются вручную в ЛК (docs/TODO/what_not_in_terraform.md), - // поэтому адресуются по uid, а не ссылкой на ресурс. + // Организация и шлюз создаются вручную в ЛК, поэтому адресуются по uid, а не ссылкой на ресурс. resources = append(resources, resources_core.NewOrgIpAllocationResource) resources = append(resources, resources_core.NewNsxtSnatResource) return resources diff --git a/provider/internal/resources_core/org_ip_allocation_resource.go b/provider/internal/resources_core/org_ip_allocation_resource.go index 94468df..ac258de 100644 --- a/provider/internal/resources_core/org_ip_allocation_resource.go +++ b/provider/internal/resources_core/org_ip_allocation_resource.go @@ -25,7 +25,7 @@ var _ resource.ResourceWithImportState = &OrgIpAllocationResource{} // (сервис 19, vc_org) через операцию modify с параметром vIPConfigure (id 662). // // Организация НЕ управляется Terraform: она создаётся один раз вручную в ЛК -// (см. docs/TODO/what_not_in_terraform.md) и адресуется здесь по uid. +// и адресуется здесь по uid. // // Семантика операции — replace всего массива: переданное значение полностью заменяет // текущую аллокацию (проверено тестом NOTES/30_analysis/ORG_IP_MODIFIER_TEST_2026-09-22.md).