Files
tf_provider/docs/60_strategy/dev_stand_service_dependencies.md
T

8.2 KiB

Зависимости облачных сервисов каталога DEV

Промежуточная инвентаризация для будущего общего графа. Источник — YAML-контракты в generated/dev/resources_yaml.

Вершина — сервис каталога. Направление будущей стрелки: потребитель -> зависимость. В таблицу зависимостей включены только связи, явно подтверждённые полем ref_svc_id или тем же контрактом сервиса.

Все сервисы каталога

ID Сервис YAML
1 Болванка 1_dummy.yaml
2 Темплейт k8s 2_template.yaml
12 S3 Object Storage 12_s3.yaml
13 S3 бакет 13_s3bucket.yaml
19 Организация в Cloud Director 19_vc_org.yaml
21 Виртуальный датацентр (vDC) 21_vc_vdc.yaml
22 Сетевой шлюз периметра (Edge) 22_vc_nsxt.yaml
25 Публичные IP адреса 25_vcexternalip.yaml
26 Виртуальный каталог ВМ (vApp) 26_vapp.yaml
28 Виртуальная машина 28_vc_vm_v3.yaml
29 Группа датацентров 29_vc_vdc_group.yaml
50 Nextcloud 50_nextcloud.yaml
81 Apache Superset 81_superset.yaml
82 Container Registry 82_harbor.yaml
86 Velero 86_k8s_velero.yaml
87 Valkey 87_k8svalkey.yaml
88 k8sZitiController 88_k8s_ziti_controller.yaml
89 Web-сервер с фреймворком Flask 89_flask.yaml
90 PostgreSQL 90_postgres.yaml
91 Redis 91_redis.yaml
92 MongoDB 92_mongodb.yaml
93 RabbitMQ 93_rabbitmq.yaml
94 Lucee 94_lucee.yaml
95 NodeJS 95_nodejs.yaml
96 pgAdmin 96_pgadmin.yaml
97 NodeRed 97_nodered.yaml
98 Простой HTTP контейнер 98_http.yaml
99 Gitea 99_gitea.yaml
109 Управление DNS 109_zones_v2.yaml
111 DNS запись 111_dnsrecord.yaml
115 Mariadb 115_mariadb.yaml
116 ApacheKafka 116_kafka.yaml
119 Akhq 119_akhq.yaml
120 ClickHouse 120_clickhouse.yaml
148 Менеджмент Kubernetes кластер Штурвал 148_vc_mgmt_sthutrval_cluster.yaml
149 VALO Cloud 149_valo_tenant.yaml
150 Kubernetes кластер Штурвал 150_k8s_sthutrval_cluster.yaml
151 Vault 151_k8s_openbao.yaml
153 Nifi 153_nifi.yaml
163 ML Улей 163_llm_ai.yaml

Подтверждённые зависимости

ID Потребитель Зависимость Поле связи Смысл связи
D-01 DNS запись (111) Управление DNS (109) zoneUid запись создаётся в DNS-зоне
D-02 S3 бакет (13) S3 Object Storage (12) s3UserUid бакет создаётся для корневой S3-услуги
D-03 Виртуальный датацентр (21) Организация в Cloud Director (19) organizationUid vDC принадлежит организации
D-04 Сетевой шлюз периметра (22) Виртуальный датацентр (21) vdcUid Edge привязывается к vDC
D-05 Сетевой шлюз периметра (22) Группа датацентров (29) vdcGroupUid альтернативная привязка Edge к группе vDC (vdcType=vdcGroup)
D-06 Виртуальный каталог ВМ (26) Сетевой шлюз периметра (22) nsxtUid vApp использует Edge для сети
D-07 Виртуальный каталог ВМ (26) Виртуальный датацентр (21) vdcUid vApp размещается в vDC
D-08 Виртуальная машина (28) Виртуальный каталог ВМ (26) vappUid VM размещается в vApp
D-09 Группа датацентров (29) Виртуальный датацентр (21) vdcUid группа объединяет vDC (create и add_vdc)
D-10 Akhq (119) ApacheKafka (116) kafkaUid UI подключается к Kafka-кластеру
D-11 Container Registry (82) S3 Object Storage (12) s3Uid registry использует S3 для хранения
D-12 Gitea (99) PostgreSQL (90) psqlUid Gitea использует PostgreSQL

Переиспользование существующих инстансов

Зависимости (кроме Организации) являются ссылками на существующие инстансы через UUID:

  • Новую ВМ (28) можно создать в уже существующем vApp, vDC, Edge — ссылкой vappUid/vdcUid/nsxtUid.
  • Edge (22) можно переиспользовать, если он привязан к нужному vDC или groupvDC.
  • Для Штурвала (150) переиспользуемый Edge должен иметь включённый ALB и virtualServicesCount >= 3.
  • Внешние IP резервируются только после: Организация + vDC + Каталог (vApp) + Edge (по 25_vcexternalip.yaml, service_man).

Где выделяются ресурсы (CPU / RAM / Storage / IP)

Элемент Где задаётся Параметр(ы)
Пул CPU/RAM/Storage организации vDC (21) create/modify cpuAllocated, memAllocated, storageConfig (+ разовый cpuGuaranteed 0/50/80)
Запрос ресурсов нод Штурвала Кластер Штурвал (150) controlPlaneConfiguration.sizingPolicy/sizingDisk/count, workerConfiguration… (политики из vDC)
Запрос ресурсов ВМ Виртуальная машина (28) vmCpu, vmRam, vmDisk (доп. диск)
Внешние IP vcOrg (19) modify (vIPConfigure) или vcexternalip (25) ipSpaceName, квота адресов
SNAT-правило Edge (22) modify ipSpaceName
DNAT/SNAT-правила адреса Публичные IP (25) dnatCreate/snatCreate, internalAddrAccess, internalPortAccess

Чек-лист создания Штурвала (150) — по service_man

  1. Организация (19) — create.
  2. vDC (21) — create, выделить ресурсы под все ноды.
  3. Edge (22) — create, включить ALB и virtualServicesCount >= 3.
  4. Внешние адреса в организации — vcOrg modify, суммарно 3 адреса.
  5. SNAT — Edge modify, выбрать ipSpaceName.
  6. Кластер Штурвал (150) — create (требует vdcUid и nsxtUid).

Чек-лист создания ВМ (28) — по create-параметрам

  1. vDC (21) — существующий (vdcUid).
  2. Edge (22) — существующий (nsxtUid).
  3. vApp (26) — существующий (vappUid), привязан к vDC и Edge.
  4. ВМ (28) — create; обязательные: vappUid, vmName, vmCpu, vmRam, accessPortList, imageVm, userLogin, userPublicKey, ipSpaceName.

Правила для будущего графа

  1. Рисовать стрелку только по подтверждённой связи сервиса каталога.
  2. ref_svc_id считать прямой зависимостью; descr использовать для подписи стрелки и проверки смысла.
  3. Не считать общей платформой, DNS-полем или внешним IP автоматическую связь между сервисами без ссылки на конкретный сервисный ID.
  4. Поля без ref_svc_id вынести в отдельный список кандидатов на проверку, но не смешивать с подтверждёнными рёбрами.