docs: verify cloud service dependency chains against YAML, add VM/Shurval checklists, redraw diagram
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# Зависимости облачных сервисов каталога 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` вынести в отдельный список кандидатов на проверку, но не
|
||||
смешивать с подтверждёнными рёбрами.
|
||||
Reference in New Issue
Block a user