name: mongodb
service_id: 92
service_display_name: MongoDB
service_short_name: mongodb
service_man: '# Инструкция по развертыванию MongoDB через платформу
## 1. Общая информация
MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность,
горизонтальное масштабирование и гибкую модель хранения.
### Доступные операции с кластером
* **create** — создание базы
* **delete** — удаление базы данных
* **suspend** —
остановка базы данных
* **resume** — запуск базы данных
* **modify** — изменение базы данных
### Доступные операции с пользователями
* **create_user** — создание пользователя
*
**modify_user** — модификация пользователя
* **delete_user** — удаление пользователя
---
## 2. Параметры развертывания базы данных
Эти параметры необходимо указать при создании
базы данных.
### Платформа для развертывания
Среда, в которой будет развернут кластер. Выбирается из предложенного списка.
### Количество узлов
Количество реплик в
кластере MongoDB.
Оптимально выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.
>
**Примечание:** уменьшение количества узлов после создания кластера не рекомендуется.
### Квота памяти пода (MB)
Объём памяти для одного пода в мегабайтах.
Пример: `2048`
###
Квота CPU пода (mCPU)
CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`
### Размер диска для базы данных (GB)
Объём диска для хранения данных в гигабайтах.
Пример:
`20`
### Имя ipSpace для публикации внешнего IP
Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу.
Укажите `no-needed`, если внешний адрес не требуется.
Пример:
`internet-no-antiddos-v1`
### Список разрешённых IP-адресов
Список IP-адресов или подсетей, с которых разрешён доступ к кластеру.
Если оставить пустым — доступ открыт для всех источников.
Пример:
`["10.0.0.0/24", "192.168.1.10/32"]`
---
## 3. Параметры модификации базы данных
Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически
подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.
### Количество узлов
Количество реплик в кластере MongoDB.
Оптимально выбирать нечётное
значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.
> **Примечание:** уменьшение количества узлов
после создания кластера не рекомендуется.
### Квота памяти пода (MB)
Объём памяти для одного пода в мегабайтах.
Пример: `2048`
### Квота CPU пода (mCPU)
CPU-квота
для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`
### Размер диска для базы данных (GB)
Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при
необходимости, однако уменьшить уже выделенный размер невозможно.
Пример: `20`
### Имя ipSpace для публикации внешнего IP
Имя ipSpace, через который будет выделен внешний IP для
доступа к master-узлу.
Укажите `no-needed`, если внешний адрес не требуется.
Пример: `internet-no-antiddos-v1`
### Список разрешённых IP-адресов
Список IP-адресов или подсетей,
с которых разрешён доступ к кластеру.
Если оставить пустым — доступ открыт для всех источников.
Пример: `["10.0.0.0/24", "192.168.1.10/32"]`
---
## 3. Параметры создания пользователя
###
Имя пользователя
Указывается имя пользователя (любой регистр).
Пример: `readApp`
### Имя базы данных
Название базы, в которой будет создан пользователь.
Если база отсутствует,
она будет создана автоматически.
Пример: `Apps_9392`
### Имя роли
* **read** — доступ только на чтение
* **readWrite** — чтение и изменение данных
* **dbOwner** — полный
контроль над базой данных
---
## 4. Параметры модификации пользователя
### Имя пользователя
Необходимо выбрать существующего пользователя.
Если список пуст, требуется
предварительно создать пользователя.
### Имя базы данных
База данных, к которой относится пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`
###
Имя роли
* **read**
* **readWrite**
* **dbOwner**
---
## 5. Параметры удаления пользователя
### Имя пользователя
Выберите пользователя из списка для
удаления.
---
## 6. Выходные параметры
После успешного развертывания базы данных платформа возвращает ключевые параметры.
### internalConnect
Внутренний эндпоинт
для подключения к кластеру из сервисов, работающих в той же сети.
Используется для внутренних интеграций и системных сервисов.
### externalConnect
Внешний FQDN для подключения к
кластеру извне.
Порт подключения — **27017**.
---
## 7. Пример подключения
Перед подключением необходимо установить **mongosh**.
Команда подключения к базе данных:
```
mongosh
"mongodb://:@:27017/"
```
Где:
* `` — имя пользователя
* `` — пароль
* `` — internalConnect или
externalConnect
* `` — имя базы данных
## 8. Дополнительная информация
Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину
и паролю.'
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: k8s-4-ext-nubes-ru
isRequired: true
isModifiable: false
valueList:
- k8s-4-ext-nubes-ru
- svcOperationCfsParamId: 1090
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
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
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
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
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": "k8s-4-ext-nubes-ru"}'
clusterConfiguration: '{"replicas": 1, "disk": 5, "cpu": 1000, "memory": 1024}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'