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
+9 -1
View File
@@ -21,6 +21,14 @@ import yaml
_YAML_EXTS = (".yaml", ".yml")
_DEFAULT_SERVICES_DIR = "services"
_SITE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
def _resolve_services_dir(services_dir):
"""Resolve configured relative paths from site/, independent of process CWD."""
if not os.path.isabs(services_dir):
services_dir = os.path.join(_SITE_DIR, services_dir)
return os.path.abspath(services_dir)
def _load_one(services_dir):
@@ -69,7 +77,7 @@ else:
STANDS = {}
for _sid, _sdir in _stand_dirs.items():
_svc, _ops = _load_one(_sdir)
_svc, _ops = _load_one(_resolve_services_dir(_sdir))
STANDS[_sid] = {"SERVICES": _svc, "OPS_INDEX": _ops}
DEFAULT_STAND = next(iter(STANDS.keys()))
+12
View File
@@ -309,6 +309,7 @@ def main():
converted = 0
errors = 0
converted_names = set()
for fname in yaml_files:
src = os.path.join(stands_dir, fname)
@@ -328,6 +329,7 @@ def main():
sort_keys=False,
width=200,
)
converted_names.add(fname)
# Быстрая проверка результата
svc_name = cfg.get("name", "?")
@@ -343,6 +345,16 @@ def main():
print(f" FAIL {fname}: {e}")
errors += 1
if errors == 0:
stale_yaml = sorted(
fname
for fname in os.listdir(services_dir)
if fname.lower().endswith(YAML_EXTS) and fname not in converted_names
)
for fname in stale_yaml:
os.remove(os.path.join(services_dir, fname))
print(f" REMOVE {fname}: not present in source")
print()
print(f"Done: {converted} converted, {errors} errors")
+27 -14
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
@@ -144,16 +150,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
recordType:
dataType: string
defaultValue: A
@@ -169,11 +165,22 @@ cfsParams:
- LUA
- NS
- SSHFP
- CAA
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordInput:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 783
svcOperationCfsParam: recordName
dataType: string
@@ -204,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
+59 -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/>> Ограничения доступа по IP/подсети на уровне пользователя больше нет — `user@host` в самой MariaDB всегда `%`.
Доступ к порту 3306 контролируется только на уровне инстанса через `accessConfiguration.masterAccessList`, задаваемый при `create`/`modify` (см. п.2/п.3).<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 инстанса — восстановление данных в существующий кластер выполняется вручную, скачиванием и применением бэкапа самим владельцем инстанса.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -64,10 +111,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 878
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -75,11 +121,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
@@ -97,6 +138,11 @@ cfsParams:
isModifiable: false
valueList:
- '1'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 879
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -134,7 +180,7 @@ cfsParams:
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
isModifiable: false
dataDescriptor:
s3Uid:
dataType: uuid
@@ -194,19 +240,19 @@ cfsParams:
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db-aah92zcm
defaultValue: db-nmdlrebb
isModifiable: false
- svcOperationCfsParamId: 735
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: usero6y8ruyp
defaultValue: useroxxeykhb
isModifiable: false
- svcOperationCfsParamId: 736
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: kgocowba
defaultValue: apsyfstb
isModifiable: false
- svcOperationCfsParamId: 737
svcOperationCfsParam: dbName
@@ -220,12 +266,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 738
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '%'
isModifiable: false
- svcOperationCfsParamId: 456
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
@@ -308,28 +348,6 @@ cfsParams:
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 886
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
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 887
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -383,7 +401,6 @@ cfsParamsByOp:
- 735
- 736
- 737
- 738
139:
- 456
248:
@@ -394,14 +411,13 @@ cfsParamsByOp:
- 883
- 884
- 885
- 886
- 887
287: []
141: []
140: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"disk": 10, "cpu": 500, "memory": 512, "replicas": 1}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
mariadbConfiguration: '{"version": "9.4.0"}'
backupConfiguration: '{"s3Uid": "", "retain": 720, "schedule": "0 0 * * *"}'
+19 -17
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
@@ -82,10 +85,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1085
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
+1 -2
View File
@@ -47,10 +47,9 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 551
svcOperationCfsParam: resourceMemory
dataType: integer > 0
+31 -32
View File
@@ -85,10 +85,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 838
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -116,6 +115,11 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
shards:
dataType: integer > 0
defaultValue: '1'
@@ -125,11 +129,6 @@ cfsParams:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 839
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -216,20 +215,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'
@@ -248,6 +233,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
@@ -434,15 +433,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
@@ -463,6 +453,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
@@ -514,10 +513,10 @@ cfsParamsByOp:
182: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1, "shards": 1, "disk": 10}'
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>"}'
+1 -1
View File
@@ -2,7 +2,7 @@ name: s3
service_id: 12
service_display_name: S3 Object Storage
service_short_name: s3
service_man: Руководство доступно по ссылке:<br/>https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html
service_man: Руководство доступно по ссылке:<br/>https://docs.s3-website.msk-1.ngcloud.ru/
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -19,6 +19,11 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
clusterName:
dataType: string
defaultValue: k8s-6sa9dyug
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: sandbox.nubes.ru
@@ -26,9 +31,14 @@ cfsParams:
isModifiable: false
valueList:
- sandbox.nubes.ru
clusterName:
providerVdc:
dataType: string
defaultValue: example-ywasgmh6
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
@@ -82,6 +93,18 @@ cfsParams:
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-5tcvtwk4
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-gj7zkkhv
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,18 +148,6 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
@@ -135,6 +160,18 @@ cfsParams:
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
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": "sandbox.nubes.ru", "clusterName": "example-ywasgmh6"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
startupConfiguration: '{"clusterName": "k8s-6sa9dyug", "resourceRealm": "sandbox.nubes.ru", "providerVdc": "", "networkProvider": ""}'
clusterConfiguration: '{"appVersion": "2.14.0"}'
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-gj7zkkhv", "sizingPolicy": ""}'
accessConfiguration: '{"needExternalAddressIngress": true, "accessIpListIngress": "[]", "needExternalAddressAPI": true, "accessIpListAPI": "[]"}'
workerConfiguration: '{"groupName": "workers-5tcvtwk4", "sizingPolicy": "", "sizingDisk": 50, "count": 2, "autoscale": false, "autoscaleMin": 2, "autoscaleMax": 3, "labelDeck": true}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
+19 -19
View File
@@ -62,19 +62,6 @@ cfsParams:
defaultValue: '{}'
isModifiable: true
dataDescriptor:
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: '2'
@@ -120,6 +107,19 @@ cfsParams:
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 658
svcOperationCfsParam: s3Storage
dataType: integer > 0
@@ -133,6 +133,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: ''
@@ -186,11 +191,6 @@ cfsParams:
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 660
svcOperationCfsParam: s3Storage
dataType: integer > 0
@@ -212,5 +212,5 @@ cfsParamsByOp:
stateParams:
resourceRealm: valo.ngcloud.ru
domain: ''
valoOptions: '{"ffLogging": true, "userCount": 10, "requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true, "ffThemes": true, "ffPublicLink": true}'
valoOptions: '{"requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true, "ffThemes": true, "ffPublicLink": true, "ffLogging": true, "userCount": 10}'
s3Storage: '10'
+142 -21
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
@@ -49,6 +59,11 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
vdcUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
nsxtUid:
dataType: string
defaultValue: ''
@@ -56,14 +71,65 @@ cfsParams:
isModifiable: false
clusterName:
dataType: string
defaultValue: example-kcrwfrbd
defaultValue: example-ryatr2rx
isRequired: true
isModifiable: false
vdcUid:
dataType: string
defaultValue: ''
isRequired: true
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
@@ -71,6 +137,13 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: '[]'
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
@@ -85,13 +158,6 @@ cfsParams:
- '1'
- '3'
- '5'
sizingPolicy:
dataType: string
defaultValue: '[]'
isRequired: true
isModifiable: false
valueList:
- '{}'
- svcOperationCfsParamId: 752
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
@@ -101,7 +167,7 @@ cfsParams:
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-rbrr6za5
defaultValue: workers-e6bfgpqf
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
@@ -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
@@ -245,7 +339,7 @@ cfsParams:
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-kk0fpv6w
defaultValue: workers-ohtgog3p
isRequired: true
isModifiable: false
sizingPolicy:
@@ -261,10 +355,36 @@ cfsParams:
isRequired: true
isModifiable: false
count:
dataType: integer > 0
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: '{"nsxtUid": "", "clusterName": "example-kcrwfrbd", "vdcUid": ""}'
controlPlaneConfiguration: '{"sizingDisk": 50, "count": 1, "sizingPolicy": "[]"}'
workerConfiguration: '{"groupName": "workers-rbrr6za5", "sizingPolicy": "", "sizingDisk": 50, "count": 2}'
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-ryatr2rx", "exLogging": true, "exMonitoring": true, "exLocalCsi": true, "exVip": true, "exUpdate": true, "exIngress": true,
"exNamedCsi": true}'
controlPlaneConfiguration: '{"sizingPolicy": "[]", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"groupName": "workers-e6bfgpqf", "sizingPolicy": "", "sizingDisk": 50, "count": 2, "autoscale": false, "autoscaleMin": 2, "autoscaleMax": 3, "labelDeck": true}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
clusterConfiguration: '{"appVersion": "2.14.0"}'
+12 -18
View File
@@ -71,10 +71,6 @@ operations:
operation: recovery_secrets
kind: subresource
action: recovery
- svcOperationId: 234
operation: restart
kind: action
action: restart
- svcOperationId: 216
operation: resume
kind: instance
@@ -103,10 +99,9 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 664
svcOperationCfsParam: resourceCPU
dataType: integer > 0
@@ -143,13 +138,13 @@ cfsParams:
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: bao-ovkw1qbi
defaultValue: bao-nosgzjqe
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-bbycmhbz
defaultValue: kvname-ps9az5f9
isModifiable: false
- svcOperationCfsParamId: 728
svcOperationCfsParam: policySettings
@@ -158,21 +153,21 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
capabilities:
dataType: json
defaultValue: '["read", "list"]'
isRequired: true
isModifiable: false
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-xqjoiy6t
defaultValue: policy-kyvtdypv
isModifiable: false
- svcOperationCfsParamId: 677
svcOperationCfsParam: kvName
@@ -279,12 +274,12 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
capabilities:
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
path:
capabilities:
dataType: string
defaultValue: ''
isRequired: true
@@ -353,7 +348,6 @@ cfsParamsByOp:
- 723
- 724
- 725
234: []
216: []
215: []
238:
@@ -371,4 +365,4 @@ stateParams:
resourceMemory: '512'
resourceDisk: '10'
appVersion: 2.5.2
domain: bao-ovkw1qbi
domain: bao-nosgzjqe
+100
View File
@@ -0,0 +1,100 @@
name: nifi
service_id: 153
service_display_name: Nifi
service_short_name: nifi
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 229
operation: create
kind: instance
action: create
- svcOperationId: 235
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 711
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: nifi-qmpqdalo
isModifiable: false
- svcOperationCfsParamId: 712
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '2000'
isModifiable: false
- svcOperationCfsParamId: 713
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '4096'
isModifiable: false
- svcOperationCfsParamId: 714
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
valueList:
- '1'
- svcOperationCfsParamId: 715
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: false
- svcOperationCfsParamId: 716
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: 2.6.0
isModifiable: false
valueList:
- 2.6.0
- svcOperationCfsParamId: 717
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 718
svcOperationCfsParam: jdbcDrivers
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
path:
dataType: string
defaultValue: https://jdbc.postgresql.org/download/postgresql-42.7.8.jar
isRequired: true
isModifiable: false
cfsParamsByOp:
229:
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
235: []
stateParams:
domain: nifi-qmpqdalo
resourceCPU: '2000'
resourceMemory: '4096'
resourceInstances: '1'
resourceDisk: '10'
appVersion: 2.6.0
resourceRealm: ''
jdbcDrivers: '{"path": "https://jdbc.postgresql.org/download/postgresql-42.7.8.jar"}'
+43 -25
View File
@@ -1,33 +1,39 @@
name: llm_ai
service_id: 163
service_display_name: LLM
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/>## Доступные операции<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/>---<br/><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/>* **Период бюджета**<br/> Срок жизни организации в днях.<br/> Пример: `30`<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/>## 12. Пример использования 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/>'
не нужно.<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
@@ -60,6 +66,10 @@ operations:
operation: modify_team
kind: subresource
action: modify
- svcOperationId: 412
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 277
operation: update_secrets
kind: subresource
@@ -202,6 +212,12 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1157
svcOperationCfsParam: ''
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
271:
- 826
@@ -227,11 +243,13 @@ cfsParamsByOp:
- 865
- 873
- 874
412: []
277:
- 852
- 853
- 854
- 855
- 875
- 1157
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: sandbox.nubes.ru
organizationType: iaas
organizationSuffix: ''
+49 -34
View File
@@ -100,12 +100,12 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
secret:
subparam2:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
subparam2:
secret:
dataType: string
defaultValue: ''
isRequired: false
@@ -129,6 +129,25 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
param1:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
bol1:
dataType: boolean
defaultValue: 'false'
@@ -140,18 +159,32 @@ cfsParams:
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isRequired: false
isModifiable: false
valueList:
- abracadabra
- incorr
- correctvalue
s3-inst:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
param1:
dataType: integer > 0
defaultValue: '1'
defaultValue: ''
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: '1'
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
@@ -163,13 +196,6 @@ cfsParams:
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
bol1:
dataType: boolean
defaultValue: ''
@@ -185,25 +211,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"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 863
svcOperationCfsParam: arr
dataType: array
@@ -214,6 +221,12 @@ cfsParams:
- test
- '2'
- val1
- svcOperationCfsParamId: 1131
svcOperationCfsParam: s3-ref-root
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 287
svcOperationCfsParam: durationMs
dataType: integer >= 0
@@ -286,6 +299,7 @@ cfsParamsByOp:
- 647
- 654
- 863
- 1131
71: []
92:
- 287
@@ -306,9 +320,10 @@ stateParams:
whereFail: '1'
resourceRealm: dummy
bodymessage: ''
mapExample: '{"subparam1": "", "secret": "", "subparam2": ""}'
mapExample: '{"subparam1": "", "subparam2": "", "secret": ""}'
jsonExample: ''
nestedRefExample: ''
mapFixed: '{"bol1": false, "minStr1": "abracadabra", "param1": 1, "param2": "1", "param3": 1}'
arrayMapFixedExample: '{"bol1": false, "minStr1": "", "param1": 0, "param2": "", "param3": 1}'
mapFixed: '{"param1": 1, "param2": "1", "param3": 1, "bol1": false, "minStr1": "abracadabra", "s3-inst": ""}'
arrayMapFixedExample: '{"param1": 0, "param2": "", "param3": 1, "bol1": false, "minStr1": ""}'
arr: ''
s3-ref-root: ''
+12 -4
View File
@@ -84,12 +84,12 @@ cfsParams:
isModifiable: false
- 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
@@ -110,6 +110,12 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1130
svcOperationCfsParam: suffixName
dataType: string
isRequired: false
defaultValue: 7uabwsgb
isModifiable: false
- svcOperationCfsParamId: 560
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
@@ -148,6 +154,7 @@ cfsParamsByOp:
- 557
- 558
- 746
- 1130
24: []
112:
- 560
@@ -160,7 +167,8 @@ stateParams:
organizationUid: ''
providerVdc: ''
storageConfig: '{"name": "", "size": 2000}'
cpuGuaranteed: '20'
cpuGuaranteed: '0'
cpuAllocated: '80'
memAllocated: '200'
networkProvider: ''
suffixName: 7uabwsgb
+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"}'
+1 -1
View File
@@ -1,6 +1,6 @@
name: vcexternalip
service_id: 25
service_display_name: Публичные IP адреса
service_display_name: '[DEPRECATED] Публичные IP адреса'
service_short_name: vcexternalip
service_man: '**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**<br/>Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать<br/><br/>Резервировать
публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.<br/>Вы можете назначить IP адрес для существующего экземпляра
+2 -2
View File
@@ -52,7 +52,7 @@ cfsParams:
svcOperationCfsParam: vappName
dataType: string
isRequired: true
defaultValue: hf1t7p5c
defaultValue: j8lanwbr
isModifiable: false
- svcOperationCfsParamId: 623
svcOperationCfsParam: vdcUid
@@ -71,5 +71,5 @@ cfsParamsByOp:
208: []
stateParams:
nsxtUid: ''
vappName: hf1t7p5c
vappName: j8lanwbr
vdcUid: ''
+112 -24
View File
@@ -83,11 +83,22 @@ cfsParams:
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 411
svcOperationCfsParam: vmDisk
dataType: integer > 0
svcOperationCfsParam: vmDisks
dataType: array-map-fixed
isRequired: false
defaultValue: ''
defaultValue: '[{"busNum": 0, "size": "20"}]'
isModifiable: true
dataDescriptor:
busNum:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 412
svcOperationCfsParam: ipSpaceName
dataType: string
@@ -96,9 +107,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 +137,34 @@ cfsParams:
isModifiable: false
- svcOperationCfsParamId: 448
svcOperationCfsParam: accessPortList
dataType: string
dataType: array-map-fixed
isRequired: true
defaultValue: '["22"]'
defaultValue: '[{"port": "22", "type": "tcp"}, {"port": "10050", "type": "tcp"}]'
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
@@ -143,22 +178,28 @@ cfsParams:
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 495
svcOperationCfsParam: vmDisk
dataType: integer > 0
svcOperationCfsParam: vmDisks
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
busNum:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 496
svcOperationCfsParam: ipSpaceName
dataType: string
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 +208,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 +266,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 +302,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 +344,7 @@ cfsParamsByOp:
- 416
- 417
- 448
- 1118
133: []
159:
- 493
@@ -268,6 +353,7 @@ cfsParamsByOp:
- 496
- 497
- 498
- 1119
286: []
164:
- 509
@@ -281,6 +367,7 @@ cfsParamsByOp:
- 517
- 518
- 520
- 1123
135: []
134: []
stateParams:
@@ -288,11 +375,12 @@ stateParams:
vmName: web01
vmCpu: '1'
vmRam: '1'
vmDisk: ''
vmDisks: '{"busNum": 0, "size": 1}'
ipSpaceName: ''
accessIpList: ''
accessIpList: '["0.0.0.0/0"]'
imageVm: ''
cloudInit: ''
userLogin: myuser
userPublicKey: ''
accessPortList: '["22"]'
accessPortList: '{"port": "22", "type": "all"}'
sameSnat: 'false'
+22 -23
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
@@ -72,10 +72,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 815
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -83,11 +82,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: ingress
@@ -98,7 +92,7 @@ cfsParams:
- service
domain:
dataType: string
defaultValue: abracadabra-aoy3qnll
defaultValue: abracadabra-i5kntoh3
isRequired: true
isModifiable: false
masterIpSpace:
@@ -116,6 +110,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 816
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -128,13 +127,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
@@ -168,13 +167,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
@@ -196,6 +195,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": ""}'
accessConfiguration: '{"slaveAccessList": "[]", "type": "ingress", "domain": "abracadabra-aoy3qnll", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": ""}'
accessConfiguration: '{"type": "ingress", "domain": "abracadabra-i5kntoh3", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+97 -57
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/>* У СУБД обязан быть выключен `sslMode` (`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/>### 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
@@ -53,21 +95,15 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
psqlEnabled:
dataType: boolean
defaultValue: 'true'
@@ -87,6 +123,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1056
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -94,19 +135,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '1000'
@@ -131,6 +159,19 @@ cfsParams:
- '6144'
- '7168'
- '8192'
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1057
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -140,7 +181,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-vjp2crbf
defaultValue: nextcloud-gsjkslra
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1058
@@ -239,18 +280,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
logLevel:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
version:
dataType: string
defaultValue: ''
@@ -265,6 +294,18 @@ cfsParams:
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
- svcOperationCfsParamId: 1078
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -278,20 +319,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlEnabled:
dataType: boolean
defaultValue: 'true'
@@ -306,6 +336,11 @@ cfsParams:
isModifiable: false
valueList:
- 'true'
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlUid:
dataType: uuid
defaultValue: ''
@@ -316,6 +351,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1079
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -366,7 +406,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-dcxz2gqv
defaultValue: nextcloud-cpp3zfhe
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1081
@@ -376,6 +416,13 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: NONE
@@ -393,13 +440,6 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
cfsParamsByOp:
16:
- 1055
@@ -422,7 +462,7 @@ cfsParamsByOp:
129: []
128: []
stateParams:
startupConfiguration: '{"redisUid": "", "resourceRealm": "", "psqlEnabled": true, "redisEnabled": true, "psqlUid": ""}'
clusterConfiguration: '{"replicas": 1, "disk": 10, "cpu": 1000, "memory": 1024}'
accessConfiguration: '{"domain": "nextcloud-vjp2crbf"}'
startupConfiguration: '{"resourceRealm": "", "psqlEnabled": true, "redisEnabled": true, "psqlUid": "", "redisUid": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 10}'
accessConfiguration: '{"domain": "nextcloud-gsjkslra"}'
appConfiguration: '{"version": "33.0.4", "documentServer": "collabora", "logLevel": "INFO"}'
+1 -2
View File
@@ -54,10 +54,9 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 227
svcOperationCfsParam: resourceInstances
dataType: integer > 0
+59 -8
View File
@@ -7,7 +7,7 @@ service_man: 'Расширенный реестр для управления Do
процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация:
keycloak'
lifecycle:
suspendOnDestroyDefault: false
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 14
@@ -22,6 +22,18 @@ operations:
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
@@ -37,21 +49,20 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 228
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '100'
defaultValue: '1000'
isModifiable: true
- svcOperationCfsParamId: 229
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '200'
defaultValue: '1024'
isModifiable: true
- svcOperationCfsParamId: 230
svcOperationCfsParam: resourceInstances
@@ -62,9 +73,33 @@ cfsParams:
- 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
@@ -83,6 +118,12 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1129
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
14:
- 16
@@ -91,15 +132,25 @@ cfsParamsByOp:
- 229
- 230
- 231
- 1126
- 1127
- 1128
15: []
270:
- 822
- 823
- 824
- 1129
405: []
415: []
416: []
stateParams:
domain: harbor-1
resourceRealm: ''
resourceCPU: '100'
resourceMemory: '200'
resourceCPU: '1000'
resourceMemory: '1024'
resourceInstances: '1'
s3Uid: ''
pvType: s3
resourceDisk: '5'
authType: local
+1 -2
View File
@@ -71,10 +71,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 964
svcOperationCfsParam: nodeAgentConfiguration
dataType: map-fixed
+254
View File
@@ -0,0 +1,254 @@
name: k8svalkey
service_id: 87
service_display_name: Valkey
service_short_name: k8svalkey
service_man: Valkey-кластер.<br/>Пока в статусе EXPEREMENTAL
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 396
operation: create
kind: instance
action: create
- svcOperationId: 401
operation: create_user
kind: subresource
action: create
- svcOperationId: 395
operation: delete
kind: instance
action: delete
- svcOperationId: 402
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 400
operation: modify
kind: instance
action: modify
- svcOperationId: 397
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 399
operation: resume
kind: instance
action: resume
- svcOperationId: 398
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 1066
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1067
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- '4'
- '5'
- svcOperationCfsParamId: 1068
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1071
svcOperationCfsParam: valkeyConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
version:
dataType: string
defaultValue: 0.1.0
isRequired: true
isModifiable: false
valueList:
- 0.1.0
- svcOperationCfsParamId: 1072
svcOperationCfsParam: valkeyConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1073
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1074
svcOperationCfsParam: permissions
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1075
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1069
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
disk:
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'
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- '4'
- '5'
- svcOperationCfsParamId: 1070
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
396:
- 1066
- 1067
- 1068
- 1071
- 1072
401:
- 1073
- 1074
395: []
402:
- 1075
400:
- 1069
- 1070
397: []
399: []
398: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 500, "disk": 10, "memory": 512, "replicas": 1, "shards": 1}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
valkeyConfiguration: '{"version": "0.1.0"}'
valkeyConf: '{"paramName": "", "paramValue": ""}'
+74
View File
@@ -0,0 +1,74 @@
name: k8s_ziti_controller
service_id: 88
service_display_name: k8sZitiController
service_short_name: k8sZitiController
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 99
operation: create
kind: instance
action: create
- svcOperationId: 105
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 294
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '300'
isModifiable: false
- svcOperationCfsParamId: 295
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 296
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 297
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 298
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 299
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: k8sZitiController-1
isModifiable: false
cfsParamsByOp:
99:
- 294
- 295
- 296
- 297
- 298
- 299
105: []
stateParams:
resourceCPU: '300'
resourceMemory: '512'
resourceDisk: '1'
resourceInstances: '1'
resourceRealm: ''
domain: k8sZitiController-1
+19 -21
View File
@@ -66,10 +66,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1038
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -106,7 +105,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: flask-ub0sbq5h
defaultValue: flask-67i6r0en
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1040
@@ -116,13 +115,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
@@ -133,6 +125,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
@@ -173,13 +172,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: ''
@@ -190,6 +182,13 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
- svcOperationCfsParamId: 1044
svcOperationCfsParam: jsonEnv
dataType: map
@@ -209,10 +208,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
376:
- 1037
@@ -233,6 +231,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "flask-ub0sbq5h"}'
appConfiguration: '{"version": "3.12", "gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git", "healthPath": ""}'
accessConfiguration: '{"domain": "flask-67i6r0en"}'
appConfiguration: '{"gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git", "healthPath": "", "version": "3.12"}'
jsonEnv: '{}'
+183 -116
View File
@@ -101,6 +101,16 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
@@ -116,16 +126,6 @@ cfsParams:
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 789
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -139,10 +139,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 790
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -150,11 +149,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
@@ -170,6 +164,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 791
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
@@ -183,16 +182,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'
@@ -209,25 +202,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
@@ -237,9 +246,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
@@ -251,6 +260,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
@@ -258,15 +272,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
@@ -290,6 +295,15 @@ cfsParams:
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 1094
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
@@ -297,11 +311,6 @@ cfsParams:
defaultValue: '{}'
isModifiable: true
dataDescriptor:
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
type:
dataType: string
defaultValue: 'off'
@@ -318,7 +327,7 @@ cfsParams:
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: '87600'
defaultValue: '43800'
isRequired: true
isModifiable: false
certCA:
@@ -326,6 +335,11 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 741
svcOperationCfsParam: dbName
dataType: string
@@ -455,6 +469,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- '18'
- '17'
- '16'
sslRequired:
@@ -480,24 +495,32 @@ cfsParams:
- 'true'
- svcOperationCfsParamId: 798
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramValue:
log_connections:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
paramName:
dataType: string
defaultValue: ''
isRequired: true
isRequired: false
isModifiable: false
valueList:
- log_connections
- log_disconnections
- '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
dataType: map-fixed
@@ -505,11 +528,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
@@ -520,6 +538,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
@@ -527,20 +555,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: ''
@@ -559,6 +573,20 @@ cfsParams:
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 1095
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
@@ -566,6 +594,15 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
type:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
durationCA:
dataType: integer > 0
defaultValue: ''
@@ -594,15 +631,6 @@ cfsParams:
valueList:
- 'false'
- 'true'
type:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
- svcOperationCfsParamId: 801
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -616,10 +644,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
recoveryPoint:
dataType: string
defaultValue: ''
@@ -632,6 +659,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
@@ -652,11 +684,6 @@ cfsParams:
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 803
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -664,6 +691,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
@@ -679,11 +711,6 @@ cfsParams:
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 804
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
@@ -725,23 +752,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
@@ -765,6 +800,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
@@ -804,6 +844,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
@@ -845,15 +911,16 @@ cfsParamsByOp:
- 805
- 806
- 807
- 1106
54: []
114: []
115: []
stateParams:
clusterConfiguration: '{"replicas": 1, "disk": 10, "cpu": 500, "memory": 512}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
startupConfiguration: '{"resourceRealm": ""}'
accessConfiguration: '{"slaveAccessList": "[]", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": ""}'
postgresConfiguration: '{"version": "17", "sslRequired": true, "poolerMaster": false, "poolerSlave": false}'
postgresConf: '{"paramName": "", "paramValue": ""}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"percent": 10, "enabled": false, "schedule": 0, "quota": 100}'
mtlsConfiguration: '{"certServer": "", "type": "off", "durationCA": 175200, "durationServer": 87600, "certCA": ""}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
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": 43800, "certCA": "", "certServer": ""}'
+6 -7
View File
@@ -46,10 +46,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1062
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -116,6 +115,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
@@ -136,11 +140,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1065
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
+177 -39
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
@@ -87,10 +131,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1090
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -130,16 +173,59 @@ 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: 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
@@ -159,12 +245,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
@@ -217,6 +319,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
@@ -236,32 +355,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": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
mongoConfiguration: '{"tls": false}'
+33 -7
View File
@@ -76,10 +76,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1098
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -129,6 +128,18 @@ cfsParams:
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1113
svcOperationCfsParam: mqConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
maxMessageSize:
dataType: integer > 0
defaultValue: '4'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1100
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -136,11 +147,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
@@ -161,6 +167,11 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1101
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -178,15 +189,29 @@ cfsParams:
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:
- 1097
- 1098
- 1099
- 1113
39: []
106:
- 1100
- 1101
- 1114
410: []
117: []
116: []
@@ -194,3 +219,4 @@ stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
mqConfiguration: '{"maxMessageSize": 4}'
+9 -11
View File
@@ -53,10 +53,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1020
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -93,7 +92,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: lucee-tepsq9jk
defaultValue: lucee-bpp5vpr5
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1022
@@ -161,11 +160,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
@@ -179,6 +173,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1026
svcOperationCfsParam: jsonEnv
dataType: map
@@ -198,10 +197,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
49:
- 1019
@@ -223,6 +221,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "lucee-tepsq9jk"}'
accessConfiguration: '{"domain": "lucee-bpp5vpr5"}'
appConfiguration: '{"version": "6.0", "gitPath": "https://github.com/xahys/testlucee", "healthPath": ""}'
jsonEnv: '{}'
+13 -9
View File
@@ -51,10 +51,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1029
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -91,7 +90,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: node-btf263ja
defaultValue: node-zjkc4kir
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1031
@@ -118,7 +117,7 @@ cfsParams:
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
defaultValue: '1'
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1032
@@ -127,6 +126,12 @@ cfsParams:
isRequired: false
defaultValue: '{}'
isModifiable: true
dataDescriptor:
DB_PASS:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1033
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -200,10 +205,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
58:
- 1028
@@ -224,6 +228,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "node-btf263ja"}'
appConfiguration: '{"version": "23", "gitPath": "https://github.com/xahys/testnode.git", "healthPath": ""}'
jsonEnv: '{}'
accessConfiguration: '{"domain": "node-zjkc4kir"}'
appConfiguration: '{"version": "23", "gitPath": "https://github.com/xahys/testnode.git", "healthPath": "1"}'
jsonEnv: '{"DB_PASS": ""}'
+2 -4
View File
@@ -64,10 +64,9 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 170
svcOperationCfsParam: login
dataType: string
@@ -105,10 +104,9 @@ cfsParams:
defaultValue: ''
isModifiable: true
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
62:
- 164
+74
View File
@@ -0,0 +1,74 @@
name: nodered
service_id: 97
service_display_name: NodeRed
service_short_name: nodered
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 72
operation: create
kind: instance
action: create
- svcOperationId: 73
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 193
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 194
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 195
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 196
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 197
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: nodered-1
isModifiable: false
- svcOperationCfsParamId: 323
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
cfsParamsByOp:
72:
- 193
- 194
- 195
- 196
- 197
- 323
73: []
stateParams:
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
domain: nodered-1
resourceInstances: '1'
+26 -7
View File
@@ -67,28 +67,27 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 217
svcOperationCfsParam: registryPath
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
@@ -107,6 +106,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
@@ -114,10 +131,9 @@ cfsParams:
defaultValue: ''
isModifiable: true
valueList:
- iot-naeel
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
77:
- 212
@@ -133,6 +149,9 @@ cfsParamsByOp:
- 218
- 219
- 220
- 1120
- 1121
- 1122
403: []
79:
- 272
+8
View File
@@ -97,6 +97,12 @@ cfsParams:
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1124
svcOperationCfsParam: iniServiceParams
dataType: map
isRequired: false
defaultValue: DISABLE_REGISTRATION:true
isModifiable: false
- svcOperationCfsParamId: 259
svcOperationCfsParam: resourceCPU
dataType: integer > 0
@@ -143,6 +149,7 @@ cfsParamsByOp:
- 238
- 818
- 821
- 1124
83: []
91:
- 259
@@ -162,3 +169,4 @@ stateParams:
psqlUid: ''
ingressExtraAnnotations: ''
iniServerParams: ''
iniServiceParams: DISABLE_REGISTRATION:true
+10 -10
View File
@@ -150,16 +150,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
recordType:
dataType: string
defaultValue: A
@@ -176,11 +166,21 @@ cfsParams:
- NS
- SSHFP
- CAA
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordInput:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 783
svcOperationCfsParam: recordName
dataType: string
+68 -50
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/>> Ограничения доступа по IP/подсети на уровне пользователя больше нет — `user@host` в самой MariaDB всегда `%`.
Доступ к порту 3306 контролируется только на уровне инстанса через `accessConfiguration.masterAccessList`, задаваемый при `create`/`modify` (см. п.2/п.3).<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 инстанса — восстановление данных в существующий кластер выполняется вручную, скачиванием и применением бэкапа самим владельцем инстанса.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
@@ -64,6 +111,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 878
@@ -102,16 +150,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
@@ -132,7 +180,7 @@ cfsParams:
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
isModifiable: false
dataDescriptor:
s3Uid:
dataType: uuid
@@ -192,19 +240,19 @@ cfsParams:
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db-ebbjso21
defaultValue: db-nmdlrebb
isModifiable: false
- svcOperationCfsParamId: 735
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: user3vanbmfy
defaultValue: useroxxeykhb
isModifiable: false
- svcOperationCfsParamId: 736
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: p4egnsar
defaultValue: apsyfstb
isModifiable: false
- svcOperationCfsParamId: 737
svcOperationCfsParam: dbName
@@ -218,12 +266,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 738
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '%'
isModifiable: false
- svcOperationCfsParamId: 456
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
@@ -306,28 +348,6 @@ cfsParams:
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 886
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 887
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -335,15 +355,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: ''
@@ -367,6 +378,15 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
cfsParamsByOp:
138:
- 877
@@ -381,7 +401,6 @@ cfsParamsByOp:
- 735
- 736
- 737
- 738
139:
- 456
248:
@@ -392,7 +411,6 @@ cfsParamsByOp:
- 883
- 884
- 885
- 886
- 887
287: []
141: []
@@ -400,7 +418,7 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
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: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
+19 -15
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
@@ -82,6 +85,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1085
+1
View File
@@ -47,6 +47,7 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 551
+45 -44
View File
@@ -85,6 +85,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 838
@@ -114,6 +115,11 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
shards:
dataType: integer > 0
defaultValue: '1'
@@ -123,11 +129,6 @@ cfsParams:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 839
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -192,11 +193,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
@@ -207,6 +203,11 @@ cfsParams:
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 843
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
@@ -214,6 +215,14 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
@@ -238,14 +247,6 @@ cfsParams:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 851
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
@@ -312,20 +313,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
@@ -346,6 +333,20 @@ cfsParams:
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 845
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
@@ -353,15 +354,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
cpu:
dataType: integer > 0
defaultValue: ''
@@ -372,6 +364,15 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
- svcOperationCfsParamId: 846
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -512,10 +513,10 @@ cfsParamsByOp:
182: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1, "shards": 1, "disk": 10}'
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: '{"schedule": "0 0 * * *", "s3Uid": "", "retain": 7}'
autoscaleConfiguration: '{"schedule": 0, "quota": 100, "percent": 10, "enabled": false}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 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-6sa9dyug
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: sandbox.nubes.ru
@@ -26,9 +31,14 @@ cfsParams:
isModifiable: false
valueList:
- sandbox.nubes.ru
clusterName:
providerVdc:
dataType: string
defaultValue: example-brcyqrjr
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
@@ -82,6 +93,18 @@ cfsParams:
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-5tcvtwk4
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-jax0kk2f
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
@@ -143,8 +180,8 @@ cfsParamsByOp:
- 774
- 775
stateParams:
startupConfiguration: '{"resourceRealm": "sandbox.nubes.ru", "clusterName": "example-brcyqrjr"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
startupConfiguration: '{"clusterName": "k8s-6sa9dyug", "resourceRealm": "sandbox.nubes.ru", "providerVdc": "", "networkProvider": ""}'
clusterConfiguration: '{"appVersion": "2.14.0"}'
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-jax0kk2f", "sizingPolicy": ""}'
workerConfiguration: '{"groupName": "workers-5tcvtwk4", "sizingPolicy": "", "sizingDisk": 50, "count": 2, "autoscale": false, "autoscaleMin": 2, "autoscaleMax": 3, "labelDeck": true}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
+48 -48
View File
@@ -62,35 +62,6 @@ cfsParams:
defaultValue: '{}'
isModifiable: true
dataDescriptor:
ffThemes:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: '2'
@@ -120,6 +91,35 @@ cfsParams:
valueList:
- 'false'
- 'true'
ffThemes:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 658
svcOperationCfsParam: s3Storage
dataType: integer > 0
@@ -133,6 +133,24 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffWatermark:
dataType: boolean
defaultValue: ''
@@ -173,24 +191,6 @@ cfsParams:
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 660
svcOperationCfsParam: s3Storage
dataType: integer > 0
@@ -212,5 +212,5 @@ cfsParamsByOp:
stateParams:
resourceRealm: valo.ngcloud.ru
domain: ''
valoOptions: '{"ffThemes": true, "ffPublicLink": true, "ffLogging": true, "userCount": 10, "requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true}'
valoOptions: '{"requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true, "ffThemes": true, "ffPublicLink": true, "ffLogging": true, "userCount": 10}'
s3Storage: '10'
+131 -10
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-imhltbba
defaultValue: example-ryatr2rx
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
@@ -99,6 +165,11 @@ cfsParams:
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-e6bfgpqf
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
@@ -116,11 +187,32 @@ cfsParams:
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-0krz2kek
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
@@ -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
@@ -245,7 +339,7 @@ cfsParams:
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-apak4rks
defaultValue: workers-ohtgog3p
isRequired: true
isModifiable: false
sizingPolicy:
@@ -265,6 +359,32 @@ cfsParams:
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-imhltbba"}'
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-ryatr2rx", "exLogging": true, "exMonitoring": true, "exLocalCsi": true, "exVip": true, "exUpdate": true, "exIngress": true,
"exNamedCsi": true}'
controlPlaneConfiguration: '{"sizingPolicy": "[]", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 2, "groupName": "workers-0krz2kek"}'
workerConfiguration: '{"groupName": "workers-e6bfgpqf", "sizingPolicy": "", "sizingDisk": 50, "count": 2, "autoscale": false, "autoscaleMin": 2, "autoscaleMax": 3, "labelDeck": true}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
clusterConfiguration: '{"appVersion": "2.14.0"}'
+12 -16
View File
@@ -71,10 +71,6 @@ operations:
operation: recovery_secrets
kind: subresource
action: recovery
- svcOperationId: 234
operation: restart
kind: action
action: restart
- svcOperationId: 216
operation: resume
kind: instance
@@ -103,6 +99,7 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 664
@@ -141,13 +138,13 @@ cfsParams:
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: bao-onbcvsgk
defaultValue: bao-nosgzjqe
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-9e9wvkt2
defaultValue: kvname-ps9az5f9
isModifiable: false
- svcOperationCfsParamId: 728
svcOperationCfsParam: policySettings
@@ -156,21 +153,21 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
capabilities:
dataType: json
defaultValue: '["read", "list"]'
isRequired: true
isModifiable: false
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-s0hfjfmn
defaultValue: policy-kyvtdypv
isModifiable: false
- svcOperationCfsParamId: 677
svcOperationCfsParam: kvName
@@ -277,12 +274,12 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
capabilities:
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
path:
capabilities:
dataType: string
defaultValue: ''
isRequired: true
@@ -351,7 +348,6 @@ cfsParamsByOp:
- 723
- 724
- 725
234: []
216: []
215: []
238:
@@ -369,4 +365,4 @@ stateParams:
resourceMemory: '512'
resourceDisk: '10'
appVersion: 2.5.2
domain: bao-onbcvsgk
domain: bao-nosgzjqe
+100
View File
@@ -0,0 +1,100 @@
name: nifi
service_id: 153
service_display_name: Nifi
service_short_name: nifi
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 229
operation: create
kind: instance
action: create
- svcOperationId: 235
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 711
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: nifi-qmpqdalo
isModifiable: false
- svcOperationCfsParamId: 712
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '2000'
isModifiable: false
- svcOperationCfsParamId: 713
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '4096'
isModifiable: false
- svcOperationCfsParamId: 714
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
valueList:
- '1'
- svcOperationCfsParamId: 715
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: false
- svcOperationCfsParamId: 716
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: 2.6.0
isModifiable: false
valueList:
- 2.6.0
- svcOperationCfsParamId: 717
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 718
svcOperationCfsParam: jdbcDrivers
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
path:
dataType: string
defaultValue: https://jdbc.postgresql.org/download/postgresql-42.7.8.jar
isRequired: true
isModifiable: false
cfsParamsByOp:
229:
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
235: []
stateParams:
domain: nifi-qmpqdalo
resourceCPU: '2000'
resourceMemory: '4096'
resourceInstances: '1'
resourceDisk: '10'
appVersion: 2.6.0
resourceRealm: ''
jdbcDrivers: '{"path": "https://jdbc.postgresql.org/download/postgresql-42.7.8.jar"}'
+43 -65
View File
@@ -1,33 +1,39 @@
name: llm_ai
service_id: 163
service_display_name: LLM
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/>## Доступные операции<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/>---<br/><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/>* **Период бюджета**<br/> Срок жизни организации в днях.<br/> Пример: `30`<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/>## 12. Пример использования 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/>'
не нужно.<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
@@ -60,6 +66,10 @@ operations:
operation: modify_team
kind: subresource
action: modify
- svcOperationId: 412
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 277
operation: update_secrets
kind: subresource
@@ -106,45 +116,6 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1083
svcOperationCfsParam: variablesKeys
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
teamName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
keyName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
models:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
tpmLimit:
dataType: integer > 0
defaultValue: '100000'
isRequired: true
isModifiable: false
rpmLimit:
dataType: integer > 0
defaultValue: '60'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 858
svcOperationCfsParam: teamName
dataType: string
@@ -241,6 +212,12 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1157
svcOperationCfsParam: ''
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
271:
- 826
@@ -250,7 +227,6 @@ cfsParamsByOp:
- 835
- 857
- 859
- 1083
278:
- 858
- 860
@@ -267,11 +243,13 @@ cfsParamsByOp:
- 865
- 873
- 874
412: []
277:
- 852
- 853
- 854
- 855
- 875
- 1157
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: sandbox.nubes.ru
organizationType: iaas
organizationSuffix: ''
+36 -21
View File
@@ -95,12 +95,12 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
subparam2:
subparam1:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
subparam1:
subparam2:
dataType: string
defaultValue: ''
isRequired: false
@@ -159,10 +159,17 @@ cfsParams:
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isRequired: false
isModifiable: false
valueList:
- abracadabra
- incorr
- correctvalue
s3-inst:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
@@ -170,21 +177,6 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
bol1:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: ''
@@ -204,6 +196,21 @@ cfsParams:
defaultValue: '1'
isRequired: true
isModifiable: false
bol1:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- abracadabra
- svcOperationCfsParamId: 863
svcOperationCfsParam: arr
dataType: array
@@ -214,6 +221,12 @@ cfsParams:
- test
- '2'
- val1
- svcOperationCfsParamId: 1131
svcOperationCfsParam: s3-ref-root
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 287
svcOperationCfsParam: durationMs
dataType: integer >= 0
@@ -286,6 +299,7 @@ cfsParamsByOp:
- 647
- 654
- 863
- 1131
71: []
92:
- 287
@@ -306,9 +320,10 @@ stateParams:
whereFail: '1'
resourceRealm: dummy
bodymessage: ''
mapExample: '{"subparam2": "", "subparam1": "", "secret": ""}'
mapExample: '{"subparam1": "", "subparam2": "", "secret": ""}'
jsonExample: ''
nestedRefExample: ''
mapFixed: '{"param1": 1, "param2": "1", "param3": 1, "bol1": false, "minStr1": "abracadabra"}'
arrayMapFixedExample: '{"bol1": false, "minStr1": "", "param1": 0, "param2": "", "param3": 1}'
mapFixed: '{"param1": 1, "param2": "1", "param3": 1, "bol1": false, "minStr1": "abracadabra", "s3-inst": ""}'
arrayMapFixedExample: '{"param1": 0, "param2": "", "param3": 1, "bol1": false, "minStr1": ""}'
arr: ''
s3-ref-root: ''
+12 -4
View File
@@ -84,12 +84,12 @@ cfsParams:
isModifiable: false
- 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
@@ -110,6 +110,12 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1130
svcOperationCfsParam: suffixName
dataType: string
isRequired: false
defaultValue: 7uabwsgb
isModifiable: false
- svcOperationCfsParamId: 560
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
@@ -148,6 +154,7 @@ cfsParamsByOp:
- 557
- 558
- 746
- 1130
24: []
112:
- 560
@@ -160,7 +167,8 @@ stateParams:
organizationUid: ''
providerVdc: ''
storageConfig: '{"name": "", "size": 2000}'
cpuGuaranteed: '20'
cpuGuaranteed: '0'
cpuAllocated: '80'
memAllocated: '200'
networkProvider: ''
suffixName: 7uabwsgb
+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"}'
+1 -1
View File
@@ -1,6 +1,6 @@
name: vcexternalip
service_id: 25
service_display_name: Публичные IP адреса
service_display_name: '[DEPRECATED] Публичные IP адреса'
service_short_name: vcexternalip
service_man: '**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**<br/>Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать<br/><br/>Резервировать
публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.<br/>Вы можете назначить IP адрес для существующего экземпляра
+2 -2
View File
@@ -52,7 +52,7 @@ cfsParams:
svcOperationCfsParam: vappName
dataType: string
isRequired: true
defaultValue: fgpdul5a
defaultValue: j8lanwbr
isModifiable: false
- svcOperationCfsParamId: 623
svcOperationCfsParam: vdcUid
@@ -71,5 +71,5 @@ cfsParamsByOp:
208: []
stateParams:
nsxtUid: ''
vappName: fgpdul5a
vappName: j8lanwbr
vdcUid: ''
+112 -24
View File
@@ -83,11 +83,22 @@ cfsParams:
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 411
svcOperationCfsParam: vmDisk
dataType: integer > 0
svcOperationCfsParam: vmDisks
dataType: array-map-fixed
isRequired: false
defaultValue: ''
defaultValue: '[{"busNum": 0, "size": "20"}]'
isModifiable: true
dataDescriptor:
busNum:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 412
svcOperationCfsParam: ipSpaceName
dataType: string
@@ -96,9 +107,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 +137,34 @@ cfsParams:
isModifiable: false
- svcOperationCfsParamId: 448
svcOperationCfsParam: accessPortList
dataType: string
dataType: array-map-fixed
isRequired: true
defaultValue: '["22"]'
defaultValue: '[{"port": "22", "type": "tcp"}, {"port": "10050", "type": "tcp"}]'
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
@@ -143,22 +178,28 @@ cfsParams:
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 495
svcOperationCfsParam: vmDisk
dataType: integer > 0
svcOperationCfsParam: vmDisks
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
busNum:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 496
svcOperationCfsParam: ipSpaceName
dataType: string
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 +208,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 +266,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 +302,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 +344,7 @@ cfsParamsByOp:
- 416
- 417
- 448
- 1118
133: []
159:
- 493
@@ -268,6 +353,7 @@ cfsParamsByOp:
- 496
- 497
- 498
- 1119
286: []
164:
- 509
@@ -281,6 +367,7 @@ cfsParamsByOp:
- 517
- 518
- 520
- 1123
135: []
134: []
stateParams:
@@ -288,11 +375,12 @@ stateParams:
vmName: web01
vmCpu: '1'
vmRam: '1'
vmDisk: ''
vmDisks: '{"busNum": 0, "size": 1}'
ipSpaceName: ''
accessIpList: ''
accessIpList: '["0.0.0.0/0"]'
imageVm: ''
cloudInit: ''
userLogin: myuser
userPublicKey: ''
accessPortList: '["22"]'
accessPortList: '{"port": "22", "type": "all"}'
sameSnat: 'false'
+29 -28
View File
@@ -39,6 +39,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '128'
@@ -49,11 +54,6 @@ cfsParams:
defaultValue: '1'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '5'
@@ -72,6 +72,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 815
@@ -91,7 +92,7 @@ cfsParams:
- service
domain:
dataType: string
defaultValue: abracadabra-l9gtqv1m
defaultValue: abracadabra-i5kntoh3
isRequired: true
isModifiable: false
masterIpSpace:
@@ -121,26 +122,26 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
disk:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 817
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -148,16 +149,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: ''
@@ -176,11 +167,21 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
74:
- 813
@@ -194,6 +195,6 @@ cfsParamsByOp:
98: []
97: []
stateParams:
clusterConfiguration: '{"memory": 128, "replicas": 1, "cpu": 100, "disk": 5}'
clusterConfiguration: '{"cpu": 100, "memory": 128, "replicas": 1, "disk": 5}'
startupConfiguration: '{"resourceRealm": ""}'
accessConfiguration: '{"type": "ingress", "domain": "abracadabra-l9gtqv1m", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
accessConfiguration: '{"type": "ingress", "domain": "abracadabra-i5kntoh3", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+104 -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/>* У СУБД обязан быть выключен `sslMode` (`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/>### 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
@@ -53,6 +95,22 @@ cfsParams:
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
psqlEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
redisEnabled:
dataType: boolean
defaultValue: 'true'
@@ -70,21 +128,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
psqlEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
- svcOperationCfsParamId: 1056
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -138,7 +181,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-vbxjicr2
defaultValue: nextcloud-gsjkslra
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1058
@@ -193,19 +236,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: ''
@@ -230,6 +260,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
@@ -276,18 +319,9 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlEnabled:
dataType: boolean
defaultValue: 'true'
@@ -302,6 +336,11 @@ cfsParams:
isModifiable: false
valueList:
- 'true'
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlUid:
dataType: uuid
defaultValue: ''
@@ -312,6 +351,11 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1079
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -319,16 +363,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: ''
@@ -353,6 +387,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
@@ -362,7 +406,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-bcdguda1
defaultValue: nextcloud-cpp3zfhe
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1081
@@ -372,6 +416,13 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: NONE
@@ -389,13 +440,6 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
cfsParamsByOp:
16:
- 1055
@@ -418,7 +462,7 @@ cfsParamsByOp:
129: []
128: []
stateParams:
startupConfiguration: '{"redisEnabled": true, "psqlUid": "", "redisUid": "", "resourceRealm": "", "psqlEnabled": true}'
startupConfiguration: '{"resourceRealm": "", "psqlEnabled": true, "redisEnabled": true, "psqlUid": "", "redisUid": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 10}'
accessConfiguration: '{"domain": "nextcloud-vbxjicr2"}'
accessConfiguration: '{"domain": "nextcloud-gsjkslra"}'
appConfiguration: '{"version": "33.0.4", "documentServer": "collabora", "logLevel": "INFO"}'
+1
View File
@@ -54,6 +54,7 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 227
+50 -2
View File
@@ -7,7 +7,7 @@ service_man: 'Расширенный реестр для управления Do
процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация:
keycloak'
lifecycle:
suspendOnDestroyDefault: false
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 14
@@ -26,6 +26,14 @@ operations:
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
@@ -41,6 +49,7 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 228
@@ -64,9 +73,33 @@ cfsParams:
- 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
@@ -85,6 +118,12 @@ cfsParams:
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1129
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
14:
- 16
@@ -93,12 +132,18 @@ cfsParamsByOp:
- 229
- 230
- 231
- 1126
- 1127
- 1128
15: []
270:
- 822
- 823
- 824
- 1129
405: []
415: []
416: []
stateParams:
domain: harbor-1
resourceRealm: ''
@@ -106,3 +151,6 @@ stateParams:
resourceMemory: '1024'
resourceInstances: '1'
s3Uid: ''
pvType: s3
resourceDisk: '5'
authType: local
+6 -5
View File
@@ -71,6 +71,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 964
@@ -118,6 +119,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
@@ -132,11 +138,6 @@ cfsParams:
- '1'
- '2'
- '3'
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 966
svcOperationCfsParam: nodeAgentConfiguration
dataType: map-fixed
+254
View File
@@ -0,0 +1,254 @@
name: k8svalkey
service_id: 87
service_display_name: Valkey
service_short_name: k8svalkey
service_man: Valkey-кластер.<br/>Пока в статусе EXPEREMENTAL
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 396
operation: create
kind: instance
action: create
- svcOperationId: 401
operation: create_user
kind: subresource
action: create
- svcOperationId: 395
operation: delete
kind: instance
action: delete
- svcOperationId: 402
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 400
operation: modify
kind: instance
action: modify
- svcOperationId: 397
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 399
operation: resume
kind: instance
action: resume
- svcOperationId: 398
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 1066
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1067
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- '4'
- '5'
- svcOperationCfsParamId: 1068
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1071
svcOperationCfsParam: valkeyConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
version:
dataType: string
defaultValue: 0.1.0
isRequired: true
isModifiable: false
valueList:
- 0.1.0
- svcOperationCfsParamId: 1072
svcOperationCfsParam: valkeyConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1073
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1074
svcOperationCfsParam: permissions
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1075
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1069
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
disk:
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'
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- '4'
- '5'
- svcOperationCfsParamId: 1070
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
396:
- 1066
- 1067
- 1068
- 1071
- 1072
401:
- 1073
- 1074
395: []
402:
- 1075
400:
- 1069
- 1070
397: []
399: []
398: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 500, "disk": 10, "memory": 512, "replicas": 1, "shards": 1}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
valkeyConfiguration: '{"version": "0.1.0"}'
valkeyConf: '{"paramName": "", "paramValue": ""}'
@@ -0,0 +1,74 @@
name: k8s_ziti_controller
service_id: 88
service_display_name: k8sZitiController
service_short_name: k8sZitiController
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 99
operation: create
kind: instance
action: create
- svcOperationId: 105
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 294
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '300'
isModifiable: false
- svcOperationCfsParamId: 295
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 296
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 297
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 298
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 299
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: k8sZitiController-1
isModifiable: false
cfsParamsByOp:
99:
- 294
- 295
- 296
- 297
- 298
- 299
105: []
stateParams:
resourceCPU: '300'
resourceMemory: '512'
resourceDisk: '1'
resourceInstances: '1'
resourceRealm: ''
domain: k8sZitiController-1
+17 -15
View File
@@ -66,6 +66,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1038
@@ -104,7 +105,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: flask-4brtjmwm
defaultValue: flask-67i6r0en
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1040
@@ -114,6 +115,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
gitPath:
dataType: string
defaultValue: https://github.com/Foxyhhd/Baldurs-Gate-test.git
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
@@ -126,11 +132,6 @@ cfsParams:
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: https://github.com/Foxyhhd/Baldurs-Gate-test.git
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1041
svcOperationCfsParam: jsonEnv
dataType: map
@@ -171,13 +172,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: ''
@@ -188,6 +182,13 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
- svcOperationCfsParamId: 1044
svcOperationCfsParam: jsonEnv
dataType: map
@@ -207,6 +208,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
@@ -229,6 +231,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "flask-4brtjmwm"}'
appConfiguration: '{"healthPath": "", "version": "3.12", "gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git"}'
accessConfiguration: '{"domain": "flask-67i6r0en"}'
appConfiguration: '{"gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git", "healthPath": "", "version": "3.12"}'
jsonEnv: '{}'
+152 -81
View File
@@ -101,6 +101,16 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
@@ -116,16 +126,6 @@ cfsParams:
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 789
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -139,6 +139,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 790
@@ -181,16 +182,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'
@@ -207,25 +202,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
@@ -235,9 +246,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
@@ -249,6 +260,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
@@ -311,7 +327,7 @@ cfsParams:
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: '87600'
defaultValue: '43800'
isRequired: true
isModifiable: false
certCA:
@@ -453,6 +469,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- '18'
- '17'
- '16'
sslRequired:
@@ -478,23 +495,31 @@ cfsParams:
- 'true'
- svcOperationCfsParamId: 798
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: 799
svcOperationCfsParam: backupConfiguration
@@ -503,6 +528,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
@@ -513,10 +543,10 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
incrementCount:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 800
svcOperationCfsParam: autoscaleConfiguration
@@ -564,24 +594,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
certCA:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
refreshCert:
dataType: boolean
defaultValue: 'false'
isRequired: false
isModifiable: false
valueList:
- 'false'
- 'true'
type:
dataType: string
defaultValue: ''
@@ -601,6 +613,24 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
certCA:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
refreshCert:
dataType: boolean
defaultValue: 'false'
isRequired: false
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 801
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
@@ -614,6 +644,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
recoveryPoint:
@@ -628,11 +659,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
@@ -653,6 +679,11 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 803
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -721,23 +752,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
@@ -761,6 +800,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
@@ -768,6 +812,14 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
@@ -792,14 +844,32 @@ cfsParams:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
- svcOperationCfsParamId: 1106
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
type:
dataType: string
defaultValue: 'off'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- '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
@@ -841,15 +911,16 @@ cfsParamsByOp:
- 805
- 806
- 807
- 1106
54: []
114: []
115: []
stateParams:
clusterConfiguration: '{"replicas": 1, "disk": 10, "cpu": 500, "memory": 512}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
startupConfiguration: '{"resourceRealm": ""}'
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": ""}'
+12 -11
View File
@@ -46,6 +46,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1062
@@ -55,6 +56,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
@@ -75,11 +81,6 @@ cfsParams:
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1063
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -146,6 +147,11 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
@@ -161,11 +167,6 @@ cfsParams:
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
21:
- 1061
@@ -180,5 +181,5 @@ cfsParamsByOp:
392: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"memory": 512, "replicas": 1, "disk": 10, "cpu": 500}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+193 -53
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
@@ -87,6 +131,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1090
@@ -96,6 +141,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'
@@ -111,16 +166,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
@@ -128,16 +173,59 @@ 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: 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
@@ -157,12 +245,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
@@ -173,11 +277,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
@@ -198,6 +297,11 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1093
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -215,6 +319,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
@@ -234,32 +355,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": ""}'
clusterConfiguration: '{"replicas": 1, "disk": 5, "cpu": 1000, "memory": 1024}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
mongoConfiguration: '{"tls": false}'
+33 -5
View File
@@ -76,6 +76,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1098
@@ -127,6 +128,18 @@ cfsParams:
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1113
svcOperationCfsParam: mqConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
maxMessageSize:
dataType: integer > 0
defaultValue: '4'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1100
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -134,11 +147,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
@@ -159,6 +167,11 @@ cfsParams:
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1101
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
@@ -176,15 +189,29 @@ cfsParams:
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:
- 1097
- 1098
- 1099
- 1113
39: []
106:
- 1100
- 1101
- 1114
410: []
117: []
116: []
@@ -192,3 +219,4 @@ stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
mqConfiguration: '{"maxMessageSize": 4}'
+18 -16
View File
@@ -53,6 +53,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1020
@@ -91,7 +92,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: lucee-pzpvwkuk
defaultValue: lucee-bpp5vpr5
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1022
@@ -101,11 +102,6 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: '6.0'
@@ -119,6 +115,11 @@ cfsParams:
defaultValue: https://github.com/xahys/testlucee
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1023
svcOperationCfsParam: jsonEnv
dataType: map
@@ -159,6 +160,14 @@ cfsParams:
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '6.0'
- '5.4'
gitPath:
dataType: string
defaultValue: ''
@@ -169,14 +178,6 @@ cfsParams:
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '6.0'
- '5.4'
- svcOperationCfsParamId: 1026
svcOperationCfsParam: jsonEnv
dataType: map
@@ -196,6 +197,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
@@ -219,6 +221,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "lucee-pzpvwkuk"}'
appConfiguration: '{"healthPath": "", "version": "6.0", "gitPath": "https://github.com/xahys/testlucee"}'
accessConfiguration: '{"domain": "lucee-bpp5vpr5"}'
appConfiguration: '{"version": "6.0", "gitPath": "https://github.com/xahys/testlucee", "healthPath": ""}'
jsonEnv: '{}'
+11 -3
View File
@@ -51,6 +51,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1029
@@ -89,7 +90,7 @@ cfsParams:
dataDescriptor:
domain:
dataType: string
defaultValue: node-ctkmt4iw
defaultValue: node-zjkc4kir
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1031
@@ -125,6 +126,12 @@ cfsParams:
isRequired: false
defaultValue: '{}'
isModifiable: true
dataDescriptor:
DB_PASS:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1033
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
@@ -198,6 +205,7 @@ cfsParams:
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
@@ -220,6 +228,6 @@ cfsParamsByOp:
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "node-ctkmt4iw"}'
accessConfiguration: '{"domain": "node-zjkc4kir"}'
appConfiguration: '{"version": "23", "gitPath": "https://github.com/xahys/testnode.git", "healthPath": "1"}'
jsonEnv: '{}'
jsonEnv: '{"DB_PASS": ""}'
+2
View File
@@ -64,6 +64,7 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 170
@@ -103,6 +104,7 @@ cfsParams:
defaultValue: ''
isModifiable: true
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
+74
View File
@@ -0,0 +1,74 @@
name: nodered
service_id: 97
service_display_name: NodeRed
service_short_name: nodered
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 72
operation: create
kind: instance
action: create
- svcOperationId: 73
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 193
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 194
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 195
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 196
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 197
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: nodered-1
isModifiable: false
- svcOperationCfsParamId: 323
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
cfsParamsByOp:
72:
- 193
- 194
- 195
- 196
- 197
- 323
73: []
stateParams:
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
domain: nodered-1
resourceInstances: '1'
+26 -3
View File
@@ -67,6 +67,7 @@ cfsParams:
defaultValue: ''
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 217
@@ -74,19 +75,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
@@ -105,6 +106,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
@@ -112,6 +131,7 @@ cfsParams:
defaultValue: ''
isModifiable: true
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
@@ -129,6 +149,9 @@ cfsParamsByOp:
- 218
- 219
- 220
- 1120
- 1121
- 1122
403: []
79:
- 272
+8
View File
@@ -97,6 +97,12 @@ cfsParams:
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1124
svcOperationCfsParam: iniServiceParams
dataType: map
isRequired: false
defaultValue: DISABLE_REGISTRATION:true
isModifiable: false
- svcOperationCfsParamId: 259
svcOperationCfsParam: resourceCPU
dataType: integer > 0
@@ -143,6 +149,7 @@ cfsParamsByOp:
- 238
- 818
- 821
- 1124
83: []
91:
- 259
@@ -162,3 +169,4 @@ stateParams:
psqlUid: ''
ingressExtraAnnotations: ''
iniServerParams: ''
iniServiceParams: DISABLE_REGISTRATION:true
+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: '{}'

Some files were not shown because too many files have changed in this diff Show More