- loader.py: STANDS dict, get_services/get_ops_index per stand, POLYGON_STANDS env
- mock_state.py: get_state(stand_id) — ленивая инициализация
- app.py: StandMiddleware — перезапись PATH_INFO до Flask-роутинга
- Все роуты: LocalProxy(state), LocalProxy(SERVICES/OPS_INDEX) через g.stand_id
- openapi.py: _build_servers() — по одному серверу на стенд
- services/stand{1,2,3}/ — 37 YAML на стенд из STANDS/dev и STANDS/test
- tests/test_api.py: +4 multi-stand теста (изоляция, fail-next, OpenAPI servers)
- Обратная совместимость: /api/v1/svc/... → стенд по умолчанию
167 lines
9.9 KiB
YAML
167 lines
9.9 KiB
YAML
name: vc_vdc
|
||
service_id: 21
|
||
service_display_name: Виртуальный датацентр (vDC)
|
||
service_short_name: vc_vdc
|
||
service_man: '# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware
|
||
Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию
|
||
и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.<br/><br/>### Доступные операции<br/><br/>**create** — Создание виртуального датацентра (vDC) с заданными параметрами
|
||
CPU, RAM, Storage и сетевой конфигурацией.<br/>**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**modify** — Внесение
|
||
изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.<br/>**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.<br/>**resume**
|
||
— Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже перечислены входные параметры операции **create**.<br/><br/>###
|
||
UUID Организации<br/>Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.<br/><br/>### Provider VDC в Cloud
|
||
Director<br/>Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.<br/><br/>### Network Pool в Cloud Director<br/>Определяет возможности сетевой конфигурации,
|
||
включая создание Edge Gateway и выход во внешние сети.<br/><br/>### Гарантированная доля ЯДЕР<br/>Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово
|
||
при создании.<br/><br/>### Гарантированная доля ОЗУ<br/>Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.<br/><br/>### Сколько аллоцировать на VDC
|
||
ЯДЕР<br/>Количество виртуальных ядер, выделяемых в рамках vDC.<br/><br/>### Сколько аллоцировать на VDC ОЗУ<br/>Количество оперативной памяти в GB, выделяемой для vDC.<br/><br/>### Конфигурация Storage<br/>Набор
|
||
дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/><br/>-
|
||
Количество ядер CPU: 10–20<br/>- Аллоцируемая RAM: 16–64 GB<br/>- Гарантированная доля CPU: 20%<br/>- Гарантированная доля RAM: 20%<br/>- Storage:<br/>- Политика `SATA`<br/>- Объём: 100–300 GB<br/><br/>###
|
||
Промышленное окружение<br/><br/>- Количество ядер CPU: 16–128<br/>- Аллоцируемая RAM: 64–512 GB<br/>- Гарантированная доля CPU: 50%<br/>- Гарантированная доля RAM: 50%<br/>- Storage:<br/>- Политики уровня
|
||
`SSD`<br/>- Объём: 1–10 TB, выбор несколько политик под разные нагрузки<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Выходные параметры формируются операцией **create** (и используются другими
|
||
операциями):<br/><br/>### Имя vDC<br/>Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).<br/><br/>### Параметры выделенных ресурсов<br/>Подтверждение
|
||
итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Перед созданием vDC необходимо обеспечить
|
||
наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.<br/>- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения
|
||
невозможно; для изменения необходимо пересоздать vDC.<br/>- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги),
|
||
поэтому необходимо убедиться, что данные перенесены.<br/>- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool
|
||
является обязательной при создании vDC.<br/>- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.<br/>'
|
||
lifecycle:
|
||
suspendOnDestroyDefault: true
|
||
adoptExistingOnCreateDefault: false
|
||
operations:
|
||
- svcOperationId: 9
|
||
operation: create
|
||
kind: instance
|
||
action: create
|
||
- svcOperationId: 24
|
||
operation: delete
|
||
kind: instance
|
||
action: delete
|
||
- svcOperationId: 112
|
||
operation: modify
|
||
kind: instance
|
||
action: modify
|
||
- svcOperationId: 250
|
||
operation: reconcile
|
||
kind: action
|
||
action: reconcile
|
||
- svcOperationId: 172
|
||
operation: resume
|
||
kind: instance
|
||
action: resume
|
||
- svcOperationId: 171
|
||
operation: suspend
|
||
kind: instance
|
||
action: suspend
|
||
stateOut: {}
|
||
cfsParams:
|
||
- svcOperationCfsParamId: 30
|
||
svcOperationCfsParam: organizationUid
|
||
dataType: uuid
|
||
isRequired: true
|
||
defaultValue: ''
|
||
isModifiable: false
|
||
- svcOperationCfsParamId: 335
|
||
svcOperationCfsParam: providerVdc
|
||
dataType: string
|
||
isRequired: true
|
||
defaultValue: ''
|
||
isModifiable: false
|
||
- svcOperationCfsParamId: 361
|
||
svcOperationCfsParam: storageConfig
|
||
dataType: array-map-fixed
|
||
isRequired: true
|
||
defaultValue: '[{}]'
|
||
isModifiable: true
|
||
dataDescriptor:
|
||
name:
|
||
dataType: string
|
||
defaultValue: ''
|
||
isRequired: true
|
||
isModifiable: false
|
||
size:
|
||
dataType: integer > 0
|
||
defaultValue: '2000'
|
||
isRequired: true
|
||
isModifiable: false
|
||
- svcOperationCfsParamId: 397
|
||
svcOperationCfsParam: cpuGuaranteed
|
||
dataType: integer > 0
|
||
isRequired: true
|
||
defaultValue: '20'
|
||
isModifiable: false
|
||
valueList:
|
||
- '20'
|
||
- '50'
|
||
- '80'
|
||
- svcOperationCfsParamId: 557
|
||
svcOperationCfsParam: cpuAllocated
|
||
dataType: integer > 0
|
||
isRequired: true
|
||
defaultValue: '80'
|
||
isModifiable: true
|
||
- svcOperationCfsParamId: 558
|
||
svcOperationCfsParam: memAllocated
|
||
dataType: integer > 0
|
||
isRequired: true
|
||
defaultValue: '200'
|
||
isModifiable: true
|
||
- svcOperationCfsParamId: 746
|
||
svcOperationCfsParam: networkProvider
|
||
dataType: string
|
||
isRequired: true
|
||
defaultValue: ''
|
||
isModifiable: false
|
||
- svcOperationCfsParamId: 560
|
||
svcOperationCfsParam: cpuAllocated
|
||
dataType: integer > 0
|
||
isRequired: true
|
||
defaultValue: ''
|
||
isModifiable: true
|
||
- svcOperationCfsParamId: 561
|
||
svcOperationCfsParam: memAllocated
|
||
dataType: integer > 0
|
||
isRequired: true
|
||
defaultValue: ''
|
||
isModifiable: true
|
||
- svcOperationCfsParamId: 562
|
||
svcOperationCfsParam: storageConfig
|
||
dataType: array-map-fixed
|
||
isRequired: true
|
||
defaultValue: ''
|
||
isModifiable: true
|
||
dataDescriptor:
|
||
name:
|
||
dataType: string
|
||
defaultValue: ''
|
||
isRequired: true
|
||
isModifiable: false
|
||
size:
|
||
dataType: integer > 0
|
||
defaultValue: ''
|
||
isRequired: true
|
||
isModifiable: false
|
||
cfsParamsByOp:
|
||
9:
|
||
- 30
|
||
- 335
|
||
- 361
|
||
- 397
|
||
- 557
|
||
- 558
|
||
- 746
|
||
24: []
|
||
112:
|
||
- 560
|
||
- 561
|
||
- 562
|
||
250: []
|
||
172: []
|
||
171: []
|
||
stateParams:
|
||
organizationUid: ''
|
||
providerVdc: ''
|
||
storageConfig: '{"name": "", "size": 2000}'
|
||
cpuGuaranteed: '20'
|
||
cpuAllocated: '80'
|
||
memAllocated: '200'
|
||
networkProvider: ''
|