268 lines
14 KiB
YAML
268 lines
14 KiB
YAML
name: mongodb
|
|
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-квота
|
|
для пода в миликорах (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/>Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину
|
|
и паролю.'
|
|
lifecycle:
|
|
suspendOnDestroyDefault: true
|
|
adoptExistingOnCreateDefault: false
|
|
operations:
|
|
- svcOperationId: 37
|
|
operation: create
|
|
kind: instance
|
|
action: create
|
|
- svcOperationId: 198
|
|
operation: create_user
|
|
kind: subresource
|
|
action: create
|
|
- svcOperationId: 190
|
|
operation: delete
|
|
kind: instance
|
|
action: delete
|
|
- svcOperationId: 199
|
|
operation: delete_user
|
|
kind: subresource
|
|
action: delete
|
|
- svcOperationId: 201
|
|
operation: modify
|
|
kind: instance
|
|
action: modify
|
|
- svcOperationId: 200
|
|
operation: modify_user
|
|
kind: subresource
|
|
action: modify
|
|
- svcOperationId: 409
|
|
operation: reconcile
|
|
kind: action
|
|
action: reconcile
|
|
- svcOperationId: 196
|
|
operation: resume
|
|
kind: instance
|
|
action: resume
|
|
- svcOperationId: 194
|
|
operation: suspend
|
|
kind: instance
|
|
action: suspend
|
|
stateOut:
|
|
users: {}
|
|
cfsParams:
|
|
- svcOperationCfsParamId: 1089
|
|
svcOperationCfsParam: startupConfiguration
|
|
dataType: map-fixed
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
dataDescriptor:
|
|
resourceRealm:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
valueList:
|
|
- iot-naeel
|
|
- k8s-3-sandbox-nubes-ru
|
|
- k8s-4-sandbox-nubes-ru
|
|
- naeel-test-3
|
|
- svcOperationCfsParamId: 1090
|
|
svcOperationCfsParam: clusterConfiguration
|
|
dataType: map-fixed
|
|
isRequired: true
|
|
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'
|
|
isRequired: true
|
|
isModifiable: false
|
|
valueList:
|
|
- '1'
|
|
- '3'
|
|
- '5'
|
|
- '7'
|
|
disk:
|
|
dataType: integer > 0
|
|
defaultValue: '5'
|
|
isRequired: true
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 1091
|
|
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: 635
|
|
svcOperationCfsParam: username
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 636
|
|
svcOperationCfsParam: dbName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 643
|
|
svcOperationCfsParam: role
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
valueList:
|
|
- dbOwner
|
|
- read
|
|
- readWrite
|
|
- svcOperationCfsParamId: 644
|
|
svcOperationCfsParam: username
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 1092
|
|
svcOperationCfsParam: clusterConfiguration
|
|
dataType: map-fixed
|
|
isRequired: true
|
|
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: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
valueList:
|
|
- '1'
|
|
- '3'
|
|
- '5'
|
|
- '7'
|
|
disk:
|
|
dataType: integer > 0
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 1093
|
|
svcOperationCfsParam: accessConfiguration
|
|
dataType: map-fixed
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
dataDescriptor:
|
|
masterIpSpace:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
masterAccessList:
|
|
dataType: json
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 640
|
|
svcOperationCfsParam: username
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 641
|
|
svcOperationCfsParam: dbName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 642
|
|
svcOperationCfsParam: role
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
valueList:
|
|
- dbOwner
|
|
- read
|
|
- readWrite
|
|
cfsParamsByOp:
|
|
37:
|
|
- 1089
|
|
- 1090
|
|
- 1091
|
|
198:
|
|
- 635
|
|
- 636
|
|
- 643
|
|
190: []
|
|
199:
|
|
- 644
|
|
201:
|
|
- 1092
|
|
- 1093
|
|
200:
|
|
- 640
|
|
- 641
|
|
- 642
|
|
409: []
|
|
196: []
|
|
194: []
|
|
stateParams:
|
|
startupConfiguration: '{"resourceRealm": ""}'
|
|
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
|
|
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
|