name: vc_nsxt
service_id: 22
service_display_name: Сетевой шлюз периметра (Edge)
service_short_name: vc_nsxt
service_man: '# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу
## 1. Общая информация
Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC).
При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`.
Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.
### Доступные операции
**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети.
**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал).
**modify** — Изменение параметров и сетевых настроек существующего Edge.
---
## 2. Параметры развертывания
Ниже приведены параметры операции **create**.
### Тип родительской услуги
Определяет контекст размещения Edge.
Допустимые значения: `vdc`, `groupvdc`.
Использование:
- При выборе `vdc` обязателен параметр **UUID VDC**.
- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.
### UUID VDC
Идентификатор виртуального датацентра.
Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)».
Указывается только при выборе родительского типа `vdc`.
### UUID Группы VDC
Идентификатор группы виртуальных датацентров.
Создаётся через услугу «Группа виртуальных датацентров (groupvDC)».
Используется при выборе родительского типа `groupvdc`.
### Включить ALB
Флаг активации AVI Load Balancer в Cloud Director.
Пример значения: `true`/`false`.
Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.
### Наименование segroup
Имя сервиса групп (segroup) на уровне ресурсной платформы.
Обязательно при включённом ALB.
Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.
### virtualServicesCount
Количество резервируемых виртуальных сервисов (Virtual Services) на AVI.
Типичное значение: 1–10 в зависимости от нагрузки.
---
## 3. Рекомендованные характеристики
### Тестовое окружение (Test)
- Тип родительской услуги: `vdc`
- virtualServicesCount: 1–2
- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала)
- segroup: задаётся только при включённом ALB
- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)
### Промышленное окружение (Production)
- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов
- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций
- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал
- segroup: рекомендуется использовать выделенную группу под проект
- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC
---
## 4. Выходные параметры
### Имя Edge
Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.
### Имя routed-сети
Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.
### Параметры Edge
Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др.
Используются в операциях modify и для анализа состояния сервиса.
---
## 5. Дополнительная информация
- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC.
- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал).
- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI.
- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC.
- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).
'
lifecycle:
suspend_on_destroy_default: false
adopt_existing_on_create_default: false
outputs:
params:
- code: state_params
type: map
- code: state_out
type: map
- code: state_params_flat
type: map
- code: state_out_flat
type: map
- code: vault_secrets
type: map
sensitive: true
- code: vault_url
type: string
- code: vault_user_path
type: string
- code: vault_fields
type: list
operations:
- name: create
id: 10
kind: instance
action: create
params:
- id: 8
code: vdcUid
data_type: string
required: false
ref_svc_id: 21
descr: UUID Услуги `Виртуальный датацентр (vDC)`
man: 'Необходимо, если выбран тип подключаемой VDC: `vdc`'
sort: 10
- id: 340
code: needEnableAVI
data_type: boolean
required: true
default: "false"
value_list:
- "false"
- "true"
descr: Включение Load Balancer
man: Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать
sort: 30
is_modifiable: true
- id: 341
code: virtualServicesCount
data_type: integer > 0
required: false
default: "1"
maxvalue: 4
minvalue: 1
descr: Кол-во виртуальных сервисов, которые **резервируются** на AVI
man: Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`
sort: 50
is_modifiable: true
- id: 621
code: vdcType
data_type: string
required: true
default: vdc
value_list:
- vdc
- vdcGroup
descr: Тип родительской услуги
man: При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc
При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc
sort: 0
- id: 622
code: vdcGroupUid
data_type: string
required: false
ref_svc_id: 29
descr: UUID Услуги `Группа виртуальных датацентров (groupvDC)`
man: 'Необходимо, если выбран тип подключаемой VDC: `groupvdc`'
sort: 20
- id: 825
code: qosProfile
required: false
descr: Параметр пока не работает
Должен возвращать поле из ресурсной платформы типа vc из .vcd.hardware.gatewayQoSProfiles
Как по идее должен работать.
Нужно заполнить или CFS vdcUid, или vdcGroupUid
Идеально конечно проверять `if (params.vdcType == "vdc" && params.vdcUid != "")` или `if (params.vdcType == "vdcGroup" && params.vdcGroupUid != "")`
Далее надо пойти по стейту vdc -> org -> resPlatform, взять gatewayQoSProfiles
Или пойти по стейту vdcgroup -> vdc -> org -> resPlatform, взять gatewayQoSProfiles
Регулярку могу написать (Виталя)
man: if (vdcUid != '") {
наборфункций1
}
elif (vdcGroupUid != "") {
наборфункций2
}
else {
return "Необходимо выбрать vdc или vdcgroup"
}
sort: 60
depends_on: vdcUid,vdcGroupUid
is_modifiable: true
- name: delete
id: 25
kind: instance
action: delete
man: Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал
Запустить операцию возможно, но будет ошибка
params: []
- name: modify
id: 111
kind: instance
action: modify
man: Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`
params:
- id: 368
code: needEnableAVI
data_type: boolean
required: false
value_list:
- "false"
- "true"
descr: Включение Load Balancer
man: Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать
sort: 10
- id: 369
code: virtualServicesCount
data_type: integer > 0
required: false
maxvalue: 4
minvalue: 1
descr: Кол-во виртуальных сервисов, которые выделяются на AVI
man: Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`
sort: 30
- id: 372
code: ipSpaceName
data_type: string
required: false
descr: Имя ip Space для внешнего IP
man: Необходимо указывать, если включён параметр `Выделить VIP для SNAT`
sort: 50
- id: 856
code: qosProfile
data_type: string
required: false
sort: 40
- name: reconcile
id: 252
kind: action
action: reconcile
params: []