fix: stabilize Polygon config loading and sync

This commit is contained in:
Repinoid
2026-10-25 10:35:26 +03:00
parent ee35088dae
commit 3df89ec9e7
135 changed files with 6994 additions and 2381 deletions
+18 -6
View File
@@ -127,10 +127,16 @@ cfsParams:
- SSHFP
- svcOperationCfsParamId: 780
svcOperationCfsParam: recordInput
dataType: string
dataType: array-map-fixed
isRequired: true
defaultValue: ''
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
record:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 781
svcOperationCfsParam: recordName
dataType: string
@@ -160,12 +166,12 @@ cfsParams:
- NS
- SSHFP
- CAA
recordInput:
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordName:
recordInput:
dataType: string
defaultValue: ''
isRequired: true
@@ -205,10 +211,16 @@ cfsParams:
- SSHFP
- svcOperationCfsParamId: 786
svcOperationCfsParam: recordInput
dataType: string
dataType: array-map-fixed
isRequired: true
defaultValue: ''
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
record:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
254:
- 761
+67 -43
View File
@@ -2,7 +2,54 @@ name: mariadb
service_id: 115
service_display_name: Mariadb
service_short_name: mariadb
service_man: 'Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.<br/>Автоматическое резервное копирование, ручное восстановление.'
service_man: '# Инструкция по развертыванию MariaDB через платформу<br/><br/>## 1. Общая информация<br/><br/>MariaDB — реляционная база данных, совместимая с MySQL. Разворачивается через `mariadb-operator`
в Kubernetes.<br/><br/>### Доступные операции с кластером<br/><br/>* **create** — создание кластера<br/>* **delete** — удаление кластера<br/>* **suspend** — остановка кластера (под реально останавливается,
ресурсы не потребляются)<br/>* **resume** — запуск ранее остановленного кластера<br/>* **modify** — изменение параметров кластера<br/>* **reconcile** — синхронизация состояния инстанса с платформой<br/><br/>###
Доступные операции с базами данных<br/><br/>* **create_database** — создание базы данных<br/>* **delete_database** — удаление базы данных<br/><br/>### Доступные операции с пользователями<br/><br/>* **create_user**
— создание пользователя<br/>* **delete_user** — удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания кластера<br/><br/>### Платформа для развертывания (`startupConfiguration.resourceRealm`)<br/><br/>Среда,
в которой будет развёрнут кластер.<br/><br/>### Конфигурация ресурсов (`clusterConfiguration`)<br/><br/>JSON-объект:<br/>* `cpu` — квота CPU пода в миликорах (1000 = 1 vCPU). Пример: `500`<br/>* `memory`
— квота памяти пода в мегабайтах. Пример: `512`<br/>* `disk` — размер диска в гигабайтах. Пример: `10`<br/>* `replicas` — количество реплик. Сервис работает в режиме одного primary-узла (Galera выключена),
значение `0` эквивалентно остановке кластера.<br/><br/>### Версия MariaDB (`mariadbConfiguration.version`)<br/><br/>Поддерживаются только две версии: `8.4.0` и `9.4.0`.<br/><br/>### Внешний доступ (`accessConfiguration`)<br/><br/>JSON-объект:<br/>*
`masterIpSpace` — имя ipSpace для выделения внешнего IP. Укажите `no-needed`, если внешний адрес не требуется.<br/>* `masterAccessList` — список IP/подсетей, которым разрешён доступ к порту 3306 снаружи.
Пустой список — доступ не ограничен на уровне firewall (в рамках выделенного ipSpace).<br/><br/>### Резервное копирование (`backupConfiguration`)<br/><br/>JSON-объект:<br/>* `s3Uid` — идентификатор S3-пользователя/квоты
для бэкапов.<br/>* `schedule` — cron-выражение расписания бэкапов. По умолчанию `0 0 * * *` (раз в сутки в полночь).<br/>* `retain` — время хранения бэкапов **в часах** (не в днях!). По умолчанию `7`
— то есть 7 часов. При суточном расписании этого значения обычно недостаточно, чтобы между двумя бэкапами всегда оставалась хотя бы одна валидная копия — рекомендуется указывать `retain` явно, с запасом
(например `720` = 30 суток).<br/><br/>> **Важно:** расписание и срок хранения бэкапов задаются **только при создании кластера**. Оператор MariaDB не позволяет изменить cron-расписание бэкапа после создания
(поле `spec.schedule.cron` неизменяемо на уровне admission-вебхука самого оператора) — поэтому эти параметры недоступны для изменения через `modify`.<br/><br/>> **Восстановление из бэкапа пока не реализовано
как самостоятельная операция платформы.** Бэкапы физически хранятся в S3-бакете инстанса (`technicals3backup-<instanceUid>`, префикс `mariadb/backups/`). Если нужно восстановить данные из бэкапа — бэкап
нужно **скачать из S3 и применить к базе вручную** (например через `mariabackup`/`mariadb-backup` restore или соответствующий инструмент).<br/><br/>### Автомасштабирование диска (`autoscaleConfiguration`)<br/><br/>JSON-объект:<br/>*
`enabled` — включить автоматическое расширение диска при исчерпании места.<br/>* `quota` — максимальный размер диска, до которого разрешено автоматическое расширение (не может быть меньше `clusterConfiguration.disk`).<br/>*
`percent`, `schedule` — параметры триггера автомасштабирования.<br/><br/>---<br/><br/>## 3. Параметры модификации кластера<br/><br/>Все параметры модификации, кроме версии, можно как увеличивать, так
и уменьшать (кроме диска — см. ниже) — система подставит текущие сохранённые значения, если их не менять.<br/><br/>### Конфигурация ресурсов (`clusterConfiguration`)<br/><br/>* `cpu`, `memory` — можно
менять в любую сторону.<br/>* `disk` — можно **только увеличивать**, уменьшение уже выделенного размера не поддерживается.<br/>* `replicas` — `0` останавливает кластер тем же образом, что и `suspend`
(альтернативный способ временной остановки через `modify`).<br/><br/>### Версия MariaDB (`mariadbConfiguration.version`)<br/><br/>Можно только повышать версию (`8.4.0 → 9.4.0`). Попытка понизить версию
будет отклонена с явной ошибкой ещё до применения изменений.<br/><br/>### Внешний доступ (`accessConfiguration`)<br/><br/>Можно включить внешний доступ (было `no-needed` → указали реальный `masterIpSpace`),
изменить список разрешённых IP, либо полностью отключить внешний доступ (`masterIpSpace: no-needed`) — в этом случае внешний Service, DNS-запись и правило firewall будут корректно откреплены и удалены.<br/><br/>###
Резервное копирование<br/><br/>Не передаётся при модификации — расписание и срок хранения бэкапов фиксируются на этапе `create` (см. п.2).<br/><br/>---<br/><br/>## 4. Параметры создания базы данных (`create_database`)<br/><br/>###
Имя базы данных (`dbName`)<br/><br/>Строка с именем новой базы. Не может совпадать с зарезервированными системными именами: `mysql`, `sys`, `information_schema`, `performance_schema`. База с таким же
именем не должна уже существовать в кластере.<br/><br/>---<br/><br/>## 5. Параметры удаления базы данных (`delete_database`)<br/><br/>### Имя базы данных (`dbName`)<br/><br/>База должна существовать в
кластере. Удаление будет отклонено, если к базе всё ещё привязаны пользователи — сначала нужно снять доступ (`delete_user`) у всех пользователей, ссылающихся на эту базу.<br/><br/>---<br/><br/>## 6. Параметры
создания пользователя (`create_user`)<br/><br/>### Имя пользователя (`username`)<br/><br/>Не может быть `root`, `healthcheck` или `mariadb.sys` — эти имена зарезервированы платформой/оператором.<br/><br/>###
Пароль (`password`)<br/><br/>Пароль для подключения от имени создаваемого пользователя.<br/><br/>### Базы данных (`dbName`)<br/><br/>JSON-массив вида `[{"dbname": "имя_базы"}]` — список баз, к которым
выдаётся полный доступ (`ALL PRIVILEGES`). Все перечисленные базы должны уже существовать в кластере (создать заранее через `create_database`).<br/><br/>### Разрешённые хосты (`accessHosts`)<br/><br/>MySQL
host-паттерн, с которого разрешено подключение под этим пользователем (например `%` — без ограничений, или конкретная подсеть). Определяет `user@host` в самой MariaDB — если указать слишком узкое значение,
подключение снаружи ожидаемого диапазона будет отклонено сервером на уровне аутентификации, даже если сеть/firewall пропускают трафик.<br/><br/>---<br/><br/>## 7. Параметры удаления пользователя (`delete_user`)<br/><br/>###
Имя пользователя (`username`)<br/><br/>Пользователь должен существовать в кластере. `root`/`healthcheck`/`mariadb.sys` удалить нельзя.<br/><br/>---<br/><br/>## 8. Выходные параметры<br/><br/>### internalConnect<br/><br/>Внутренний
адрес для подключения из сервисов, работающих в том же кластере Kubernetes:<br/>```json<br/>{<br/> "master": {<br/> "dns": "<clusterResourceName>.<namespace>.svc.<domain>",<br/> "ip": null,<br/> "port":
3306<br/> }<br/>}<br/>```<br/><br/>### externalConnect<br/><br/>Присутствует в выходных данных, **только если** был запрошен внешний доступ (`accessConfiguration.masterIpSpace` отличен от `no-needed`).
Если внешний доступ не запрошен или был отключён через `modify` — этого блока не будет вовсе (пустой блок в состояние не пишется):<br/>```json<br/>{<br/> "master": {<br/> "dns": "write.<namespace>.<domain>",<br/> "ip":
"<внешний IP>",<br/> "port": 3306<br/> }<br/>}<br/>```<br/><br/>---<br/><br/>## 9. Пример подключения<br/><br/>### 9.1 Изнутри кластера / того же namespace<br/><br/>```bash<br/>mariadb -h <internalConnect.dns>
-P 3306 -u <username> -p<br/>```<br/><br/>### 9.2 Через port-forward<br/><br/>```bash<br/>kubectl port-forward svc/<clusterResourceName> 3306:3306 -n <namespace><br/>```<br/><br/>**Важно:** после `port-forward`
подключайтесь именно по `127.0.0.1`, а не `localhost`:<br/><br/>```bash<br/>mariadb -h 127.0.0.1 -P 3306 -u <username> -p<br/>```<br/><br/>Клиент `mysql`/`mariadb` при указании `-h localhost` **игнорирует
TCP/порт** и всегда пытается подключиться через локальный unix-сокет (`/var/lib/mysql/mysql.sock`), которого на вашей машине нет — подключение упадёт с `ERROR 2002 (HY000): Can''t connect to local server
through socket`. `127.0.0.1` форсирует реальное TCP-подключение. Также не забывайте `-P` (порт) с заглавной буквы — строчная `-p` относится к паролю.<br/><br/>### 9.3 Снаружи (внешний адрес)<br/><br/>```bash<br/>mariadb
-h <externalConnect.ip или externalConnect.dns> -P 3306 -u <username> -p<br/>```<br/><br/>Доступно только если при создании/модификации был указан реальный `masterIpSpace` и подключающийся IP входит в
`accessConfiguration.masterAccessList` (или список пуст).<br/><br/>Где:<br/>* `<username>` — имя пользователя<br/>* `<password>` — пароль пользователя<br/><br/>---<br/><br/>## 10. Дополнительная информация<br/><br/>*
Расписание бэкапов (`backupConfiguration.schedule`/`retain`) задаётся один раз при создании и не может быть изменено позже — ограничение самого `mariadb-operator`, а не платформы.<br/>* Версию MariaDB
можно только повышать, откат на более старую версию не поддерживается.<br/>* Размер диска можно только увеличивать.<br/>* `suspend` реально останавливает под (масштабирование StatefulSet в 0 реплик),
а не просто помечает кластер как приостановленный — расход ресурсов CPU/RAM/диска (кроме уже занятого диска) прекращается.<br/>* При отключении внешнего доступа через `modify` (`masterIpSpace: no-needed`)
внешний Service, DNS-запись и правило firewall удаляются, а `externalConnect` пропадает из выходных данных.<br/>* Самостоятельного восстановления из бэкапа (операции `restore`) пока нет. Бэкапы лежат
в S3 инстанса — восстановление данных в существующий кластер выполняется вручную, скачиванием и применением бэкапа самим владельцем инстанса.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -101,16 +148,16 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 880
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
@@ -131,7 +178,7 @@ cfsParams:
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
isModifiable: false
dataDescriptor:
s3Uid:
dataType: uuid
@@ -155,6 +202,14 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
@@ -179,31 +234,23 @@ cfsParams:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 734
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db-utkbjfp1
defaultValue: db-wpm05duv
isModifiable: false
- svcOperationCfsParamId: 735
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: user4qtyx9eo
defaultValue: userhucihd6b
isModifiable: false
- svcOperationCfsParamId: 736
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: j84crbfp
defaultValue: oe063z3u
isModifiable: false
- svcOperationCfsParamId: 737
svcOperationCfsParam: dbName
@@ -305,28 +352,6 @@ cfsParams:
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 886
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 887
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -391,7 +416,6 @@ cfsParamsByOp:
- 883
- 884
- 885
- 886
- 887
287: []
141: []
@@ -399,7 +423,7 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
mariadbConfiguration: '{"version": "9.4.0"}'
backupConfiguration: '{"s3Uid": "", "retain": 720, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"schedule": 0, "quota": 100, "percent": 10, "enabled": false}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
+22 -19
View File
@@ -2,21 +2,24 @@ name: kafka
service_id: 116
service_display_name: ApacheKafka
service_short_name: kafka
service_man: '# Инструкция по развертыванию Организация в 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/>### Идентификатор организации<br/>Уникальный
идентификатор созданной организации. Используется для всех дальнейших API-операций.<br/><br/>### Статус организации<br/>Отражает текущее состояние: active, suspended, modifying, deleting.<br/><br/>###
Параметры сети<br/>Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних
IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)**;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.<br/>-
Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок
и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.<br/><br/>'
service_man: "# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>Брокер сообщений Apache Kafka — это отказоустойчивая распределённая платформа для обмена\
\ сообщениями и потоковой обработки данных в реальном времени.<br/>Позволяет надёжно передавать события между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние,\
\ так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>-\
\ **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление\
\ топика<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/><br/>---<br/>## 2. Параметры\
\ развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в\
\ которой будет развернут кластер). Пример: `\tk8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество узлов (брокеров) в кластере Kafka<br/><br/>* **Квота (megabyte) памяти пода:**<br/>\
\ Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore ) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска\
\ для базы данных:**<br/> Размер диска для хранения данных в гигабайтах. Пример: `20`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для\
\ доступа к master-брокеру. Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>---<br/>##\
\ 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевыми из них являются:<br/><br/>**internalConnect** (выдаётся только при работе кластера\
\ по внутренним адресам)<br/>Внутренние эндпоинты для подключения из сервисов, развёрнутых внутри того же Kubernetes-кластера.<br/>```yaml<br/>internalConnect:<br/> bootstrap:<br/> fqdn: \"<serviceName>-kafka-tls-bootstrap.<namespace>.svc.<clusterDomain>\"\
<br/> port: 9093<br/> brokers:<br/> broker-1:<br/> fqdn: \"<serviceName>-<serviceName>-pool-0.<serviceName>-kafka-brokers.<namespace>.svc.<clusterDomain>\"<br/> port: 9093<br/>```<br/><br/>**externalConnect**\
\ (выдаётся только при выделении внешнего IP)<br/>Внешние эндпоинты, зарегистрированные в DNS.<br/>```yaml<br/>externalConnect:<br/> bootstrap:<br/> fqdn: \"bootstrap.<namespace>.<dnsZone>\"<br/>\
\ port: 9093<br/> brokers:<br/> broker-1:<br/> fqdn: \"broker-1.<namespace>.<dnsZone>\"<br/> port: 9093<br/>```<br/><br/>Заполняется **только один** из параметров:<br/>- при внешней аллокации\
\ (`loadbalancer`) — `externalConnect`, `internalConnect` остаётся пустым;<br/>- при внутреннем режиме — `internalConnect`, `externalConnect` остаётся пустым.<br/><br/>Для подключения используются следующие\
\ порты:<br/><br/>* 9092 — внутренний нешифрованный доступ (plain).<br/>* 9093 — внутренний и внешний доступ по TLS, с обязательной TLS-аутентификацией.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Для\
\ создания топиков, пользователей и управления ими, а также для интеграции с кластерами Kafka используйте соответствующие сервисы и раздел \"Облачные сервисы\".<br/>---"
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -209,17 +212,17 @@ cfsParams:
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
@@ -229,7 +232,7 @@ cfsParams:
- '7'
disk:
dataType: integer > 0
defaultValue: ''
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1088
+55 -55
View File
@@ -93,20 +93,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '1000'
@@ -127,6 +113,20 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 839
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -134,16 +134,16 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 840
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
@@ -213,20 +213,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
@@ -245,6 +231,20 @@ cfsParams:
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 851
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
@@ -311,6 +311,16 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
@@ -335,16 +345,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 845
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
@@ -431,15 +431,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: false,true
@@ -460,6 +451,15 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 850
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
@@ -511,10 +511,10 @@ cfsParamsByOp:
182: []
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"shards": 1, "disk": 10, "cpu": 1000, "memory": 2048, "replicas": 1}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1, "disk": 10, "shards": 1}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
clickhouseKeeperConfiguration: '{"cpu": 500, "memory": 512, "replicas": 0}'
clickhouseConfiguration: '{"version": "25.10"}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"quota": 100, "percent": 10, "enabled": false, "schedule": 0}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
clickhouseFilesConfiguration: '{"path": "something.xml", "xmlConfig": "<clickhouse></clickhouse>"}'
@@ -19,6 +19,11 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
clusterName:
dataType: string
defaultValue: k8s-8bpzagxw
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: ngcloud.ru
@@ -26,9 +31,14 @@ cfsParams:
isModifiable: false
valueList:
- ngcloud.ru
clusterName:
providerVdc:
dataType: string
defaultValue: example-cgvxzckk
defaultValue: ''
isRequired: true
isModifiable: false
networkProvider:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 772
@@ -40,10 +50,11 @@ cfsParams:
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
defaultValue: 2.14.0
isRequired: true
isModifiable: false
valueList:
- 2.14.0
- 2.13.1
- 2.12.1
- 2.11.0
@@ -54,15 +65,6 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
sizingPolicy:
dataType: string
defaultValue: ''
@@ -75,6 +77,15 @@ cfsParams:
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 774
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
@@ -82,6 +93,18 @@ cfsParams:
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-wngkcnbs
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
@@ -92,18 +115,32 @@ cfsParams:
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-wqtdfsen
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
autoscale:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- '{}'
- 'false'
- 'true'
autoscaleMin:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
autoscaleMax:
dataType: integer > 0
defaultValue: '3'
isRequired: true
isModifiable: false
labelDeck:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
- 'false'
- svcOperationCfsParamId: 775
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -111,11 +148,6 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
@@ -135,6 +167,11 @@ cfsParams:
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
258:
- 771
@@ -143,8 +180,8 @@ cfsParamsByOp:
- 774
- 775
stateParams:
startupConfiguration: '{"resourceRealm": "ngcloud.ru", "clusterName": "example-cgvxzckk"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
controlPlaneConfiguration: '{"count": 1, "sizingPolicy": "", "sizingDisk": 50}'
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-wqtdfsen", "sizingPolicy": ""}'
accessConfiguration: '{"accessIpListIngress": "[]", "needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true}'
startupConfiguration: '{"clusterName": "k8s-8bpzagxw", "resourceRealm": "ngcloud.ru", "providerVdc": "", "networkProvider": ""}'
clusterConfiguration: '{"appVersion": "2.14.0"}'
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"groupName": "workers-wngkcnbs", "sizingPolicy": "", "sizingDisk": 50, "count": 2, "autoscale": false, "autoscaleMin": 2, "autoscaleMax": 3, "labelDeck": true}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
+16 -16
View File
@@ -133,22 +133,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
ffPublicLink:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: ''
@@ -191,6 +175,22 @@ cfsParams:
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 660
svcOperationCfsParam: s3Storage
dataType: integer > 0
+140 -19
View File
@@ -2,7 +2,17 @@ name: k8s_sthutrval_cluster
service_id: 150
service_display_name: Kubernetes кластер Штурвал
service_short_name: k8sSthutrvalCluster
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
service_man: '# Развёртывание Kubernetes: ограничения и предварительный чек-лист<br/><br/>> **Внимание:** перед началом развёртывания кластера Kubernetes убедитесь, что выполнены все описанные ниже условия.
Несоблюдение порядка шагов может привести к ошибкам при создании кластера.<br/><br/>---<br/><br/>## Ограничения при развёртывании<br/><br/>| Ограничение | Статус |<br/>|---|---|<br/>| 1 кластер = 1 vDC
| Действует (будет исправлено в ближайшее время) |<br/><br/>---<br/><br/>## Предварительный чек-лист<br/><br/>Перед установкой кластера Kubernetes необходимо последовательно выполнить следующие шаги.<br/><br/>###
1. Создать организацию в Cloud Director<br/><br/>- Перейдите в услугу **Организация в Cloud Director**.<br/>- Создайте организацию.<br/><br/>### 2. Создать виртуальный датацентр (vDC)<br/><br/>- Перейдите
в услугу **Виртуальный датацентр (vDC)**.<br/>- Создайте vDC.<br/>- Выделите **достаточно ресурсов для разворачивания _всех_ нод** кластера.<br/><br/>### 3. Создать Edge (сетевой шлюз периметра)<br/><br/>-
Перейдите в услугу **Сетевой шлюз периметра (Edge)**.<br/>- Создайте Edge.<br/>- Обязательно:<br/> - Включить **ALB**.<br/> - Установить **Кол-во VS на AVI ≥ 3**.<br/><br/>### 4. Добавить внешние адреса
в организации<br/><br/>- Вернитесь в **Организация в Cloud Director**.<br/>- Выполните операцию **Modify**.<br/>- Добавьте **3 внешних адреса**.<br/>- Количество `ipSpaces` значения не имеет, важно чтобы
суммарно было 3 адреса.<br/><br/>### 5. Настроить SNAT для виртуальных машин<br/><br/>- Вернитесь в **Сетевой шлюз периметра (Edge)**.<br/>- Выполните операцию **Modify**.<br/>- Выберите доступный `ipSpaceName`.<br/>-
Это будет **SNAT для виртуальных машин**.<br/><br/>### 6. Развернуть кластер Kubernetes<br/><br/>- Только **после выполнения всех шагов выше** переходите к услуге **Kubernetes кластер Штурвал**.<br/>-
Начните разворачивание кластера.<br/><br/>---<br/><br/>## Минимальные требования к кластеру<br/><br/>| Параметр | Значение |<br/>|---|---|<br/>| Мастер-ноды | минимум **1** |<br/>| Воркер-ноды | минимум
**1** |<br/>| CPU (на ноду) | **4 vCPU** |<br/>| RAM (на ноду) | **8 GB** |<br/>| Диск (на ноду) | **50 GB** |<br/><br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -61,9 +71,65 @@ cfsParams:
isModifiable: false
clusterName:
dataType: string
defaultValue: example-umab2vgx
defaultValue: example-yn5ajpm3
isRequired: true
isModifiable: false
exLogging:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
exMonitoring:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
exLocalCsi:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
exVip:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
exUpdate:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
exIngress:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
exNamedCsi:
dataType: boolean
defaultValue: 'true'
isRequired: false
isModifiable: false
valueList:
- 'true'
- 'false'
- svcOperationCfsParamId: 751
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
@@ -101,7 +167,7 @@ cfsParams:
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-dum0vgn5
defaultValue: workers-smfsut8s
isRequired: true
isModifiable: false
sizingPolicy:
@@ -121,6 +187,32 @@ cfsParams:
defaultValue: '2'
isRequired: true
isModifiable: false
autoscale:
dataType: boolean
defaultValue: 'false'
isRequired: false
isModifiable: false
valueList:
- 'false'
- 'true'
autoscaleMin:
dataType: integer > 0
defaultValue: '2'
isRequired: false
isModifiable: false
autoscaleMax:
dataType: integer > 0
defaultValue: '3'
isRequired: false
isModifiable: false
labelDeck:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
- 'false'
- svcOperationCfsParamId: 753
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -128,11 +220,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
@@ -152,6 +239,11 @@ cfsParams:
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 755
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -161,10 +253,11 @@ cfsParams:
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
defaultValue: 2.14.0
isRequired: true
isModifiable: false
valueList:
- 2.14.0
- 2.13.1
- 2.12.1
- 2.11.0
@@ -205,6 +298,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- 2.14.0
- 2.13.1
- 2.12.1
- 2.11.0
@@ -243,14 +337,9 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-tr9wauz1
defaultValue: workers-rhkpbeti
isRequired: true
isModifiable: false
sizingPolicy:
@@ -265,6 +354,37 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
autoscale:
dataType: boolean
defaultValue: ''
isRequired: false
isModifiable: false
valueList:
- 'false'
- 'true'
autoscaleMin:
dataType: integer > 0
defaultValue: ''
isRequired: false
isModifiable: false
autoscaleMax:
dataType: integer > 0
defaultValue: ''
isRequired: false
isModifiable: false
labelDeck:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'true'
- 'false'
- svcOperationCfsParamId: 759
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -317,8 +437,9 @@ cfsParamsByOp:
174: []
173: []
stateParams:
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-umab2vgx"}'
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-yn5ajpm3", "exLogging": true, "exMonitoring": true, "exLocalCsi": true, "exVip": true, "exUpdate": true, "exIngress": true,
"exNamedCsi": true}'
controlPlaneConfiguration: '{"sizingPolicy": "[]", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"groupName": "workers-dum0vgn5", "sizingPolicy": "", "sizingDisk": 50, "count": 2}'
accessConfiguration: '{"accessIpListIngress": "[]", "needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
workerConfiguration: '{"groupName": "workers-smfsut8s", "sizingPolicy": "", "sizingDisk": 50, "count": 2, "autoscale": false, "autoscaleMin": 2, "autoscaleMax": 3, "labelDeck": true}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.14.0"}'
+366
View File
@@ -0,0 +1,366 @@
name: k8s_openbao
service_id: 151
service_display_name: Vault
service_short_name: k8sOpenbao
service_man: '# Инструкция по развертыванию Хранилища секретов через платформу<br/><br/>## 1. Общая информация<br/>Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных
(секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.<br/>В качестве приложения используется открытый проект OpenBao
с поддержкой кластерного режима RAFT.<br/><br/>### Доступные операции<br/>**create** — Создание хранилища секретов и инициализация кластера.<br/>**delete** — Удаление хранилища секретов с полной очисткой
всех связанных сущностей.<br/>**modify** — Изменение параметров развернутого хранилища секретов.<br/>**suspend** — Приостановка работы кластера без удаления Persistent Volume.<br/>**resume** — Возобновление
работы кластера с автоматическим unseal всех нод.<br/>**restart** — Поочередный перезапуск нод с последующим подключением в кластер.<br/>**create_kv** — Создание Key/Value хранилища версии V2.<br/>**delete_kv**
— Удаление Key/Value хранилища со всеми содержащимися секретами.<br/>**create_secrets** — Создание секрета внутри Key/Value хранилища.<br/>**delete_secrets** — Удаление секрета из Key/Value хранилища.<br/>**update_secrets**
— Обновление значения секрета.<br/>**recovery_secrets** — Откат секрета к указанной версии.<br/>**create_role** — Создание роли для управления Key/Value хранилищем или секретами.<br/>**update_role** —
Обновление параметров роли.<br/>**delete_role** — Удаление роли доступа.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа
для развертывания<br/>Описание: Кластер Kubernetes, в котором будет развернуто приложение.<br/>Формат значения: имя Kubernetes-кластера.<br/><br/>### Имя домена<br/>Описание: Доменное имя сервиса. При
указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.<br/>Формат значения: secrets.domain.com / mysecretdomain.<br/><br/>### Кол-во реплик<br/>Описание:
Количество узлов в кластере.<br/>Формат значения: целое число.<br/><br/>### Квота ядра пода<br/>Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).<br/>Формат значения:
целое число.<br/><br/>### Квота памяти пода<br/>Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.<br/>Формат значения: целое число.<br/><br/>### Размер диска под хранение секретов<br/>Описание:
Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes<br/>Формат значения: целое число.<br/><br/>### Версия OpenBao<br/>Описание:
Версия OpenBao для развертывания сервиса.<br/>Формат значения: выбор из предоставленного списка версий.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Кол-во
реплик: 2.<br/>Квота ядра пода: 200.<br/>Квота памяти пода: 256.<br/>Размер диска под хранение секретов: 1.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>### Промышленное окружение<br/>Кол-во
реплик: от 3.<br/>Квота ядра пода: от 1000.<br/>Квота памяти пода: от 1024.<br/>Размер диска под хранение секретов: от 10.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>---<br/><br/>## 4.
Выходные параметры<br/>Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.<br/>Настройки самого хранилище (сайзинг, объемы)
— параметры ресурсов и хранилища данных, примененные к сервису.<br/>Статус кластера (running / suspended) — текущее состояние работы кластера.<br/>url для подключения к веб — адрес веб-интерфейса сервиса.<br/><br/>---<br/><br/>##
5. Дополнительная информация<br/>При удалении хранилища все данные и настройки безвозвратно удаляются.<br/>При использовании доменного имени требуется корректная настройка DNS.<br/>Операции управления
секретами и ролями выполняются только после успешного создания хранилища.<br/>Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера<br/>Правило
выше не относится к операции `delete_kv` / `delete_secrets` / `delete_role`'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 210
operation: create
kind: instance
action: create
- svcOperationId: 212
operation: create_kv
kind: subresource
action: create
- svcOperationId: 237
operation: create_policy
kind: subresource
action: create
- svcOperationId: 214
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 231
operation: delete
kind: instance
action: delete
- svcOperationId: 213
operation: delete_kv
kind: subresource
action: delete
- svcOperationId: 239
operation: delete_policy
kind: subresource
action: delete
- svcOperationId: 233
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 211
operation: modify
kind: instance
action: modify
- svcOperationId: 236
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 232
operation: recovery_secrets
kind: subresource
action: recovery
- svcOperationId: 216
operation: resume
kind: instance
action: resume
- svcOperationId: 215
operation: suspend
kind: instance
action: suspend
- svcOperationId: 238
operation: update_policy
kind: subresource
action: update
- svcOperationId: 230
operation: update_secrets
kind: subresource
action: update
stateOut:
kvs: {}
policies: {}
secrets: {}
cfsParams:
- svcOperationCfsParamId: 663
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: k8s-4-ext-nubes-ru
isModifiable: false
valueList:
- k8s-4-ext-nubes-ru
- svcOperationCfsParamId: 664
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 665
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '3'
isModifiable: true
- svcOperationCfsParamId: 666
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 667
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 668
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: 2.5.2
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 669
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: bao-ozea0nxy
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-ljwxn20b
isModifiable: false
- svcOperationCfsParamId: 728
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
capabilities:
dataType: json
defaultValue: '["read", "list"]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 729
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: policy-idnyeyeg
isModifiable: false
- svcOperationCfsParamId: 677
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 678
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: path/to/mysecret
isModifiable: false
- svcOperationCfsParamId: 679
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 676
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 732
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 726
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 727
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 670
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 671
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 672
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 673
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 674
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 723
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 724
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 725
svcOperationCfsParam: secretVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 730
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 731
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
capabilities:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 719
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 720
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 721
svcOperationCfsParam: needFullUpdateSecret
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 722
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
210:
- 663
- 664
- 665
- 666
- 667
- 668
- 669
212:
- 675
237:
- 728
- 729
214:
- 677
- 678
- 679
231: []
213:
- 676
239:
- 732
233:
- 726
- 727
211:
- 670
- 671
- 672
- 673
- 674
236: []
232:
- 723
- 724
- 725
216: []
215: []
238:
- 730
- 731
230:
- 719
- 720
- 721
- 722
stateParams:
resourceRealm: k8s-4-ext-nubes-ru
resourceCPU: '500'
resourceInstances: '3'
resourceMemory: '512'
resourceDisk: '10'
appVersion: 2.5.2
domain: bao-ozea0nxy
+248
View File
@@ -0,0 +1,248 @@
name: llm_ai
service_id: 163
service_display_name: ML Улей
service_short_name: llmAi
service_man: '## 1. Общая информация<br/><br/>LLMaaS (Large Language Model as a Service) — это сервис для доступа к языковым моделям через OpenAI-совместимое API.<br/>Платформа позволяет создавать организации
(тенанты), команды, выпускать и управлять API-ключами, устанавливать лимиты на использование.<br/><br/>### Ограничение: одна организация на контрагента<br/><br/>На одного контрагента может быть создана
**только одна организация** в LLMaaS.<br/>Повторная попытка создать организацию для того же контрагента завершится ошибкой.<br/><br/>### Возможные ошибки и как их обрабатывать<br/><br/>При работе с сервисом
могут возникнуть типовые ошибки. Ниже описано, как их распознать и что делать.<br/><br/>| Ошибка | Когда возникает | Что делать |<br/>|--------|-----------------|------------|<br/>| `Организация в LLMaaS
уже привязана к контрагенту <contragentCode>` | При операции `create`, если организация для данного контрагента уже существует | На одного контрагента допускается только одна организация. Если нужно изменить
существующую организацию, используйте операции управления командами и ключами |<br/>| `Не хватает нужного гранта. Примените реконсиляцию для данного инстанса` | При операциях `create_team`, `modify_team`,
если модель не выдана организации на Layer 1 | Запустите операцию `reconcile` для данного инстанса. Она обновит список моделей, доступных организации, после чего повторите исходную операцию |<br/>| `Лимиты
API-ключа не могут превышать лимиты команды` | При операциях `create_secrets`, `update_secrets` | Уменьшите значения `RPM` и/или `TPM` ключа до уровня команды или увеличьте лимиты самой команды через
`modify_team` |<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create** — Создание организации в LLMaaS<br/>- **delete** — Удаление организации<br/><br/>- **create_team** —
Создание команды внутри организации<br/>- **modify_team** — Редактирование команды (модели, RPM, TPM)<br/>- **delete_team** — Удаление команды<br/><br/>- **create_secrets** — Создание API-ключа<br/>-
**update_secrets** — Обновление параметров API-ключа<br/>- **delete_secrets** — Удаление API-ключа<br/><br/>- **reconcile** — Обновление списка моделей, доступных организации<br/><br/>---<br/><br/>##
2. Параметры создания организации<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании организации:<br/><br/>* **Платформа для развертывания**<br/> Выбирается автоматически, изменять
не нужно.<br/><br/>## 3. Параметры создания команды<br/><br/>* **Имя команды**<br/> Уникальное имя команды в рамках организации.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели,
доступной для команды.<br/> Пример: `gpt-oss-120b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Максимальное количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в
минуту (TPM)**<br/> Максимальное количество токенов (входящих + исходящих) в минуту.<br/> Пример: `100000`<br/><br/>---<br/><br/>## 4. Параметры редактирования команды<br/><br/>Для существующей команды
можно изменить:<br/><br/>* **Модель**<br/> Новая модель для команды.<br/> Пример: `gpt-oss-20b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>*
**Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>---<br/><br/>## 5. Параметры создания API-ключа<br/><br/>Ниже перечислены параметры, которые необходимо указать
при создании API-ключа:<br/><br/>* **Имя ключа**<br/> Уникальное имя ключа в рамках организации.<br/> Пример: `prod-key`<br/><br/>* **Команда**<br/> Имя команды для привязки ключа. Если не указано
— ключ привязывается к команде `main`.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для данного ключа.<br/> Пример: `gpt-oss-120b`<br/><br/>* **Лимит запросов в минуту
(RPM)**<br/> Максимальное количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих + исходящих) в минуту.<br/> Пример:
`100000`<br/><br/>**Важно:** Лимиты API-ключа не могут превышать лимиты команды, к которой он привязан.<br/>При превышении операция будет отклонена с ошибкой.<br/>Перед созданием ключа убедитесь, что
`RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/><br/>---<br/><br/>## 6. Параметры обновления API-ключа<br/><br/>Для уже существующего ключа можно изменить параметры. Все параметры являются опциональными:<br/><br/>*
**Имя ключа**<br/> Имя обновляемого ключа.<br/> Пример: `prod-key`<br/><br/>* **Модель**<br/> Новое название модели.<br/> Пример: `gpt-oss-20b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Новое
значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>**Важно:** При обновлении лимитов API-ключа новые значения не могут
превышать лимиты команды.<br/>Если указать значения выше командных, операция завершится ошибкой.<br/>Указывайте `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/>Команда определяется автоматически по стейту
услуги — изменить привязку к другой команде через эту операцию нельзя.<br/><br/>---<br/><br/>## 7. Параметры удаления API-ключа<br/><br/>* **Команда**<br/> Имя команды, к которой привязан ключ.<br/> Пример:
`production`<br/><br/>* **Имя ключа**<br/> Имя удаляемого ключа.<br/> Пример: `prod-key`<br/><br/>---<br/><br/>## 8. Параметры удаления команды<br/><br/>* **Имя команды**<br/> Имя удаляемой команды.<br/> Пример:
`production`<br/><br/>---<br/><br/>## 9. Параметры удаления организации<br/><br/>Удаление организации не требует дополнительных параметров — удаляется вся организация со всеми командами и ключами.<br/><br/>---<br/><br/>##
10. Выходные параметры<br/><br/>После успешного создания организации платформа возвращает:<br/><br/>* **connectionUrl**<br/> URL для доступа к inference API (OpenAI-совместимый).<br/> Пример: `https://api.aillm.ru`<br/><br/>---<br/><br/><br/>##
11. Пример использования API<br/><br/>После получения API-ключа клиент может обращаться к LLMaaS напрямую:<br/><br/>**Запрос к chat completions:**<br/><br/>```bash<br/>curl https://api.aillm.ru/v1/chat/completions
\<br/> -H "Authorization: Bearer sk-..." \<br/> -H "Content-Type: application/json" \<br/> -d ''{<br/> "model": "gpt-oss-120b",<br/> "messages": [<br/> {"role": "user", "content": "Привет!"}<br/> ]<br/> }''<br/>```<br/><br/>**Получение
списка доступных моделей:**<br/><br/>```bash<br/>curl https://api.aillm.ru/v1/models \<br/> -H "Authorization: Bearer sk-..."<br/>```<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 271
operation: create
kind: instance
action: create
- svcOperationId: 274
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 278
operation: create_team
kind: subresource
action: create
- svcOperationId: 273
operation: delete
kind: instance
action: delete
- svcOperationId: 275
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 280
operation: delete_team
kind: subresource
action: delete
- svcOperationId: 279
operation: modify_team
kind: subresource
action: modify
- svcOperationId: 412
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 277
operation: update_secrets
kind: subresource
action: update
stateOut:
secrets: {}
teams: {}
cfsParams:
- svcOperationCfsParamId: 826
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: llmAi.aillm.ru
isModifiable: false
valueList:
- llmAi.aillm.ru
- svcOperationCfsParamId: 833
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 834
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 835
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 857
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 859
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 858
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 860
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 861
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 862
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 836
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 876
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 868
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 864
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 865
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 873
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 874
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 852
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 853
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 854
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 855
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 875
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
271:
- 826
274:
- 833
- 834
- 835
- 857
- 859
278:
- 858
- 860
- 861
- 862
273: []
275:
- 836
- 876
280:
- 868
279:
- 864
- 865
- 873
- 874
412: []
277:
- 852
- 853
- 854
- 855
- 875
stateParams:
resourceRealm: llmAi.aillm.ru
+9 -1
View File
@@ -73,6 +73,12 @@ cfsParams:
valueList:
- iaas
- saas
- svcOperationCfsParamId: 1125
svcOperationCfsParam: organizationSuffix
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 871
svcOperationCfsParam: admins
dataType: array-map-fixed
@@ -110,7 +116,7 @@ cfsParams:
isRequired: true
isModifiable: false
count:
dataType: integer > 0
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
@@ -118,6 +124,7 @@ cfsParamsByOp:
136:
- 418
- 556
- 1125
283:
- 871
137: []
@@ -131,3 +138,4 @@ cfsParamsByOp:
stateParams:
resourceRealm: ngcloud.ru
organizationType: iaas
organizationSuffix: ''
+26 -26
View File
@@ -98,12 +98,12 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
secret:
subparam2:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
subparam2:
secret:
dataType: string
defaultValue: ''
isRequired: false
@@ -127,13 +127,6 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: '1'
@@ -161,6 +154,13 @@ cfsParams:
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isModifiable: false
valueList:
- abracadabra
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
@@ -168,6 +168,20 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
param1:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
@@ -188,20 +202,6 @@ cfsParams:
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
- svcOperationCfsParamId: 863
svcOperationCfsParam: arr
dataType: array
@@ -304,9 +304,9 @@ stateParams:
whereFail: '1'
resourceRealm: ''
bodymessage: ''
mapExample: '{"subparam1": "", "secret": "", "subparam2": ""}'
mapExample: '{"subparam1": "", "subparam2": "", "secret": ""}'
jsonExample: ''
nestedRefExample: ''
mapFixed: '{"minStr1": "abracadabra", "param1": 1, "param2": "1", "param3": 1, "bol1": false}'
arrayMapFixedExample: '{"param3": 1, "bol1": false, "minStr1": "", "param1": 0, "param2": ""}'
mapFixed: '{"param1": 1, "param2": "1", "param3": 1, "bol1": false, "minStr1": "abracadabra"}'
arrayMapFixedExample: '{"param1": 0, "param2": "", "param3": 1, "bol1": false, "minStr1": ""}'
arr: ''
+57 -12
View File
@@ -58,13 +58,13 @@ cfsParams:
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
isModifiable: true
- svcOperationCfsParamId: 335
svcOperationCfsParam: providerVdc
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
isModifiable: true
- svcOperationCfsParamId: 361
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
@@ -79,36 +79,50 @@ cfsParams:
isModifiable: false
size:
dataType: integer > 0
defaultValue: '100'
defaultValue: '2000'
isRequired: true
isModifiable: false
isDefaultStorageProfile:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 397
svcOperationCfsParam: cpuGuaranteed
dataType: integer > 0
dataType: integer >= 0
isRequired: true
defaultValue: '20'
defaultValue: '0'
isModifiable: false
valueList:
- '20'
- '0'
- '50'
- '80'
- svcOperationCfsParamId: 557
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: '10'
defaultValue: '80'
isModifiable: true
- svcOperationCfsParamId: 558
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: '20'
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 746
svcOperationCfsParam: networkProvider
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1130
svcOperationCfsParam: suffixName
dataType: string
isRequired: false
defaultValue: xobcwf4u
isModifiable: false
- svcOperationCfsParamId: 560
svcOperationCfsParam: cpuAllocated
@@ -139,6 +153,32 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
isDefaultStorageProfile:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 1158
svcOperationCfsParam: organizationUid
dataType: uuid
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1159
svcOperationCfsParam: networkProvider
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1160
svcOperationCfsParam: providerVdc
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
9:
- 30
@@ -148,19 +188,24 @@ cfsParamsByOp:
- 557
- 558
- 746
- 1130
24: []
112:
- 560
- 561
- 562
- 1158
- 1159
- 1160
250: []
172: []
171: []
stateParams:
organizationUid: ''
providerVdc: ''
storageConfig: '{"name": "", "size": 100}'
cpuGuaranteed: '20'
cpuAllocated: '10'
memAllocated: '20'
storageConfig: '{"name": "", "size": 2000, "isDefaultStorageProfile": false}'
cpuGuaranteed: '0'
cpuAllocated: '80'
memAllocated: '200'
networkProvider: ''
suffixName: xobcwf4u
+47
View File
@@ -88,6 +88,28 @@ cfsParams:
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1110
svcOperationCfsParam: routedNetConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
ipAddrPool:
dataType: string
defaultValue: 10.10.102.0/24
isRequired: true
isModifiable: false
mainDns:
dataType: string
defaultValue: 81.22.46.22
isRequired: true
isModifiable: false
secondDns:
dataType: string
defaultValue: 185.247.187.77
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 368
svcOperationCfsParam: needEnableAVI
dataType: boolean
@@ -115,6 +137,28 @@ cfsParams:
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1112
svcOperationCfsParam: routedNetConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
ipAddrPool:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
mainDns:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
secondDns:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
10:
- 8
@@ -123,12 +167,14 @@ cfsParamsByOp:
- 621
- 622
- 825
- 1110
25: []
111:
- 368
- 369
- 372
- 856
- 1112
252: []
stateParams:
vdcUid: ''
@@ -137,3 +183,4 @@ stateParams:
vdcType: vdc
vdcGroupUid: ''
qosProfile: ''
routedNetConfiguration: '{"ipAddrPool": "10.10.102.0/24", "mainDns": "81.22.46.22", "secondDns": "185.247.187.77"}'
+2 -2
View File
@@ -48,7 +48,7 @@ cfsParams:
svcOperationCfsParam: vappName
dataType: string
isRequired: true
defaultValue: es1fsp9q
defaultValue: 9zrw3ba0
isModifiable: false
- svcOperationCfsParamId: 623
svcOperationCfsParam: vdcUid
@@ -66,5 +66,5 @@ cfsParamsByOp:
208: []
stateParams:
nsxtUid: ''
vappName: es1fsp9q
vappName: 9zrw3ba0
vdcUid: ''
+84 -18
View File
@@ -96,9 +96,9 @@ cfsParams:
isModifiable: true
- svcOperationCfsParamId: 413
svcOperationCfsParam: accessIpList
dataType: json
dataType: array
isRequired: false
defaultValue: ''
defaultValue: '["0.0.0.0/0"]'
isModifiable: true
- svcOperationCfsParamId: 414
svcOperationCfsParam: imageVm
@@ -126,10 +126,34 @@ cfsParams:
isModifiable: false
- svcOperationCfsParamId: 448
svcOperationCfsParam: accessPortList
dataType: string
dataType: array-map-fixed
isRequired: true
defaultValue: '["22"]'
defaultValue: ''
isModifiable: true
dataDescriptor:
port:
dataType: string
defaultValue: '22'
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: all
isRequired: true
isModifiable: false
valueList:
- tcp
- udp
- all
- svcOperationCfsParamId: 1118
svcOperationCfsParam: sameSnat
dataType: boolean
isRequired: false
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 493
svcOperationCfsParam: vmCpu
dataType: integer > 0
@@ -154,11 +178,6 @@ cfsParams:
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 497
svcOperationCfsParam: accessIpList
dataType: json
@@ -167,10 +186,34 @@ cfsParams:
isModifiable: true
- svcOperationCfsParamId: 498
svcOperationCfsParam: accessPortList
dataType: json
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
port:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: all
isRequired: true
isModifiable: false
valueList:
- tcp
- udp
- all
- svcOperationCfsParamId: 1119
svcOperationCfsParam: sameSnat
dataType: boolean
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 509
svcOperationCfsParam: vmName
dataType: string
@@ -201,11 +244,6 @@ cfsParams:
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 514
svcOperationCfsParam: accessIpList
dataType: json
@@ -242,10 +280,34 @@ cfsParams:
isModifiable: true
- svcOperationCfsParamId: 520
svcOperationCfsParam: accessPortList
dataType: json
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
port:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: all
isRequired: true
isModifiable: false
valueList:
- tcp
- udp
- all
- svcOperationCfsParamId: 1123
svcOperationCfsParam: sameSnat
dataType: boolean
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 'false'
- 'true'
cfsParamsByOp:
132:
- 407
@@ -260,6 +322,7 @@ cfsParamsByOp:
- 416
- 417
- 448
- 1118
133: []
159:
- 493
@@ -268,6 +331,7 @@ cfsParamsByOp:
- 496
- 497
- 498
- 1119
286: []
164:
- 509
@@ -281,6 +345,7 @@ cfsParamsByOp:
- 517
- 518
- 520
- 1123
135: []
134: []
stateParams:
@@ -290,9 +355,10 @@ stateParams:
vmRam: '1'
vmDisk: ''
ipSpaceName: ''
accessIpList: ''
accessIpList: '["0.0.0.0/0"]'
imageVm: ''
cloudInit: ''
userLogin: myuser
userPublicKey: ''
accessPortList: '["22"]'
accessPortList: '{"port": "22", "type": "all"}'
sameSnat: 'false'
+16 -16
View File
@@ -44,11 +44,6 @@ cfsParams:
defaultValue: '100'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '128'
@@ -59,6 +54,11 @@ cfsParams:
defaultValue: '1'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 814
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -90,7 +90,7 @@ cfsParams:
- service
domain:
dataType: string
defaultValue: abracadabra-g2byllee
defaultValue: abracadabra-am1z2wlk
isRequired: true
isModifiable: false
masterIpSpace:
@@ -125,13 +125,13 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
disk:
dataType: integer >= 0
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
disk:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
@@ -165,13 +165,13 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
@@ -193,6 +193,6 @@ cfsParamsByOp:
98: []
97: []
stateParams:
clusterConfiguration: '{"cpu": 100, "disk": 5, "memory": 128, "replicas": 1}'
clusterConfiguration: '{"cpu": 100, "memory": 128, "replicas": 1, "disk": 5}'
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
accessConfiguration: '{"type": "ingress", "domain": "abracadabra-g2byllee", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
accessConfiguration: '{"type": "ingress", "domain": "abracadabra-am1z2wlk", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+102 -60
View File
@@ -2,7 +2,49 @@ name: nextcloud
service_id: 50
service_display_name: Nextcloud
service_short_name: nextcloud
service_man: 'Ресурсная платформа: k8s. Автоматизация: helm chart'
service_man: '# Инструкция по развертыванию Nextcloud через платформу<br/><br/>## 1. Общая информация<br/><br/>Nextcloud — платформа для хранения и совместной работы с файлами. Разворачивается в K8s через
Helm-чарт `nextcloud/nextcloud`.<br/><br/>Сервис **не самодостаточен** — для создания необходимы заранее развёрнутые в той же ресурсной платформе:<br/><br/>* **PostgreSQL (k8s)** — база данных Nextcloud.
У СУБД должен быть выставлен параметр `sslRequired: false`.<br/>* **Redis (k8s)** — используется как memcache/locking backend.<br/><br/>Резервное копирование выполняется через **Velero** (бэкапятся под
и PVC с данными), а не штатным S3-бэкапом СУБД.<br/><br/>### Доступные операции с сервисом<br/><br/>* **create** — создание сервиса<br/>* **delete** — удаление сервиса<br/>* **suspend** —
остановка сервиса (масштабирование реплик в 0)<br/>* **resume** — запуск сервиса<br/>* **restart** — перезапуск (`kubectl rollout restart`)<br/>* **modify** — изменение настроек
сервиса<br/>* **reconcile** — служебная операция синхронизации версии (запускается платформой автоматически)<br/>* **create_backup** — создание резервной копии вручную (через Velero)<br/>* **recovery** —
восстановление из резервной копии в **новый** инстанс<br/><br/>> **Примечание:** операций работы с пользователями Nextcloud (`create_user`/`modify_user`/`delete_user`) на уровне платформы нет — пользователи
приложения администрируются внутри самого Nextcloud.<br/><br/>---<br/><br/>## 2. Параметры создания сервиса<br/><br/>### Платформа для развертывания<br/><br/>Ресурсная платформа (`resourceRealm`), в которой
будет развёрнут сервис. PostgreSQL и Redis, указанные ниже, обязаны находиться в той же ресурсной платформе.<br/><br/>### СУБД PostgreSQL (psqlUid)<br/><br/>UID инстанса PostgreSQL (k8s), в котором будет
создана база и пользователь `nextcloud`.<br/><br/>* У выбранной СУБД должна отсутствовать база `nextcloud` и пользователь `nextcloud`.<br/>* У СУБД обязан быть выключен `sslRequired` (`false`).<br/><br/>###
СУБД Redis (redisUid)<br/><br/>UID инстанса Redis (k8s), который будет использоваться как memcache/locking backend.<br/><br/>### Количество реплик<br/><br/>Количество реплик Nextcloud (`clusterConfiguration.replicas`).<br/><br/>###
Квота памяти пода (MB)<br/><br/>Объём памяти для пода Nextcloud в мегабайтах.<br/>Пример: `2048`<br/><br/>### Квота CPU пода (mCPU)<br/><br/>CPU-квота для пода Nextcloud в миликорах (1000 mCPU = 1 vCPU).<br/>Пример:
`1000`<br/><br/>### Размер диска для данных (GB)<br/><br/>Объём диска под данные Nextcloud (`/var/www/html/data`) в гигабайтах.<br/>Пример: `20`<br/><br/>### Домен<br/><br/>Домен, на котором будет доступен
Nextcloud (`accessConfiguration.domain`).<br/><br/>* Если указано **полное доменное имя** (содержит точку, например `cloud.company.ru`) — домен считается клиентским. Перед созданием клиент обязан сам
настроить DNS-запись, указывающую на адрес Ingress платформы, иначе создание завершится ошибкой.<br/>* Если указано **короткое имя** (без точки, например `mycloud`) — платформа сама создаёт DNS-запись
вида `<domain>.nextcloudk8s` и настраивает сертификат.<br/><br/>### Версия<br/><br/>Версия приложения Nextcloud (`appConfiguration.version`, поле `appVersion` Helm-чарта). По ней автоматически подбирается
последняя подходящая версия Helm-чарта.<br/><br/>> **Примечание:** список поддерживаемых версий и допустимые шаги обновления заданы в `pipelines/stages/functions/helm.groovy` (см. раздел 13).<br/><br/>###
Document Server<br/><br/>Параметр `appConfiguration.documentServer`. Если указать `collabora` — в кластер дополнительно разворачивается Collabora Online (совместное редактирование офисных документов),
доступный по пути `/collabora` на том же домене.<br/>Оставьте пустым, если Document Server не нужен.<br/><br/>### Уровень логирования<br/><br/>Параметр `appConfiguration.logLevel`. Одно из значений: `DEBUG`,
`INFO`, `WARN`, `ERROR`, `FATAL`, либо `NONE` — чтобы не переопределять логирование Nextcloud.<br/><br/>---<br/><br/>## 3. Параметры модификации сервиса<br/><br/>Изменению подлежат ресурсы, версия и часть
`appConfiguration`. Параметры `psqlUid`/`redisUid` менять после создания не рекомендуется.<br/><br/>### Количество реплик<br/><br/>См. раздел 2.<br/><br/>### Квота памяти пода (MB) / Квота CPU пода (mCPU)
/ Размер диска (GB)<br/><br/>См. раздел 2.<br/><br/>> **Примечание:** уменьшить уже выделенный размер диска нельзя.<br/><br/>### Версия<br/><br/>Обновление версии разрешено только **на один патч** либо
**на одну минорную версию вперёд** (с `patch=0`). Прыжок сразу через несколько минорных версий или через несколько мажорных версий запрещён — обновляться нужно последовательно.<br/><br/>> **Примечание:**
перед обновлением на новую minor/major-версию необходимо сначала выполнить `modify` на текущей версии, обновившись до последнего релиза этой версии (иначе операция завершится ошибкой с описанием, до какой
версии нужно обновиться сначала).<br/><br/>### Document Server / Уровень логирования<br/><br/>См. раздел 2.<br/><br/>---<br/><br/>## 4. Параметры удаления сервиса<br/><br/>Специальных параметров нет —
удаление сносит namespace целиком.<br/><br/>> **Примечание:** резервные копии, созданные через `create_backup`, хранятся в Velero отдельно от инстанса и **не удаляются** вместе с сервисом — операции `delete_backup`
для Nextcloud нет, копии нужно вычищать на стороне Velero отдельно.<br/><br/>---<br/><br/>## 5. Параметры создания бэкапа<br/><br/>Специальных пользовательских параметров нет — имя бэкапа генерируется
автоматически в формате `<дата>-<версия>-<namespace>`.<br/><br/>> **Примечание:** создать бэкап можно только если сервис предварительно приостановлен (`suspend`). Velero, в который создаётся бэкап, должен
быть развёрнут в той же ресурсной платформе, что и Nextcloud, и не может быть сменён на другой Velero-инстанс в рамках одного сервиса.<br/><br/>Бэкапится под с данными вместе с PVC/PV (файлы), метаданные
и БД PostgreSQL бэкапом не затрагиваются — версия схемы БД фиксируется отдельно (см. раздел 6).<br/><br/>---<br/><br/>## 6. Параметры восстановления из бэкапа (recovery)<br/><br/>В отличие от СУБД-сервисов,
`recovery` у Nextcloud **не восстанавливает данные в текущий инстанс**, а создаёт **новый** инстанс сервиса (аналог `create`), в который переносятся файлы из указанной резервной копии.<br/><br/>### Точка
восстановления (recoveryPoint)<br/><br/>Имя резервной копии Velero, из которой будет выполнено восстановление.<br/><br/>### Домен нового инстанса<br/><br/>Обязан отличаться от домена исходного (текущего)
инстанса — восстановление на тот же домен не поддерживается.<br/><br/>### СУБД PostgreSQL нового инстанса<br/><br/>Если версия Nextcloud в бэкапе отличается от текущей версии инстанса, для нового инстанса
обязательно нужно указать **другую** СУБД PostgreSQL (нельзя восстанавливать бэкап со старой схемой БД поверх БД с более новой схемой).<br/><br/>---<br/><br/>## 7. Выходные параметры<br/><br/>После успешного
создания сервиса платформа возвращает:<br/><br/>### connectionUrl<br/><br/>Адрес для входа в Nextcloud: `https://<домен>`.<br/><br/>### namespace<br/><br/>Namespace в K8s-кластере, в котором развёрнут
сервис.<br/><br/>### Учётные данные (Vault)<br/><br/>В Vault сохраняется пароль администратора (`adminPass`) под логином `admin`.<br/><br/>---<br/><br/>## 8. Пример подключения<br/><br/>Откройте `connectionUrl`
в браузере и авторизуйтесь:<br/><br/>* **Логин:** `admin`<br/>* **Пароль:** значение `adminPass` из блока «Учётные данные» в Vault<br/><br/>---<br/><br/>## 9. Дополнительная информация<br/><br/>### Зависимости<br/><br/>Nextcloud
нельзя создать без уже существующих в том же `resourceRealm` сервисов PostgreSQL (k8s, `sslRequired: false`) и Redis (k8s). При `delete` зависимые СУБД и Redis не трогаются — удаляется только сам Nextcloud.<br/><br/>###
suspend/resume<br/><br/>При `suspend` количество реплик Nextcloud, Collabora и exporter''а метрик принудительно выставляется в `0` через `helm upgrade` (реальное масштабирование, а не просто пауза cron).
При `resume` реплики возвращаются к значению из `clusterConfiguration.replicas`.<br/><br/>### Collabora<br/><br/>Собирается из отдельного `image.repository: nexus-sa.tst.nubes.ru/collabora/code` и включается
только при `appConfiguration.documentServer == ''collabora''`. Доступен на том же домене и том же TLS-сертификате, что и сам Nextcloud, по пути `/collabora`.<br/><br/>### Бэкап/восстановление через Velero<br/><br/>Бэкап/восстановление
файлов идёт через Velero с селектором `backup=<serviceName>-velero-backup` и включает под, PVC и PV — то есть непосредственно файлы `/var/www/html/data`. Восстановление БД в новый инстанс выполняется
штатным механизмом `create` с параметром `instanceUidFrom`, который проставляет `recovery`-джоба автоматически.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -137,7 +179,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-6afmoouq
defaultValue: nextcloud-v9jbyta8
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1058
@@ -147,18 +189,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
logLevel:
dataType: string
defaultValue: INFO
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
version:
dataType: string
defaultValue: 33.0.4
@@ -173,6 +203,18 @@ cfsParams:
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: INFO
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
- svcOperationCfsParamId: 1077
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -192,19 +234,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
@@ -229,6 +258,19 @@ cfsParams:
- '6144'
- '7168'
- '8192'
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1060
svcOperationCfsParam: appConfiguration
dataType: map-fixed
@@ -269,16 +311,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
psqlUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: k8s-4-ext-nubes-ru
@@ -286,16 +318,6 @@ cfsParams:
isModifiable: false
valueList:
- k8s-4-ext-nubes-ru
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlEnabled:
dataType: boolean
defaultValue: 'true'
@@ -310,6 +332,26 @@ cfsParams:
isModifiable: false
valueList:
- 'true'
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1079
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -317,16 +359,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: 1,2
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
@@ -351,6 +383,16 @@ cfsParams:
- '6144'
- '7168'
- '8192'
replicas:
dataType: integer > 0
defaultValue: 1,2
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1080
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -360,7 +402,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-ch6fvoz1
defaultValue: nextcloud-zdaml6i9
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1081
@@ -418,5 +460,5 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru", "psqlEnabled": true, "redisEnabled": true, "psqlUid": "", "redisUid": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 10}'
accessConfiguration: '{"domain": "nextcloud-6afmoouq"}'
appConfiguration: '{"logLevel": "INFO", "version": "33.0.4", "documentServer": "collabora"}'
accessConfiguration: '{"domain": "nextcloud-v9jbyta8"}'
appConfiguration: '{"version": "33.0.4", "documentServer": "collabora", "logLevel": "INFO"}'
+87 -9
View File
@@ -7,7 +7,7 @@ service_man: 'Расширенный реестр для управления Do
процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация:
keycloak'
lifecycle:
suspendOnDestroyDefault: false
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 14
@@ -18,6 +18,22 @@ operations:
operation: delete
kind: instance
action: delete
- svcOperationId: 270
operation: modify
kind: instance
action: modify
- svcOperationId: 405
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 415
operation: resume
kind: instance
action: resume
- svcOperationId: 416
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 16
@@ -38,26 +54,74 @@ cfsParams:
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '100'
isModifiable: false
defaultValue: '1000'
isModifiable: true
- svcOperationCfsParamId: 229
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: false
defaultValue: '1024'
isModifiable: true
- svcOperationCfsParamId: 230
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
isModifiable: true
- svcOperationCfsParamId: 231
svcOperationCfsParam: s3Uid
dataType: uuid
isRequired: true
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1126
svcOperationCfsParam: pvType
dataType: string
isRequired: true
defaultValue: s3
isModifiable: false
valueList:
- s3
- local
- svcOperationCfsParamId: 1127
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: false
defaultValue: '5'
isModifiable: true
- svcOperationCfsParamId: 1128
svcOperationCfsParam: authType
dataType: string
isRequired: true
defaultValue: local
isModifiable: false
valueList:
- local
- keycloak
- svcOperationCfsParamId: 822
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 823
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 824
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1129
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
14:
- 16
@@ -66,11 +130,25 @@ cfsParamsByOp:
- 229
- 230
- 231
- 1126
- 1127
- 1128
15: []
270:
- 822
- 823
- 824
- 1129
405: []
415: []
416: []
stateParams:
domain: harbor-1
resourceRealm: k8s-4-ext-nubes-ru
resourceCPU: '100'
resourceMemory: '200'
resourceCPU: '1000'
resourceMemory: '1024'
resourceInstances: '1'
s3Uid: ''
pvType: s3
resourceDisk: '5'
authType: local
+17 -17
View File
@@ -103,7 +103,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: flask-raqv2ud7
defaultValue: flask-mfcpbrbr
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1040
@@ -113,13 +113,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '3.12'
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: https://github.com/Foxyhhd/Baldurs-Gate-test.git
@@ -130,6 +123,13 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: '3.12'
isRequired: true
isModifiable: false
valueList:
- '3.12'
- svcOperationCfsParamId: 1041
svcOperationCfsParam: jsonEnv
dataType: map
@@ -170,13 +170,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: ''
@@ -187,6 +180,13 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
- svcOperationCfsParamId: 1044
svcOperationCfsParam: jsonEnv
dataType: map
@@ -227,6 +227,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "flask-raqv2ud7"}'
appConfiguration: '{"version": "3.12", "gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git", "healthPath": ""}'
accessConfiguration: '{"domain": "flask-mfcpbrbr"}'
appConfiguration: '{"gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git", "healthPath": "", "version": "3.12"}'
jsonEnv: '{}'
+127 -58
View File
@@ -180,16 +180,10 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- '18'
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- '15'
poolerMaster:
dataType: boolean
defaultValue: 'false'
@@ -206,25 +200,41 @@ cfsParams:
valueList:
- 'false'
- 'true'
sslRequired:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
- 'false'
- svcOperationCfsParamId: 792
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
log_disconnections:
dataType: string
defaultValue: ''
isRequired: true
defaultValue: 'off'
isRequired: false
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
- 'off'
- 'on'
log_connections:
dataType: string
defaultValue: ''
isRequired: true
defaultValue: 'off'
isRequired: false
isModifiable: false
valueList:
- 'off'
- 'on'
max_connections:
dataType: integer > 0
defaultValue: '100'
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 793
svcOperationCfsParam: backupConfiguration
@@ -234,9 +244,9 @@ cfsParams:
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
dataType: string
defaultValue: 00000000-0000-0000-0000-000000000000
isRequired: false
isModifiable: false
retain:
dataType: integer > 0
@@ -248,6 +258,11 @@ cfsParams:
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
incrementCount:
dataType: integer >= 0
defaultValue: '0'
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 794
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -310,7 +325,7 @@ cfsParams:
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: '87600'
defaultValue: '43800'
isRequired: true
isModifiable: false
certCA:
@@ -446,20 +461,13 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
poolerSlave:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '18'
- '17'
- '16'
sslRequired:
@@ -475,25 +483,41 @@ cfsParams:
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 798
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
dataType: string
poolerSlave:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
- 'false'
- 'true'
- svcOperationCfsParamId: 798
svcOperationCfsParam: postgresConf
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
log_connections:
dataType: string
defaultValue: ''
isRequired: true
isRequired: false
isModifiable: false
valueList:
- 'off'
- 'on'
log_disconnections:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
valueList:
- 'off'
- 'on'
max_connections:
dataType: integer > 0
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 799
svcOperationCfsParam: backupConfiguration
@@ -502,11 +526,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
@@ -517,6 +536,16 @@ cfsParams:
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
incrementCount:
dataType: integer >= 0
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 800
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -719,23 +748,31 @@ cfsParams:
- 'true'
- svcOperationCfsParamId: 805
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
log_connections:
dataType: string
defaultValue: ''
isRequired: true
isRequired: false
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
- 'off'
- 'on'
log_disconnections:
dataType: string
defaultValue: ''
isRequired: true
isRequired: false
isModifiable: false
valueList:
- 'off'
- 'on'
max_connections:
dataType: integer > 0
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 806
svcOperationCfsParam: backupConfiguration
@@ -759,6 +796,11 @@ cfsParams:
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
incrementCount:
dataType: integer >= 0
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 807
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -798,6 +840,32 @@ cfsParams:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 1106
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
type:
dataType: string
defaultValue: 'off'
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
durationCA:
dataType: integer > 0
defaultValue: '175200'
isRequired: true
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: '87600'
isRequired: true
isModifiable: false
cfsParamsByOp:
19:
- 788
@@ -839,6 +907,7 @@ cfsParamsByOp:
- 805
- 806
- 807
- 1106
54: []
114: []
115: []
@@ -846,8 +915,8 @@ stateParams:
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
postgresConfiguration: '{"version": "17", "sslRequired": true, "poolerMaster": false, "poolerSlave": false}'
postgresConf: '{"paramName": "", "paramValue": ""}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
postgresConfiguration: '{"version": "17", "poolerMaster": false, "poolerSlave": false, "sslRequired": true}'
postgresConf: '{"log_disconnections": "off", "log_connections": "off", "max_connections": 100}'
backupConfiguration: '{"s3Uid": "00000000-0000-0000-0000-000000000000", "retain": 7, "schedule": "0 0 * * *", "incrementCount": 0}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
mtlsConfiguration: '{"type": "off", "durationCA": 175200, "durationServer": 87600, "certCA": "", "certServer": ""}'
mtlsConfiguration: '{"type": "off", "durationCA": 175200, "durationServer": 43800, "certCA": "", "certServer": ""}'
+21 -21
View File
@@ -86,16 +86,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
@@ -106,6 +96,16 @@ cfsParams:
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1064
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -113,6 +113,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
@@ -133,11 +138,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1065
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -145,11 +145,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
@@ -165,6 +160,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
21:
- 1061
@@ -180,4 +180,4 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"slaveIpSpace": "", "slaveAccessList": "[]", "masterIpSpace": "", "masterAccessList": "[]"}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+181 -42
View File
@@ -3,34 +3,65 @@ service_id: 92
service_display_name: MongoDB
service_short_name: mongodb
service_man: '# Инструкция по развертыванию MongoDB через платформу<br/><br/>## 1. Общая информация<br/><br/>MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность,
горизонтальное масштабирование и гибкую модель хранения.<br/><br/>### Доступные операции с кластером<br/><br/>* **create** — создание базы<br/>* **delete** — удаление базы данных<br/>* **suspend** —
остановка базы данных<br/>* **resume** — запуск базы данных<br/>* **modify** — изменение базы данных<br/><br/>### Доступные операции с пользователями<br/><br/>* **create_user** — создание пользователя<br/>*
**modify_user** — модификация пользователя<br/>* **delete_user** — удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры развертывания базы данных<br/><br/>Эти параметры необходимо указать при создании
базы данных.<br/><br/>### Платформа для развертывания<br/><br/>Среда, в которой будет развернут кластер. Выбирается из предложенного списка.<br/><br/>### Количество узлов<br/><br/>Количество реплик в
кластере MongoDB.<br/>Оптимально выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>>
**Примечание:** уменьшение количества узлов после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>###
Квота CPU пода (mCPU)<br/><br/>CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных в гигабайтах.<br/>Пример:
`20`<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример:
`internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей, с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример:
`["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 3. Параметры модификации базы данных<br/><br/>Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически
подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.<br/><br/>### Количество узлов<br/><br/>Количество реплик в кластере MongoDB.<br/>Оптимально выбирать нечётное
значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>> **Примечание:** уменьшение количества узлов
после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>### Квота CPU пода (mCPU)<br/><br/>CPU-квота
горизонтальное масштабирование и гибкую модель хранения.<br/><br/>### Доступные операции с кластером<br/><br/>* **create** — создание базы<br/>* **delete** — удаление базы данных<br/>*
**suspend** — остановка базы данных<br/>* **resume** — запуск базы данных<br/>* **modify** — изменение базы данных<br/>* **create_backup** — создание бэкапа вручную<br/>* **delete_backup** —
удаление бэкапов<br/>* **rollback** — восстановление кластера из бэкапа<br/><br/>### Доступные операции с пользователями<br/><br/>* **create_user** — создание пользователя<br/>* **modify_user**
— модификация пользователя<br/>* **delete_user** — удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания базы данных<br/><br/>Эти параметры необходимо указать при создании базы данных.<br/><br/>###
Платформа для развертывания<br/><br/>Среда, в которой будет развёрнут кластер. Выбирается из предложенного списка.<br/><br/>### Количество узлов<br/><br/>Количество реплик в кластере MongoDB.<br/>Оптимально
выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>> **Примечание:** уменьшение
количества узлов после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>### Квота CPU пода (mCPU)<br/><br/>CPU-квота
для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных в гигабайтах.<br/>Пример: `20`<br/><br/>### Расписание
резервного копирования<br/><br/>Cron-выражение (5 полей), по которому автоматически создаются резервные копии.<br/>Пример: `0 0 * * *` (каждый день в 00:00)<br/><br/>### Хранить последних бэкапов<br/><br/>Сколько
последних успешных резервных копий хранить — более старые удаляются автоматически.<br/>Пример: `7`<br/><br/>> **Примечание:** ротация применяется только к бэкапам, созданным по расписанию. Бэкапы,<br/>>
созданные вручную операцией `create_backup`, в неё не входят и не удаляются автоматически —<br/>> их нужно убирать вручную через `delete_backup`.<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя
ipSpace, через который будет выделен внешний IP для доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример: `internet-no-antiddos-v1`<br/><br/>### Список разрешённых
IP-адресов<br/><br/>Список IP-адресов или подсетей, с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример: `["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>###
Включить TLS<br/><br/>Булевый параметр. Определяет режим работы TLS кластера.<br/><br/>- `true` — TLS включён (`tls.mode: allowTLS`). Сертификаты сохраняются в Vault.<br/>- `false` — TLS выключен (`tls.mode:
disabled`).<br/><br/>По умолчанию: `false`.<br/><br/>---<br/><br/>## 3. Параметры модификации базы данных<br/><br/>Все параметры, которые вы указываете при модификации, являются необязательными — система
автоматически подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.<br/><br/>### Количество узлов<br/><br/>Количество реплик в кластере MongoDB.<br/>Оптимально выбирать
нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>> **Примечание:** уменьшение количества
узлов после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>### Квота CPU пода (mCPU)<br/><br/>CPU-квота
для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при
необходимости, однако уменьшить уже выделенный размер невозможно.<br/>Пример: `20`<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для
доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример: `internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей,
с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример: `["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 3. Параметры создания пользователя<br/><br/>###
Имя пользователя<br/><br/>Указывается имя пользователя (любой регистр).<br/>Пример: `readApp`<br/><br/>### Имя базы данных<br/><br/>Название базы, в которой будет создан пользователь.<br/>Если база отсутствует,
она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>### Имя роли<br/><br/>* **read** — доступ только на чтение<br/>* **readWrite** — чтение и изменение данных<br/>* **dbOwner** — полный
контроль над базой данных<br/><br/>---<br/><br/>## 4. Параметры модификации пользователя<br/><br/>### Имя пользователя<br/><br/>Необходимо выбрать существующего пользователя.<br/>Если список пуст, требуется
предварительно создать пользователя.<br/><br/>### Имя базы данных<br/><br/>База данных, к которой относится пользователь.<br/>Если база отсутствует, она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>###
Имя роли<br/><br/>* **read**<br/>* **readWrite**<br/>* **dbOwner**<br/><br/>---<br/><br/>## 5. Параметры удаления пользователя<br/><br/>### Имя пользователя<br/><br/>Выберите пользователя из списка для
удаления.<br/><br/>---<br/><br/>## 6. Выходные параметры<br/><br/>После успешного развертывания базы данных платформа возвращает ключевые параметры.<br/><br/>### internalConnect<br/><br/>Внутренний эндпоинт
для подключения к кластеру из сервисов, работающих в той же сети.<br/>Используется для внутренних интеграций и системных сервисов.<br/><br/>### externalConnect<br/><br/>Внешний FQDN для подключения к
кластеру извне.<br/>Порт подключения — **27017**.<br/><br/>---<br/><br/>## 7. Пример подключения<br/><br/>Перед подключением необходимо установить **mongosh**.<br/><br/>Команда подключения к базе данных:<br/><br/>```<br/>mongosh
"mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"<br/>```<br/><br/>Где:<br/><br/>* `<username>` — имя пользователя<br/>* `<password>` — пароль<br/>* `<endpoint_db>` — internalConnect или
externalConnect<br/>* `<dbName>` — имя базы данных<br/><br/>## 8. Дополнительная информация<br/><br/>Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину
и паролю.'
необходимости, однако уменьшить уже выделенный размер невозможно.<br/>Пример: `20`<br/><br/>### Расписание резервного копирования<br/><br/>Cron-выражение (5 полей), по которому автоматически создаются
резервные копии.<br/>Пример: `0 0 * * *` (каждый день в 00:00)<br/><br/>### Хранить последних бэкапов<br/><br/>Сколько последних успешных резервных копий хранить — более старые удаляются автоматически.<br/>Пример:
`7`<br/><br/>> **Примечание:** ротация применяется только к бэкапам, созданным по расписанию. Бэкапы,<br/>> созданные вручную операцией `create_backup`, в неё не входят и не удаляются автоматически —<br/>>
их нужно убирать вручную через `delete_backup`.<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу.<br/>Укажите
`no-needed`, если внешний адрес не требуется.<br/>Пример: `internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей, с которых разрешён доступ к кластеру.<br/>Если
оставить пустым — доступ открыт для всех источников.<br/>Пример: `["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 4. Параметры удаления базы данных<br/><br/>### Удалить бакет S3 с бэкапами<br/><br/>Булевый
параметр.<br/><br/>- `true` — вместе с кластером также будут удалены все резервные копии и бакет S3.<br/>- `false` — бакет S3 и хранящиеся в нём бэкапы сохраняются после удаления кластера.<br/><br/>По
умолчанию: `false`.<br/><br/>---<br/><br/>## 5. Параметры создания бэкапа<br/><br/>### Имя бэкапа<br/><br/>Имя резервной копии, которое будет присвоено объекту бэкапа в кластере.<br/>Должно соответствовать
требованиям Kubernetes к именам объектов (строчные буквы, цифры, дефисы).<br/>Пример: `manual-20260904`<br/><br/>> **Примечание:** такой бэкап не участвует в автоматической ротации по параметру<br/>>
"Хранить последних бэкапов" (она применяется только к бэкапам по расписанию) и не удаляется<br/>> сам — при необходимости убрать его нужно вручную операцией `delete_backup`.<br/><br/>---<br/><br/>## 6.
Параметры восстановления из бэкапа<br/><br/>### Имя бэкапа<br/><br/>Имя существующей резервной копии кластера, из которой будет выполнено восстановление. Указывается один из бэкапов в состоянии `ready`
(созданных автоматически по расписанию или вручную через операцию create_backup).<br/><br/>---<br/><br/>## 7. Параметры удаления бэкапов<br/><br/>### Имена бэкапов<br/><br/>Список имён резервных копий
для удаления.<br/>Пример: `["manual-20260904", "cron-mongok8s-...-20260903020000"]`<br/><br/>---<br/><br/>## 8. Параметры создания пользователя<br/><br/>### Имя пользователя<br/><br/>Указывается имя пользователя
(любой регистр).<br/>Пример: `readApp`<br/><br/>> **Примечание:** имя пользователя должно быть уникальным в рамках кластера. Если пользователь<br/>> с таким именем уже существует, операция завершится
ошибкой — используйте `modify_user` для<br/>> изменения прав или `delete_user` + `create_user` для пересоздания.<br/><br/>### Имя базы данных<br/><br/>Название базы, в которой будет создан пользователь.<br/>Если
база отсутствует, она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>### Имя роли<br/><br/>* **read** — доступ только на чтение<br/>* **readWrite** — чтение и изменение данных<br/>* **dbOwner**
— полный контроль над базой данных<br/>* **dbAdmin** — администрирование базы данных (индексы, статистика, схема) без доступа к чтению/записи данных<br/><br/>---<br/><br/>## 9. Параметры модификации пользователя<br/><br/>###
Имя пользователя<br/><br/>Необходимо выбрать существующего пользователя.<br/>Если список пуст, требуется предварительно создать пользователя.<br/><br/>### Имя базы данных<br/><br/>База данных, к которой
относится пользователь.<br/>Если база отсутствует, она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>### Имя роли<br/><br/>* **read**<br/>* **readWrite**<br/>* **dbOwner**<br/>* **dbAdmin**<br/><br/>---<br/><br/>##
10. Параметры удаления пользователя<br/><br/>### Имя пользователя<br/><br/>Выберите пользователя из списка для удаления.<br/><br/>---<br/><br/>## 11. Выходные параметры<br/><br/>После успешного развертывания
базы данных платформа возвращает ключевые параметры.<br/><br/>### internalConnect<br/><br/>Внутренний эндпоинт для подключения к кластеру из сервисов, работающих в той же сети.<br/>Используется для внутренних
интеграций и системных сервисов.<br/><br/>### externalConnect<br/><br/>Внешний FQDN для подключения к кластеру извне.<br/>Порт подключения — **27017**.<br/><br/>> **Важно:** оба эндпоинта — это Kubernetes
Service на весь replset, а не адрес конкретно<br/>> primary-узла. Kubernetes не отслеживает, кто из узлов сейчас primary, поэтому новое<br/>> подключение без параметра `replicaSet` может попасть на secondary
и упасть с ошибкой записи<br/>> `not writable primary`. Обязательно указывайте `replicaSet=rs0` в строке подключения (см.<br/>> примеры ниже) — тогда драйвер сам обнаружит топологию кластера и всегда
направит запись на<br/>> актуальный primary, независимо от количества реплик и от того, происходили ли выборы.<br/><br/>---<br/><br/>## 12. Пример подключения<br/><br/>Перед подключением необходимо установить
**mongosh**.<br/><br/>### 12.1 Подключение без TLS<br/><br/>Для внутреннего подключения из той же сети:<br/><br/>```<br/>mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>?authSource=admin&replicaSet=rs0"<br/>```<br/><br/>###
12.2 Подключение через внешний endpoint с TLS<br/><br/>Кластер требует клиентский TLS-сертификат (mutual TLS). Сертификаты сохраняются в Vault при создании кластера в блоке `cer` в полях `ca`, `cer`,
`key` в кодировке base64.<br/><br/>Подготовка файлов:<br/><br/>```bash<br/># Декодировать сертификаты из Vault<br/>echo "<ca из блока Учётные данные>" | base64 -d > ca.crt<br/>echo "<cer из из блока Учётные
данные" | base64 -d > tls.crt<br/>echo "<key из из блока Учётные данные>" | base64 -d > tls.key<br/><br/># Собрать клиентский PEM<br/>cat tls.key tls.crt > client.pem<br/>```<br/><br/>Подключение:<br/><br/>```<br/>mongosh
"mongodb://<username>:<password>@<external_endpoint_db>:27017/<dbName>?tls=true&tlsCAFile=ca.crt&tlsCertificateKeyFile=client.pem&authSource=admin&replicaSet=rs0"<br/>```<br/><br/>Где:<br/><br/>* `<username>`
— имя пользователя<br/>* `<password>` — пароль<br/>* `<endpoint_db>` — internalConnect (для подключения без TLS)<br/>* `<external_endpoint_db>` — externalConnect (для внешнего подключения с TLS)<br/>*
`<dbName>` — имя базы данных<br/><br/>## 13. Дополнительная информация<br/><br/>Режим TLS задаётся параметром `mongoConfiguration.tls` только при создании кластера.<br/>После создания изменение TLS через
модификацию не поддерживается.<br/><br/>- При `true` кластер разворачивается с включённым TLS (`tls.mode: allowTLS`). Сервер принимает как обычные, так и TLS-соединения.<br/>- При `false` TLS выключен
(`tls.mode: disabled`).<br/><br/>Для внешнего подключения (`externalConnect`) используется сертификат, выпущенный через cert-manager, с SAN, покрывающим внешний DNS-адрес кластера — поэтому `tlsAllowInvalidHostnames`
не требуется, хост проверяется как обычно.<br/><br/>Внутренние подключения TLS-сертификат не используют вообще: режим `allowTLS` допускает как TLS, так и обычные соединения, но для внутреннего трафика
применяется обычное (не TLS) подключение — см. пример 12.1.<br/><br/>### Почему обязателен `replicaSet=rs0` в строке подключения<br/><br/>Percona-оператор не проставляет на поды никакого динамического
лейбла роли (primary/secondary) —<br/>у всех подов replset''а полностью одинаковые лейблы, различается только имя/индекс пода.<br/>`master`-сервис — это обычный Kubernetes Service с фиксированным селектором
на весь replset, он<br/>не знает и не может знать, какой под сейчас primary: k8s просто раздаёт новые TCP-подключения<br/>по кругу между всеми узлами. Без `replicaSet=rs0` в URI подключение может закрепиться
на<br/>secondary, и любая попытка записи будет падать с `not writable primary` — независимо от того,<br/>происходили выборы недавно или нет. Указание `replicaSet=rs0` включает у драйвера обнаружение<br/>топологии
реплики, и он сам направляет запись на актуальный primary при любом количестве узлов<br/>и после любых переизбраний.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -39,6 +70,10 @@ operations:
operation: create
kind: instance
action: create
- svcOperationId: 411
operation: create_backup
kind: subresource
action: create
- svcOperationId: 198
operation: create_user
kind: subresource
@@ -47,6 +82,10 @@ operations:
operation: delete
kind: instance
action: delete
- svcOperationId: 414
operation: delete_backup
kind: subresource
action: delete
- svcOperationId: 199
operation: delete_user
kind: subresource
@@ -67,11 +106,16 @@ operations:
operation: resume
kind: instance
action: resume
- svcOperationId: 413
operation: rollback
kind: action
action: rollback
- svcOperationId: 194
operation: suspend
kind: instance
action: suspend
stateOut:
backups: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 1089
@@ -95,6 +139,16 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
@@ -110,16 +164,6 @@ cfsParams:
defaultValue: '5'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1091
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -137,6 +181,49 @@ cfsParams:
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1102
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1116
svcOperationCfsParam: mongoConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
tls:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'true'
- 'false'
- svcOperationCfsParamId: 1109
svcOperationCfsParam: backupName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 635
svcOperationCfsParam: username
dataType: string
@@ -156,12 +243,28 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- dbOwner
- read
- readWrite
- dbAdmin
- dbOwner
- svcOperationCfsParamId: 1103
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 1111
svcOperationCfsParam: backupName
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 644
svcOperationCfsParam: username
dataType: string
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
@@ -214,6 +317,23 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1104
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 640
svcOperationCfsParam: username
dataType: string
@@ -233,32 +353,51 @@ cfsParams:
defaultValue: ''
isModifiable: true
valueList:
- dbOwner
- read
- readWrite
- dbAdmin
- dbOwner
- svcOperationCfsParamId: 1108
svcOperationCfsParam: backupName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
37:
- 1089
- 1090
- 1091
- 1102
- 1116
411:
- 1109
198:
- 635
- 636
- 643
190: []
190:
- 1103
414:
- 1111
199:
- 644
201:
- 1092
- 1093
- 1104
200:
- 640
- 641
- 642
409: []
196: []
413:
- 1108
194: []
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"replicas": 1, "disk": 5, "cpu": 1000, "memory": 1024}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
mongoConfiguration: '{"tls": false}'
+133 -87
View File
@@ -49,6 +49,10 @@ operations:
operation: modify
kind: instance
action: modify
- svcOperationId: 410
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 117
operation: resume
kind: instance
@@ -59,116 +63,158 @@ operations:
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 116
svcOperationCfsParam: resourceCPU
dataType: integer > 0
- svcOperationCfsParamId: 1097
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: '1000'
isModifiable: true
- svcOperationCfsParamId: 117
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '1124'
isModifiable: true
- svcOperationCfsParamId: 118
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '30'
isModifiable: true
- svcOperationCfsParamId: 119
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: k8s-4-ext-nubes-ru
defaultValue: ''
isModifiable: false
valueList:
- k8s-4-ext-nubes-ru
- svcOperationCfsParamId: 224
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 225
svcOperationCfsParam: needExternalAddressMaster
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 543
svcOperationCfsParam: ipSpaceNameMaster
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 304
svcOperationCfsParam: resourceCPU
dataType: integer > 0
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: k8s-4-ext-nubes-ru
isRequired: true
isModifiable: false
valueList:
- k8s-4-ext-nubes-ru
- svcOperationCfsParamId: 1098
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 305
svcOperationCfsParam: resourceMemory
dataType: integer > 0
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1099
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 306
svcOperationCfsParam: resourceDisk
dataType: integer > 0
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1113
svcOperationCfsParam: mqConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 307
svcOperationCfsParam: resourceInstances
dataType: integer > 0
dataDescriptor:
maxMessageSize:
dataType: integer > 0
defaultValue: '4'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1100
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 308
svcOperationCfsParam: needExternalAddressMaster
dataType: boolean
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1101
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 545
svcOperationCfsParam: ipSpaceNameMaster
dataType: string
isRequired: false
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1114
svcOperationCfsParam: mqConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
maxMessageSize:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
38:
- 116
- 117
- 118
- 119
- 224
- 225
- 543
- 1097
- 1098
- 1099
- 1113
39: []
106:
- 304
- 305
- 306
- 307
- 308
- 545
- 1100
- 1101
- 1114
410: []
117: []
116: []
stateParams:
resourceCPU: '1000'
resourceMemory: '1124'
resourceDisk: '30'
resourceRealm: k8s-4-ext-nubes-ru
resourceInstances: '1'
needExternalAddressMaster: 'false'
ipSpaceNameMaster: ''
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
mqConfiguration: '{"maxMessageSize": 4}'
+23 -23
View File
@@ -61,16 +61,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
cpu:
dataType: string
defaultValue: '200'
@@ -81,6 +71,16 @@ cfsParams:
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1021
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -90,7 +90,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: lucee-w8upcmma
defaultValue: lucee-gg7haavy
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1022
@@ -131,16 +131,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
cpu:
dataType: string
defaultValue: ''
@@ -151,6 +141,16 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1025
svcOperationCfsParam: appConfiguration
dataType: map-fixed
@@ -216,7 +216,7 @@ cfsParamsByOp:
96: []
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"replicas": 1, "cpu": "200", "memory": 256}'
accessConfiguration: '{"domain": "lucee-w8upcmma"}'
clusterConfiguration: '{"cpu": "200", "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "lucee-gg7haavy"}'
appConfiguration: '{"version": "6.0", "gitPath": "https://github.com/xahys/testlucee", "healthPath": ""}'
jsonEnv: '{}'
+13 -13
View File
@@ -88,7 +88,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: node-q0hjstq5
defaultValue: node-wvuyerjy
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1031
@@ -98,11 +98,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: '23'
@@ -118,6 +113,11 @@ cfsParams:
defaultValue: https://github.com/xahys/testnode.git
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1032
svcOperationCfsParam: jsonEnv
dataType: map
@@ -131,6 +131,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
@@ -146,11 +151,6 @@ cfsParams:
- '3'
- '5'
- '7'
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1034
svcOperationCfsParam: appConfiguration
dataType: map-fixed
@@ -218,6 +218,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "node-q0hjstq5"}'
appConfiguration: '{"healthPath": "", "version": "23", "gitPath": "https://github.com/xahys/testnode.git"}'
accessConfiguration: '{"domain": "node-wvuyerjy"}'
appConfiguration: '{"version": "23", "gitPath": "https://github.com/xahys/testnode.git", "healthPath": ""}'
jsonEnv: '{}'
+29 -3
View File
@@ -18,6 +18,10 @@ operations:
operation: modify
kind: instance
action: modify
- svcOperationId: 403
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 79
operation: redeploy
kind: action
@@ -69,19 +73,19 @@ cfsParams:
dataType: string
isRequired: true
defaultValue: nexus-sa.tst.nubes.ru/docker-nubes/jolt
isModifiable: false
isModifiable: true
- svcOperationCfsParamId: 241
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: false
isModifiable: true
- svcOperationCfsParamId: 782
svcOperationCfsParam: ingressAnnotations
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: false
isModifiable: true
- svcOperationCfsParamId: 218
svcOperationCfsParam: resourceCPU
dataType: integer > 0
@@ -100,6 +104,24 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1120
svcOperationCfsParam: registryPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1121
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1122
svcOperationCfsParam: ingressAnnotations
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 272
svcOperationCfsParam: resourceRealm
dataType: string
@@ -123,6 +145,10 @@ cfsParamsByOp:
- 218
- 219
- 220
- 1120
- 1121
- 1122
403: []
79:
- 272
130: []