8.2 KiB
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
- Организация (19) — create.
- vDC (21) — create, выделить ресурсы под все ноды.
- Edge (22) — create, включить ALB и
virtualServicesCount >= 3. - Внешние адреса в организации — vcOrg
modify, суммарно 3 адреса. - SNAT — Edge
modify, выбратьipSpaceName. - Кластер Штурвал (150) — create (требует
vdcUidиnsxtUid).
Чек-лист создания ВМ (28) — по create-параметрам
- vDC (21) — существующий (
vdcUid). - Edge (22) — существующий (
nsxtUid). - vApp (26) — существующий (
vappUid), привязан к vDC и Edge. - ВМ (28) — create; обязательные:
vappUid,vmName,vmCpu,vmRam,accessPortList,imageVm,userLogin,userPublicKey,ipSpaceName.
Правила для будущего графа
- Рисовать стрелку только по подтверждённой связи сервиса каталога.
ref_svc_idсчитать прямой зависимостью;descrиспользовать для подписи стрелки и проверки смысла.- Не считать общей платформой, DNS-полем или внешним IP автоматическую связь между сервисами без ссылки на конкретный сервисный ID.
- Поля без
ref_svc_idвынести в отдельный список кандидатов на проверку, но не смешивать с подтверждёнными рёбрами.