Files
tf_provider/docs/60_strategy/shturval_dev_provisioning_spec.md
T
Repinoid 0464a30642 docs(strategy): оркестрация взаимозависимых ресурсов и паттерн привязок
- 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
  (разделение сущности и ресурсов-привязок/модификаций)
2026-09-18 18:44:36 +03:00

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.