add: documentation

This commit is contained in:
“Naeel”
2026-06-30 15:45:24 +04:00
parent 540c1f7293
commit ca276d200f
1055 changed files with 47294 additions and 0 deletions
@@ -0,0 +1,19 @@
# Operations: nubes_openwhisk
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `41` | username, resourceRealm | |
| `delete` | `instance` | `delete` | `` | `42` | username | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | Имя пользователя Openwhisk | | | `64` |
| `resourceRealm` | `string` | `ДА` | `` | Ресурсная платформа | | func=getAvailableResourceRealms | `863` |
## Operation: delete
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | Имя пользователя Openwhisk | | | `65` |
@@ -0,0 +1,24 @@
# Operations: nubes_dnszone
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `43` | zoneEmail, zoneName, zoneKind, zoneMastersForSlave, zoneTimeToRefresh, zoneTimeToRetry, zoneTimeToExpire, zoneTimeToLive, resourceRealm | |
| `delete` | `instance` | `delete` | `` | `44` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `zoneEmail` | `string` | `ДА` | `` | Контактный e-mail | | | `66` |
| `zoneName` | `string` | `ДА` | `` | Имя зоны | Имя зоны | regex=^([a-z0-9-]+\.)+[a-z0-9-]+$ | `67` |
| `zoneKind` | `string` | `ДА` | `NATIVE` | Тип зоны | | value_list=NATIVE, SLAVE | `68` |
| `zoneMastersForSlave` | `string` | `НЕТ` | `` | Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов | | | `69` |
| `zoneTimeToRefresh` | `string` | `ДА` | `86400` | Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов | | | `70` |
| `zoneTimeToRetry` | `string` | `ДА` | `7200` | Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов | | | `71` |
| `zoneTimeToExpire` | `string` | `ДА` | `3600000` | Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным | | | `72` |
| `zoneTimeToLive` | `string` | `ДА` | `86400` | Время, в течение которого информация будет кешироваться другими DNS-серверами | | | `73` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `284` |
## Operation: delete
None.
@@ -0,0 +1,27 @@
# Operations: nubes_dnsrecord
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `45` | zoneUid, recordType, recordName, recordInput, recordTTL | |
| `delete` | `instance` | `delete` | `` | `46` | | |
| `modify` | `instance` | `modify` | `` | `90` | recordInput | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `zoneUid` | `uuid` | `ДА` | `` | UUID экземпляра услуги DNS-зоны | UUID экземпляра услуги DNS-зоны | ref_svc_id=110 | `75` |
| `recordType` | `string` | `ДА` | `` | Тип DNS-записи | Тип DNS-записи | value_list=A, AAAA, CNAME, MX, PTR, SOA, SRV, TXT, LUA, NS, SSHFP | `76` |
| `recordName` | `string` | `ДА` | `` | Имя записи. Имя зоны в конце проставляется автоматически | Имя записи. Имя зоны в конце проставляется автоматически | unique_scope=parent | `77` |
| `recordInput` | `string` | `ДА` | `` | Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP | Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP | | `78` |
| `recordTTL` | `integer > 0` | `ДА` | `3600` | Time-to-Leave записи. Раз в какое время запись будет обновлена | | minvalue=30; maxvalue=604800 | `450` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `recordInput` | `string` | `ДА` | `` | Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP | | | `256` |
@@ -0,0 +1,22 @@
# Operations: nubes_tenant
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `84` | grafanaOrgName, resourceRealm | |
| `delete` | `instance` | `delete` | `` | `86` | | |
| `modify` | `instance` | `modify` | `` | `87` | | Просто удаляет все текущие датасоурсы и ставит их заново<br/>Полезно, когда нужно &quot;ресетнуть&quot; / &quot;добавить&quot; |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `grafanaOrgName` | `string` | `ДА` | `` | WZ-Код клиента | | regex=^WZ[\d]+$ | `239` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `240` |
## Operation: delete
None.
## Operation: modify
None.
@@ -0,0 +1,25 @@
# Operations: nubes_vc_complex
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `107` | resourceRealm, vappName, vdcProviderGateway, virtualServicesCount, ipSpaceName, storageConfig, vdcNetworkPool, cpuGuaranteed, memGuaranteed, segroupName, needExternalAddressSNAT, needEnableAVI, cpuAllocated, memAllocated, vIPCount | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование ресурсной платформы | func=getAvailableResourceRealms | `332` |
| `vappName` | `string` | `ДА` | `` | Имя vApp | | regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ | `334` |
| `vdcProviderGateway` | `string` | `ДА` | `sandbox-v1cl1-pvdc` | Взять из свойств ресурсной платформы.<br/>Путь .vcd.providerVdc - взять KEY<br/><br/>providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List&lt;String&gt;) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String | | | `358` |
| `virtualServicesCount` | `` | `ДА` | `1` | Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4 | | minvalue=1; maxvalue=4 | `359` |
| `ipSpaceName` | `string` | `НЕТ` | `internet-ipv4-v1` | Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT | | | `360` |
| `storageConfig` | `json` | `ДА` | `[{"name": "", "size": 1024}]` | Описывается как массив объектов, где описывается имя политики и её размер | | | `399` |
| `vdcNetworkPool` | `string` | `ДА` | `nsxt-sandbox-geneve-np` | | | | `400` |
| `cpuGuaranteed` | `integer &gt; 0` | `ДА` | `20` | | | value_list=20, 50, 80 | `401` |
| `memGuaranteed` | `integer &gt; 0` | `ДА` | `20` | | | value_list=20, 50, 80 | `402` |
| `segroupName` | `string` | `НЕТ` | `SEGROUP-SANDBOX-CL1-SHARED-01` | Наименование segroup, в котором будут выделяться пулы на AVI | | | `403` |
| `needExternalAddressSNAT` | `boolean` | `ДА` | `true` | Выделяет внешний IP на Edge. Используется для SNAT всего трафика | | value_list=false, true | `404` |
| `needEnableAVI` | `boolean` | `ДА` | `false` | Включает AVI в Cloud Director | | value_list=false, true | `405` |
| `cpuAllocated` | `string` | `ДА` | `1` | шт | | minvalue=1 | `566` |
| `memAllocated` | `integer &gt; 0` | `ДА` | `10` | gb | | minvalue=1 | `567` |
| `vIPCount` | `integer &gt; 0` | `ДА` | `0` | ш | | minvalue=0; maxvalue=20 | `568` |
@@ -0,0 +1,39 @@
# Operations for nubes_vcComplex
Service ID: `113`
Service: Быстрый старт
## UI description
# Создает окружение для ВМ.<br/><br/>## Создает сервисы:<br/>**Организация**<br/>**Виртуальный датацентр**<br/>**Каталог**<br/>**Сетевой шлюз периметра**<br/><br/>
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `create` (id: 107)
## Operation: create
Operation ID: `107`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `true` | `` | `332` | `` | `` | `getAvailableResourceRealms` | `` | `` | `` | `false` | `` |
| `vappName` | `string` | `true` | `` | `334` | `` | `` | `` | `^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$` | `` | `` | `false` | `` |
| `vdcProviderGateway` | `string` | `true` | `sandbox-v1cl1-pvdc` | `358` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `virtualServicesCount` | `` | `true` | `1` | `359` | `` | `` | `` | `` | `1` | `4` | `false` | `` |
| `ipSpaceName` | `string` | `false` | `internet-ipv4-v1` | `360` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `storageConfig` | `json` | `true` | `[{"name": "", "size": 1024}]` | `399` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `vdcNetworkPool` | `string` | `true` | `nsxt-sandbox-geneve-np` | `400` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `cpuGuaranteed` | `integer &gt; 0` | `true` | `20` | `401` | `` | `20,50,80` | `` | `` | `` | `` | `false` | `` |
| `memGuaranteed` | `integer &gt; 0` | `true` | `20` | `402` | `` | `20,50,80` | `` | `` | `` | `` | `false` | `` |
| `segroupName` | `string` | `false` | `SEGROUP-SANDBOX-CL1-SHARED-01` | `403` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `needExternalAddressSNAT` | `boolean` | `true` | `true` | `404` | `` | `false,true` | `` | `` | `` | `` | `false` | `` |
| `needEnableAVI` | `boolean` | `true` | `false` | `405` | `` | `false,true` | `` | `` | `` | `` | `false` | `` |
| `cpuAllocated` | `string` | `true` | `1` | `566` | `` | `` | `` | `` | `1` | `` | `false` | `` |
| `memAllocated` | `integer &gt; 0` | `true` | `10` | `567` | `` | `` | `` | `` | `1` | `` | `false` | `` |
| `vIPCount` | `integer &gt; 0` | `true` | `0` | `568` | `` | `` | `` | `` | `0` | `20` | `false` | `` |
@@ -0,0 +1,3 @@
# Operations: nubes_gitea_complex
None.
@@ -0,0 +1,16 @@
# Operations for nubes_GiteaComplex
Service ID: `114`
Service: Комплексная услуга по созданию gitea
## UI description
Комплексная услуга из [&quot;gittea&quot;, &quot;postgres&quot;]
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
No operations found.
@@ -0,0 +1,58 @@
# Operations: nubes_mariadb
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `138` | resourceRealm, resourceCPU, resourceMemory, resourceDisk, resourceInstances, needExternalAddressMaster, ipSpaceNameMaster, ext_BACKUP_SCHEDULE, appVersion, autoScale, autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb, s3Uid | |
| `delete` | `instance` | `delete` | `` | `139` | deleteS3Bucket | |
| `modify` | `instance` | `modify` | `` | `142` | resourceCPU, resourceMemory, resourceInstances, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster, ext_BACKUP_SCHEDULE, autoScale, autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb | |
| `resume` | `instance` | `resume` | `` | `141` | | |
| `suspend` | `instance` | `suspend` | `` | `140` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `422` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (milicores) | | minvalue=500; maxvalue=4000 | `424` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `1024` | Квота памяти пода (MBytes) | | minvalue=1024; maxvalue=8192 | `425` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | | minvalue=1; maxvalue=999 | `426` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | | minvalue=1; maxvalue=7 | `427` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `false` | Выделяет внешний (белый) IP для доступа к master | | value_list=false, true | `428` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster | | | `429` |
| `ext_BACKUP_SCHEDULE` | `string` | `НЕТ` | `0 * * * *` | Не обязательный. Время запуска бекапа | | regex=^(\*|(\d+|\*\/\d+|\d+(,\d+)*))\s\*\s\*\s\*\s\*$ | `430` |
| `appVersion` | `string` | `ДА` | `9.4.0` | Версия MySQL | | value_list=8.4.0, 9.4.0 | `431` |
| `autoScale` | `boolean` | `ДА` | `false` | Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги | | value_list=false, true | `432` |
| `autoScalePercentage` | `integer &gt; 0` | `НЕТ` | `10` | Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема | | value_list=10, 15, 20 | `433` |
| `autoScaleTechWindow` | `integer &gt;= 0` | `НЕТ` | `0` | Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23) | | value_list=0, 5, 12, 23 | `434` |
| `autoScaleQuotaGb` | `integer &gt; 0` | `НЕТ` | `1` | Квота для autoScale | | | `435` |
| `s3Uid` | `uuid` | `ДА` | `` | Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно | | ref_svc_id=12 | `459` |
## Operation: delete
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `deleteS3Bucket` | `boolean` | `ДА` | `true` | Также удалить технический S3 Bucket с бэкапами? | | value_list=false, true | `456` |
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | | | | `436` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | | | | `437` |
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | | | | `438` |
| `resourceDisk` | `integer &gt; 0` | `НЕТ` | `` | | | | `439` |
| `needExternalAddressMaster` | `boolean` | `НЕТ` | `` | | | value_list=false, true | `440` |
| `ipSpaceNameMaster` | `` | `НЕТ` | `` | | | | `441` |
| `ext_BACKUP_SCHEDULE` | `string` | `НЕТ` | `` | | | | `442` |
| `autoScale` | `boolean` | `НЕТ` | `` | | | value_list=false, true | `443` |
| `autoScalePercentage` | `integer &gt; 0` | `НЕТ` | `` | | | | `444` |
| `autoScaleTechWindow` | `integer &gt;= 0` | `НЕТ` | `` | | | | `445` |
| `autoScaleQuotaGb` | `integer &gt; 0` | `НЕТ` | `` | | | | `446` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,98 @@
# Operations: nubes_kafka
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `148` | resourceInstances, resourceMemory, resourceCPU, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster, resourceRealm | |
| `create_topic` | `subresource` | `create` | `topic` | `165` | nameTopic, partitions, replicas | # Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>--- |
| `create_user` | `subresource` | `create` | `user` | `168` | username, nameTopic, operations, group, accessHosts | # Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo &quot;&lt;содержание поля&gt;&quot; | base64 -d &gt; &lt;название&gt;.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: [&quot;sleep&quot;, &quot;5600&quot;]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat &gt; /work/user-read.properties &lt;&lt;'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=&lt;user.password&gt;<br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=&lt;ca.password&gt;<br/>EOF<br/>```<br/><br/>```bash<br/>cat &gt; /work/user-write.properties &lt;&lt;'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=&lt;user.password&gt;<br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=&lt;ca.password&gt;<br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server &lt;адрес сервис брокера&gt;:9093 \<br/> --topic &lt;topic&gt; \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server &lt;адрес сервис брокера&gt;:9093 \<br/> --topic &lt;topic&gt; \<br/> --from-beginning \<br/> --group &lt;group&gt; \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo &quot;hello from kcat&quot; | kcat -P \<br/> -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>--- |
| `delete` | `instance` | `delete` | `` | `149` | | |
| `delete_topic` | `subresource` | `delete` | `topic` | `167` | nameTopic | |
| `delete_user` | `subresource` | `delete` | `user` | `170` | username | # Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo &quot;&lt;содержание поля&gt;&quot; | base64 -d &gt; &lt;название&gt;.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: [&quot;sleep&quot;, &quot;5600&quot;]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat &gt; /work/user-read.properties &lt;&lt;'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=&lt;user.password&gt;<br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=&lt;ca.password&gt;<br/>EOF<br/>```<br/><br/>```bash<br/>cat &gt; /work/user-write.properties &lt;&lt;'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=&lt;user.password&gt;<br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=&lt;ca.password&gt;<br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server &lt;адрес сервис брокера&gt;:9093 \<br/> --topic &lt;topic&gt; \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server &lt;адрес сервис брокера&gt;:9093 \<br/> --topic &lt;topic&gt; \<br/> --from-beginning \<br/> --group &lt;group&gt; \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo &quot;hello from kcat&quot; | kcat -P \<br/> -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>--- |
| `modify` | `instance` | `modify` | `` | `162` | resourceInstances, resourceMemory, resourceCPU, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster | |
| `modify_topic` | `subresource` | `modify` | `topic` | `166` | nameTopic, partitions, replicas | # Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>--- |
| `modify_user` | `subresource` | `modify` | `user` | `169` | nameTopic, operations, group, accessHosts, username | # Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '&lt;содержание поля&gt;' | base64 -d &gt; &lt;название&gt;.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo &quot;&lt;содержание поля&gt;&quot; | base64 -d &gt; &lt;название&gt;.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: [&quot;sleep&quot;, &quot;5600&quot;]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat &gt; /work/user-read.properties &lt;&lt;'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=&lt;user.password&gt;<br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=&lt;ca.password&gt;<br/>EOF<br/>```<br/><br/>```bash<br/>cat &gt; /work/user-write.properties &lt;&lt;'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=&lt;user.password&gt;<br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=&lt;ca.password&gt;<br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server &lt;адрес сервис брокера&gt;:9093 \<br/> --topic &lt;topic&gt; \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server &lt;адрес сервис брокера&gt;:9093 \<br/> --topic &lt;topic&gt; \<br/> --from-beginning \<br/> --group &lt;group&gt; \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo &quot;hello from kcat&quot; | kcat -P \<br/> -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b &lt;externalConnect.bootstrap.fqdn&gt;:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>--- |
| `resume` | `instance` | `resume` | `` | `161` | | |
| `suspend` | `instance` | `suspend` | `` | `160` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceInstances` | `integer &gt; 0` | `ДА` | `` | Пример: `2` | | minvalue=1; value_list=1, 2, 3, 4, 5 | `461` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `` | Пример: `2048` | | minvalue=1000 | `462` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `` | Пример: `2000` | | minvalue=1000 | `463` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `` | Пример: `20` | | | `464` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `false` | Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false` | | value_list=false, true | `465` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1` | | | `466` |
| `resourceRealm` | `string` | `ДА` | `` | Выбрать платформу из списка | | func=getAvailableResourceRealms | `469` |
## Operation: create_topic
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `nameTopic` | `string` | `ДА` | `` | Пример: `orders-events` | | | `523` |
| `partitions` | `integer &gt; 0` | `ДА` | `` | Число партиций можно увеличить, но уменьшить их нельзя. | | | `524` |
| `replicas` | `integer &gt; 0` | `ДА` | `` | Количество реплик не может привышать количество реплик брокера | | | `525` |
## Operation: create_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | Пример: `username-admin` | | | `530` |
| `nameTopic` | `string` | `ДА` | `` | Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*` | | | `531` |
| `operations` | `string` | `ДА` | `` | Пример: `Create, Describe, Read, Write` | | | `532` |
| `group` | `string` | `ДА` | `` | Пример: `order-consumers` или `*` | | | `533` |
| `accessHosts` | `string` | `ДА` | `` | Пример: `192.168.1.0/24` или `*` | | | `534` |
## Operation: delete
None.
## Operation: delete_topic
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `nameTopic` | `string` | `ДА` | `` | Необходимо выбрать топик, который необходимо удалить | | | `529` |
## Operation: delete_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | Пример: `username-admin` | | | `540` |
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | Пример: `2` | | value_list=1, 2, 3, 4, 5 | `501` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | Пример: `2048` | | minvalue=1000 | `502` |
| `resourceCPU` | `` | `НЕТ` | `` | Пример: `2000` | | minvalue=1000 | `503` |
| `resourceDisk` | `integer &gt; 0` | `НЕТ` | `` | Пример: `20` | | | `504` |
| `needExternalAddressMaster` | `boolean` | `НЕТ` | `false` | Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false` | | value_list=false, true | `505` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1` | | | `506` |
## Operation: modify_topic
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `nameTopic` | `string` | `ДА` | `` | Пример: `orders-events` | | | `526` |
| `partitions` | `` | `НЕТ` | `` | Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50` | | | `527` |
| `replicas` | `` | `НЕТ` | `` | Количество партиций ≤ (число брокеров). Пример `2` | | | `528` |
## Operation: modify_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `nameTopic` | `string` | `НЕТ` | `` | Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*` | | | `535` |
| `operations` | `string` | `НЕТ` | `` | Пример: `Create, Describe, Read, Write` | | | `536` |
| `group` | `string` | `НЕТ` | `` | Пример: `order-consumers` или `*` | | | `537` |
| `accessHosts` | `string` | `НЕТ` | `` | Пример: `192.168.1.0/24` или `*` | | | `538` |
| `username` | `string` | `ДА` | `` | Пример: `username-admin` | | | `539` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,27 @@
# Operations: nubes_nifi
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `150` | kafkaUid, partitions, replicas, nameTopic | |
| `delete` | `instance` | `delete` | `` | `151` | | |
| `modify` | `instance` | `modify` | `` | `154` | partitions, replicas | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `kafkaUid` | `uuid` | `ДА` | `` | Выбрать кластер из списка | | ref_svc_id=116 | `471` |
| `partitions` | `integer &gt; 0` | `ДА` | `` | Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50` | Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки. | | `472` |
| `replicas` | `integer &gt; 0` | `ДА` | `` | Количество партиций ≤ (число брокеров). Пример `2` | | | `473` |
| `nameTopic` | `string` | `ДА` | `` | Пример: `orders-events` | | | `474` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `partitions` | `integer &gt; 0` | `НЕТ` | `` | Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50` | Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки. | | `477` |
| `replicas` | `integer &gt; 0` | `НЕТ` | `` | Количество партиций ≤ (число брокеров). Пример `2` | | | `478` |
@@ -0,0 +1,38 @@
# Operations: nubes_akhq
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `175` | resourceRealm, resourceMemory, resourceCPU, domain, resourceInstances, kafkaUid | |
| `delete` | `instance` | `delete` | `` | `176` | | |
| `modify` | `instance` | `modify` | `` | `180` | kafkaUid | |
| `resume` | `instance` | `resume` | `` | `178` | | |
| `suspend` | `instance` | `suspend` | `` | `177` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Выбрать платформу из списка | | func=getAvailableResourceRealms | `550` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Пример: `1024` | | minvalue=512 | `551` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Пример: `1000` | | minvalue=500 | `552` |
| `domain` | `string` | `ДА` | `` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `553` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | | | minvalue=1 | `554` |
| `kafkaUid` | `uuid` | `ДА` | `` | Выбрать кластер из списка | | ref_svc_id=116 | `555` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `kafkaUid` | `uuid` | `ДА` | `` | Выбрать кластер из списка | | ref_svc_id=116 | `565` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,91 @@
# Operations: nubes_clickhouse
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `181` | resourceRealm, s3Uid, resourceInstances, resourceInstancesShards, resourceCPU, resourceMemory, appVersion, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster, needCreateKeeper, resourceCPUKeeper, resourceMemoryKeeper, resourceInstancesKeeper, ext_BACKUP_SCHEDULE, ext_BACKUP_NUM_TO_RETAIN | Операция создания кластера ClickHouse<br/><br/>Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user` |
| `create_database` | `subresource` | `create` | `database` | `186` | databaseName | База данных создаётся на всех репликах кластера ClickHouse |
| `create_user` | `subresource` | `create` | `user` | `185` | username, databaseName, accessHosts | |
| `delete` | `instance` | `delete` | `` | `184` | | Удаление возможно только после остановки сервиса через операцию `suspend`<br/>После выполнения операции необходимо выждать определенное кол-во времени |
| `delete_database` | `subresource` | `delete` | `database` | `188` | databaseName | Необратимое действие!!!<br/>Трижды подумай, заблокируй телефон тимлида и не выполняй это действие |
| `delete_user` | `subresource` | `delete` | `user` | `187` | username | |
| `modify` | `instance` | `modify` | `` | `189` | resourceInstances, resourceInstancesShards, resourceCPU, resourceMemory, appVersion, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster, needCreateKeeper, resourceCPUKeeper, resourceMemoryKeeper, resourceInstancesKeeper, ext_BACKUP_SCHEDULE, ext_BACKUP_NUM_TO_RETAIN | |
| `resume` | `instance` | `resume` | `` | `183` | | |
| `suspend` | `instance` | `suspend` | `` | `182` | | Операция приводит к удалению всех подов<br/>Persistent Volume остаются нетронутыми |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Кластер Kubernetes в котором будет развёрнуто приложение | Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы | func=getAvailableResourceRealms | `572` |
| `s3Uid` | `uuid` | `ДА` | `` | Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно | **Если список не отображается** <br/>перейдите в раздел `S3 Object Storage` <br/>операция `create` | ref_svc_id=12 | `573` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Пример: `3` | **Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper` | minvalue=1; maxvalue=7 | `574` |
| `resourceInstancesShards` | `integer &gt; 0` | `ДА` | `1` | Пример: `1` | **Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда | minvalue=1; maxvalue=7 | `575` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `1000` | Пример: `1000` | Указывается в Milicores<br/>`1000` Mili == `1` Ядро | minvalue=1000; maxvalue=8000 | `576` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `1536` | Пример: `2048` | Указывается в Megabytes | minvalue=1536; maxvalue=8192 | `577` |
| `appVersion` | `string` | `ДА` | `25.10` | Версия `clickhouse-server` | | value_list=25.10 | `578` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `10` | Пример: `100` | Указывается в Gigabytes | minvalue=1; maxvalue=999 | `579` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `false` | Позволяет подключиться извне к ClickHouse | Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы | value_list=false, true | `580` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Пример: `internet-no-antiddos-v1` | Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды` | | `581` |
| `needCreateKeeper` | `boolean` | `ДА` | `true` | Необходим для кластеризации ClickHouse | Аналог `Zookeeper`, представленный от ClickHouse | value_list=false, true | `582` |
| `resourceCPUKeeper` | `integer &gt; 0` | `ДА` | `50` | Пример: `100` | Указывается в Milicores<br/>`1000` Mili == `1` Ядро | minvalue=50; maxvalue=8000 | `583` |
| `resourceMemoryKeeper` | `integer &gt; 0` | `ДА` | `152` | Пример: `256` | Указывается в Megabytes | minvalue=152; maxvalue=8192 | `584` |
| `resourceInstancesKeeper` | `integer &gt; 0` | `ДА` | `1` | Пример: `1` | Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды | minvalue=1; maxvalue=3; value_list=1, 3 | `585` |
| `ext_BACKUP_SCHEDULE` | `string` | `ДА` | `0 0 * * *` | Принимает формат `CRON` | | regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$ | `586` |
| `ext_BACKUP_NUM_TO_RETAIN` | `integer &gt; 0` | `ДА` | `7` | Пример: `7` | Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты** | minvalue=3; maxvalue=60 | `587` |
## Operation: create_database
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `databaseName` | `string` | `ДА` | `` | Пример: `db01` | | regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ | `600` |
## Operation: create_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | Пример: `myusername` | | regex=^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$; maxlength=62; minlength=2 | `596` |
| `databaseName` | `json` | `ДА` | `["database"]` | Необходимо указать массив существующих баз | Если базы не существует - при выполнении операции вернётся ошибка | | `598` |
| `accessHosts` | `string` | `ДА` | `::/0` | Пример: `::/0` | | | `599` |
## Operation: delete
None.
## Operation: delete_database
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `databaseName` | `string` | `ДА` | `` | ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ | | | `602` |
## Operation: delete_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `` | `ДА` | `` | Имя пользователя, созданное через операцию `create_user` | | | `601` |
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceInstances` | `integer &gt; 0` | `ДА` | `` | Пример: `3` | **Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper` | minvalue=1; maxvalue=7 | `603` |
| `resourceInstancesShards` | `integer &gt; 0` | `ДА` | `` | Пример: `1` | **Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда | minvalue=1; maxvalue=7 | `604` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `` | Пример: `1000` | Указывается в Milicores<br/>`1000` Mili == `1` Ядро | minvalue=1000; maxvalue=8000 | `605` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `` | Пример: `2048` | Указывается в Megabytes | minvalue=1536; maxvalue=8192 | `606` |
| `appVersion` | `string` | `ДА` | `25.10` | Версия `clickhouse-server` | | | `607` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `` | Пример: `100` | Указывается в Gigabytes<br/>**Нельзя** выставлять меньше текущего значения | minvalue=1; maxvalue=999 | `608` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `` | Позволяет подключиться извне к ClickHouse | Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы | value_list=false, true | `609` |
| `ipSpaceNameMaster` | `string` | `ДА` | `` | Пример: `internet-no-antiddos-v1` | Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды` | | `610` |
| `needCreateKeeper` | `boolean` | `ДА` | `` | Необходим для кластеризации ClickHouse | Аналог `Zookeeper`, представленный от ClickHouse | value_list=false, true | `611` |
| `resourceCPUKeeper` | `integer &gt; 0` | `ДА` | `` | Пример: `100` | Указывается в Milicores<br/>`1000` Mili == `1` Ядро | minvalue=50; maxvalue=8000 | `612` |
| `resourceMemoryKeeper` | `integer &gt; 0` | `ДА` | `` | Пример: `256` | Указывается в Megabytes | minvalue=152; maxvalue=8192 | `613` |
| `resourceInstancesKeeper` | `integer &gt; 0` | `ДА` | `` | Пример: `1` | Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды | minvalue=1; maxvalue=3; value_list=1, 3 | `614` |
| `ext_BACKUP_SCHEDULE` | `string` | `ДА` | `0 0 * * *` | Принимает формат `CRON` | | regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$ | `615` |
| `ext_BACKUP_NUM_TO_RETAIN` | `integer &gt; 0` | `ДА` | `` | Пример: `7` | Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты** | minvalue=3; maxvalue=60 | `616` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,51 @@
# Operations: nubes_s3
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `1` | resourceRealm, displayName | |
| `create_sub_user` | `subresource` | `create` | `sub_user` | `6` | subUserName, subUserAccess | |
| `delete` | `instance` | `delete` | `` | `5` | | |
| `delete_sub_user` | `subresource` | `delete` | `sub_user` | `7` | subUserName | |
| `modify` | `instance` | `modify` | `` | `4` | maxSizeGbPerUser, maxObjectsPerBucket, maxBucketsPerUser | При первичном вызове операции услуга Trial прекращает действие |
| `resume` | `instance` | `resume` | `` | `3` | | |
| `suspend` | `instance` | `suspend` | `` | `2` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `` | `ДА` | `` | Платформа для развертывания | кластер S3 для подключения | func=getAvailableResourceRealms | `163` |
| `displayName` | `string` | `ДА` | `` | Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента | | | `320` |
## Operation: create_sub_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `subUserName` | `string` | `ДА` | `` | | | | `60` |
| `subUserAccess` | `string` | `ДА` | `` | | | value_list=read, write, readwrite, full | `61` |
## Operation: delete
None.
## Operation: delete_sub_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `subUserName` | `string` | `ДА` | `` | subUserName. По идее услуга уже создана - должен передаваться из ЛК | | | `63` |
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `maxSizeGbPerUser` | `integer` | `НЕТ` | `` | maxSizeGb. Передаём руками | maxSizeGb. Передаём руками | minvalue=-1; maxvalue=50000 | `50` |
| `maxObjectsPerBucket` | `integer &gt; 0` | `НЕТ` | `` | Квота на бакет. Кол-во объектов. Передаём руками | Квота на бакет. Кол-во объектов. Передаём руками | minvalue=1; maxvalue=1e+07 | `51` |
| `maxBucketsPerUser` | `integer &gt; 0` | `НЕТ` | `` | Квота на пользователя. Количество бакетов пользователя. Передаём руками | Квота на пользователя. Количество бакетов пользователя. Передаём руками | minvalue=1; maxvalue=1000 | `52` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,22 @@
# Operations: nubes_s3bucket
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `51` | s3UserUid, bucketName, maxSize, readAll, listAll, corsAll, placement | |
| `delete` | `instance` | `delete` | `` | `52` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `s3UserUid` | `uuid` | `ДА` | `` | UID Корневой услуги S3. На основе него будет создан бакет. | | ref_svc_id=12 | `124` |
| `bucketName` | `string` | `ДА` | `` | Имя бакета s3 | | | `125` |
| `maxSize` | `` | `ДА` | `-1` | Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes | Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes | | `126` |
| `readAll` | `boolean` | `ДА` | `false` | Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета. | | value_list=false, true | `127` |
| `listAll` | `boolean` | `ДА` | `false` | Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете. | | value_list=false, true | `128` |
| `corsAll` | `boolean` | `ДА` | `false` | Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS | | value_list=false, true | `129` |
| `placement` | `string` | `ДА` | `HOT` | Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения | | value_list=HOT, COLD | `130` |
## Operation: delete
None.
@@ -0,0 +1,37 @@
# Operations: nubes_valo_tenant
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `202` | resourceRealm, domain, valoOptions, s3Storage | |
| `delete` | `instance` | `delete` | `` | `206` | | |
| `modify` | `instance` | `modify` | `` | `203` | valoOptions, s3Storage | |
| `resume` | `instance` | `resume` | `` | `205` | | |
| `suspend` | `instance` | `suspend` | `` | `204` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | | | func=getAvailableResourceRealms | `655` |
| `domain` | `string` | `ДА` | `` | Будет добавлено в зону valo.ngcloud.ru | | regex=^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$; maxlength=61; minlength=3 | `656` |
| `valoOptions` | `map-fixed` | `ДА` | `{}` | | | | `657` |
| `s3Storage` | `integer &gt; 0` | `ДА` | `10` | Параметр указывается в `Gb` | Данные хранятся в отдельном экземпляре S3 | minvalue=1; maxvalue=999 | `658` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `valoOptions` | `map-fixed` | `ДА` | `` | | | | `659` |
| `s3Storage` | `integer &gt; 0` | `ДА` | `` | Параметр указывается в `Gb` | Данные хранятся в отдельном экземпляре S3 | | `660` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,59 @@
# Operations for nubes_valoTenant
Service ID: `149`
Service: VALO Cloud
## UI description
# Инструкция по развертыванию Тенант Valo через платформу<br/><br/>## 1. Общая информация<br/>Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.<br/><br/>### Доступные операции<br/><br/>* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.<br/>* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.<br/>* **suspend** — выключение (приостановка работы) тенанта.<br/>* **resume** — включение ранее приостановленного тенанта.<br/>* **delete** — удаление тенанта; доступно только после выполнения операции suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа, на которой будет создан тенант.<br/>Пример значения: `valo.ngcloud.ru`.<br/><br/>### DNS-Префикс<br/>Описание: Будет добавлено в зону valo.ngcloud.ru<br/>Пример значения: `mysimpledomain`.<br/><br/>### Параметры хранилища<br/>Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes<br/>Пример значения: `10`.<br/><br/>### Настройки тенанта<br/>Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала<br/>Пример значения: `опционально в рамках настройки`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы<br/><br/>### Промышленное окружение<br/>Для разблокировки используйте операцию `modify`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Статус тенанта<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.<br/>Удаление тенанта возможно только после его выключения с помощью операции suspend.<br/>Срок тестового режима составляет 2 месяца с момента создания.<br/>Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.<br/>
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `create` (id: 202)
- `delete` (id: 206)
- `modify` (id: 203)
- `resume` (id: 205)
- `suspend` (id: 204)
## Operation: create
Operation ID: `202`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `true` | `` | `655` | `` | `` | `getAvailableResourceRealms` | `` | `` | `` | `false` | `` |
| `domain` | `string` | `true` | `` | `656` | `` | `` | `` | `^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$` | `` | `` | `false` | `` |
| `valoOptions` | `map-fixed` | `true` | `{}` | `657` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `s3Storage` | `integer &gt; 0` | `true` | `10` | `658` | `` | `` | `` | `` | `1` | `999` | `false` | `` |
## Operation: delete
Operation ID: `206`
No parameters.
## Operation: modify
Operation ID: `203`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `valoOptions` | `map-fixed` | `true` | `` | `659` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `s3Storage` | `integer &gt; 0` | `true` | `` | `660` | `` | `` | `` | `` | `` | `` | `false` | `` |
## Operation: resume
Operation ID: `205`
No parameters.
## Operation: suspend
Operation ID: `204`
No parameters.
@@ -0,0 +1,62 @@
# Operations: nubes_k8s_sthutrval_cluster
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `108` | nsxtUid, clusterName, controlPlaneSizingPolicy, controlPlaneSizingDisk, controlPlaneCount, workersSizingPolicy, workersSizingDisk, workersCount, appVersion, needExternalAddressAPI, accessIpListAPI, needExternalAddressIngress, accessIpListIngress, vdcUid | |
| `delete` | `instance` | `delete` | `` | `109` | | |
| `modify` | `instance` | `modify` | `` | `110` | controlPlaneCount, workersCount, accessIpListAPI, accessIpListIngress, appVersion, controlPlaneSizingDisk, workersSizingDisk | |
| `reconcile` | `action` | `reconcile` | `` | `253` | | |
| `resume` | `instance` | `resume` | `` | `174` | | |
| `suspend` | `instance` | `suspend` | `` | `173` | | |
| `update_secrets` | `action` | `update_secrets` | `` | `179` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `nsxtUid` | `uuid` | `ДА` | `` | InstanceUid nsxt. Nsxt должен быть создан | | ref_svc_id=22 | `344` |
| `clusterName` | `string` | `ДА` | `example1` | Наименование кластера Kubernetes. Имя будет использоваться в fqdn (svc.$CLUSTER_NAME) | | regex=(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$; unique_scope=provider | `345` |
| `controlPlaneSizingPolicy` | `string` | `ДА` | `` | Настройка Control Plane. CPU (шт) / MEM (gb).<br/>Наверное, должна подтягиваться из свойств ресурсной платформы | | | `346` |
| `controlPlaneSizingDisk` | `integer &gt; 0` | `ДА` | `30` | Настройка Control Plane. Disk (Gb) | | minvalue=20; maxvalue=999 | `347` |
| `controlPlaneCount` | `integer &gt; 0` | `ДА` | `1` | | | minvalue=1; maxvalue=9 | `348` |
| `workersSizingPolicy` | `string` | `ДА` | `` | Настройка workers. CPU (шт) / MEM (gb) | | | `349` |
| `workersSizingDisk` | `integer &gt; 0` | `ДА` | `40` | Настройка workers. Disk (Gb) | | minvalue=20; maxvalue=999 | `350` |
| `workersCount` | `integer &gt; 0` | `ДА` | `2` | Настройка workers. Кол-во нод | | minvalue=1; maxvalue=99 | `351` |
| `appVersion` | `string` | `ДА` | `2.12.1` | Версия Штурвал (не является версией Kubernetes) | | value_list=2.12.1, 2.11.0 | `352` |
| `needExternalAddressAPI` | `boolean` | `ДА` | `true` | Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false | | value_list=true | `353` |
| `accessIpListAPI` | `json` | `ДА` | `[]` | Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем | | | `354` |
| `needExternalAddressIngress` | `boolean` | `ДА` | `true` | Выделяет внешний IP для доступа к Ingress | | value_list=true | `355` |
| `accessIpListIngress` | `json` | `ДА` | `[]` | Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем | | | `356` |
| `vdcUid` | `uuid` | `ДА` | `` | | | ref_svc_id=21 | `747` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `controlPlaneCount` | `integer &gt; 0` | `НЕТ` | `` | Кол-во нод Control Plane | | minvalue=1; maxvalue=9 | `362` |
| `workersCount` | `integer &gt; 0` | `НЕТ` | `` | Кол-во нод Workers | | minvalue=1; maxvalue=99 | `363` |
| `accessIpListAPI` | `json` | `НЕТ` | `` | Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем | | | `364` |
| `accessIpListIngress` | `json` | `НЕТ` | `` | Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем | | | `365` |
| `appVersion` | `string` | `НЕТ` | `` | Версия Штурвал (не является версией Kubernetes)<br/>Понижать версию нельзя<br/>Обновиться на несколько минорных нельзя<br/>Невозможно перепрыгнуть не с последней минорной на мажорную<br/>Можно обновиться на несколько патчей | | value_list=2.11.0, 2.12.1 | `563` |
| `controlPlaneSizingDisk` | `integer &gt; 0` | `ДА` | `` | | | | `637` |
| `workersSizingDisk` | `integer &gt; 0` | `ДА` | `` | | | | `638` |
## Operation: reconcile
None.
## Operation: resume
None.
## Operation: suspend
None.
## Operation: update_secrets
None.
@@ -0,0 +1,88 @@
# Operations for nubes_k8sSthutrvalCluster
Service ID: `150`
Service: Kubernetes кластер Штурвал
## UI description
Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `create` (id: 108)
- `delete` (id: 109)
- `modify` (id: 110)
- `reconcile` (id: 253)
- `resume` (id: 174)
- `suspend` (id: 173)
- `update_secrets` (id: 179)
## Operation: create
Operation ID: `108`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `nsxtUid` | `uuid` | `true` | `` | `344` | `22` | `` | `` | `` | `` | `` | `false` | `` |
| `clusterName` | `string` | `true` | `example1` | `345` | `` | `` | `` | `(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$` | `` | `` | `false` | `` |
| `controlPlaneSizingPolicy` | `string` | `true` | `` | `346` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `controlPlaneSizingDisk` | `integer &gt; 0` | `true` | `30` | `347` | `` | `` | `` | `` | `20` | `999` | `false` | `` |
| `controlPlaneCount` | `integer &gt; 0` | `true` | `1` | `348` | `` | `` | `` | `` | `1` | `9` | `false` | `` |
| `workersSizingPolicy` | `string` | `true` | `` | `349` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `workersSizingDisk` | `integer &gt; 0` | `true` | `40` | `350` | `` | `` | `` | `` | `20` | `999` | `false` | `` |
| `workersCount` | `integer &gt; 0` | `true` | `2` | `351` | `` | `` | `` | `` | `1` | `99` | `false` | `` |
| `appVersion` | `string` | `true` | `2.12.1` | `352` | `` | `2.12.1,2.11.0` | `` | `` | `` | `` | `false` | `` |
| `needExternalAddressAPI` | `boolean` | `true` | `true` | `353` | `` | `true` | `` | `` | `` | `` | `false` | `` |
| `accessIpListAPI` | `json` | `true` | `[]` | `354` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `needExternalAddressIngress` | `boolean` | `true` | `true` | `355` | `` | `true` | `` | `` | `` | `` | `false` | `` |
| `accessIpListIngress` | `json` | `true` | `[]` | `356` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `vdcUid` | `uuid` | `true` | `` | `747` | `21` | `` | `` | `` | `` | `` | `false` | `` |
## Operation: delete
Operation ID: `109`
No parameters.
## Operation: modify
Operation ID: `110`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `controlPlaneCount` | `integer &gt; 0` | `false` | `` | `362` | `` | `` | `` | `` | `1` | `9` | `false` | `` |
| `workersCount` | `integer &gt; 0` | `false` | `` | `363` | `` | `` | `` | `` | `1` | `99` | `false` | `` |
| `accessIpListAPI` | `json` | `false` | `` | `364` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `accessIpListIngress` | `json` | `false` | `` | `365` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `appVersion` | `string` | `false` | `` | `563` | `` | `2.11.0,2.12.1` | `` | `` | `` | `` | `false` | `` |
| `controlPlaneSizingDisk` | `integer &gt; 0` | `true` | `` | `637` | `` | `` | `` | `` | `` | `` | `false` | `` |
| `workersSizingDisk` | `integer &gt; 0` | `true` | `` | `638` | `` | `` | `` | `` | `` | `` | `false` | `` |
## Operation: reconcile
Operation ID: `253`
No parameters.
## Operation: resume
Operation ID: `174`
No parameters.
## Operation: suspend
Operation ID: `173`
No parameters.
## Operation: update_secrets
Operation ID: `179`
No parameters.
@@ -0,0 +1,39 @@
# Operations: nubes_vc_org
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `136` | resourceRealm, organizationType | `IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу<br/>`SaaS` - Без доступа к Keycloak |
| `delete` | `instance` | `delete` | `` | `137` | | Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**<br/><br/>Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов |
| `modify` | `instance` | `modify` | `` | `207` | vIPConfigure | Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**<br/>Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет** |
| `reconcile` | `action` | `reconcile` | `` | `249` | | |
| `resume` | `instance` | `resume` | `` | `144` | | |
| `suspend` | `instance` | `suspend` | `` | `143` | | Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Облако в котором будет развёрнут тенант | Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы | func=getAvailableResourceRealms | `418` |
| `organizationType` | `string` | `ДА` | `iaas` | | Доступ к организации предоставляется только при выборе `iaas` | value_list=iaas, saas | `556` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vIPConfigure` | `array-map-fixed` | `ДА` | `` | | | | `662` |
## Operation: reconcile
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,71 @@
# Operations for nubes_vcOrg
Service ID: `19`
Service: Организация в Cloud Director
## UI description
# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create** — Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume** — Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Url организации<br/>Для быстрого доступа в тенант<br/><br/>### Статус организации<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.<br/>- Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `create` (id: 136)
- `delete` (id: 137)
- `modify` (id: 207)
- `reconcile` (id: 249)
- `resume` (id: 144)
- `suspend` (id: 143)
## Operation: create
Operation ID: `136`
`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу<br/>`SaaS` - Без доступа к Keycloak
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `true` | `` | `418` | `` | `` | `getAvailableResourceRealms` | `` | `` | `` | `false` | `` |
| `organizationType` | `string` | `true` | `iaas` | `556` | `` | `iaas,saas` | `` | `` | `` | `` | `false` | `` |
## Operation: delete
Operation ID: `137`
Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**<br/><br/>Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов
No parameters.
## Operation: modify
Operation ID: `207`
Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**<br/>Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `vIPConfigure` | `array-map-fixed` | `true` | `` | `662` | `` | `` | `` | `` | `` | `` | `false` | `` |
## Operation: reconcile
Operation ID: `249`
No parameters.
## Operation: resume
Operation ID: `144`
No parameters.
## Operation: suspend
Operation ID: `143`
Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта
No parameters.
@@ -0,0 +1,55 @@
# Operations: nubes_dummy
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `18` | durationMs, failAtStart, failInProgress, whereFail, resourceRealm, bodymessage, mapExample, jsonExample, nestedRefExample, yamlExample, mapFixed, arrayMapFixedExample | Это мануал к операции CREATE сервиса Болванка |
| `delete` | `instance` | `delete` | `` | `71` | | |
| `modify` | `instance` | `modify` | `` | `92` | durationMs, failAtStart, failInProgress, whereFail, bodymessage, mapExample, jsonExample | |
| `redeploy` | `action` | `redeploy` | `` | `240` | | |
| `resume` | `instance` | `resume` | `` | `94` | | |
| `suspend` | `instance` | `suspend` | `` | `93` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `durationMs` | `integer &gt;= 0` | `ДА` | `0` | перед завершением подождать (sleep) столько миллисекунд | перед завершением подождать (sleep) столько миллисекунд | | `198` |
| `failAtStart` | `boolean` | `ДА` | `false` | если true, завершить джоб, ничего не записывая в cmdb | **Операция не будет завершена**<br/>Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой | value_list=false, true | `199` |
| `failInProgress` | `boolean` | `ДА` | `false` | если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb | если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb | value_list=false, true | `200` |
| `whereFail` | `integer &gt; 0` | `НЕТ` | `1` | принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write | принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write | value_list=1, 2, 3 | `201` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование ресурсной платформы для подключения | func=getAvailableResourceRealms | `242` |
| `bodymessage` | `string` | `НЕТ` | `` | Дата, уходящая в Vault | Дата, уходящая в Vault | | `286` |
| `mapExample` | `map` | `НЕТ` | `` | | | | `321` |
| `jsonExample` | `json` | `НЕТ` | `` | Для тестирования интерфейса | Для тестирования интерфейса. Сюда можно писать корректный json | | `322` |
| `nestedRefExample` | `` | `НЕТ` | `` | | | | `396` |
| `yamlExample` | `yaml` | `НЕТ` | `` | | | | `447` |
| `mapFixed` | `map-fixed` | `НЕТ` | `` | Новый тип поля | | | `647` |
| `arrayMapFixedExample` | `array-map-fixed` | `НЕТ` | `` | Array of map-fixed | | | `654` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `durationMs` | `integer &gt;= 0` | `ДА` | `0` | перед завершением подождать (sleep) столько миллисекунд | перед завершением подождать (sleep) столько миллисекунд | | `287` |
| `failAtStart` | `boolean` | `ДА` | `false` | если true, завершить джоб, ничего не записывая в cmdb | | value_list=false, true | `288` |
| `failInProgress` | `boolean` | `ДА` | `false` | если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb | | value_list=false, true | `289` |
| `whereFail` | `integer &gt; 0` | `НЕТ` | `` | принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write | принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write | value_list=1, 2, 3 | `290` |
| `bodymessage` | `` | `НЕТ` | `` | Дата, уходящая в Vault | Дата, уходящая в Vault | | `291` |
| `mapExample` | `map` | `НЕТ` | `{}` | | | | `373` |
| `jsonExample` | `` | `НЕТ` | `` | | | | `374` |
## Operation: redeploy
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,26 @@
# Operations: nubes_vc_org_saas
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `8` | resourceRealm | Создание организации в Cloud Director<br/>Id в клауд директоре создаётся на основе contragentCode |
| `delete` | `instance` | `delete` | `` | `23` | | |
| `resume` | `instance` | `resume` | `` | `119` | | |
| `suspend` | `instance` | `suspend` | `` | `118` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование ресурсной платформы | func=getAvailableResourceRealms | `185` |
## Operation: delete
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,48 @@
# Operations for nubes_vcOrgSaas
Service ID: `20`
Service: Организация [DEPRECATED]
## UI description
Верхнеуровневая сущность создаваемая для Заказчика.<br/>Внутри Организация вы можете создать: Виртуальные датацентры, Каталоги.
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `create` (id: 8)
- `delete` (id: 23)
- `resume` (id: 119)
- `suspend` (id: 118)
## Operation: create
Operation ID: `8`
Создание организации в Cloud Director<br/>Id в клауд директоре создаётся на основе contragentCode
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `true` | `` | `185` | `` | `` | `getAvailableResourceRealms` | `` | `` | `` | `false` | `` |
## Operation: delete
Operation ID: `23`
No parameters.
## Operation: resume
Operation ID: `119`
No parameters.
## Operation: suspend
Operation ID: `118`
No parameters.
@@ -0,0 +1,47 @@
# Operations: nubes_vc_vdc
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `9` | organizationUid, providerVdc, storageConfig, cpuGuaranteed, memGuaranteed, cpuAllocated, memAllocated, networkProvider | |
| `delete` | `instance` | `delete` | `` | `24` | | Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**<br/><br/>Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов |
| `modify` | `instance` | `modify` | `` | `112` | cpuAllocated, memAllocated, storageConfig | |
| `reconcile` | `action` | `reconcile` | `` | `250` | | |
| `resume` | `instance` | `resume` | `` | `172` | | |
| `suspend` | `instance` | `suspend` | `` | `171` | | Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `organizationUid` | `uuid` | `ДА` | `` | | Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director` | ref_svc_id=19 | `30` |
| `providerVdc` | `string` | `ДА` | `` | | Приписка `2.8` - Скорость vCPU - 2800MHz<br/>И так далее...<br/> | | `335` |
| `storageConfig` | `array-map-fixed` | `ДА` | `` | | Первая политика в списке указывается как &quot;По умолчанию&quot; | | `361` |
| `cpuGuaranteed` | `integer &gt; 0` | `ДА` | `20` | % резервирования | Свойство нельзя изменить после создания | value_list=20, 50, 80 | `397` |
| `memGuaranteed` | `integer &gt; 0` | `ДА` | `20` | % резервирования | После создания нельзя изменить | value_list=20, 50, 80 | `398` |
| `cpuAllocated` | `integer &gt; 0` | `ДА` | `10` | шт | | minvalue=1; maxvalue=200 | `557` |
| `memAllocated` | `integer &gt; 0` | `ДА` | `20` | gb | | minvalue=1; maxvalue=4096 | `558` |
| `networkProvider` | `string` | `ДА` | `` | | | | `746` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `cpuAllocated` | `integer &gt; 0` | `ДА` | `` | шт | | minvalue=1; maxvalue=999 | `560` |
| `memAllocated` | `integer &gt; 0` | `ДА` | `` | gb | | minvalue=1; maxvalue=1024 | `561` |
| `storageConfig` | `array-map-fixed` | `ДА` | `` | | Первая политика в списке указывается как &quot;По умолчанию&quot; | | `562` |
## Operation: reconcile
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,35 @@
# Operations: nubes_vc_nsxt
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `10` | vdcUid, needEnableAVI, virtualServicesCount, vdcType, vdcGroupUid | |
| `delete` | `instance` | `delete` | `` | `25` | | Невозможно удалить если routed-сеть в Edge связана с:<br/>- vApp<br/>- VM<br/>- Kubernetes-кластер Штурвал<br/><br/>Запустить операцию возможно, но будет ошибка |
| `modify` | `instance` | `modify` | `` | `111` | needEnableAVI, virtualServicesCount, needExternalAddressSNAT, ipSpaceName | Для создания SNAT Правила убедитесь, что в организации есть свободные IP<br/>Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -&gt; `modify` |
| `reconcile` | `action` | `reconcile` | `` | `252` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vdcUid` | `string` | `НЕТ` | `` | UUID Услуги `Виртуальный датацентр (vDC)` | Необходимо, если выбран тип подключаемой VDC: `vdc` | ref_svc_id=21 | `8` |
| `needEnableAVI` | `boolean` | `ДА` | `false` | Включение Load Balancer | Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать | value_list=false, true | `340` |
| `virtualServicesCount` | `integer &gt; 0` | `НЕТ` | `1` | Кол-во виртуальных сервисов, которые выделяются на AVI | Во избежании коллапса пока выделяется до 4<br/>Необходимо указывать, если включён параметр `Включить ALB` | minvalue=1; maxvalue=4 | `341` |
| `vdcType` | `string` | `ДА` | `vdc` | Тип родительской услуги | При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc<br/>При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc | value_list=vdc, vdcGroup | `621` |
| `vdcGroupUid` | `string` | `НЕТ` | `` | UUID Услуги `Группа виртуальных датацентров (groupvDC)` | Необходимо, если выбран тип подключаемой VDC: `groupvdc` | ref_svc_id=29 | `622` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `needEnableAVI` | `boolean` | `НЕТ` | `` | Включение Load Balancer | Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать | value_list=false, true | `368` |
| `virtualServicesCount` | `integer &gt; 0` | `НЕТ` | `` | Кол-во виртуальных сервисов, которые выделяются на AVI | Во избежании коллапса пока выделяется до 4<br/>Необходимо указывать, если включён параметр `Включить ALB` | minvalue=1; maxvalue=4 | `369` |
| `needExternalAddressSNAT` | `boolean` | `НЕТ` | `` | Создать правило SNAT на подсеть `10.10.102.0/24` | Параметр `ip Space для VIP` станет обязательным, если указан `true` | value_list=false, true | `371` |
| `ipSpaceName` | `string` | `НЕТ` | `` | Имя ip Space для внешнего IP<br/><br/>getKeyListFromStruct(getInstanceState(getValueFromStruct(getInstanceState(getValueFromStruct(getInstanceState(), &quot;params.vdcUid&quot;)), &quot;params.organizationUid&quot;)), &quot;params.vIPConfigure&quot;) | Необходимо указывать, если включён параметр `Выделить VIP для SNAT` | | `372` |
## Operation: reconcile
None.
@@ -0,0 +1,43 @@
# Operations: nubes_vc_vm
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `26` | vappUid, vmName, vmCpu, vmRam, vmDisksize, templateName, accessIpList, ipSpaceName | |
| `delete` | `instance` | `delete` | `` | `29` | | |
| `modify` | `instance` | `modify` | `` | `68` | vmCpu, vmRam, vmDisksize, accessIpList | Операция автоматически останавливает ВМ. |
| `resume` | `instance` | `resume` | `` | `28` | | |
| `suspend` | `instance` | `suspend` | `` | `27` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vappUid` | `uuid` | `ДА` | `` | InstanceUid vApp. vApp должен быть создан | InstanceUid vApp. vApp должен быть создан | ref_svc_id=26 | `33` |
| `vmName` | `string` | `ДА` | `vm0001` | Имя ВМ. Не поддерживает спец-символы | Имя ВМ. Не поддерживает спец-символы | regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ | `35` |
| `vmCpu` | `string` | `ДА` | `2` | CPU | CPU | | `36` |
| `vmRam` | `string` | `ДА` | `2` | RAM (GB) | RAM (GB) | | `37` |
| `vmDisksize` | `string` | `ДА` | `10` | Размер диска под сервис (GB) | Размер диска под сервис (GB) | | `38` |
| `templateName` | `string` | `ДА` | `RockyLinux_9-16G` | ОС | ОС | value_list=RockyLinux_9-16G, OracleLinux_9-16G, Ubuntu_24-20G, Ubuntu_22-20G | `176` |
| `accessIpList` | `string` | `ДА` | `79.111.119.78/32 185.247.187.1/32` | Вставить содержимое из 'curl ifconfig.io'<br/>IP адреса в CIDR формате через пробел для настройки аксес листов | IP адреса в CIDR формате через пробел для настройки аксес листов | | `177` |
| `ipSpaceName` | `string` | `ДА` | `` | Брать из свойств ресурсной платформы<br/>.vcd.ipSpace<br/><br/>Имя IP-space для выделения внешнего IP (IP выделяется обязательно) | | | `406` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vmCpu` | `integer &gt; 0` | `НЕТ` | `` | CPU | CPU | | `186` |
| `vmRam` | `integer &gt; 0` | `НЕТ` | `` | RAM | RAM | | `187` |
| `vmDisksize` | `integer &gt; 0` | `НЕТ` | `` | Размер диска под сервис (GB) | Размер диска под сервис (GB) | | `188` |
| `accessIpList` | `string` | `НЕТ` | `` | IP адреса в CIDR формате через пробел для настройки аксес листов | IP адреса в CIDR формате через пробел для настройки аксес листов | | `189` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,3 @@
# Operations: nubes_d_e_p_r_e_c_a_t_e_d
None.
@@ -0,0 +1,16 @@
# Operations for nubes_DEPRECATED
Service ID: `24`
Service: DEPRECATED Правила маршрутизации для VM (vc_nat)
## UI description
Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ<br/>DEPRECATED
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
No operations found.
@@ -0,0 +1,3 @@
# Operations: nubes_service_24
None.
@@ -0,0 +1,41 @@
# Operations: nubes_vcexternalip
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `56` | serviceUid, dnatCreate, internalPortAccess, snatCreate, internalAddrAccess, fromServiceNamespace, fromServiceCloudEdgeName, fromServiceCloudVdcName, fromServiceCloudOrgName, fromServiceCloudVmwareUrl, ipSpaceName, resourceRealm, fromServiceCloudEdgeScope, fromServiceVdcGroupName | |
| `delete` | `instance` | `delete` | `` | `57` | | |
| `modify` | `instance` | `modify` | `` | `197` | serviceUid, ipSpaceName, dnatCreate, snatCreate, internalPortAccess, internalAddrAccess | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `serviceUid` | `string` | `ДА` | `` | | | | `140` |
| `dnatCreate` | `boolean` | `ДА` | `true` | Необходимо создать DNAT-правило. | | | `141` |
| `internalPortAccess` | `string` | `ДА` | `5432` | Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true<br/> | | | `142` |
| `snatCreate` | `boolean` | `НЕТ` | `` | Необходимо создать SNAT-правило.<br/> | | | `143` |
| `internalAddrAccess` | `string` | `ДА` | `` | Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true | | | `144` |
| `fromServiceNamespace` | `string` | `ДА` | `` | Namespace составной услуги (для отображения правил FW) | | | `324` |
| `fromServiceCloudEdgeName` | `string` | `НЕТ` | `` | Edge составной услуги (указывать, если resourceRealm связан с CloudDirector) | | | `325` |
| `fromServiceCloudVdcName` | `` | `НЕТ` | `` | Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector) | | | `326` |
| `fromServiceCloudOrgName` | `string` | `НЕТ` | `` | Org составной услуги (указывать, если resourceRealm связан с CloudDirector) | | | `327` |
| `fromServiceCloudVmwareUrl` | `string` | `НЕТ` | `` | Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector) | | | `328` |
| `ipSpaceName` | `string` | `ДА` | `` | Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1) | | | `336` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `488` |
| `fromServiceCloudEdgeScope` | `string` | `НЕТ` | `` | | | | `624` |
| `fromServiceVdcGroupName` | `string` | `НЕТ` | `` | | | | `626` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `serviceUid` | `string` | `ДА` | `` | | | | `627` |
| `ipSpaceName` | `string` | `ДА` | `` | | | | `628` |
| `dnatCreate` | `boolean` | `ДА` | `` | | | | `629` |
| `snatCreate` | `boolean` | `ДА` | `` | | | | `630` |
| `internalPortAccess` | `string` | `ДА` | `` | | | | `631` |
| `internalAddrAccess` | `string` | `ДА` | `` | | | | `632` |
@@ -0,0 +1,28 @@
# Operations: nubes_vapp
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `69` | nsxtUid, vappName, vdcUid | |
| `delete` | `instance` | `delete` | `` | `70` | | |
| `resume` | `instance` | `resume` | `` | `209` | | |
| `suspend` | `instance` | `suspend` | `` | `208` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `nsxtUid` | `uuid` | `ДА` | `` | UUID Услуги `Сетевой шлюз периметра (Edge)` | К какой сети может быть подключен виртуальный каталог | ref_svc_id=22 | `190` |
| `vappName` | `string` | `ДА` | `` | Уникальное в рамках организации | Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`<br/><br/>Используется в формировании DNS-Имени (для виртуальных машин) | regex=^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$; minlength=3 | `191` |
| `vdcUid` | `uuid` | `ДА` | `` | UUID Услуги `Виртуальный датацентр (vDC)` | В каких ресурсах будет создан виртуальный каталог | ref_svc_id=21 | `623` |
## Operation: delete
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,33 @@
# Operations: nubes_vc_vm_v2
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `100` | serverListJson | |
| `delete` | `instance` | `delete` | `` | `101` | | |
| `modify` | `instance` | `modify` | `` | `104` | serverListJson | |
| `resume` | `instance` | `resume` | `` | `102` | | |
| `suspend` | `instance` | `suspend` | `` | `103` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `serverListJson` | `json` | `ДА` | `[{}]` | Необходимо изменить vappUid и ipSpaceName<br/>Пример конфигурации взять по ссылке ниже<br/><br/>Объект серверов вида [{}] (Map(Object))<br/>Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2) | | maxlength=65536; minlength=10 | `301` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `serverListJson` | `json` | `ДА` | `[{}]` | Объект серверов вида [{}] (Map(Object))<br/>Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2) | | maxlength=65536; minlength=10 | `302` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,68 @@
# Operations: nubes_vc_vm_v3
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `132` | vappUid, vmName, vmCpu, vmRam, vmDisk, ipSpaceName, accessIpList, imageVm, cloudInit, userLogin, userPublicKey, accessPortList | # Документация по использованию услуги развёртывания ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>## Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: [&quot;22&quot;,&quot;10050]*<br/><br/>**imageVm**<br/>Образ операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию: myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\лож определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: [&quot;192.168.1.1&quot;, &quot;10.0.0.5&quot;]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример: 50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение &quot;no-needed&quot;.<br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> - name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> - nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>### Особенности работы:<br/>- Для отключения внешнего IP укажите значение &quot;no-needed&quot; в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>## Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>- Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install &lt;имя_пакета&gt;` (Debian/Ubuntu) или `dnf install &lt;имя_пакета&gt;` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>- Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики |
| `delete` | `instance` | `delete` | `` | `133` | | |
| `modify` | `instance` | `modify` | `` | `159` | vmCpu, vmRam, vmDisk, ipSpaceName, accessIpList, accessPortList, needAddZabbixTemplate | |
| `redeploy` | `action` | `redeploy` | `` | `164` | vmName, vmCpu, vmRam, vmDisk, ipSpaceName, accessIpList, imageVm, userLogin, userPublicKey, cloudInit, needAddZabbixTemplate, accessPortList | |
| `resume` | `instance` | `resume` | `` | `135` | | |
| `suspend` | `instance` | `suspend` | `` | `134` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vappUid` | `uuid` | `ДА` | `` | | | ref_svc_id=26 | `407` |
| `vmName` | `string` | `ДА` | `web01` | | | regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ | `408` |
| `vmCpu` | `integer &gt; 0` | `ДА` | `1` | шт | | minvalue=1; maxvalue=64 | `409` |
| `vmRam` | `integer &gt; 0` | `ДА` | `1` | Gb | | minvalue=1; maxvalue=256 | `410` |
| `vmDisk` | `integer &gt; 0` | `НЕТ` | `` | Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму | | regex=^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$ | `411` |
| `ipSpaceName` | `string` | `ДА` | `` | | | | `412` |
| `accessIpList` | `json` | `НЕТ` | `` | Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено [&quot;0.0.0.0/0&quot;] | | regex=^(?:$|\[\s*(?:"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?"(?:\s*,\s*"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?")*)\s*\])$ | `413` |
| `imageVm` | `string` | `ДА` | `` | | | | `414` |
| `cloudInit` | `yaml` | `НЕТ` | `` | Можно передать создание дополнительных пользователей. <br/>На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов. | | | `415` |
| `userLogin` | `` | `ДА` | `myuser` | Учётка SSH | | | `416` |
| `userPublicKey` | `string` | `ДА` | `` | Публичная часть SSH-Ключа для пользователя | | | `417` |
| `accessPortList` | `string` | `ДА` | `["22"]` | По каким портам открыть доступ к ВМ.<br/>Порты 22, 10050 проставляются автоматически<br/>Пока доступно: <br/>22 - SSH, <br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX | | | `448` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vmCpu` | `integer &gt; 0` | `НЕТ` | `` | шт | | minvalue=1; maxvalue=64 | `493` |
| `vmRam` | `integer &gt; 0` | `НЕТ` | `` | Gb | | minvalue=1; maxvalue=256 | `494` |
| `vmDisk` | `integer &gt; 0` | `НЕТ` | `` | Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму | | regex=^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$ | `495` |
| `ipSpaceName` | `string` | `НЕТ` | `` | no-needed, без внешнего ip<br/>internet-antiddos-v1, с функцией защиты от ddos атак<br/>internet-no-antiddos-v1, с функцией защиты от ddos атак<br/>internet-ipv4-v1 тестовое простанство dev | | value_list=no-needed, internet-antiddos-v1, internet-no-antiddos-v1, internet-ipv4-v1 | `496` |
| `accessIpList` | `json` | `НЕТ` | `` | Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено [&quot;0.0.0.0/0&quot;] | | | `497` |
| `accessPortList` | `json` | `НЕТ` | `` | Формат массива<br/>По каким портам открыть доступ к ВМ.<br/>Пока доступно:<br/>22 - SSH,<br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX | | | `498` |
| `needAddZabbixTemplate` | `boolean` | `НЕТ` | `` | | | value_list=false, true | `499` |
## Operation: redeploy
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vmName` | `string` | `ДА` | `` | | | regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ | `509` |
| `vmCpu` | `integer &gt; 0` | `ДА` | `` | шт | | minvalue=1; maxvalue=64 | `510` |
| `vmRam` | `integer &gt; 0` | `ДА` | `` | Gb | | minvalue=1; maxvalue=256 | `511` |
| `vmDisk` | `integer &gt; 0` | `НЕТ` | `` | Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму | | regex=^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$ | `512` |
| `ipSpaceName` | `string` | `НЕТ` | `` | no-needed, без внешнего ip<br/>internet-antiddos-v1, с функцией защиты от ddos атак<br/>internet-no-antiddos-v1, с функцией защиты от ddos атак<br/>internet-ipv4-v1 тестовое простанство dev | | value_list=no-needed, internet-antiddos-v1, internet-no-antiddos-v1, internet-ipv4-v1 | `513` |
| `accessIpList` | `json` | `НЕТ` | `` | Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено [&quot;0.0.0.0/0&quot;] | | regex=^(?:$|\[\s*(?:"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?"(?:\s*,\s*"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?")*)\s*\])$ | `514` |
| `imageVm` | `string` | `ДА` | `` | | | value_list=RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G | `515` |
| `userLogin` | `string` | `ДА` | `` | Учётка SSH | | | `516` |
| `userPublicKey` | `string` | `ДА` | `` | Публичная часть SSH-Ключа для пользователя | | | `517` |
| `cloudInit` | `yaml` | `НЕТ` | `` | Можно передать создание дополнительных пользователей.<br/>На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов. | | | `518` |
| `needAddZabbixTemplate` | `boolean` | `ДА` | `false` | Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста. | | value_list=false, true | `519` |
| `accessPortList` | `json` | `НЕТ` | `` | По каким портам открыть доступ к ВМ.<br/>Порты 22, 10050 проставляются автоматически<br/>Пока доступно:<br/>22 - SSH,<br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX | | | `520` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,35 @@
# Operations: nubes_vc_vdc_group
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `add_vdc` | `action` | `add_vdc` | `` | `192` | vdcUid | **Не нужно** выбирать UUID VDC, который уже был добавлен в группу |
| `create` | `instance` | `create` | `` | `191` | vdcUid | **VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.<br/>Это позволит, к примеру, создать **общую сеть** для всех VDC в организации<br/><br/>- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)<br/>- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую |
| `delete` | `instance` | `delete` | `` | `195` | | |
| `reconcile` | `action` | `reconcile` | `` | `251` | | |
| `remove_vdc` | `action` | `remove_vdc` | `` | `193` | vdcName | |
## Operation: add_vdc
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vdcUid` | `uuid` | `ДА` | `` | | | ref_svc_id=21 | `619` |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vdcUid` | `uuid` | `ДА` | `` | | | ref_svc_id=21 | `618` |
## Operation: delete
None.
## Operation: reconcile
None.
## Operation: remove_vdc
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vdcName` | `string` | `ДА` | `` | | | | `620` |
@@ -0,0 +1,61 @@
# Operations for nubes_vcVdcGroup
Service ID: `29`
Service: Группа датацентров
## UI description
# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.<br/>Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.<br/><br/>### Доступные операции<br/><br/>**create** — Создание новой группы виртуальных датацентров.<br/>**delete** — Удаление существующей группы vDC.<br/>**add_vdc** — Добавление дополнительного виртуального датацентра в группу.<br/>**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры операции **create**:<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра, который будет являться первичным в группе.<br/>Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director<br/><br/>### Промышленное окружение<br/>- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Параметры groupvdc<br/>Набор параметров, указанных пользователем при создании<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.<br/>- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.<br/>- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.<br/>- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `add_vdc` (id: 192)
- `create` (id: 191)
- `delete` (id: 195)
- `reconcile` (id: 251)
- `remove_vdc` (id: 193)
## Operation: add_vdc
Operation ID: `192`
**Не нужно** выбирать UUID VDC, который уже был добавлен в группу
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `vdcUid` | `uuid` | `true` | `` | `619` | `21` | `` | `` | `` | `` | `` | `false` | `` |
## Operation: create
Operation ID: `191`
**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.<br/>Это позволит, к примеру, создать **общую сеть** для всех VDC в организации<br/><br/>- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)<br/>- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `vdcUid` | `uuid` | `true` | `` | `618` | `21` | `` | `` | `` | `` | `` | `false` | `` |
## Operation: delete
Operation ID: `195`
No parameters.
## Operation: reconcile
Operation ID: `251`
No parameters.
## Operation: remove_vdc
Operation ID: `193`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `vdcName` | `string` | `true` | `` | `620` | `` | `` | `` | `` | `` | `` | `false` | `` |
@@ -0,0 +1,41 @@
# Operations: nubes_template
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `74` | resourceCPU, resourceMemory, resourceDisk, resourceInstances, resourceRealm, domain | |
| `delete` | `instance` | `delete` | `` | `75` | | |
| `modify` | `instance` | `modify` | `` | `76` | resourceCPU, resourceMemory, resourceDisk, resourceInstances | |
| `resume` | `instance` | `resume` | `` | `98` | | |
| `suspend` | `instance` | `suspend` | `` | `97` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `100` | | | minvalue=100; maxvalue=4000 | `202` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `200` | | | minvalue=128; maxvalue=8192 | `203` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `204` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | | minvalue=1; maxvalue=7 | `205` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `206` |
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `207` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | | | minvalue=100; maxvalue=4000 | `208` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | | | minvalue=128; maxvalue=8192 | `209` |
| `resourceDisk` | `integer &gt; 0` | `НЕТ` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `210` |
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | Количество узлов | | minvalue=1; maxvalue=7 | `211` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,22 @@
# Operations: nubes_vmpostgre
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `32` | vdcUid, nsxtUid, vmUid, userDb, userLogin, userPassword, resourceRealm | |
| `delete` | `instance` | `delete` | `` | `33` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `vdcUid` | `uuid` | `ДА` | `` | InstanceUid vdc. Vdc должен быть создан<br/> | | ref_svc_id=21 | `43` |
| `nsxtUid` | `uuid` | `ДА` | `` | InstanceUid nsxt. Nsxt должен быть создан<br/> | | ref_svc_id=22 | `44` |
| `vmUid` | `uuid` | `ДА` | `` | InstanceUid ВМ. ВМ должна быть создана<br/> | | ref_svc_id=23 | `45` |
| `userDb` | `string` | `ДА` | `servicedb` | Наименование Базы данных<br/> | | | `46` |
| `userLogin` | `string` | `ДА` | `serviceuser` | Пользователь базы данных<br/> | | | `47` |
| `userPassword` | `string` | `ДА` | `fj29gm48fm!d374mc9` | Пароль от доступа к Базе данных<br/> | | | `48` |
| `resourceRealm` | `string` | `ДА` | `` | Ресурсная платформа | | func=getAvailableResourceRealms | `859` |
## Operation: delete
None.
@@ -0,0 +1,50 @@
# Operations: nubes_nextcloud
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `16` | domain, resourceCPU, resourceMemory, resourceDisk, documentServer, resourceInstances, psqlUid, appVersion, redisUid | DEV-Ветка сборки Nextcloud |
| `delete` | `instance` | `delete` | `` | `17` | | DEV-Ветка удаления Nextcloud |
| `modify` | `instance` | `modify` | `` | `67` | resourceCPU, resourceMemory, resourceDisk, resourceInstances, appVersion | |
| `restart` | `action` | `restart` | `` | `66` | | |
| `resume` | `instance` | `resume` | `` | `129` | | |
| `suspend` | `instance` | `suspend` | `` | `128` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Наименование домена. Если будет указан FQDN, то происходят проверки DNS. Если указан поддомен, то будет добавлен в зону services.ngcloud.ru<br/>Можно указать клиентскую DNS-Запись. Важно, чтобы запись смотрела на Ingress кластера | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `21` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `1000` | Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili | Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili | minvalue=100; maxvalue=4000 | `99` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `1024` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=1024; maxvalue=8192 | `100` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `2` | Квота диска (Указывается в GIGAbytes)<br/>Диск не может быть меньше 2G (!) | Квота диска (Указывается в GIGAbytes) | minvalue=2; maxvalue=999 | `101` |
| `documentServer` | `string` | `ДА` | `collabora` | Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ | Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен | value_list=collabora | `192` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов<br/>Не может пока быть больше одного, так как нужны SC под RWMany | | minvalue=1; maxvalue=7; value_list=1 | `470` |
| `psqlUid` | `uuid` | `ДА` | `` | | | ref_svc_id=90 | `564` |
| `appVersion` | `` | `ДА` | `32.0.1` | | | value_list=32.0.1 | `569` |
| `redisUid` | `uuid` | `ДА` | `` | | | ref_svc_id=91 | `570` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | Квота ядра пода (Указывается в mili) | Квота ядра пода (Указывается в mili) | minvalue=100; maxvalue=4000 | `178` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=128; maxvalue=8192 | `179` |
| `resourceDisk` | `integer &gt; 0` | `НЕТ` | `` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `180` |
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | Количество узлов.<br/>Не может пока быть больше одного, так как нужны SC под RWMany | | minvalue=1; maxvalue=7; value_list=1 | `547` |
| `appVersion` | `string` | `ДА` | `` | Нельзя обновляться сразу через несколько версий сразу | | value_list=32.0.1 | `571` |
## Operation: restart
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,22 @@
# Operations: nubes_superset
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `12` | domain, emails, resourceCPU, resourceMemory, resourceDisk, resourceRealm, resourceInstances | DEV-Ветка сборки Superset |
| `delete` | `instance` | `delete` | `` | `13` | | DEV-Ветка удаления Superset |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `14` |
| `emails` | `string` | `ДА` | `testuser1` | Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел | Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел | | `20` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро | Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро | minvalue=100; maxvalue=4000 | `96` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=128; maxvalue=8192 | `97` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `98` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `109` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | | minvalue=1; maxvalue=7 | `227` |
## Operation: delete
None.
@@ -0,0 +1,22 @@
# Operations: nubes_harbor
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `14` | domain, emails, resourceRealm, resourceCPU, resourceMemory, resourceInstances, s3Uid | DEV-Ветка сборки Harbor |
| `delete` | `instance` | `delete` | `` | `15` | | DEV-Ветка удаления Harbor |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `16` |
| `emails` | `string` | `ДА` | `testuser1` | Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел | Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел | | `17` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `110` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `100` | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | minvalue=100; maxvalue=4000 | `228` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `200` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=128; maxvalue=8192 | `229` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `230` |
| `s3Uid` | `uuid` | `ДА` | `` | UUID экземпляра услуги S3 | UUID экземпляра услуги S3 | ref_svc_id=12 | `231` |
## Operation: delete
None.
@@ -0,0 +1,21 @@
# Operations: nubes_k8s_ziti_controller
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `99` | resourceCPU, resourceMemory, resourceDisk, resourceInstances, resourceRealm, domain | |
| `delete` | `instance` | `delete` | `` | `105` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `300` | Квота ядра пода (milicores) | | minvalue=100; maxvalue=4000 | `294` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (MBytes) | | minvalue=128; maxvalue=8192 | `295` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `296` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | | minvalue=1; maxvalue=7 | `297` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `298` |
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$; unique_scope=provider | `299` |
## Operation: delete
None.
@@ -0,0 +1,33 @@
# Operations for nubes_k8sZitiController
Service ID: `88`
Service: k8sZitiController
## Operations
Non-CRUD operations are typically executed via an action resource.
Domain operations (for example create_user, create_database) are best modeled as separate resources.
- `create` (id: 99)
- `delete` (id: 105)
## Operation: create
Operation ID: `99`
| Code | Type | Required | Default | ID | RefSvcId | ValueList | Func | Regex | Min | Max | Sensitive | DependsOn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `true` | `300` | `294` | `` | `` | `` | `` | `100` | `4000` | `false` | `` |
| `resourceMemory` | `integer &gt; 0` | `true` | `512` | `295` | `` | `` | `` | `` | `128` | `8192` | `false` | `` |
| `resourceDisk` | `integer &gt; 0` | `true` | `1` | `296` | `` | `` | `` | `` | `1` | `999` | `false` | `` |
| `resourceInstances` | `integer &gt; 0` | `true` | `1` | `297` | `` | `` | `` | `` | `1` | `7` | `false` | `` |
| `resourceRealm` | `string` | `true` | `` | `298` | `` | `` | `getAvailableResourceRealms` | `` | `` | `` | `false` | `` |
| `domain` | `string` | `true` | `web01` | `299` | `` | `` | `` | `^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$` | `` | `` | `false` | `` |
## Operation: delete
Operation ID: `105`
No parameters.
@@ -0,0 +1,44 @@
# Operations: nubes_flask
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `88` | domain, resourceRealm, resourceCPU, resourceMemory, resourceInstances, gitPath, jsonEnv, healthPath | |
| `delete` | `instance` | `delete` | `` | `89` | | |
| `modify` | `instance` | `modify` | `` | `146` | resourceCPU, resourceMemory, resourceInstances, gitPath, jsonEnv | |
| `resume` | `instance` | `resume` | `` | `145` | | |
| `suspend` | `instance` | `suspend` | `` | `125` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `248` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `249` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `300` | Квота ядра пода (milicores) | | minvalue=100; maxvalue=4000 | `250` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `256` | Квота памяти пода (MBytes) | | minvalue=128; maxvalue=8192 | `251` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | | minvalue=1; maxvalue=7 | `252` |
| `gitPath` | `string` | `ДА` | `https://github.com/Foxyhhd/Baldurs-Gate-test.git` | Путь до Git, который будет webroot для сайта | Путь до Git, который будет webroot для сайта | | `253` |
| `jsonEnv` | `string` | `НЕТ` | `{ &quot;param&quot;: &quot;value&quot; }` | Массив переменных, будут переданы в env приложения | | | `254` |
| `healthPath` | `string` | `НЕТ` | `` | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код | | | `255` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `` | Квота ядра пода (milicores) | | minvalue=100; maxvalue=4000 | `451` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `` | Квота памяти пода (MBytes) | | minvalue=128; maxvalue=8192 | `452` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `` | Количество узлов | | minvalue=1; maxvalue=7 | `453` |
| `gitPath` | `` | `ДА` | `` | Путь до Git, который будет webroot для сайта | | | `454` |
| `jsonEnv` | `json` | `ДА` | `{ "param": "value" }` | Массив переменных, будут переданы в env приложения | | | `455` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,85 @@
# Operations: nubes_postgres
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `19` | s3Uid, resourceInstances, resourceMemory, resourceCPU, resourceDisk, resourceRealm, needExternalAddressMaster, needExternalAddressSlave, ext_BACKUP_SCHEDULE, ext_BACKUP_NUM_TO_RETAIN, appVersion, jsonParameters, enablePgPoolerMaster, enablePgPoolerSlave, allowNoSSL, autoScale, autoScalePercentage, autoScaleTechWindow, ipSpaceNameMaster, ipSpaceNameSlave, autoScaleQuotaGb | руководство |
| `delete` | `instance` | `delete` | `` | `20` | deleteS3Bucket | |
| `modify` | `instance` | `modify` | `` | `48` | resourceInstances, resourceMemory, resourceCPU, resourceDisk, needExternalAddressMaster, needExternalAddressSlave, ext_BACKUP_SCHEDULE, ext_BACKUP_NUM_TO_RETAIN, appVersion, jsonParameters, enablePgPoolerMaster, enablePgPoolerSlave, allowNoSSL, ipSpaceNameMaster, ipSpaceNameSlave | |
| `recovery` | `action` | `recovery` | `` | `47` | resourceInstances, resourceMemory, resourceCPU, resourceDisk, resourceRealm | |
| `restart` | `action` | `restart` | `` | `54` | | ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.<br/>Может быть полная поломка. Крайне осторожно запускать при работе |
| `resume` | `instance` | `resume` | `` | `114` | | |
| `suspend` | `instance` | `suspend` | `` | `115` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `s3Uid` | `uuid` | `ДА` | `` | Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно | Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно | ref_svc_id=12 | `23` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в кластере. 1,3,5,7 | minvalue=1; maxvalue=7; regex=^[1357]$ | `80` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (MBytes) | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 | `81` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (milicores) | Квота ядра пода (milicores) | minvalue=100; maxvalue=4000 | `82` |
| `resourceDisk` | `` | `ДА` | `10` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `83` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Кластер Kubernetes, на котором будет развернут экземпляр | func=getAvailableResourceRealms | `102` |
| `needExternalAddressMaster` | `boolean` | `НЕТ` | `false` | Выделяет внешний (белый) IP для доступа к master | Выделяет внешний (белый) IP для доступа к master | value_list=false, true | `145` |
| `needExternalAddressSlave` | `boolean` | `НЕТ` | `false` | Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть | Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть | value_list=false, true | `146` |
| `ext_BACKUP_SCHEDULE` | `string` | `НЕТ` | `0 0 * * *` | Не обязательный. Время запуска бекапа | Не обязательный. Время запуска бекапа | regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$ | `265` |
| `ext_BACKUP_NUM_TO_RETAIN` | `integer &gt; 0` | `НЕТ` | `7` | Не обязательный. По умолчанию: &quot;24&quot;. Количество сохраняемых бекапов | Не обязательный. По умолчанию: &quot;24&quot;. Количество сохраняемых бекапов | minvalue=1; maxvalue=99 | `266` |
| `appVersion` | `string` | `ДА` | `17` | Версия PostgreSQL | | value_list=17, 16, 15, 14, 13 | `310` |
| `jsonParameters` | `json` | `ДА` | `{ "log_connections": "off", "log_disconnections": "off" }` | Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html | | maxlength=2048 | `311` |
| `enablePgPoolerMaster` | `boolean` | `ДА` | `false` | Включает pgPooler (на запись). Будет создан новый под | | value_list=false, true | `312` |
| `enablePgPoolerSlave` | `boolean` | `ДА` | `false` | Включает pgPooler (на чтение). Будет создан новый под | | value_list=false, true | `313` |
| `allowNoSSL` | `boolean` | `ДА` | `false` | По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр | | value_list=false, true | `314` |
| `autoScale` | `boolean` | `ДА` | `true` | Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги | | value_list=false, true | `329` |
| `autoScalePercentage` | `integer &gt; 0` | `ДА` | `10` | Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема | | value_list=10, 15, 20 | `330` |
| `autoScaleTechWindow` | `integer &gt;= 0` | `ДА` | `0` | Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23) | | value_list=0, 5, 12, 23 | `331` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster | | | `337` |
| `ipSpaceNameSlave` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave | | | `338` |
| `autoScaleQuotaGb` | `string` | `ДА` | `1` | Квота для autoScale | | | `339` |
## Operation: delete
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `deleteS3Bucket` | `boolean` | `ДА` | `true` | Также удалить технический S3 Bucket с бэкапами? | | value_list=false, true | `457` |
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `91` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | Квота памяти пода (MBytes) | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 | `92` |
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | Квота ядра пода (milicores) | Квота ядра пода (milicores) | minvalue=100; maxvalue=4000 | `93` |
| `resourceDisk` | `integer &gt; 0` | `НЕТ` | `` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `94` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `` | Выделяет внешний IP для доступа к master | Выделяет внешний IP для доступа к master | value_list=false, true | `147` |
| `needExternalAddressSlave` | `boolean` | `ДА` | `` | Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть | Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть | value_list=false, true | `148` |
| `ext_BACKUP_SCHEDULE` | `string` | `НЕТ` | `` | Не обязательный. По умолчанию: &quot;0 * * * *&quot;. Время запуска бекапа | Не обязательный. По умолчанию: &quot;0 * * * *&quot;. Время запуска бекапа | regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$ | `267` |
| `ext_BACKUP_NUM_TO_RETAIN` | `integer &gt; 0` | `НЕТ` | `` | Не обязательный. По умолчанию: &quot;24&quot;. Количество сохраняемых бекапов | | minvalue=1; maxvalue=99 | `268` |
| `appVersion` | `string` | `ДА` | `` | Версия PostgreSQL. Нельзя опускать вниз | | value_list=17, 16, 15, 14, 13 | `315` |
| `jsonParameters` | `json` | `НЕТ` | `` | Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html | | maxlength=2048 | `316` |
| `enablePgPoolerMaster` | `boolean` | `ДА` | `false` | Включает pgPooler (на запись). Будет создан новый под | | value_list=false, true | `317` |
| `enablePgPoolerSlave` | `boolean` | `ДА` | `false` | Включает pgPooler (на чтение). Будет создан новый под | | value_list=false, true | `318` |
| `allowNoSSL` | `boolean` | `ДА` | `false` | По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр | | value_list=false, true | `319` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster | | | `541` |
| `ipSpaceNameSlave` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave | | | `542` |
## Operation: recovery
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети<br/> | minvalue=1; maxvalue=7 | `86` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (Указывается в Megabytes)<br/> | Квота памяти пода (Указывается в Megabytes)<br/> | minvalue=128; maxvalue=8192 | `87` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (Указывается в mili)<br/> | Квота ядра пода (Указывается в mili)<br/> | minvalue=100; maxvalue=4000 | `88` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `89` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `131` |
## Operation: restart
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,24 @@
# Operations: nubes_redis
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `21` | resourceCPU, resourceMemory, resourceDisk, resourceInstances, resourceRealm, needExternalAddressMaster, needExternalAddressSlave, ipSpaceNameMaster, ipSpaceNameSlave | |
| `delete` | `instance` | `delete` | `` | `22` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `1000` | Квота ядра пода (Указывается в mili) | Квота ядра пода (Указывается в mili) | minvalue=500; maxvalue=4000 | `112` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `1024` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=512; maxvalue=8192 | `113` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `30` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=10; maxvalue=999 | `114` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети. Если выделить больше 1 ноды, будет добавлено дополнительно 3 Sentinel ноды | minvalue=1; maxvalue=7 | `181` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения<br/> | func=getAvailableResourceRealms | `182` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `false` | Выделяет внешний IP для доступа к master | Выделяет внешний IP для доступа к master | value_list=false, true | `183` |
| `needExternalAddressSlave` | `boolean` | `ДА` | `false` | Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть | Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть | value_list=false, true | `184` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster | | | `548` |
| `ipSpaceNameSlave` | `string` | `НЕТ` | `` | Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave | | | `549` |
## Operation: delete
None.
@@ -0,0 +1,57 @@
# Operations: nubes_mongodb
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `37` | resourceInstances, resourceMemory, resourceCPU, resourceDisk, resourceRealm, needExternalAddressMaster, ipSpaceNameMaster | |
| `create_user` | `subresource` | `create` | `user` | `198` | username, dbName, role | |
| `delete` | `instance` | `delete` | `` | `190` | | |
| `delete_user` | `subresource` | `delete` | `user` | `199` | username | |
| `modify_user` | `subresource` | `modify` | `user` | `200` | username, dbName, role | |
| `resume` | `instance` | `resume` | `` | `196` | | |
| `suspend` | `instance` | `suspend` | `` | `194` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceInstances` | `integer &gt; 0` | `ДА` | `` | Пример: `2` | | minvalue=1; maxvalue=7 | `487` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `` | Пример: `2048` | | minvalue=1000 | `588` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `` | Пример: `1000` | | | `589` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `` | Пример: `20` | | | `590` |
| `resourceRealm` | `string` | `ДА` | `` | Выбрать платформу из списка | | func=getAvailableResourceRealms | `595` |
| `needExternalAddressMaster` | `string` | `ДА` | `false` | Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false` | | value_list=false, true | `645` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1` | | | `646` |
## Operation: create_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | | | | `635` |
| `dbName` | `string` | `ДА` | `` | | | | `636` |
| `role` | `string` | `ДА` | `` | | | value_list=dbOwner, read, readWrite | `643` |
## Operation: delete
None.
## Operation: delete_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | | | | `644` |
## Operation: modify_user
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `username` | `string` | `ДА` | `` | | | | `640` |
| `dbName` | `string` | `ДА` | `` | | | | `641` |
| `role` | `string` | `ДА` | `` | | | value_list=dbOwner, read, readWrite | `642` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,46 @@
# Operations: nubes_rabbitmq
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `38` | resourceCPU, resourceMemory, resourceDisk, resourceRealm, resourceInstances, needExternalAddressMaster, ipSpaceNameMaster | |
| `delete` | `instance` | `delete` | `` | `39` | | |
| `modify` | `instance` | `modify` | `` | `106` | resourceCPU, resourceMemory, resourceDisk, resourceInstances, needExternalAddressMaster, needExternalAddressSlave, ipSpaceNameMaster, ipSpaceNameSlave | |
| `resume` | `instance` | `resume` | `` | `117` | | |
| `suspend` | `instance` | `suspend` | `` | `116` | | Пока не работает из за того что RabbitmqCluster нельзя занулить |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `1000` | Пример: `2000` | | minvalue=500; maxvalue=4000 | `116` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `1124` | Пример: `2048` | | minvalue=512; maxvalue=8192 | `117` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `30` | Пример: `20` | | minvalue=5; maxvalue=999 | `118` |
| `resourceRealm` | `string` | `ДА` | `` | Выбрать платформу из списка | | func=getAvailableResourceRealms | `119` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Пример: `1` | | minvalue=1; maxvalue=7 | `224` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `false` | Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false` | | value_list=false, true | `225` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Пример: `internet-no-antiddos-v1` | | | `543` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `` | Пример: `2000` | | minvalue=500; maxvalue=4000 | `304` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `` | Пример: `2048` | | minvalue=512; maxvalue=8192 | `305` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `` | Пример: `20` | | minvalue=1; maxvalue=999 | `306` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `` | Пример: `1` | | minvalue=1; maxvalue=7 | `307` |
| `needExternalAddressMaster` | `boolean` | `ДА` | `false` | Выделяет внешний (белый) IP для доступа к master | | value_list=false, true | `308` |
| `needExternalAddressSlave` | `boolean` | `ДА` | `false` | Выделяет внешний (белый) IP для доступа к slave | | value_list=false, true | `309` |
| `ipSpaceNameMaster` | `string` | `НЕТ` | `` | Пример: `internet-no-antiddos-v1` | | | `545` |
| `ipSpaceNameSlave` | `string` | `НЕТ` | `` | Пример: `internet-no-antiddos-v1` | | | `546` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,59 @@
# Operations: nubes_lucee
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `49` | domain, gitPath, jsonEnv, resourceCPU, resourceMemory, resourceRealm, healthPath, resourceInstances, appVersion | |
| `delete` | `instance` | `delete` | `` | `50` | | |
| `modify` | `instance` | `modify` | `` | `55` | gitPath, healthPath, jsonEnv, resourceCPU, resourceMemory, resourceInstances, appVersion | Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData |
| `redeploy` | `action` | `redeploy` | `` | `53` | resourceRealm | |
| `restart` | `action` | `restart` | `` | `163` | | |
| `resume` | `instance` | `resume` | `` | `95` | | |
| `suspend` | `instance` | `suspend` | `` | `96` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$; unique_scope=provider | `103` |
| `gitPath` | `string` | `ДА` | `https://github.com/xahys/testlucee` | Путь до Git, который будет webroot для сайта | Путь до Git, который будет webroot для сайта | | `104` |
| `jsonEnv` | `json` | `НЕТ` | `{ "param": "value" }` | Здесь вы можете задать переменные среды в формате KEY=VALUE. Они будут доступны внутри вашего приложения. | | maxlength=2048 | `105` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `300` | Квота ядра пода (milicores) | Квота ядра пода (milicores) | minvalue=100; maxvalue=4000 | `106` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (MBytes) | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 | `107` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `108` |
| `healthPath` | `string` | `НЕТ` | `` | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код | | `132` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `139` |
| `appVersion` | `string` | `ДА` | `5.4` | Версия Lucee | | regex=^\d+(\.\d+){1,2}(-[a-zA-Z0-9\.]+)?$; value_list=5.4, 6.0 | `263` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `gitPath` | `string` | `НЕТ` | `` | Путь до Git, который будет webroot для сайта | Путь до Git, который будет webroot для сайта | | `133` |
| `healthPath` | `string` | `НЕТ` | `` | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. | | `134` |
| `jsonEnv` | `json` | `НЕТ` | `` | Массив переменных, будут переданы в env приложения | Массив переменных, будут переданы в env приложения | maxlength=2048 | `135` |
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро | Квота ядра пода (Указывается в mili) | minvalue=100; maxvalue=4000 | `136` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=128; maxvalue=8192 | `137` |
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `138` |
| `appVersion` | `string` | `ДА` | `5.4` | | | regex=^\d+(\.\d+){1,2}(-[a-zA-Z0-9\.]+)?$; value_list=5.4, 6.0 | `264` |
## Operation: redeploy
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `257` |
## Operation: restart
None.
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,54 @@
# Operations: nubes_nodejs
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `58` | domain, gitPath, healthPath, jsonEnv, resourceCPU, resourceMemory, resourceInstances, resourceRealm, appVersion | |
| `delete` | `instance` | `delete` | `` | `61` | | |
| `modify` | `instance` | `modify` | `` | `59` | gitPath, healthPath, jsonEnv, resourceCPU, resourceMemory, resourceInstances, appVersion | |
| `redeploy` | `action` | `redeploy` | `` | `60` | resourceRealm | |
| `resume` | `instance` | `resume` | `` | `121` | | |
| `suspend` | `instance` | `suspend` | `` | `120` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Наименование поддомена, будет добавлено в nodejs.dev.nubes.ru | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ | `149` |
| `gitPath` | `string` | `ДА` | `https://github.com/xahys/testnode.git` | Путь до Git, который будет webroot для сайта | Путь до Git, который будет webroot для сайта | | `150` |
| `healthPath` | `string` | `НЕТ` | `` | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет | | `151` |
| `jsonEnv` | `json` | `НЕТ` | `` | Массив переменных, будут переданы в env приложения | Массив переменных, будут переданы в env приложения | | `152` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (milicores). 1000Mili = 1 Ядро | Квота ядра пода (milicores). 1000Mili = 1 Ядро | minvalue=100; maxvalue=4000 | `153` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `1024` | Квота памяти пода (MBytes) | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 | `154` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `155` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `156` |
| `appVersion` | `string` | `ДА` | `23` | Версия приложения | | regex=^(\d){2}$; value_list=18, 20, 22, 23 | `270` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `gitPath` | `string` | `НЕТ` | `` | Путь до Git, который будет webroot для сайта | Путь до Git, который будет webroot для сайта | | `157` |
| `healthPath` | `string` | `НЕТ` | `` | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. | Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. | | `158` |
| `jsonEnv` | `json` | `НЕТ` | `` | Массив переменных, будут переданы в env приложения | Массив переменных, будут переданы в env приложения | maxlength=2048 | `159` |
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро | Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро | minvalue=100; maxvalue=4000 | `160` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=128; maxvalue=8192 | `161` |
| `resourceInstances` | `integer &gt; 0` | `НЕТ` | `` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `162` |
| `appVersion` | `string` | `ДА` | `23` | Версия приложения | Версия приложения | regex=^(\d){2}$; value_list=18, 20, 22, 23 | `271` |
## Operation: redeploy
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `258` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,48 @@
# Operations: nubes_pgadmin
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `62` | domain, resourceCPU, resourceMemory, resourceDisk, resourceRealm, login, password | |
| `delete` | `instance` | `delete` | `` | `63` | | |
| `modify` | `instance` | `modify` | `` | `64` | resourceCPU, resourceMemory, resourceDisk | |
| `redeploy` | `action` | `redeploy` | `` | `65` | resourceRealm | |
| `resume` | `instance` | `resume` | `` | `123` | | |
| `suspend` | `instance` | `suspend` | `` | `122` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$; unique_scope=provider | `164` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `200` | Квота ядра пода (milicores). 1000Mili = 1 Ядро | Квота ядра пода (milicores). 1000Mili = 1 Ядро | minvalue=100; maxvalue=4000 | `165` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `256` | Квота памяти пода (MBytes) | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 | `166` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `167` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `169` |
| `login` | `string` | `ДА` | `` | Логин для подключения к pgAdmin, в формате email (login@email.net) | Логин для подключения к pgAdmin, в формате email (login@email.net) | regex=^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)$; maxlength=255; minlength=3 | `170` |
| `password` | `string` | `ДА` | `` | Пароль для подключения к pgAdmin | Пароль для подключения к pgAdmin | | `171` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `НЕТ` | `` | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | minvalue=100; maxvalue=4000 | `172` |
| `resourceMemory` | `integer &gt; 0` | `НЕТ` | `` | Квота памяти пода (MBytes) | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 | `173` |
| `resourceDisk` | `integer &gt; 0` | `НЕТ` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `174` |
## Operation: redeploy
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `277` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,21 @@
# Operations: nubes_nodered
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `72` | resourceCPU, resourceMemory, resourceDisk, resourceRealm, domain, resourceInstances | |
| `delete` | `instance` | `delete` | `` | `73` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | | minvalue=100; maxvalue=4000 | `193` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (Указывается в Megabytes) | | minvalue=128; maxvalue=8192 | `194` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `195` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `196` |
| `domain` | `string` | `ДА` | `` | Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru | Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$; unique_scope=provider | `197` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | | minvalue=1; maxvalue=7 | `323` |
## Operation: delete
None.
@@ -0,0 +1,48 @@
# Operations: nubes_http
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `77` | domain, resourceCPU, resourceMemory, resourceInstances, resourceRealm, registryPath, jsonEnv | |
| `delete` | `instance` | `delete` | `` | `78` | | |
| `modify` | `instance` | `modify` | `` | `81` | resourceCPU, resourceMemory, resourceInstances | |
| `redeploy` | `action` | `redeploy` | `` | `79` | resourceRealm | |
| `resume` | `instance` | `resume` | `` | `130` | | |
| `suspend` | `instance` | `suspend` | `` | `131` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$; unique_scope=provider | `212` |
| `resourceCPU` | `integer &gt; 0` | `ДА` | `100` | Квота ядра пода (Указывается в mili) | Квота ядра пода (Указывается в mili) | minvalue=100; maxvalue=4000 | `213` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `200` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=128; maxvalue=8192 | `214` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество реплик приложения. Трафик будет распределяться между подами в режиме Round-Robin | minvalue=1; maxvalue=7 | `215` |
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | Наименование кластера Kubernetes для подключения | func=getAvailableResourceRealms | `216` |
| `registryPath` | `string` | `ДА` | `nexus-sa.tst.nubes.ru/docker-nubes/jolt` | Путь до image, который будет установлен как deployment | Путь до image, который будет установлен как deployment | | `217` |
| `jsonEnv` | `json` | `НЕТ` | `{&quot;param&quot;: &quot;value&quot;}` | Массив переменных, будут переданы в env приложения | Массив переменных, будут переданы в env приложения | | `241` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `` | | | minvalue=100; maxvalue=4000 | `218` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `` | | | minvalue=128; maxvalue=8192 | `219` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `` | Количество узлов | | minvalue=1; maxvalue=7 | `220` |
## Operation: redeploy
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceRealm` | `string` | `ДА` | `` | Платформа для развертывания | | func=getAvailableResourceRealms | `272` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,41 @@
# Operations: nubes_gitea
| Operation | Kind | Action | Subresource | ID | Params | Description |
|---|---|---|---|---|---|---|
| `create` | `instance` | `create` | `` | `82` | resourceCPU, resourceMemory, resourceDisk, resourceInstances, domain, psqlUid | |
| `delete` | `instance` | `delete` | `` | `83` | | |
| `modify` | `instance` | `modify` | `` | `91` | resourceCPU, resourceMemory, resourceDisk, resourceInstances | |
| `resume` | `instance` | `resume` | `` | `127` | | |
| `suspend` | `instance` | `suspend` | `` | `126` | | |
## Operation: create
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `500` | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | minvalue=300; maxvalue=4000 | `232` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `512` | Квота памяти пода (Указывается в Megabytes) | Квота памяти пода (Указывается в Megabytes) | minvalue=256; maxvalue=8192 | `233` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `234` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `235` |
| `domain` | `string` | `ДА` | `web01` | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm | regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$; unique_scope=provider | `237` |
| `psqlUid` | `uuid` | `ДА` | `` | UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически | UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически | ref_svc_id=90 | `238` |
## Operation: delete
None.
## Operation: modify
| Code | Type | Required | Default | Description | Man | Constraints | ID |
|---|---|---|---|---|---|---|---|
| `resourceCPU` | `integer &gt; 0` | `ДА` | `100` | Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро | | minvalue=500; maxvalue=4000 | `259` |
| `resourceMemory` | `integer &gt; 0` | `ДА` | `128` | Квота памяти пода (Указывается в Megabytes) | | minvalue=256; maxvalue=8192 | `260` |
| `resourceDisk` | `integer &gt; 0` | `ДА` | `1` | Квота диска (Указывается в GIGAbytes) | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | `261` |
| `resourceInstances` | `integer &gt; 0` | `ДА` | `1` | Количество узлов | Количество узлов в сети | minvalue=1; maxvalue=7 | `262` |
## Operation: resume
None.
## Operation: suspend
None.
@@ -0,0 +1,51 @@
# Operations by service
Auto-generated list of available operations per service.
Note: non-CRUD operations should be invoked via an action resource,
and domain operations are best represented as dedicated resources.
- 1 - nubes_dummy (6 ops): [Болванка](1_dummy.md)
- 2 - nubes_template (5 ops): [Темплейт k8s](2_template.md)
- 12 - nubes_s3 (7 ops): [S3 Object Storage](12_s3.md)
- 13 - nubes_s3bucket (2 ops): [S3 бакет](13_s3bucket.md)
- 19 - nubes_vcOrg (6 ops): [Организация в Cloud Director](19_vcorg.md)
- 20 - nubes_vcOrgSaas (4 ops): [Организация [DEPRECATED]](20_vcorgsaas.md)
- 21 - nubes_vc_vdc (6 ops): [Виртуальный датацентр (vDC)](21_vc_vdc.md)
- 22 - nubes_vc_nsxt (4 ops): [Сетевой шлюз периметра (Edge)](22_vc_nsxt.md)
- 23 - nubes_vc_vm (5 ops): [VM в Cloud Director (старый формат) (vc_vm)](23_vc_vm.md)
- 24 - nubes_DEPRECATED (0 ops): [DEPRECATED Правила маршрутизации для VM (vc_nat)](24_deprecated.md)
- 25 - nubes_vcexternalip (3 ops): [Публичные IP адреса](25_vcexternalip.md)
- 26 - nubes_vapp (4 ops): [Виртуальный каталог ВМ (vApp)](26_vapp.md)
- 27 - nubes_vc_vm_v2 (5 ops): [VM в Cloud Director (vc_vmV2)](27_vc_vm_v2.md)
- 28 - nubes_vc_vm_v3 (6 ops): [Виртуальная машина](28_vc_vm_v3.md)
- 29 - nubes_vcVdcGroup (5 ops): [Группа датацентров](29_vcvdcgroup.md)
- 32 - nubes_vmpostgre (0 ops): [vc_vm_postgresql_std](32_vmpostgre.md)
- 50 - nubes_nextcloud (6 ops): [Nextcloud](50_nextcloud.md)
- 81 - nubes_superset (2 ops): [Apache Superset](81_superset.md)
- 82 - nubes_harbor (2 ops): [Container Registry](82_harbor.md)
- 88 - nubes_k8sZitiController (2 ops): [k8sZitiController](88_k8sziticontroller.md)
- 89 - nubes_flask (5 ops): [Web-сервер с фреймворком Flask](89_flask.md)
- 90 - nubes_postgres (11 ops): [PostgreSQL](90_postgres.md)
- 91 - nubes_redis (2 ops): [Redis](91_redis.md)
- 92 - nubes_mongodb (8 ops): [MongoDB](92_mongodb.md)
- 93 - nubes_rabbitmq (5 ops): [RabbitMQ](93_rabbitmq.md)
- 94 - nubes_lucee (7 ops): [Lucee](94_lucee.md)
- 95 - nubes_nodejs (6 ops): [NodeJS](95_nodejs.md)
- 96 - nubes_pgadmin (6 ops): [pgAdmin](96_pgadmin.md)
- 97 - nubes_nodered (2 ops): [NodeRed](97_nodered.md)
- 98 - nubes_http (6 ops): [Простой HTTP контейнер](98_http.md)
- 99 - nubes_gitea (5 ops): [Gitea](99_gitea.md)
- 100 - nubes_openwhisk (0 ops): [Serverless Openwhisk (openwhisk_tenant)](100_openwhisk.md)
- 110 - nubes_dnszone (2 ops): [DNS зона](110_dnszone.md)
- 111 - nubes_dnsrecord (3 ops): [DNS запись](111_dnsrecord.md)
- 112 - nubes_tenant (3 ops): [Тенант в Grafana](112_tenant.md)
- 113 - nubes_vcComplex (1 ops): [Быстрый старт](113_vccomplex.md)
- 114 - nubes_GiteaComplex (0 ops): [Комплексная услуга по созданию gitea](114_giteacomplex.md)
- 115 - nubes_mariadb (5 ops): [Mariadb](115_mariadb.md)
- 116 - nubes_kafka (11 ops): [ApacheKafka](116_kafka.md)
- 117 - nubes_nifi (3 ops): [Nifi](117_nifi.md)
- 119 - nubes_Akhq (5 ops): [Akhq](119_akhq.md)
- 120 - nubes_clickhouse (9 ops): [ClickHouse](120_clickhouse.md)
- 149 - nubes_valoTenant (5 ops): [VALO Cloud](149_valotenant.md)
- 150 - nubes_k8sSthutrvalCluster (7 ops): [Kubernetes кластер Штурвал](150_k8ssthutrvalcluster.md)