- complex_provisioning_workflow.md — цепочка vcOrg -> vcVdc -> vcNsxt -> Штурвал, включая modify-шаги и пошаговые модификации - shturval_dev_provisioning_spec.md — точные параметры и ID операций DEV-стенда для цепочки развёртывания k8s_sthutrval_cluster - terraform_association_pattern_and_pipeline.md — Resource Association Pattern (разделение сущности и ресурсов-привязок/модификаций)
6.2 KiB
6.2 KiB
Спецификация цепочки развертывания: vcOrg -> vcVdc -> vcNsxt -> k8sSthutrvalCluster (DEV Stand)
Документ описывает точные параметры и операции сервисов DEV-стенда из generated/dev/resources_yaml/, необходимые для оркестрации цепочки развертывания кластера Штурвал (k8s_sthutrval_cluster, ID 150).
1. Сводная таблица шагов
| Шаг | Действие | Сервис (ID) | Операция | Ключевые параметры |
|---|---|---|---|---|
| 1 | vcOrg/create |
vc_org (19) |
create (136) |
resourceRealm, organizationType = "iaas", orgSuffix |
| 2 | vcVdc/create |
vc_vdc (21) |
create (9) |
organizationUid (ссылка на Org), providerVdc, networkProvider, storageConfig, cpuAllocated, memAllocated |
| 3 | vcNsxt/create |
vc_nsxt (22) |
create (10) |
vdcType = "vdc", vdcUid (ссылка на VDC), needEnableAVI = true, virtualServicesCount = 4, routedNetConfiguration |
| 4 | vcOrg/modify |
vc_org (19) |
modify (207) |
vIPConfigure: name (ipSpace), count = 3 |
| 5 | vcNsxt/modify |
vc_nsxt (22) |
modify (111) |
ipSpaceName (имя из шага 4), needEnableAVI = true, virtualServicesCount = 4, routedNetConfiguration |
| 6 | k8sSthutrvalCluster/create |
k8s_sthutrval_cluster (150) |
create (108) |
startupConfiguration: vdcUid, nsxtUid, clusterName; controlPlaneConfiguration; workerConfiguration |
2. Детальная спецификация параметров из YAML DEV
Шаг 1: vc_org (ID 19) — create (id: 136)
Источник: generated/dev/resources_yaml/19_vc_org.yaml
resourceRealm(string, required, default:sandbox.nubes.ru) — целевое облако.organizationType(string, required, default:iaas, values:iaas,saas) — тип тенанта (iaasдля доступа в Keycloak).orgSuffix(string, optional, regex:^[0-9a-z]+$, 3–10 символов) — суффикс организации.
Шаг 2: vc_vdc (ID 21) — create (id: 9)
Источник: generated/dev/resources_yaml/21_vc_vdc.yaml
organizationUid(uuid, required, ref: 19) — UUID созданной организацииvc_org.networkProvider(string, required) — сетевой провайдер платформы.providerVdc(string, required) — пул ресурсов Cloud Director.storageConfig(array-map-fixed, required):name(string, required) — имя storage-политики.size(integer > 0, required, default:2000) — размер хранилища в ГБ.
cpuGuaranteed(integer >= 0, required, values:0,50,80, default:0).cpuAllocated(integer > 0, required, default:80).memAllocated(integer > 0, required, default:200).
Шаг 3: vc_nsxt (ID 22) — create (id: 10)
Источник: generated/dev/resources_yaml/22_vc_nsxt.yaml
vdcType(string, required, default:vdc, values:vdc,vdcGroup).vdcUid(string, required приvdcType == "vdc", ref: 21) — UUID инстансаvc_vdc.needEnableAVI(boolean, required, default:false) — значение:true(активация AVI Load Balancer).virtualServicesCount(integer > 0, 1..4, default:1) — значение:4(Service Engine / резерв VS).routedNetConfiguration(map-fixed, required):ipAddrPool(string, default:10.10.102.0/24) — CIDR routed-сети.mainDns(string, default:8.8.8.8).secondDns(string, default:8.8.4.4).
Шаг 4: vc_org (ID 19) — modify (id: 207)
Источник: generated/dev/resources_yaml/19_vc_org.yaml
vIPConfigure(array-map-fixed, required) — добавление внешних IP:name(string, required) — имя пула / ipSpace.count(integer > 0, required) — значение:3.
- Условие API: выполняется строго после создания VDC и Edge Gateway.
Шаг 5: vc_nsxt (ID 22) — modify (id: 111)
Источник: generated/dev/resources_yaml/22_vc_nsxt.yaml
ipSpaceName(string, optional) — имя ipSpace, заданное на шаге 4 (vIPConfigure[].name). Включает SNAT.needEnableAVI(boolean, optional) —true.virtualServicesCount(integer > 0, 1..4, optional) —4.routedNetConfiguration(map-fixed, required):ipAddrPool,mainDns,secondDns.
- Условие API: создание правила SNAT требует наличия свободных IP в организации.
Шаг 6: k8s_sthutrval_cluster (ID 150) — create (id: 108)
Источник: generated/dev/resources_yaml/150_k8s_sthutrval_cluster.yaml
startupConfiguration(map-fixed, required):vdcUid(string, required) — UUID инстансаvc_vdc.nsxtUid(string, required) — UUID инстансаvc_nsxt(после настройки SNAT).clusterName(string, required, regex:(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$).- Флаги расширений (
boolean, defaults:true):exIngress,exLogging,exMonitoring,exVip,exNamedCsi,exLocalCsi,exUpdate.
controlPlaneConfiguration(map-fixed, required):count(integer > 0, values:1,3,5, default:1).sizingPolicy(string, required).sizingDisk(integer > 0, required, default:50).
workerConfiguration(array-map-fixed, required):count(integer > 0, required, default:2).sizingPolicy(string, required).sizingDisk(integer > 0, required, default:50).labelDeck(boolean, required, default:true).autoscale(boolean, optional, default:false).autoscaleMin(integer > 0, optional, default:2).autoscaleMax(integer > 0, optional, default:3).
- Условие API: перед разворачиванием кластера в пуле должно быть не менее 2 свободных невыделенных IP.