Remove YAML files from tracking
This commit is contained in:
@@ -1,281 +0,0 @@
|
|||||||
name: zones_v2
|
|
||||||
service_id: 109
|
|
||||||
service_display_name: Управление DNS
|
|
||||||
service_short_name: zonesV2
|
|
||||||
service_man: '# Управление DNS<br/><br/>## Что делает сервис<br/><br/>Управляет DNS-зоной вашего домена в инфраструктуре `ngcloud.ru`.<br/>Сервис помогает:<br/><br/>- создать DNS-зону;<br/>- поддерживать записи в зоне (добавлять, удалять, массово менять);<br/>- удалять зону;<br/>- синхронизировать данные зоны с фактическим состоянием на DNS-серверах.<br/><br/>Сервис работает с авторитетными DNS-серверами зоны:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>## Очень важно: что сделать у регистратора домена<br/><br/>Чтобы зона действительно начала обслуживаться, **нужно делегировать домен** у регистратора на авторитетные DNS-серверы:<br/><br/>- `ns3.ngcloud.ru`<br/>- `ns4.ngcloud.ru`<br/><br/>В панели регистратора нужно заменить NS-серверы домена на значения выше.<br/>Без этого записи в зоне могут быть созданы, но интернет не будет использовать их для вашего домена.<br/><br/>## Проверка после настройки<br/><br/>Проверить ответы от серверов зоны:<br/><br/>```bash<br/>dig <ваш_домен> @ns3.ngcloud.ru<br/>dig <ваш_домен> @ns4.ngcloud.ru<br/>```<br/><br/>Проверить, что делегирование у регистратора применилось:<br/><br/>```bash<br/>dig <ваш_домен> NS<br/>```<br/><br/>В ответе должны быть `ns3.ngcloud.ru` и `ns4.ngcloud.ru`.<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 254
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '# Операция `create` (создание DNS-зоны)<br/><br/>## Что делает операция<br/><br/>`create` создает новую DNS-зону на авторитетных серверах сервиса.<br/>После создания зона закрепляется за пользователем, который запустил создание инстанса.<br/><br/>## Когда использовать<br/><br/>- подключаете домен к сервису впервые;<br/>- нужна новая отдельная зона.<br/><br/>## Важное условие после создания<br/><br/>У регистратора домена нужно делегировать зону на:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>Если этого не сделать, зона будет создана технически, но в интернете домен не начнет работать через эти DNS.<br/><br/>## Объяснение параметра `Типа зоны`<br/><br/>### `NATIVE`<br/><br/>Это основная (ведущая) зона в нашем сервисе.<br/>Вы управляете записями здесь, и именно эта зона считается источником правды.<br/><br/>### `SLAVE`<br/><br/>Это копия зоны, которая подтягивает данные с внешнего DNS-сервера.<br/>Такой режим нужен, когда истинный источник записей находится не в нашем сервисе, а на другом DNS.<br/><br/>## Что проверяет операция<br/><br/>- что такая зона еще не существует на целевых DNS;<br/>- корректность входных параметров зоны;<br/>- ограничения на служебные/запрещенные имена зон.'
|
|
||||||
params:
|
|
||||||
- id: 761
|
|
||||||
code: zoneName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^([a-z0-9-]+\.)+[a-z0-9-]+$
|
|
||||||
maxlength: 64
|
|
||||||
minlength: 1
|
|
||||||
descr: Имя зоны
|
|
||||||
sort: 20
|
|
||||||
- id: 762
|
|
||||||
code: zoneKind
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: NATIVE
|
|
||||||
value_list:
|
|
||||||
- NATIVE
|
|
||||||
- SLAVE
|
|
||||||
descr: Тип зоны
|
|
||||||
sort: 30
|
|
||||||
- id: 763
|
|
||||||
code: zoneMastersForSlave
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов
|
|
||||||
man: Пример:<br/>**8.8.8.8 8.8.4.4**
|
|
||||||
sort: 40
|
|
||||||
- id: 764
|
|
||||||
code: zoneRefresh
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "86400"
|
|
||||||
minvalue: 600
|
|
||||||
descr: Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов
|
|
||||||
sort: 50
|
|
||||||
- id: 765
|
|
||||||
code: zoneRetry
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7200"
|
|
||||||
minvalue: 600
|
|
||||||
descr: Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов
|
|
||||||
sort: 60
|
|
||||||
- id: 766
|
|
||||||
code: zoneExpire
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600000"
|
|
||||||
minvalue: 3600
|
|
||||||
descr: Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным
|
|
||||||
sort: 70
|
|
||||||
- id: 767
|
|
||||||
code: zoneTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "86400"
|
|
||||||
minvalue: 600
|
|
||||||
descr: Время, в течение которого информация будет кешироваться другими DNS-серверами
|
|
||||||
sort: 80
|
|
||||||
- id: 768
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: powerdns
|
|
||||||
value_list:
|
|
||||||
- powerdns
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
sort: 10
|
|
||||||
- name: create_record
|
|
||||||
id: 260
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: record
|
|
||||||
man: '# Операция `create_record` (добавление одной записи)<br/><br/>## Что делает операция<br/><br/>`create_record` точечно добавляет одну DNS-запись в существующую зону.<br/>Если аналогичная запись уже есть, итоговый набор дополняется в рамках логики типа/имени.<br/><br/>## Когда использовать<br/><br/>- нужно добавить одну новую запись без массовой переработки зоны;<br/>- нужно быстро внести точечное изменение.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 777
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^([a-zA-Z0-9\-_]+\.)*[a-zA-Z0-9\-_]+$|^(\d{1,3}\.){3}\d{1,3}$|^.+$
|
|
||||||
unique_scope: parent
|
|
||||||
maxlength: 64
|
|
||||||
minlength: 1
|
|
||||||
man: Имя зоны в конце проставляется автоматически
|
|
||||||
sort: 10
|
|
||||||
- id: 778
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600"
|
|
||||||
maxvalue: 84000
|
|
||||||
minvalue: 30
|
|
||||||
man: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
sort: 20
|
|
||||||
- id: 779
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: A
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
sort: 30
|
|
||||||
- id: 780
|
|
||||||
code: recordInput
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
man: Валидация производится только после запуска операции. Если при указанном типе будет указано некорректно значение, это будет описано в логе ошибки операции
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 240
|
|
||||||
code: record
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 255
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: '# Операция `delete` (удаление зоны)<br/><br/>## Что делает операция<br/><br/>`delete` удаляет DNS-зону целиком вместе со всеми записями.<br/><br/>## Когда использовать<br/><br/>- зона больше не нужна;<br/>- домен выводится из эксплуатации в рамках сервиса.<br/><br/>## Важная логика<br/><br/>- удаляется вся зона, а не отдельные записи;<br/>- перед удалением стоит проверить, что домен действительно не используется.<br/>'
|
|
||||||
params: []
|
|
||||||
- name: delete_record
|
|
||||||
id: 261
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: record
|
|
||||||
man: '# Операция `delete_record` (удаление записей по имени)<br/><br/>## Что делает операция<br/><br/>`delete_record` удаляет все записи с указанным именем (`recordName`), независимо от типа (`A`, `TXT`, `CNAME` и т.д.).<br/><br/>## Когда использовать<br/><br/>- нужно полностью убрать конкретное имя из зоны;<br/>- требуется быстро очистить все варианты записи для одного имени.<br/><br/>## Важная логика<br/><br/>- удаляются все типы записей для выбранного имени;<br/>- если нужно удалить только один тип записи, лучше использовать `modify_record` с нужным целевым состоянием.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 781
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: modify
|
|
||||||
id: 256
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: '# Операция `modify` (массовое изменение записей зоны)<br/><br/>## Что делает операция<br/><br/>`modify` обновляет записи зоны целиком на основе переданного массива `records`.<br/>Это операция "приведения к целевому состоянию": система берет входной набор и применяет его на DNS-серверах.<br/><br/>## Когда использовать<br/><br/>- нужно массово обновить зону;<br/>- нужно заменить сразу несколько записей одним запуском;<br/>- нужно синхронно привести зону к заранее подготовленному списку записей.<br/><br/>## Важная логика<br/><br/>- запись группируется по `(имя, тип, TTL)`;<br/>- операция ориентирована на полное обновление набора, а не на "точечную мелкую правку".<br/><br/>Для точечных изменений одной записи обычно удобнее `create_record` или `modify_record`.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 769
|
|
||||||
code: records
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 86
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
regex: ^([a-zA-Z0-9\-_]+\.)*[a-zA-Z0-9\-_]+$|^(\d{1,3}\.){3}\d{1,3}$|^.+$
|
|
||||||
man: Имя зоны в конце проставляется автоматически
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 88
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600"
|
|
||||||
man: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 85
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: A
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
- CAA
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 87
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Валидация производится только после запуска операции. Если при указанном типе будет указано некорректно значение, это будет описано в логе ошибки операции
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify_record
|
|
||||||
id: 262
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: record
|
|
||||||
man: '# Операция `modify_record` (изменение конкретной записи)<br/><br/>## Что делает операция<br/><br/>`modify_record` заменяет записи с указанным именем одной новой записью заданного типа и значения.<br/><br/>## Когда использовать<br/><br/>- нужно исправить одну конкретную запись;<br/>- нужно заменить старые значения записи на новое целевое значение.<br/><br/>## Важная логика<br/><br/>- существующие записи выбранного имени очищаются;<br/>- затем добавляется одна новая запись с переданными параметрами.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 783
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- id: 784
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 84000
|
|
||||||
minvalue: 30
|
|
||||||
man: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
sort: 20
|
|
||||||
- id: 785
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
sort: 30
|
|
||||||
- id: 786
|
|
||||||
code: recordInput
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
man: Заменяет все текущие записи конкретного типа<br/>Валидация производится только после запуска операции. Если при указанном типе будет указано некорректно значение, это будет описано в логе ошибки операции
|
|
||||||
sort: 40
|
|
||||||
depends_on: recordName
|
|
||||||
sub_params:
|
|
||||||
- id: 241
|
|
||||||
code: record
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 259
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
man: '# Операция `reconcile` (актуализация состояния зоны)<br/><br/>## Что делает операция<br/><br/>`reconcile` подтягивает актуальное фактическое состояние DNS-зоны и синхронизирует его с данными инстанса.<br/>Операция техническая: она нужна для выравнивания состояния, а не для бизнес-изменений записей.<br/><br/>## Когда использовать<br/><br/>- записи менялись вручную на DNS-серверах;<br/>- нужно обновить схему/состояние инстанса в личном кабинете;<br/>- нужно импортировать текущие записи в управляемое состояние.<br/><br/>## Важная логика<br/><br/>- актуализируется список записей в данных инстанса;<br/>- стандартно ничего "нового" для клиента не добавляет и не удаляет само по себе, а приводит данные к реальности.<br/>'
|
|
||||||
params: []
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
name: dnsrecord
|
|
||||||
service_id: 111
|
|
||||||
service_display_name: DNS запись
|
|
||||||
service_short_name: dnsrecord
|
|
||||||
service_man: Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 45
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 75
|
|
||||||
code: zoneUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 109
|
|
||||||
descr: UUID экземпляра услуги DNS-зоны
|
|
||||||
man: UUID экземпляра услуги DNS-зоны
|
|
||||||
sort: 10
|
|
||||||
- id: 76
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- PTR
|
|
||||||
- SOA
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
descr: Тип DNS-записи
|
|
||||||
man: Тип DNS-записи
|
|
||||||
sort: 20
|
|
||||||
- id: 77
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
unique_scope: parent
|
|
||||||
descr: Имя записи. Имя зоны в конце проставляется автоматически
|
|
||||||
man: Имя записи. Имя зоны в конце проставляется автоматически
|
|
||||||
sort: 30
|
|
||||||
- id: 78
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
|
||||||
man: Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 450
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600"
|
|
||||||
maxvalue: 604800
|
|
||||||
minvalue: 30
|
|
||||||
descr: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
sort: 50
|
|
||||||
- name: delete
|
|
||||||
id: 46
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 90
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 256
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
|
||||||
- name: reconcile
|
|
||||||
id: 408
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
@@ -1,458 +0,0 @@
|
|||||||
name: mariadb
|
|
||||||
service_id: 115
|
|
||||||
service_display_name: Mariadb
|
|
||||||
service_short_name: mariadb
|
|
||||||
service_man: 'Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.<br/>Автоматическое резервное копирование, ручное восстановление.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 138
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 877
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 242
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 878
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 243
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 244
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 245
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
man: Пока `Galera` выключена<br/>Как будет запрос на включение и тестирование, реплики можно будет увеличивать
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 246
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 879
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 248
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 247
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 880
|
|
||||||
code: mariadbConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 249
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 9.4.0
|
|
||||||
value_list:
|
|
||||||
- 8.4.0
|
|
||||||
- 9.4.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 881
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 250
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 251
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "720"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 252
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 882
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 253
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 254
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 255
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 256
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_database
|
|
||||||
id: 242
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 734
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: db-ebbjso21
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
descr: 'Пример: `db01`'
|
|
||||||
- name: create_user
|
|
||||||
id: 243
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 735
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: user3vanbmfy
|
|
||||||
regex: ^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 2
|
|
||||||
descr: 'Пример: `myusername`'
|
|
||||||
sort: 10
|
|
||||||
- id: 736
|
|
||||||
code: password
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: p4egnsar
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 8
|
|
||||||
descr: Секрет будет записан в хранилище секретов и не будет отображаться публично
|
|
||||||
sort: 20
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 737
|
|
||||||
code: dbName
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
descr: Необходимо указать массив существующих баз
|
|
||||||
man: Если базы не существует - при выполнении операции вернётся ошибка
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 54
|
|
||||||
code: dbname
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 738
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '%'
|
|
||||||
descr: 'Пример: `%`'
|
|
||||||
sort: 40
|
|
||||||
- name: delete
|
|
||||||
id: 139
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params:
|
|
||||||
- id: 456
|
|
||||||
code: deleteS3Bucket
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Также удалить технический S3 Bucket с бэкапами?
|
|
||||||
sort: 10
|
|
||||||
- name: delete_database
|
|
||||||
id: 248
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 745
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ
|
|
||||||
- name: delete_user
|
|
||||||
id: 247
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 744
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Имя пользователя, созданное через операцию `create_user`
|
|
||||||
- name: modify
|
|
||||||
id: 142
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 883
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 257
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 258
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 259
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
man: Пока `Galera` выключена<br/>Как будет запрос на включение и тестирование, реплики можно будет увеличивать
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 260
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 884
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 261
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 262
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 885
|
|
||||||
code: mariadbConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 263
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- 8.4.0
|
|
||||||
- 9.4.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 886
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 266
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 264
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 265
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 887
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 270
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 267
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 268
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 269
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 287
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 141
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 140
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,335 +0,0 @@
|
|||||||
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/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 148
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1084
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 579
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1085
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 580
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 581
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 582
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 583
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1086
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 584
|
|
||||||
code: allocationExternal
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 585
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_topic
|
|
||||||
id: 165
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: topic
|
|
||||||
man: '# Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 523
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `orders-events`'
|
|
||||||
sort: 10
|
|
||||||
- id: 524
|
|
||||||
code: partitions
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
descr: Число партиций можно увеличить, но уменьшить их нельзя.
|
|
||||||
- id: 525
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
descr: Количество реплик не может привышать количество реплик брокера
|
|
||||||
sort: 20
|
|
||||||
- name: create_user
|
|
||||||
id: 168
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
man: '# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --from-beginning \<br/> --group <group> \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 530
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
- id: 531
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`'
|
|
||||||
- id: 532
|
|
||||||
code: operations
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- Create
|
|
||||||
- Describe
|
|
||||||
- Read
|
|
||||||
- Write
|
|
||||||
descr: 'Пример: `Create, Describe, Read, Write`'
|
|
||||||
- id: 533
|
|
||||||
code: group
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `order-consumers` или `*`'
|
|
||||||
- id: 534
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `192.168.1.0/24` или `*`'
|
|
||||||
- name: delete
|
|
||||||
id: 149
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_topic
|
|
||||||
id: 167
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: topic
|
|
||||||
params:
|
|
||||||
- id: 529
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Необходимо выбрать топик, который необходимо удалить
|
|
||||||
- name: delete_user
|
|
||||||
id: 170
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
man: '# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --from-beginning \<br/> --group <group> \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 540
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
- name: modify
|
|
||||||
id: 162
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1087
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 586
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 587
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 588
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 589
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1088
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 590
|
|
||||||
code: allocationExternal
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 591
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify_topic
|
|
||||||
id: 166
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: topic
|
|
||||||
man: '# Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 526
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `orders-events`'
|
|
||||||
sort: 10
|
|
||||||
- id: 527
|
|
||||||
code: partitions
|
|
||||||
required: false
|
|
||||||
descr: Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`
|
|
||||||
sort: 30
|
|
||||||
- id: 528
|
|
||||||
code: replicas
|
|
||||||
required: false
|
|
||||||
descr: Количество партиций ≤ (число брокеров). Пример `2`
|
|
||||||
sort: 20
|
|
||||||
- name: modify_user
|
|
||||||
id: 169
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: user
|
|
||||||
man: '# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --from-beginning \<br/> --group <group> \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 535
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`'
|
|
||||||
- id: 536
|
|
||||||
code: operations
|
|
||||||
data_type: array
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- Create
|
|
||||||
- Describe
|
|
||||||
- Read
|
|
||||||
- Write
|
|
||||||
descr: 'Пример: `Create, Describe, Read, Write`'
|
|
||||||
- id: 537
|
|
||||||
code: group
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `order-consumers` или `*`'
|
|
||||||
- id: 538
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `192.168.1.0/24` или `*`'
|
|
||||||
- id: 539
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
sort: 10
|
|
||||||
- name: resume
|
|
||||||
id: 161
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 160
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
name: akhq
|
|
||||||
service_id: 119
|
|
||||||
service_display_name: Akhq
|
|
||||||
service_short_name: Akhq
|
|
||||||
service_man: '# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать топики, consumer group''ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** — Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота (megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 175
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 550
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Выбрать платформу из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 551
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
minvalue: 512
|
|
||||||
descr: 'Пример: `1024`'
|
|
||||||
sort: 20
|
|
||||||
- id: 552
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
minvalue: 500
|
|
||||||
descr: 'Пример: `1000`'
|
|
||||||
sort: 30
|
|
||||||
- id: 553
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 40
|
|
||||||
- id: 554
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
minvalue: 1
|
|
||||||
sort: 11
|
|
||||||
- id: 555
|
|
||||||
code: kafkaUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 116
|
|
||||||
descr: Выбрать кластер из списка
|
|
||||||
sort: 5
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 176
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 180
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 565
|
|
||||||
code: kafkaUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 116
|
|
||||||
descr: Выбрать кластер из списка
|
|
||||||
- name: resume
|
|
||||||
id: 178
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 177
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,570 +0,0 @@
|
|||||||
name: clickhouse
|
|
||||||
service_id: 120
|
|
||||||
service_display_name: ClickHouse
|
|
||||||
service_short_name: clickhouse
|
|
||||||
service_man: '# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER ''clickhousek8s''`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster ''clickhousek8s''<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> ''/clickhouse/tables/{shard}/localUsers'',<br/> ''{replica}''<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster ''clickhousek8s''<br/>AS database.localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', rand());<br/><br/>INSERT INTO database.users VALUES (1, ''Alice'', ''alice@example.com'');<br/>INSERT INTO database.users VALUES (2, ''Bob'', ''bob@example.com'');<br/>INSERT INTO database.users VALUES (3, ''Charlie'', ''charlie@example.com'');<br/>INSERT INTO database.users VALUES (4, ''David'', ''david@example.com'');<br/>INSERT INTO database.users VALUES (5, ''Gosha'', ''gosha@example.com'');<br/>INSERT INTO database.users VALUES (6, ''Eve'', ''eve@example.com'');<br/>INSERT INTO database.users VALUES (7, ''Frank'', ''frank@example.com'');<br/>INSERT INTO database.users VALUES (8, ''Grace'', ''grace@example.com'');<br/>INSERT INTO database.users VALUES (9, ''Hannah'', ''hannah@example.com'');<br/>INSERT INTO database.users VALUES (10, ''Ivan'', ''ivan@example.com'');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 181
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: Операция создания кластера ClickHouse<br/><br/>Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`
|
|
||||||
params:
|
|
||||||
- id: 837
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 194
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 838
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 195
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 196
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 197
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 199
|
|
||||||
code: shards
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
man: '**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 198
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 839
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 200
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 201
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 840
|
|
||||||
code: clickhouseKeeperConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 202
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 203
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 204
|
|
||||||
code: replicas
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
man: Если указан 0, то инстансы ClickHouse Keeper развёрнуты не будут
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 841
|
|
||||||
code: clickhouseConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 205
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "25.10"
|
|
||||||
value_list:
|
|
||||||
- "25.10"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 842
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 208
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 206
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 207
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 843
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 210
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 211
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 212
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 209
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 851
|
|
||||||
code: clickhouseFilesConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
man: 'Формат:<br/> - path: somethings3.xml<br/> xmlConfig: ''<clickhouse>......</clickhouse>'''
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 234
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: something.xml
|
|
||||||
regex: ^[a-zA-Z0-9]+\.xml$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 235
|
|
||||||
code: xmlConfig
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '<clickhouse></clickhouse>'
|
|
||||||
man: Предварительно xml необходимо отформатировать через<br/>```<br/>$ tr -d '\n \t' < input.xml > output.xml<br/>```<br/><br/>Позже будет исправлено
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- name: create_database
|
|
||||||
id: 186
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: database
|
|
||||||
man: База данных создаётся на всех репликах кластера ClickHouse
|
|
||||||
params:
|
|
||||||
- id: 600
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: db01
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
descr: 'Пример: `db01`'
|
|
||||||
sort: 10
|
|
||||||
- name: create_user
|
|
||||||
id: 185
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 596
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: myusername
|
|
||||||
regex: ^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 2
|
|
||||||
descr: 'Пример: `myusername`'
|
|
||||||
sort: 10
|
|
||||||
- id: 598
|
|
||||||
code: dbName
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 233
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 599
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ::/0
|
|
||||||
descr: 'Пример: `::/0`'
|
|
||||||
sort: 40
|
|
||||||
- name: delete
|
|
||||||
id: 184
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: Удаление возможно только после остановки сервиса через операцию `suspend`<br/>После выполнения операции необходимо выждать определенное кол-во времени
|
|
||||||
params: []
|
|
||||||
- name: delete_database
|
|
||||||
id: 188
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: database
|
|
||||||
man: Необратимое действие!!!<br/>Трижды подумай, заблокируй телефон тимлида и не выполняй это действие
|
|
||||||
params:
|
|
||||||
- id: 602
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ
|
|
||||||
- name: delete_user
|
|
||||||
id: 187
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 601
|
|
||||||
code: username
|
|
||||||
required: true
|
|
||||||
descr: Имя пользователя, созданное через операцию `create_user`
|
|
||||||
- name: modify
|
|
||||||
id: 189
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 844
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 216
|
|
||||||
code: shards
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
man: '**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 217
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 213
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 214
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 215
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 845
|
|
||||||
code: clickhouseKeeperConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 220
|
|
||||||
code: replicas
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
man: Если указан 0, то инстансы ClickHouse Keeper развёрнуты не будут
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 218
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 219
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 846
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 221
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 222
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 847
|
|
||||||
code: clickhouseConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 223
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "25.10"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 848
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
sub_params:
|
|
||||||
- id: 224
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 225
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 226
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 849
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
sub_params:
|
|
||||||
- id: 227
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: false,true
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 228
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 229
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 230
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 850
|
|
||||||
code: clickhouseFilesConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
man: 'Формат:<br/> - path: somethings3.xml<br/> xmlConfig: ''<clickhouse>......</clickhouse>'''
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 231
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: something.xml
|
|
||||||
regex: ^[a-zA-Z0-9]+\.xml$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 232
|
|
||||||
code: xmlConfig
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '<clickhouse></clickhouse>'
|
|
||||||
man: Предварительно xml необходимо отформатировать через<br/>```<br/>$ tr -d '\n \t' < input.xml > output.xml<br/>```<br/><br/>Позже будет исправлено
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- name: reconcile
|
|
||||||
id: 276
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 183
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 182
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Операция приводит к удалению всех подов<br/>Persistent Volume остаются нетронутыми
|
|
||||||
params: []
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
name: s3
|
|
||||||
service_id: 12
|
|
||||||
service_display_name: S3 Object Storage
|
|
||||||
service_short_name: s3
|
|
||||||
service_man: Руководство доступно по ссылке:<br/>https://docs.s3-website.msk-1.ngcloud.ru/
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 1
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 163
|
|
||||||
code: resourceRealm
|
|
||||||
required: true
|
|
||||||
default: ceph.tst.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- ceph.tst.nubes.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: кластер S3 для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 320
|
|
||||||
code: displayName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[a-zA-Z0-9_]{1,61}[a-zA-Z0-9]$
|
|
||||||
descr: Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента
|
|
||||||
sort: 10
|
|
||||||
- name: create_sub_user
|
|
||||||
id: 6
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: sub_user
|
|
||||||
params:
|
|
||||||
- id: 60
|
|
||||||
code: subUserName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 61
|
|
||||||
code: subUserAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- read
|
|
||||||
- write
|
|
||||||
- readwrite
|
|
||||||
- full
|
|
||||||
- name: delete
|
|
||||||
id: 5
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_sub_user
|
|
||||||
id: 7
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: sub_user
|
|
||||||
params:
|
|
||||||
- id: 63
|
|
||||||
code: subUserName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: subUserName. По идее услуга уже создана - должен передаваться из ЛК
|
|
||||||
- name: modify
|
|
||||||
id: 4
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: При первичном вызове операции услуга Trial прекращает действие
|
|
||||||
params:
|
|
||||||
- id: 50
|
|
||||||
code: maxSizeGbPerUser
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 50000
|
|
||||||
minvalue: 1
|
|
||||||
descr: maxSizeGb. Передаём руками
|
|
||||||
man: maxSizeGb. Передаём руками
|
|
||||||
- id: 51
|
|
||||||
code: maxObjectsPerBucket
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 1e+07
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота на бакет. Кол-во объектов. Передаём руками
|
|
||||||
man: Квота на бакет. Кол-во объектов. Передаём руками
|
|
||||||
- id: 52
|
|
||||||
code: maxBucketsPerUser
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 1000
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота на пользователя. Количество бакетов пользователя. Передаём руками
|
|
||||||
man: Квота на пользователя. Количество бакетов пользователя. Передаём руками
|
|
||||||
- name: reconcile
|
|
||||||
id: 407
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 3
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 2
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
name: s3bucket
|
|
||||||
service_id: 13
|
|
||||||
service_display_name: S3 бакет
|
|
||||||
service_short_name: s3bucket
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 51
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 124
|
|
||||||
code: s3UserUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 12
|
|
||||||
descr: UID Корневой услуги S3. На основе него будет создан бакет.
|
|
||||||
- id: 125
|
|
||||||
code: bucketName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Имя бакета s3
|
|
||||||
- id: 126
|
|
||||||
code: maxSize
|
|
||||||
required: true
|
|
||||||
default: "-1"
|
|
||||||
descr: Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes
|
|
||||||
man: Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes
|
|
||||||
- id: 127
|
|
||||||
code: readAll
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета.
|
|
||||||
- id: 128
|
|
||||||
code: listAll
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете.
|
|
||||||
- id: 129
|
|
||||||
code: corsAll
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS
|
|
||||||
- id: 130
|
|
||||||
code: placement
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: HOT
|
|
||||||
value_list:
|
|
||||||
- HOT
|
|
||||||
- COLD
|
|
||||||
descr: Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения
|
|
||||||
- name: delete
|
|
||||||
id: 52
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
name: vc_mgmt_sthutrval_cluster
|
|
||||||
service_id: 148
|
|
||||||
service_display_name: Менеджмент Kubernetes кластер Штурвал
|
|
||||||
service_short_name: vcMgmtSthutrvalCluster
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 258
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 771
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 91
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: sandbox.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- sandbox.nubes.ru
|
|
||||||
descr: Облако в котором будет развёрнут тенант
|
|
||||||
man: Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 89
|
|
||||||
code: clusterName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: example-brcyqrjr
|
|
||||||
regex: (?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 772
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 90
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 2.13.1
|
|
||||||
value_list:
|
|
||||||
- 2.13.1
|
|
||||||
- 2.12.1
|
|
||||||
- 2.11.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 773
|
|
||||||
code: controlPlaneConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 92
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy представлены исходя из ресурсной платформы, которая была выбрана
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 93
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 94
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 774
|
|
||||||
code: workerConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 97
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 98
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 95
|
|
||||||
code: groupName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: workers-jax0kk2f
|
|
||||||
regex: (?=^.{3,40}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
man: Имена групп воркеров в рамках кластера должно быть уникальным
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 96
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy представлены исходя из ресурсной платформы, которая была выбрана
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 775
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 99
|
|
||||||
code: needExternalAddressAPI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 100
|
|
||||||
code: accessIpListAPI
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: 'Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем<br/>Пример: **["0.0.0.0/0"]** или **[]** или **["178.4.13.2", "178.4.14.0/24"]**'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 101
|
|
||||||
code: needExternalAddressIngress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к Ingress
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 102
|
|
||||||
code: accessIpListIngress
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: 'Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем<br/>Пример: **["0.0.0.0/0"]** или **[]** или **["178.4.13.2", "178.4.14.0/24"]**'
|
|
||||||
is_modifiable: false
|
|
||||||
@@ -1,249 +0,0 @@
|
|||||||
name: valo_tenant
|
|
||||||
service_id: 149
|
|
||||||
service_display_name: VALO Cloud
|
|
||||||
service_short_name: valoTenant
|
|
||||||
service_man: '# Инструкция по развертыванию Тенант Valo через платформу<br/><br/>## 1. Общая информация<br/>Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.<br/><br/>### Доступные операции<br/><br/>* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.<br/>* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.<br/>* **suspend** — выключение (приостановка работы) тенанта.<br/>* **resume** — включение ранее приостановленного тенанта.<br/>* **delete** — удаление тенанта; доступно только после выполнения операции suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа, на которой будет создан тенант.<br/>Пример значения: `valo.ngcloud.ru`.<br/><br/>### DNS-Префикс<br/>Описание: Будет добавлено в зону valo.ngcloud.ru<br/>Пример значения: `mysimpledomain`.<br/><br/>### Параметры хранилища<br/>Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes<br/>Пример значения: `10`.<br/><br/>### Настройки тенанта<br/>Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала<br/>Пример значения: `опционально в рамках настройки`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы<br/><br/>### Промышленное окружение<br/>Для разблокировки используйте операцию `modify`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Статус тенанта<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.<br/>Удаление тенанта возможно только после его выключения с помощью операции suspend.<br/>Срок тестового режима составляет 2 месяца с момента создания.<br/>Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 202
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 655
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: valo.ngcloud.ru
|
|
||||||
value_list:
|
|
||||||
- valo.ngcloud.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
sort: 10
|
|
||||||
- id: 656
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$
|
|
||||||
maxlength: 61
|
|
||||||
minlength: 3
|
|
||||||
descr: Будет добавлено в зону valo.ngcloud.ru
|
|
||||||
sort: 20
|
|
||||||
- id: 657
|
|
||||||
code: valoOptions
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
default: '{}'
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 24
|
|
||||||
code: ffThemes
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 25
|
|
||||||
code: ffPublicLink
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 26
|
|
||||||
code: ffLogging
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 28
|
|
||||||
code: userCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 20
|
|
||||||
code: requestApproveMaxPeriod
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2"
|
|
||||||
descr: Максимальное значение периода согласования (в днях)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 21
|
|
||||||
code: ffOnlineEditor
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 22
|
|
||||||
code: ffWatermark
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 23
|
|
||||||
code: ffUserImport
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 658
|
|
||||||
code: s3Storage
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Параметр указывается в `Gb`
|
|
||||||
man: Данные хранятся в отдельном экземпляре S3
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 206
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 203
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 659
|
|
||||||
code: valoOptions
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 32
|
|
||||||
code: ffWatermark
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 33
|
|
||||||
code: ffUserImport
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 34
|
|
||||||
code: ffThemes
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 35
|
|
||||||
code: ffPublicLink
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 36
|
|
||||||
code: ffLogging
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 29
|
|
||||||
code: userCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 30
|
|
||||||
code: requestApproveMaxPeriod
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Максимальное значение периода согласования (в днях)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 31
|
|
||||||
code: ffOnlineEditor
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 660
|
|
||||||
code: s3Storage
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
descr: Параметр указывается в `Gb`
|
|
||||||
man: Данные хранятся в отдельном экземпляре S3
|
|
||||||
sort: 20
|
|
||||||
- name: resume
|
|
||||||
id: 205
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 204
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,371 +0,0 @@
|
|||||||
name: k8s_sthutrval_cluster
|
|
||||||
service_id: 150
|
|
||||||
service_display_name: Kubernetes кластер Штурвал
|
|
||||||
service_short_name: k8sSthutrvalCluster
|
|
||||||
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 108
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 750
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 57
|
|
||||||
code: vdcUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 58
|
|
||||||
code: nsxtUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 59
|
|
||||||
code: clusterName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: example-imhltbba
|
|
||||||
regex: (?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 751
|
|
||||||
code: controlPlaneConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 61
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 62
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 63
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 752
|
|
||||||
code: workerConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 65
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 66
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 67
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 64
|
|
||||||
code: groupName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: workers-0krz2kek
|
|
||||||
regex: (?=^.{3,40}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
man: Имена групп воркеров в рамках кластера должно быть уникальным
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 753
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 68
|
|
||||||
code: needExternalAddressAPI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 69
|
|
||||||
code: accessIpListAPI
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 70
|
|
||||||
code: needExternalAddressIngress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к Ingress
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 71
|
|
||||||
code: accessIpListIngress
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 755
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 72
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 2.13.1
|
|
||||||
value_list:
|
|
||||||
- 2.13.1
|
|
||||||
- 2.12.1
|
|
||||||
- 2.11.0
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_user
|
|
||||||
id: 281
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 869
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 236
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Пользователи будут добавлены, только если они зарегистрированы в личном кабинете
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 109
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_user
|
|
||||||
id: 282
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 870
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 237
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify
|
|
||||||
id: 110
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: При изменении кол-ва узлов, удаления группы, если в этой группе есть поды на которых есть PV с named-дисками, удаляться ноды сами НЕ БУДУТ. <br/>Убедитесь, что они будут смигрированы на другие ноды в процессе прежде чем группа узлов/узлы будут удалены
|
|
||||||
params:
|
|
||||||
- id: 756
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 73
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- 2.13.1
|
|
||||||
- 2.12.1
|
|
||||||
- 2.11.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 757
|
|
||||||
code: controlPlaneConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 74
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 75
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 76
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 758
|
|
||||||
code: workerConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 77
|
|
||||||
code: groupName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: workers-apak4rks
|
|
||||||
regex: (?=^.{3,40}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
man: Имена групп воркеров в рамках кластера должно быть уникальным
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 78
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 79
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 80
|
|
||||||
code: count
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 759
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 81
|
|
||||||
code: needExternalAddressAPI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 82
|
|
||||||
code: accessIpListAPI
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 83
|
|
||||||
code: needExternalAddressIngress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к Ingress
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 84
|
|
||||||
code: accessIpListIngress
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 253
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 174
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 173
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,389 +0,0 @@
|
|||||||
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:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 210
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 663
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Кластер Kubernetes в котором будет развёрнуто приложение
|
|
||||||
man: Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы
|
|
||||||
sort: 0
|
|
||||||
- id: 664
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 8000
|
|
||||||
minvalue: 250
|
|
||||||
descr: 'Пример: `500`'
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 665
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `3`'
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 666
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: 'Пример: `2048`'
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 667
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `10`'
|
|
||||||
man: Указывается в Gigabytes
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 668
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 2.5.2
|
|
||||||
value_list:
|
|
||||||
- 2.5.2
|
|
||||||
descr: Выбрать из списка
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 669
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: bao-onbcvsgk
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- name: create_kv
|
|
||||||
id: 212
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: kv
|
|
||||||
params:
|
|
||||||
- id: 675
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: kvname-9e9wvkt2
|
|
||||||
regex: ^[a-zA-Z0-9-]{1,24}$
|
|
||||||
man: Будет создан `v2 тип движка`<br/><br/>Уникальное в рамках услуги
|
|
||||||
sort: 10
|
|
||||||
- name: create_policy
|
|
||||||
id: 237
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: policy
|
|
||||||
params:
|
|
||||||
- id: 728
|
|
||||||
code: policySettings
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 50
|
|
||||||
code: capabilities
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '["read", "list"]'
|
|
||||||
man: 'Пример: `["create", "read", "update", "delete", "list", "sudo"]`<br/>Только чтение: `["list", "read"]`<br/>Изменение: `["read", "list", "create", "update", "delete"]`'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 49
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Пример 1: `mykv/*`<br/>Пример 2: `mykv/path/*`<br/>Пример 3: `mykv/path/to/secret`<br/>'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 729
|
|
||||||
code: policyName
|
|
||||||
required: true
|
|
||||||
default: policy-s0hfjfmn
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
man: Сделано для дальнейшего удобного использования
|
|
||||||
sort: 10
|
|
||||||
- name: create_secrets
|
|
||||||
id: 214
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 677
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
man: Если список пустой, создайте kv через операцию `create_kv`
|
|
||||||
sort: 10
|
|
||||||
- id: 678
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: path/to/mysecret
|
|
||||||
regex: ^[a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*$
|
|
||||||
descr: 'Пример: `path` или `road/to/path`'
|
|
||||||
sort: 20
|
|
||||||
- id: 679
|
|
||||||
code: secretData
|
|
||||||
data_type: map
|
|
||||||
required: true
|
|
||||||
descr: Хотя бы один секрет необходимо добавить
|
|
||||||
man: Данные не сохраняются в ЛК, в дальнейшем при обновлении секретов это необходимо учитывать
|
|
||||||
sort: 30
|
|
||||||
- name: delete
|
|
||||||
id: 231
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_kv
|
|
||||||
id: 213
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: kv
|
|
||||||
man: '**ОСТОРОЖНО**<br/>Удаление KV подразумевает удаление ВСЕХ secrets внутри этой KV'
|
|
||||||
params:
|
|
||||||
- id: 676
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- name: delete_policy
|
|
||||||
id: 239
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: policy
|
|
||||||
params:
|
|
||||||
- id: 732
|
|
||||||
code: policyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: delete_secrets
|
|
||||||
id: 233
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 726
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 727
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 20
|
|
||||||
depends_on: kvName
|
|
||||||
- name: modify
|
|
||||||
id: 211
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 670
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `3`'
|
|
||||||
sort: 10
|
|
||||||
- id: 671
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 8000
|
|
||||||
minvalue: 250
|
|
||||||
descr: 'Пример: `500`'
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
sort: 20
|
|
||||||
- id: 672
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: 'Пример: `2048`'
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
sort: 30
|
|
||||||
- id: 673
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `10`'
|
|
||||||
man: Указывается в Gigabytes
|
|
||||||
sort: 40
|
|
||||||
- id: 674
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- 2.5.2
|
|
||||||
descr: Выбрать из списка
|
|
||||||
sort: 50
|
|
||||||
- name: reconcile
|
|
||||||
id: 236
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: recovery_secrets
|
|
||||||
id: 232
|
|
||||||
kind: subresource
|
|
||||||
action: recovery
|
|
||||||
subresource: secrets
|
|
||||||
man: Данная операция подразумевает откат на конкретную версию в секрете.<br/><br/>**Это не восстановление удалённого секрета**
|
|
||||||
params:
|
|
||||||
- id: 723
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 724
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 20
|
|
||||||
depends_on: kvName
|
|
||||||
- id: 725
|
|
||||||
code: secretVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
depends_on: kvName,secretPath
|
|
||||||
- name: restart
|
|
||||||
id: 234
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 216
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 215
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
- name: update_policy
|
|
||||||
id: 238
|
|
||||||
kind: subresource
|
|
||||||
action: update
|
|
||||||
subresource: policy
|
|
||||||
params:
|
|
||||||
- id: 730
|
|
||||||
code: policyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- id: 731
|
|
||||||
code: policySettings
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
descr: Производится полная перезапись политики!
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 52
|
|
||||||
code: capabilities
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 51
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: update_secrets
|
|
||||||
id: 230
|
|
||||||
kind: subresource
|
|
||||||
action: update
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 719
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 720
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
man: Предварительно необходимо выбрать параметр `Имя Key/Value хранилища`
|
|
||||||
sort: 20
|
|
||||||
depends_on: kvName
|
|
||||||
- id: 721
|
|
||||||
code: needFullUpdateSecret
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Если выбрать `true`, будет создана новая версия секрета `с нуля`<br/>Если выбрать `false`, будет создана новая версия секрета с данными прошлой ревизии, а переданные данные в операции либо будут модифицированы, либо будут добавлены
|
|
||||||
sort: 30
|
|
||||||
- id: 722
|
|
||||||
code: secretData
|
|
||||||
data_type: map
|
|
||||||
required: true
|
|
||||||
descr: Хотя бы один секрет необходимо добавить
|
|
||||||
sort: 40
|
|
||||||
@@ -1,232 +0,0 @@
|
|||||||
name: llm_ai
|
|
||||||
service_id: 163
|
|
||||||
service_display_name: LLM
|
|
||||||
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/>## 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/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 271
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 826
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: llmAi.aillm.ru
|
|
||||||
value_list:
|
|
||||||
- llmAi.aillm.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
- name: create_secrets
|
|
||||||
id: 274
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 833
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 834
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
minvalue: 1
|
|
||||||
- id: 835
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
minvalue: 1
|
|
||||||
- id: 857
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- id: 859
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 15
|
|
||||||
- id: 1083
|
|
||||||
code: variablesKeys
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 571
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 572
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 573
|
|
||||||
code: models
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 575
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 576
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 577
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_team
|
|
||||||
id: 278
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: team
|
|
||||||
params:
|
|
||||||
- id: 858
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 860
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
- id: 861
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
- id: 862
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
- name: delete
|
|
||||||
id: 273
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_secrets
|
|
||||||
id: 275
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 836
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 876
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- name: delete_team
|
|
||||||
id: 280
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: team
|
|
||||||
params:
|
|
||||||
- id: 868
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: modify_team
|
|
||||||
id: 279
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: team
|
|
||||||
params:
|
|
||||||
- id: 864
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 865
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 873
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
minvalue: 1
|
|
||||||
- id: 874
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
minvalue: 1
|
|
||||||
- name: update_secrets
|
|
||||||
id: 277
|
|
||||||
kind: subresource
|
|
||||||
action: update
|
|
||||||
subresource: secrets
|
|
||||||
man: Данная операция предназначена для управления лимитами и моделями
|
|
||||||
params:
|
|
||||||
- id: 852
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 853
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 854
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
- id: 855
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
- id: 875
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 5
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
name: vc_org
|
|
||||||
service_id: 19
|
|
||||||
service_display_name: Организация в Cloud Director
|
|
||||||
service_short_name: vcOrg
|
|
||||||
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/>### Url организации<br/>Для быстрого доступа в тенант<br/><br/>### Статус организации<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.<br/>- Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 136
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу<br/>`SaaS` - Без доступа к Keycloak'
|
|
||||||
params:
|
|
||||||
- id: 418
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: sandbox.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- sandbox.nubes.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Облако в котором будет развёрнут тенант
|
|
||||||
man: Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы
|
|
||||||
sort: 10
|
|
||||||
- id: 556
|
|
||||||
code: organizationType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: iaas
|
|
||||||
value_list:
|
|
||||||
- iaas
|
|
||||||
- saas
|
|
||||||
man: Доступ к организации предоставляется только при выборе `iaas`
|
|
||||||
sort: 20
|
|
||||||
- name: create_user
|
|
||||||
id: 283
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 871
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 238
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Пользователи будут добавлены, только если они зарегистрированы в личном кабинете
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 137
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: 'Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**<br/><br/>Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов'
|
|
||||||
params: []
|
|
||||||
- name: delete_user
|
|
||||||
id: 284
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 872
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 239
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify
|
|
||||||
id: 207
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**<br/>Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**
|
|
||||||
params:
|
|
||||||
- id: 662
|
|
||||||
code: vIPConfigure
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 39
|
|
||||||
code: name
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 40
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: 'Пример: `1`'
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 249
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 144
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 143
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта
|
|
||||||
params: []
|
|
||||||
@@ -1,339 +0,0 @@
|
|||||||
name: dummy
|
|
||||||
service_id: 1
|
|
||||||
service_display_name: Болванка
|
|
||||||
service_short_name: dummy
|
|
||||||
service_man: '## Болванка для тестов.<br/><br/>А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера. <br/><br/><br/>``` json<br/>{<br/> "iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",<br/> "idpResponse": {<br/> "prefix": {<br/> "charset": "",<br/> "status_text": "Request Time-out",<br/> "text": true,<br/> "errordetail": "",<br/> "filecontent": "Connection Timeout",<br/> "responseheader": {},<br/> "header": "",<br/> "statuscode": "408 Request Time-out",<br/> "status_code": 408,<br/> "mimetype": "Unable to determine MIME type of file."<br/> }<br/> }<br/>}<br/>```'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 18
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: Это мануал к операции CREATE сервиса Болванка
|
|
||||||
params:
|
|
||||||
- id: 198
|
|
||||||
code: durationMs
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
descr: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
man: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 199
|
|
||||||
code: failAtStart
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, завершить джоб, ничего не записывая в cmdb
|
|
||||||
man: '**Операция не будет завершена**<br/>Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой'
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 200
|
|
||||||
code: failInProgress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb
|
|
||||||
man: если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 201
|
|
||||||
code: whereFail
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
descr: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
man: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 242
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: dummy
|
|
||||||
value_list:
|
|
||||||
- dummy
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование ресурсной платформы для подключения
|
|
||||||
sort: 10
|
|
||||||
- id: 286
|
|
||||||
code: bodymessage
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Дата, уходящая в Vault
|
|
||||||
man: Дата, уходящая в Vault
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 321
|
|
||||||
code: mapExample
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 2
|
|
||||||
code: subparam2
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1
|
|
||||||
code: subparam1
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
descr: это для администратора
|
|
||||||
man: это для пользователя
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 3
|
|
||||||
code: secret
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
descr: это секрет
|
|
||||||
man: значение параметра маскируется. Write Only
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 322
|
|
||||||
code: jsonExample
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: Для тестирования интерфейса
|
|
||||||
man: Для тестирования интерфейса. Сюда можно писать корректный json
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 396
|
|
||||||
code: nestedRefExample
|
|
||||||
required: false
|
|
||||||
- id: 647
|
|
||||||
code: mapFixed
|
|
||||||
data_type: map-fixed
|
|
||||||
required: false
|
|
||||||
descr: Новый тип поля
|
|
||||||
sub_params:
|
|
||||||
- id: 10
|
|
||||||
code: param1
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
descr: Integer, secret
|
|
||||||
man: integer > 0, sensitive data (secret)
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 11
|
|
||||||
code: param2
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- '["1"'
|
|
||||||
- '"2"'
|
|
||||||
- '"3"]'
|
|
||||||
descr: Дескрипшен
|
|
||||||
man: Выбор из списка 1,2,3
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 12
|
|
||||||
code: param3
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
descr: целое положительное
|
|
||||||
man: int > 0, обязательный
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 13
|
|
||||||
code: bol1
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Булевский, обязательный
|
|
||||||
man: Булевский, обязательный. Проверить, как воспринимается снятый флаг
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 14
|
|
||||||
code: minStr1
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: abracadabra
|
|
||||||
value_list:
|
|
||||||
- abracadabra
|
|
||||||
descr: не меньше 10 символов
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 654
|
|
||||||
code: arrayMapFixedExample
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
descr: Array of map-fixed
|
|
||||||
sub_params:
|
|
||||||
- id: 18
|
|
||||||
code: bol1
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 19
|
|
||||||
code: minStr1
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- abracadabra
|
|
||||||
descr: не меньше 10 символов
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 15
|
|
||||||
code: param1
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 16
|
|
||||||
code: param2
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '["1"'
|
|
||||||
- '"2"'
|
|
||||||
- '"3"]'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 17
|
|
||||||
code: param3
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 863
|
|
||||||
code: arr
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- test
|
|
||||||
- "2"
|
|
||||||
- val1
|
|
||||||
- name: delete
|
|
||||||
id: 71
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 92
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 287
|
|
||||||
code: durationMs
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
descr: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
man: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
sort: 10
|
|
||||||
- id: 288
|
|
||||||
code: failAtStart
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, завершить джоб, ничего не записывая в cmdb
|
|
||||||
sort: 20
|
|
||||||
- id: 289
|
|
||||||
code: failInProgress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb
|
|
||||||
sort: 30
|
|
||||||
- id: 290
|
|
||||||
code: whereFail
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
descr: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
man: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
sort: 40
|
|
||||||
- id: 291
|
|
||||||
code: bodymessage
|
|
||||||
required: false
|
|
||||||
descr: Дата, уходящая в Vault
|
|
||||||
man: Дата, уходящая в Vault
|
|
||||||
sort: 50
|
|
||||||
- id: 373
|
|
||||||
code: mapExample
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
sub_params:
|
|
||||||
- id: 4
|
|
||||||
code: secret
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 374
|
|
||||||
code: jsonExample
|
|
||||||
required: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 257
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 240
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 94
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 93
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
name: vc_vdc
|
|
||||||
service_id: 21
|
|
||||||
service_display_name: Виртуальный датацентр (vDC)
|
|
||||||
service_short_name: vc_vdc
|
|
||||||
service_man: '# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.<br/><br/>### Доступные операции<br/><br/>**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.<br/>**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.<br/>**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.<br/>**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже перечислены входные параметры операции **create**.<br/><br/>### UUID Организации<br/>Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.<br/><br/>### Provider VDC в Cloud Director<br/>Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.<br/><br/>### Network Pool в Cloud Director<br/>Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.<br/><br/>### Гарантированная доля ЯДЕР<br/>Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.<br/><br/>### Гарантированная доля ОЗУ<br/>Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.<br/><br/>### Сколько аллоцировать на VDC ЯДЕР<br/>Количество виртуальных ядер, выделяемых в рамках vDC.<br/><br/>### Сколько аллоцировать на VDC ОЗУ<br/>Количество оперативной памяти в GB, выделяемой для vDC.<br/><br/>### Конфигурация Storage<br/>Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/><br/>- Количество ядер CPU: 10–20<br/>- Аллоцируемая RAM: 16–64 GB<br/>- Гарантированная доля CPU: 20%<br/>- Гарантированная доля RAM: 20%<br/>- Storage:<br/>- Политика `SATA`<br/>- Объём: 100–300 GB<br/><br/>### Промышленное окружение<br/><br/>- Количество ядер CPU: 16–128<br/>- Аллоцируемая RAM: 64–512 GB<br/>- Гарантированная доля CPU: 50%<br/>- Гарантированная доля RAM: 50%<br/>- Storage:<br/>- Политики уровня `SSD`<br/>- Объём: 1–10 TB, выбор несколько политик под разные нагрузки<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Выходные параметры формируются операцией **create** (и используются другими операциями):<br/><br/>### Имя vDC<br/>Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).<br/><br/>### Параметры выделенных ресурсов<br/>Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.<br/>- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.<br/>- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.<br/>- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.<br/>- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 9
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 30
|
|
||||||
code: organizationUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 19
|
|
||||||
man: Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director`
|
|
||||||
sort: 10
|
|
||||||
- id: 335
|
|
||||||
code: providerVdc
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
man: Приписка `2.8` - Скорость vCPU - 2800MHz<br/>И так далее...<br/>
|
|
||||||
sort: 30
|
|
||||||
depends_on: organizationUid,networkProvider
|
|
||||||
- id: 361
|
|
||||||
code: storageConfig
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
man: Первая политика в списке указывается как "По умолчанию"
|
|
||||||
sort: 100
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 41
|
|
||||||
code: name
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: getKeyListFromStruct(getResourceRealmConfig(getStringFromStruct(getInstanceState(params.organizationUid), "params.resourceRealm")), concat("vcd.hardware.providerVdcs['",params.providerVdc,"'].storage"))
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 42
|
|
||||||
code: size
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 397
|
|
||||||
code: cpuGuaranteed
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "20"
|
|
||||||
value_list:
|
|
||||||
- "20"
|
|
||||||
- "50"
|
|
||||||
- "80"
|
|
||||||
descr: '% резервирования'
|
|
||||||
man: Свойство нельзя изменить после создания
|
|
||||||
sort: 60
|
|
||||||
- id: 557
|
|
||||||
code: cpuAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "80"
|
|
||||||
maxvalue: 1000
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 558
|
|
||||||
code: memAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
maxvalue: 4096
|
|
||||||
minvalue: 1
|
|
||||||
descr: gb
|
|
||||||
sort: 90
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 746
|
|
||||||
code: networkProvider
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
depends_on: organizationUid
|
|
||||||
- name: delete
|
|
||||||
id: 24
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: 'Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**<br/><br/>Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов'
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 112
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 560
|
|
||||||
code: cpuAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 10
|
|
||||||
- id: 561
|
|
||||||
code: memAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 1024
|
|
||||||
minvalue: 1
|
|
||||||
descr: gb
|
|
||||||
sort: 20
|
|
||||||
- id: 562
|
|
||||||
code: storageConfig
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
man: Первая политика в списке указывается как "По умолчанию"
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 43
|
|
||||||
code: name
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 44
|
|
||||||
code: size
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 250
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 172
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 171
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC
|
|
||||||
params: []
|
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
name: vc_nsxt
|
|
||||||
service_id: 22
|
|
||||||
service_display_name: Сетевой шлюз периметра (Edge)
|
|
||||||
service_short_name: vc_nsxt
|
|
||||||
service_man: '# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC). <br/>При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`. <br/>Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.<br/><br/>### Доступные операции<br/><br/>**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети. <br/>**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал). <br/>**modify** — Изменение параметров и сетевых настроек существующего Edge.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже приведены параметры операции **create**.<br/><br/>### Тип родительской услуги<br/>Определяет контекст размещения Edge. <br/>Допустимые значения: `vdc`, `groupvdc`. <br/>Использование:<br/>- При выборе `vdc` обязателен параметр **UUID VDC**.<br/>- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра. <br/>Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)». <br/>Указывается только при выборе родительского типа `vdc`.<br/><br/>### UUID Группы VDC<br/>Идентификатор группы виртуальных датацентров. <br/>Создаётся через услугу «Группа виртуальных датацентров (groupvDC)». <br/>Используется при выборе родительского типа `groupvdc`.<br/><br/>### Включить ALB<br/>Флаг активации AVI Load Balancer в Cloud Director. <br/>Пример значения: `true`/`false`. <br/>Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.<br/><br/>### Наименование segroup<br/>Имя сервиса групп (segroup) на уровне ресурсной платформы. <br/>Обязательно при включённом ALB. <br/>Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.<br/><br/>### virtualServicesCount<br/>Количество резервируемых виртуальных сервисов (Virtual Services) на AVI. <br/>Типичное значение: 1–10 в зависимости от нагрузки.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение (Test)<br/><br/>- Тип родительской услуги: `vdc` <br/>- virtualServicesCount: 1–2 <br/>- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала) <br/>- segroup: задаётся только при включённом ALB <br/>- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)<br/><br/>### Промышленное окружение (Production)<br/><br/>- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов <br/>- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций <br/>- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал <br/>- segroup: рекомендуется использовать выделенную группу под проект <br/>- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Имя Edge<br/>Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.<br/><br/>### Имя routed-сети<br/>Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.<br/><br/>### Параметры Edge<br/>Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др. <br/>Используются в операциях modify и для анализа состояния сервиса.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC. <br/>- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал). <br/>- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI. <br/>- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC. <br/>- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).<br/><br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 10
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 8
|
|
||||||
code: vdcUid
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
ref_svc_id: 21
|
|
||||||
descr: UUID Услуги `Виртуальный датацентр (vDC)`
|
|
||||||
man: 'Необходимо, если выбран тип подключаемой VDC: `vdc`'
|
|
||||||
sort: 10
|
|
||||||
- id: 340
|
|
||||||
code: needEnableAVI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Включение Load Balancer
|
|
||||||
man: Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 341
|
|
||||||
code: virtualServicesCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 4
|
|
||||||
minvalue: 1
|
|
||||||
descr: Кол-во виртуальных сервисов, которые **резервируются** на AVI
|
|
||||||
man: Во избежании коллапса пока выделяется до 4<br/>Необходимо указывать, если включён параметр `Включить ALB`
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 621
|
|
||||||
code: vdcType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: vdc
|
|
||||||
value_list:
|
|
||||||
- vdc
|
|
||||||
- vdcGroup
|
|
||||||
descr: Тип родительской услуги
|
|
||||||
man: При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc<br/>При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc
|
|
||||||
sort: 0
|
|
||||||
- id: 622
|
|
||||||
code: vdcGroupUid
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
ref_svc_id: 29
|
|
||||||
descr: UUID Услуги `Группа виртуальных датацентров (groupvDC)`
|
|
||||||
man: 'Необходимо, если выбран тип подключаемой VDC: `groupvdc`'
|
|
||||||
sort: 20
|
|
||||||
- id: 825
|
|
||||||
code: qosProfile
|
|
||||||
required: false
|
|
||||||
descr: Параметр пока не работает<br/>Должен возвращать поле из ресурсной платформы типа vc из .vcd.hardware.gatewayQoSProfiles<br/><br/>Как по идее должен работать.<br/>Нужно заполнить или CFS vdcUid, или vdcGroupUid<br/>Идеально конечно проверять `if (params.vdcType == "vdc" && params.vdcUid != "")` или `if (params.vdcType == "vdcGroup" && params.vdcGroupUid != "")`<br/><br/>Далее надо пойти по стейту vdc -> org -> resPlatform, взять gatewayQoSProfiles<br/>Или пойти по стейту vdcgroup -> vdc -> org -> resPlatform, взять gatewayQoSProfiles<br/><br/>Регулярку могу написать (Виталя)
|
|
||||||
man: if (vdcUid != '") {<br/> наборфункций1<br/>} <br/><br/>elif (vdcGroupUid != "") {<br/> наборфункций2<br/>}<br/><br/>else {<br/> return "Необходимо выбрать vdc или vdcgroup"<br/>}
|
|
||||||
sort: 60
|
|
||||||
depends_on: vdcUid,vdcGroupUid
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 25
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: Невозможно удалить если routed-сеть в Edge связана с:<br/>- vApp<br/>- VM<br/>- Kubernetes-кластер Штурвал<br/><br/>Запустить операцию возможно, но будет ошибка
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 111
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: Для создания SNAT Правила убедитесь, что в организации есть свободные IP<br/>Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`
|
|
||||||
params:
|
|
||||||
- id: 368
|
|
||||||
code: needEnableAVI
|
|
||||||
data_type: boolean
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Включение Load Balancer
|
|
||||||
man: Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать
|
|
||||||
sort: 10
|
|
||||||
- id: 369
|
|
||||||
code: virtualServicesCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 4
|
|
||||||
minvalue: 1
|
|
||||||
descr: Кол-во виртуальных сервисов, которые выделяются на AVI
|
|
||||||
man: Во избежании коллапса пока выделяется до 4<br/>Необходимо указывать, если включён параметр `Включить ALB`
|
|
||||||
sort: 30
|
|
||||||
- id: 372
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Имя ip Space для внешнего IP
|
|
||||||
man: Необходимо указывать, если включён параметр `Выделить VIP для SNAT`
|
|
||||||
sort: 50
|
|
||||||
- id: 856
|
|
||||||
code: qosProfile
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
sort: 40
|
|
||||||
- name: reconcile
|
|
||||||
id: 252
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
name: vcexternalip
|
|
||||||
service_id: 25
|
|
||||||
service_display_name: Публичные IP адреса
|
|
||||||
service_short_name: vcexternalip
|
|
||||||
service_man: '**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**<br/>Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать<br/><br/>Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.<br/>Вы можете назначить IP адрес для существующего экземпляра сервиса.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 56
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 140
|
|
||||||
code: serviceUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 141
|
|
||||||
code: dnatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
descr: Необходимо создать DNAT-правило.
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 142
|
|
||||||
code: internalPortAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "5432"
|
|
||||||
descr: Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true<br/>
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 143
|
|
||||||
code: snatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: false
|
|
||||||
descr: Необходимо создать SNAT-правило.<br/>
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 144
|
|
||||||
code: internalAddrAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 324
|
|
||||||
code: fromServiceNamespace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Namespace составной услуги (для отображения правил FW)
|
|
||||||
sort: 80
|
|
||||||
- id: 325
|
|
||||||
code: fromServiceCloudEdgeName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Edge составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 90
|
|
||||||
- id: 326
|
|
||||||
code: fromServiceCloudVdcName
|
|
||||||
required: false
|
|
||||||
descr: Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 100
|
|
||||||
- id: 327
|
|
||||||
code: fromServiceCloudOrgName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Org составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 110
|
|
||||||
- id: 328
|
|
||||||
code: fromServiceCloudVmwareUrl
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 120
|
|
||||||
- id: 336
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1)
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 488
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: sandbox.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- sandbox.nubes.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
sort: 200
|
|
||||||
- id: 624
|
|
||||||
code: fromServiceCloudEdgeScope
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
sort: 130
|
|
||||||
- id: 626
|
|
||||||
code: fromServiceVdcGroupName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
sort: 140
|
|
||||||
- name: delete
|
|
||||||
id: 57
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 197
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 627
|
|
||||||
code: serviceUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
- id: 628
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
- id: 629
|
|
||||||
code: dnatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
- id: 630
|
|
||||||
code: snatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
- id: 631
|
|
||||||
code: internalPortAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
- id: 632
|
|
||||||
code: internalAddrAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
name: vapp
|
|
||||||
service_id: 26
|
|
||||||
service_display_name: Виртуальный каталог ВМ (vApp)
|
|
||||||
service_short_name: vapp
|
|
||||||
service_man: '# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:<br/>- централизованное управление включением, выключением и приостановкой группы ВМ;<br/>- унифицированный сетевой доступ через привязанный Edge-шлюз;<br/><br/>### Доступные операции<br/><br/>**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge<br/>**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)<br/>**resume** — Запуск vApp (включение всех ВМ внутри каталога)<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры берутся из операции **create**.<br/><br/>### UUID Услуги VDC<br/>Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».<br/>Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.<br/><br/>### UUID Услуги Edge<br/>Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».<br/>Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.<br/><br/>### Имя vApp<br/>Строгое имя, соответствующее маске формирования DNS-имени.<br/>Используется как часть в DNS-имени при создании виртуальных машин.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/>Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Параметры vApp<br/>Заданные при создании vApp<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.<br/>- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.<br/>- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.<br/>- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.<br/>- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 69
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 190
|
|
||||||
code: nsxtUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 22
|
|
||||||
descr: UUID Услуги `Сетевой шлюз периметра (Edge)`
|
|
||||||
man: К какой сети может быть подключен виртуальный каталог
|
|
||||||
sort: 20
|
|
||||||
- id: 191
|
|
||||||
code: vappName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: fgpdul5a
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$
|
|
||||||
minlength: 3
|
|
||||||
descr: Уникальное в рамках организации
|
|
||||||
man: Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`<br/><br/>Используется в формировании DNS-Имени (для виртуальных машин)
|
|
||||||
sort: 30
|
|
||||||
- id: 623
|
|
||||||
code: vdcUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 21
|
|
||||||
descr: UUID Услуги `Виртуальный датацентр (vDC)`
|
|
||||||
man: В каких ресурсах будет создан виртуальный каталог
|
|
||||||
sort: 10
|
|
||||||
- name: delete
|
|
||||||
id: 70
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: reconcile
|
|
||||||
id: 285
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 209
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 208
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
name: vc_vm_v2
|
|
||||||
service_id: 27
|
|
||||||
service_display_name: VM в Cloud Director (vc_vmV2)
|
|
||||||
service_short_name: vc_vm_v2
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 100
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 301
|
|
||||||
code: serverListJson
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
maxlength: 65536
|
|
||||||
minlength: 10
|
|
||||||
descr: Необходимо изменить vappUid и ipSpaceName<br/>Пример конфигурации взять по ссылке ниже<br/><br/>Объект серверов вида [{}] (Map(Object))<br/>Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 101
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 104
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 302
|
|
||||||
code: serverListJson
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
maxlength: 65536
|
|
||||||
minlength: 10
|
|
||||||
descr: Объект серверов вида [{}] (Map(Object))<br/>Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)
|
|
||||||
sort: 10
|
|
||||||
- name: resume
|
|
||||||
id: 102
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 103
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,278 +0,0 @@
|
|||||||
name: vc_vm_v3
|
|
||||||
service_id: 28
|
|
||||||
service_display_name: Виртуальная машина
|
|
||||||
service_short_name: vc_vm_v3
|
|
||||||
service_man: '# Документация по разворачиванию ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>## Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию: myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\ложь, определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример: 50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix). <br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> - name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> - nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>### Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>## Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>- Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>- Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 132
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '# Документация по использованию услуги развёртывания ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>## Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию: myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\лож определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример: 50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed".<br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> - name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> - nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>### Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>## Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>- Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>- Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
|
|
||||||
params:
|
|
||||||
- id: 407
|
|
||||||
code: vappUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 26
|
|
||||||
sort: 10
|
|
||||||
- id: 408
|
|
||||||
code: vmName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: web01
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
sort: 20
|
|
||||||
- id: 409
|
|
||||||
code: vmCpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 64
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 410
|
|
||||||
code: vmRam
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 256
|
|
||||||
minvalue: 1
|
|
||||||
descr: Gb
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 411
|
|
||||||
code: vmDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$
|
|
||||||
descr: Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 412
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
depends_on: vappUid
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 413
|
|
||||||
code: accessIpList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|\[\s*(?:"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?"(?:\s*,\s*"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?")*)\s*\])$
|
|
||||||
descr: Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено ["0.0.0.0/0"]
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 414
|
|
||||||
code: imageVm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 90
|
|
||||||
depends_on: vappUid
|
|
||||||
- id: 415
|
|
||||||
code: cloudInit
|
|
||||||
data_type: yaml
|
|
||||||
required: false
|
|
||||||
descr: Можно передать создание дополнительных пользователей. <br/>На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.
|
|
||||||
sort: 200
|
|
||||||
- id: 416
|
|
||||||
code: userLogin
|
|
||||||
required: true
|
|
||||||
default: myuser
|
|
||||||
descr: Учётка SSH
|
|
||||||
sort: 180
|
|
||||||
- id: 417
|
|
||||||
code: userPublicKey
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Публичная часть SSH-Ключа для пользователя
|
|
||||||
sort: 190
|
|
||||||
- id: 448
|
|
||||||
code: accessPortList
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '["22"]'
|
|
||||||
descr: 'По каким портам открыть доступ к ВМ.<br/>Порты 22, 10050 проставляются автоматически<br/>Пока доступно: <br/>22 - SSH, <br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX'
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 133
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 159
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 493
|
|
||||||
code: vmCpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 64
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 20
|
|
||||||
- id: 494
|
|
||||||
code: vmRam
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 256
|
|
||||||
minvalue: 1
|
|
||||||
descr: Gb
|
|
||||||
sort: 30
|
|
||||||
- id: 495
|
|
||||||
code: vmDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$
|
|
||||||
descr: Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму
|
|
||||||
sort: 40
|
|
||||||
- id: 496
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- no-needed
|
|
||||||
- internet-antiddos-v1
|
|
||||||
- internet-no-antiddos-v1
|
|
||||||
- internet-ipv4-v1
|
|
||||||
descr: no-needed, без внешнего ip<br/>internet-antiddos-v1, с функцией защиты от ddos атак<br/>internet-no-antiddos-v1, с функцией защиты от ddos атак<br/>internet-ipv4-v1 тестовое простанство dev
|
|
||||||
sort: 50
|
|
||||||
- id: 497
|
|
||||||
code: accessIpList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено ["0.0.0.0/0"]
|
|
||||||
sort: 60
|
|
||||||
- id: 498
|
|
||||||
code: accessPortList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: Формат массива<br/>По каким портам открыть доступ к ВМ.<br/>Пока доступно:<br/>22 - SSH,<br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX
|
|
||||||
sort: 70
|
|
||||||
- name: reconcile
|
|
||||||
id: 286
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 164
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 509
|
|
||||||
code: vmName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
sort: 10
|
|
||||||
- id: 510
|
|
||||||
code: vmCpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 64
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 20
|
|
||||||
- id: 511
|
|
||||||
code: vmRam
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 256
|
|
||||||
minvalue: 1
|
|
||||||
descr: Gb
|
|
||||||
sort: 30
|
|
||||||
- id: 512
|
|
||||||
code: vmDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$
|
|
||||||
descr: Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму
|
|
||||||
sort: 40
|
|
||||||
- id: 513
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- no-needed
|
|
||||||
- internet-antiddos-v1
|
|
||||||
- internet-no-antiddos-v1
|
|
||||||
- internet-ipv4-v1
|
|
||||||
descr: no-needed, без внешнего ip<br/>internet-antiddos-v1, с функцией защиты от ddos атак<br/>internet-no-antiddos-v1, с функцией защиты от ddos атак<br/>internet-ipv4-v1 тестовое простанство dev
|
|
||||||
sort: 50
|
|
||||||
- id: 514
|
|
||||||
code: accessIpList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|\[\s*(?:"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?"(?:\s*,\s*"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?")*)\s*\])$
|
|
||||||
descr: Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено ["0.0.0.0/0"]
|
|
||||||
sort: 60
|
|
||||||
- id: 515
|
|
||||||
code: imageVm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- RockyLinux_9-16G-cloudinit
|
|
||||||
- Ubuntu_22-20G
|
|
||||||
- Debian_13-20G
|
|
||||||
sort: 80
|
|
||||||
- id: 516
|
|
||||||
code: userLogin
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Учётка SSH
|
|
||||||
sort: 180
|
|
||||||
- id: 517
|
|
||||||
code: userPublicKey
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Публичная часть SSH-Ключа для пользователя
|
|
||||||
sort: 190
|
|
||||||
- id: 518
|
|
||||||
code: cloudInit
|
|
||||||
data_type: yaml
|
|
||||||
required: false
|
|
||||||
descr: Можно передать создание дополнительных пользователей.<br/>На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.
|
|
||||||
sort: 200
|
|
||||||
- id: 520
|
|
||||||
code: accessPortList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: По каким портам открыть доступ к ВМ.<br/>Порты 22, 10050 проставляются автоматически<br/>Пока доступно:<br/>22 - SSH,<br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX
|
|
||||||
sort: 70
|
|
||||||
- name: resume
|
|
||||||
id: 135
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 134
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
name: vc_vdc_group
|
|
||||||
service_id: 29
|
|
||||||
service_display_name: Группа датацентров
|
|
||||||
service_short_name: vcVdcGroup
|
|
||||||
service_man: '# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.<br/>Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.<br/><br/>### Доступные операции<br/><br/>**create** — Создание новой группы виртуальных датацентров.<br/>**delete** — Удаление существующей группы vDC.<br/>**add_vdc** — Добавление дополнительного виртуального датацентра в группу.<br/>**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры операции **create**:<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра, который будет являться первичным в группе.<br/>Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director<br/><br/>### Промышленное окружение<br/>- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Параметры groupvdc<br/>Набор параметров, указанных пользователем при создании<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.<br/>- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.<br/>- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.<br/>- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: add_vdc
|
|
||||||
id: 192
|
|
||||||
kind: subresource
|
|
||||||
action: add
|
|
||||||
subresource: vdc
|
|
||||||
man: '**Не нужно** выбирать UUID VDC, который уже был добавлен в группу'
|
|
||||||
params:
|
|
||||||
- id: 619
|
|
||||||
code: vdcUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 21
|
|
||||||
sort: 10
|
|
||||||
- name: create
|
|
||||||
id: 191
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.<br/>Это позволит, к примеру, создать **общую сеть** для всех VDC в организации<br/><br/>- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)<br/>- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую'
|
|
||||||
params:
|
|
||||||
- id: 618
|
|
||||||
code: vdcUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 21
|
|
||||||
sort: 10
|
|
||||||
- name: delete
|
|
||||||
id: 195
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: reconcile
|
|
||||||
id: 251
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: remove_vdc
|
|
||||||
id: 193
|
|
||||||
kind: subresource
|
|
||||||
action: remove
|
|
||||||
subresource: vdc
|
|
||||||
params:
|
|
||||||
- id: 620
|
|
||||||
code: vdcName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
name: template
|
|
||||||
service_id: 2
|
|
||||||
service_display_name: Темплейт k8s
|
|
||||||
service_short_name: template
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 74
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 813
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 173
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "128"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 174
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 172
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 175
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 814
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 176
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 815
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 177
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ingress
|
|
||||||
value_list:
|
|
||||||
- ingress
|
|
||||||
- service
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 178
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: abracadabra-l9gtqv1m
|
|
||||||
regex: (?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 179
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 180
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 181
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 182
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 75
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 76
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 816
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 184
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 186
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 183
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 185
|
|
||||||
code: disk
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 817
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 190
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 192
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 187
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- ingress
|
|
||||||
- service
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 188
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 189
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 191
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 298
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 98
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 97
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,485 +0,0 @@
|
|||||||
name: nextcloud
|
|
||||||
service_id: 50
|
|
||||||
service_display_name: Nextcloud
|
|
||||||
service_short_name: nextcloud
|
|
||||||
service_man: 'Ресурсная платформа: k8s. Автоматизация: helm chart'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 16
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: Для установки необходимо:<br/>- ресурсная платформа, где разворачивается Nextcloud, обязана совпадать с ресурсными платформами, где развёрнут Redis и PostgreSQL
|
|
||||||
params:
|
|
||||||
- id: 1055
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 494
|
|
||||||
code: redisEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 495
|
|
||||||
code: psqlUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить PostgreSQL из Личного кабинета`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 496
|
|
||||||
code: redisUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить Redis из Личного кабинета`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 492
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 493
|
|
||||||
code: psqlEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1056
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 497
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
value_list:
|
|
||||||
- "1000"
|
|
||||||
- "2000"
|
|
||||||
- "3000"
|
|
||||||
- "4000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 498
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
value_list:
|
|
||||||
- "1024"
|
|
||||||
- "2048"
|
|
||||||
- "3072"
|
|
||||||
- "4096"
|
|
||||||
- "5120"
|
|
||||||
- "6144"
|
|
||||||
- "7168"
|
|
||||||
- "8192"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 499
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 500
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes<br/>На данном диске хранятся данные Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1057
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 501
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: nextcloud-vbxjicr2
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1058
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 502
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 33.0.4
|
|
||||||
value_list:
|
|
||||||
- 33.0.4
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 503
|
|
||||||
code: documentServer
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: collabora
|
|
||||||
value_list:
|
|
||||||
- collabora
|
|
||||||
man: Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 549
|
|
||||||
code: logLevel
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: INFO
|
|
||||||
value_list:
|
|
||||||
- DEBUG
|
|
||||||
- INFO
|
|
||||||
- WARN
|
|
||||||
- ERROR
|
|
||||||
- FATAL
|
|
||||||
- NONE
|
|
||||||
man: Включает отображение логов самого nextcloud<br/>Логи уходят в /dev/stdout контейнера<br/>`NONE` отключает логирование
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_backup
|
|
||||||
id: 404
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: backup
|
|
||||||
man: Перед запуском обязательно надо перевести экземпляр Nextcloud в статус 'suspended'
|
|
||||||
params:
|
|
||||||
- id: 1077
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 578
|
|
||||||
code: veleroUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Предварительно необходимо создать инстанс услуги `Velero`<br/>Из этого инстанса будут взяты точки восстановления<br/>Если восстановление производится на другую ресурсную платформу, важно чтобы предварительно все компоненты связующие были либо перенесены, либо были доступны снаружи
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 17
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: DEV-Ветка удаления Nextcloud
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 67
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1059
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 506
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 507
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes<br/>На данном диске хранятся данные Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 504
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1000"
|
|
||||||
- "2000"
|
|
||||||
- "3000"
|
|
||||||
- "4000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 505
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1024"
|
|
||||||
- "2048"
|
|
||||||
- "3072"
|
|
||||||
- "4096"
|
|
||||||
- "5120"
|
|
||||||
- "6144"
|
|
||||||
- "7168"
|
|
||||||
- "8192"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1060
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 508
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- 33.0.4
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 509
|
|
||||||
code: documentServer
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- collabora
|
|
||||||
man: Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 550
|
|
||||||
code: logLevel
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- DEBUG
|
|
||||||
- INFO
|
|
||||||
- WARN
|
|
||||||
- ERROR
|
|
||||||
- FATAL
|
|
||||||
- NONE
|
|
||||||
man: Включает отображение логов самого nextcloud<br/>Логи уходят в /dev/stdout контейнера<br/>`NONE` отключает логирование
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 390
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: recovery
|
|
||||||
id: 406
|
|
||||||
kind: action
|
|
||||||
action: recovery
|
|
||||||
params:
|
|
||||||
- id: 1078
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 556
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 570
|
|
||||||
code: veleroUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из этого инстанса будут взяты точки восстановления<br/>Если восстановление производится на другую ресурсную платформу, важно чтобы предварительно все компоненты связующие были либо перенесены, либо были доступны снаружи
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 559
|
|
||||||
code: recoveryPoint
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 557
|
|
||||||
code: psqlEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 558
|
|
||||||
code: redisEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 560
|
|
||||||
code: psqlUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить PostgreSQL из Личного кабинета`<br/>Если откат производится на ту же версию Nextcloud, в теории возможно развернуться в существующую базу<br/><br/>Предпочтительно создать отдельный инстанс PostgreSQL, который был восстановлен также через Recovery
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 561
|
|
||||||
code: redisUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить Redis из Личного кабинета`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1079
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 564
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: 1,2
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 565
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes<br/>На данном диске хранятся данные Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 562
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1000"
|
|
||||||
- "2000"
|
|
||||||
- "3000"
|
|
||||||
- "4000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 563
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1024"
|
|
||||||
- "2048"
|
|
||||||
- "3072"
|
|
||||||
- "4096"
|
|
||||||
- "5120"
|
|
||||||
- "6144"
|
|
||||||
- "7168"
|
|
||||||
- "8192"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1080
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 566
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: nextcloud-bcdguda1
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1081
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
man: Версия Nextcloud будет взята из бэкапа
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 568
|
|
||||||
code: logLevel
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: NONE
|
|
||||||
value_list:
|
|
||||||
- DEBUG
|
|
||||||
- INFO
|
|
||||||
- WARN
|
|
||||||
- ERROR
|
|
||||||
- FATAL
|
|
||||||
- NONE
|
|
||||||
man: Включает отображение логов самого nextcloud<br/>Логи уходят в /dev/stdout контейнера<br/>`NONE` отключает логирование
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 569
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Версия Nextcloud будет исправлена на ту версию, которая указана в бэкапе
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 567
|
|
||||||
code: documentServer
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: collabora
|
|
||||||
value_list:
|
|
||||||
- collabora
|
|
||||||
man: Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ
|
|
||||||
is_modifiable: false
|
|
||||||
- name: restart
|
|
||||||
id: 66
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 129
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 128
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
name: superset
|
|
||||||
service_id: 81
|
|
||||||
service_display_name: Apache Superset
|
|
||||||
service_short_name: superset
|
|
||||||
service_man: 'Apache Superset как сервис. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator.<br/>Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 12
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: DEV-Ветка сборки Superset
|
|
||||||
params:
|
|
||||||
- id: 14
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: superset-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- id: 20
|
|
||||||
code: emails
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: testuser1
|
|
||||||
descr: Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел
|
|
||||||
man: Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел
|
|
||||||
sort: 70
|
|
||||||
- id: 96
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро
|
|
||||||
sort: 30
|
|
||||||
- id: 97
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 40
|
|
||||||
- id: 98
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 50
|
|
||||||
- id: 109
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 227
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
sort: 60
|
|
||||||
- name: delete
|
|
||||||
id: 13
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: DEV-Ветка удаления Superset
|
|
||||||
params: []
|
|
||||||
@@ -1,129 +0,0 @@
|
|||||||
name: harbor
|
|
||||||
service_id: 82
|
|
||||||
service_display_name: Container Registry
|
|
||||||
service_short_name: harbor
|
|
||||||
service_man: 'Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.<br/>Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.<br/>Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация: keycloak'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 14
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: DEV-Ветка сборки Harbor
|
|
||||||
params:
|
|
||||||
- id: 16
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: harbor-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 20
|
|
||||||
- id: 110
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 30
|
|
||||||
- id: 228
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 229
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 230
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество узлов в сети
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 231
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 12
|
|
||||||
descr: UUID экземпляра услуги S3
|
|
||||||
man: UUID экземпляра услуги S3
|
|
||||||
sort: 10
|
|
||||||
- name: delete
|
|
||||||
id: 15
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: DEV-Ветка удаления Harbor
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 270
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 822
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
- id: 823
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
- id: 824
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
- name: reconcile
|
|
||||||
id: 405
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
name: k8s_velero
|
|
||||||
service_id: 86
|
|
||||||
service_display_name: Velero
|
|
||||||
service_short_name: k8sVelero
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 332
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 962
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 334
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 336
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 337
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 963
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 338
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 964
|
|
||||||
code: nodeAgentConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
man: Реплик выставляется автоматически столько, сколько Worker-узлов в кластере
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 551
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 552
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1076
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 555
|
|
||||||
code: s3BucketUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3-Бакета обязателен<br/>Учётная запись будет создана автоматически, если её нету
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 331
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params:
|
|
||||||
- id: 1082
|
|
||||||
code: deleteS3Bucket
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
sort: 10
|
|
||||||
- name: modify
|
|
||||||
id: 334
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 965
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 347
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 348
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 345
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 966
|
|
||||||
code: nodeAgentConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 553
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 554
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 336
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 335
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 333
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,240 +0,0 @@
|
|||||||
name: flask
|
|
||||||
service_id: 89
|
|
||||||
service_display_name: Web-сервер с фреймворком Flask
|
|
||||||
service_short_name: flask
|
|
||||||
service_man: '# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания веб-приложений на базе Flask.<br/><br/>### Доступные операции<br/><br/>create — включить сервис, развернуть веб-приложение с указанными параметрами.<br/>delete — удалить сервис, только после suspend.<br/>modify — изменить настройки сервиса и переразвернуть.<br/>suspend — выключить веб-приложение, остановить обслуживание.<br/>resume — включить веб-приложение после suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Имя домена<br/>Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.<br/>Пример значения: строка, допустимые FQDN или имя в одном октете. Пример: example.com или myapp.<br/><br/>### Платформа для развертывания<br/>Описание: кластер Kubernetes, в котором будет развернуто приложение.<br/>Пример значения: идентификатор кластера Kubernetes.<br/><br/>### Квота ядра пода<br/>Описание: количество CPU, выделяемое на под, в Milicores.<br/>Пример значения: целое число, например 500 для 0.5 ядра.<br/><br/>### Квота памяти пода<br/>Описание: количество памяти, выделяемое на под, в Megabytes.<br/>Пример значения: целое число, например 512 для 512 MB.<br/><br/>### Кол-во реплик пода<br/>Описание: количество инстансов пода для масштабирования.<br/>Пример значения: целое число, шт, например 2.<br/><br/>### URL Проекта (gitpath)<br/>Описание: полный HTTPS путь до проекта в Git-репозитории.<br/>Пример значения: URL в формате https://github.com/myuser/myproject.git. Доступ к репозиторию должен быть публичным.<br/><br/>### URL HealthCheck<br/>Описание: путь для проверки здоровья приложения внутри пода.<br/>Пример значения: строка, путь, например /api/v1/health.<br/><br/>### Переменные окружения пода<br/>Описание: структура данных, которая будет передана как переменные окружения в под.<br/>Пример значения: ключ-значение, например {"ENV": "production"}.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Квота ядра пода: 300m (0.3 ядра)<br/>- Квота памяти пода: 256 MB<br/>- Кол-во реплик пода: 1<br/><br/>### Промышленное окружение<br/>- Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки<br/>- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения<br/>- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости<br/><br/>---<br/><br/>## 4. Выходные параметры<br/>Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.<br/>- Исходный код веб-приложения должен располагаться в директории site.<br/>- Запуск веб-сервера осуществляется командой python app.py.<br/>- Используется версия Python: python:3.12-slim.<br/>- Git-репозиторий должен быть публично доступен для платформы.<br/>- Операция delete возможна только после suspend.<br/>- Операция modify приводит к переразвертыванию с новыми параметрами.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 376
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1037
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 460
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1038
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 461
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 462
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "256"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 463
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1039
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 464
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: flask-4brtjmwm
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1040
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 466
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 467
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "3.12"
|
|
||||||
value_list:
|
|
||||||
- "3.12"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 465
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: https://github.com/Foxyhhd/Baldurs-Gate-test.git
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1041
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 379
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 375
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1042
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 468
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 469
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 470
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1043
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 473
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "3.12"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 471
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 472
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1044
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
sort: 30
|
|
||||||
- name: reconcile
|
|
||||||
id: 381
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 380
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 1045
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 474
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- name: resume
|
|
||||||
id: 378
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 377
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,930 +0,0 @@
|
|||||||
name: postgres
|
|
||||||
service_id: 90
|
|
||||||
service_display_name: PostgreSQL
|
|
||||||
service_short_name: postgres
|
|
||||||
service_man: '# Инструкция по развертыванию PostgreSQL через платформу<br/><br/>---<br/>## 1. Общая информация<br/><br/>PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.<br/><br/>## Доступные операции<br/><br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>- **modify** — Модификация кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/>- **restart** — Перезапуск кластера<br/>- **recovery** — Восстановление из резервной копии<br/><br/>- **create_user** — Создание пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>- **create_database** — Создание базы данных<br/>- **delete_database** — Удаление базы данных<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).<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 master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>* **Выделяет внешний IP для доступа к slave:**<br/> Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.<br/><br/>* **Имя ipSpace для публикации внешнего IP slave:**<br/> Если включен параметр для slave, то поле необходимо заполнить.<br/><br/>* **UUID экземпляра услуги S3:**<br/> UUID экземпляра S3 для хранения резервных копий.<br/><br/>* **Версия PostgreSQL:**<br/> Версия PostgreSQL для развертывания. Пример: `16`<br/><br/>* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**<br/> Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно в полночь).<br/><br/>* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**<br/> Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`<br/><br/>* **PgPooler (master / slave):**<br/> Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.<br/><br/>* **Разрешить подключение без SSL (allowNoSSL):**<br/> По умолчанию подключение с sslmode=require. При `true` разрешается подключение без SSL.<br/><br/>* **Автоскейлинг PV (autoScale):**<br/> Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.<br/><br/>* **Дополнительные параметры PostgreSQL (jsonParameters):**<br/> JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html<br/><br/>---<br/>## 3. Выходные параметры<br/><br/>После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.<br/><br/>#### externalConnect<br/><br/>Внешние эндпоинты для подключения к кластеру:<br/>- **master** — для операций записи (host: `write.${namespace}`, port: 5432)<br/>- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": {<br/> "ip": "",<br/> "fqdn": "",<br/> "uuid": "",<br/> "isExternal": false<br/> },<br/> "master": {<br/> "ip": "<ip>",<br/> "fqdn": "write.<namespace>.<cluster-domain>",<br/> "uuid": "<uuid>",<br/> "isExternal": false<br/> }<br/>}<br/>```<br/><br/>Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.<br/><br/>#### internalConnect<br/><br/>Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": "postgresqlk8s-master.<namespace>.svc.cluster.local"<br/> }<br/> }<br/>}<br/>```<br/><br/>Для подключения используйте значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).<br/><br/>Для подключения используется порт **5432**.<br/><br/>---<br/>## 4. Управление пользователями<br/><br/>### create_user — Создание пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.<br/> Пример: `myapp_user`<br/><br/>* **Роль (role):**<br/> Тип роли пользователя. Допустимые значения:<br/> - `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)<br/> - `ddl_user` — расширенные права: createdb, createrole (управление базами и ролями)<br/><br/>Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.<br/><br/>### delete_user — Удаление пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя удаляемого пользователя. Пример: `myapp_user`<br/><br/>Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.<br/><br/>---<br/>## 5. Управление базами данных<br/><br/>### create_database — Создание базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название создаваемой базы данных. Пример: `myapp_db`<br/><br/>* **Владелец базы данных (dbOwner):**<br/> Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`<br/><br/>### delete_database — Удаление базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название удаляемой базы данных. Пример: `myapp_db`<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 19
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: руководство
|
|
||||||
params:
|
|
||||||
- id: 788
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 106
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 107
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 104
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 105
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 789
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 108
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 790
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 109
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 110
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 111
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 112
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 791
|
|
||||||
code: postgresConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 113
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "17"
|
|
||||||
value_list:
|
|
||||||
- "17"
|
|
||||||
- "16"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 116
|
|
||||||
code: sslRequired
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: По умолчанию подключение обязательное (sslmode=require)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 114
|
|
||||||
code: poolerMaster
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на запись). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 115
|
|
||||||
code: poolerSlave
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на чтение). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 792
|
|
||||||
code: postgresConf
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 118
|
|
||||||
code: paramName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- log_connections
|
|
||||||
- log_disconnections
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 117
|
|
||||||
code: paramValue
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Как правильно вводить значения описано здесь (https://www.postgresql.org/docs/current/runtime-config.html)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 793
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 119
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 120
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 121
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 794
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 122
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 123
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 124
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 125
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1094
|
|
||||||
code: mtlsConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
default: '{}'
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 609
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "off"
|
|
||||||
value_list:
|
|
||||||
- "off"
|
|
||||||
- manual
|
|
||||||
- auto
|
|
||||||
man: '`off` - Настройка MTLS производиться не будет<br/>`manual` - После создания кластера в полях данных будет запрос на создание сертификата. **Вам необходимо будет выписать сертификат через вашу CA** и уже после включить через операцию **modify** режим MTLS<br/>`auto` - Сертификаты будут созданы через Cert-Manager<br/><br/>Режимы **auto** и **manual** требует включить настройку `Включить sslMode` - **true**<br/>MTLS в режиме **auto** будет работать сразу, в режиме **manual** только после того как будет предоставлен **CA** и **Сертификат сервера**'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 610
|
|
||||||
code: durationCA
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "175200"
|
|
||||||
man: Указывается в **часах**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 611
|
|
||||||
code: durationServer
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "87600"
|
|
||||||
man: Указывается в **часах**<br/>Не может быть больше чем время жизни СА<br/>Обновляется **раз в год**, если выставлено значение **более 2 лет**<br/>Обновляется **раз в пол года**, если выставлено значение **менее 2 лет**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 612
|
|
||||||
code: certCA
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 613
|
|
||||||
code: certServer
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_backup
|
|
||||||
id: 264
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: backup
|
|
||||||
params: []
|
|
||||||
- name: create_database
|
|
||||||
id: 245
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 741
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[A-Za-z0-9]+$
|
|
||||||
- id: 742
|
|
||||||
code: dbOwner
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: create_user
|
|
||||||
id: 241
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 733
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[A-Za-z0-9]+$
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 2
|
|
||||||
sort: 10
|
|
||||||
- id: 740
|
|
||||||
code: role
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- app_user
|
|
||||||
- ddl_user
|
|
||||||
descr: Выбрать роль из списка
|
|
||||||
man: '`app_user` — стандартный пользователь с базовым набором прав<br/>`ddl_user` — пользователь с расширенными правами, включая управление ролями и базами данных'
|
|
||||||
sort: 20
|
|
||||||
- id: 1096
|
|
||||||
code: mtlsAccess
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Подключение пользователя без ввода паролей<br/>Политика применяется **ко всем базам** внутри Postgresql<br/><br/>RBAC на базы настраивать вручную
|
|
||||||
sort: 30
|
|
||||||
- name: delete
|
|
||||||
id: 20
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params:
|
|
||||||
- id: 457
|
|
||||||
code: deleteS3Bucket
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Также удалить технический S3 Bucket с бэкапами?
|
|
||||||
sort: 10
|
|
||||||
- name: delete_database
|
|
||||||
id: 246
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 743
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: delete_user
|
|
||||||
id: 244
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 739
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
- name: modify
|
|
||||||
id: 48
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 795
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 126
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 127
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 128
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 129
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 796
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 130
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 131
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 132
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 133
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 797
|
|
||||||
code: postgresConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 134
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "17"
|
|
||||||
- "16"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 135
|
|
||||||
code: sslRequired
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: false,true
|
|
||||||
man: По умолчанию подключение обязательное (sslmode=require)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 136
|
|
||||||
code: poolerMaster
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на запись). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 137
|
|
||||||
code: poolerSlave
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на чтение). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 798
|
|
||||||
code: postgresConf
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 271
|
|
||||||
code: paramName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- log_connections
|
|
||||||
- log_disconnections
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 272
|
|
||||||
code: paramValue
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Как правильно вводить значения описано здесь (https://www.postgresql.org/docs/current/runtime-config.html)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 799
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 139
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 193
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 138
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 800
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
sub_params:
|
|
||||||
- id: 140
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 141
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 142
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 143
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1095
|
|
||||||
code: mtlsConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
sub_params:
|
|
||||||
- id: 617
|
|
||||||
code: certCA
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Предварительно сертификат можно получить командой<br/>`cat ca.crt | base64 -w0`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 618
|
|
||||||
code: certServer
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Предварительно сертификат можно получить командой<br/>`cat server.crt | base64 -w0`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 634
|
|
||||||
code: refreshCert
|
|
||||||
data_type: boolean
|
|
||||||
required: false
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: На случай если его нужно обновить/заменить
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 614
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "off"
|
|
||||||
- manual
|
|
||||||
- auto
|
|
||||||
man: '`off` - Настройка MTLS производиться не будет<br/>`manual` - После создания кластера в полях данных будет запрос на создание сертификата. **Вам необходимо будет выписать сертификат через вашу CA** и уже после включить через операцию **modify** режим MTLS<br/>`auto` - Сертификаты будут созданы через Cert-Manager<br/><br/>Режимы **auto** и **manual** требует включить настройку `Включить sslMode` - **true**<br/>MTLS в режиме **auto** будет работать сразу, в режиме **manual** только после того как будет предоставлен **CA** и **Сертификат сервера**'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 615
|
|
||||||
code: durationCA
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в **часах**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 616
|
|
||||||
code: durationServer
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в **часах**<br/>Не может быть больше чем время жизни СА<br/>Обновляется **раз в год**, если выставлено значение **более 2 лет**<br/>Обновляется **раз в пол года**, если выставлено значение **менее 2 лет**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 263
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: recovery
|
|
||||||
id: 47
|
|
||||||
kind: action
|
|
||||||
action: recovery
|
|
||||||
params:
|
|
||||||
- id: 801
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 144
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 166
|
|
||||||
code: recoveryPoint
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 802
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 148
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 145
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 146
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 147
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 803
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 149
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 150
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 151
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 152
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 804
|
|
||||||
code: postgresConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 153
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "17"
|
|
||||||
value_list:
|
|
||||||
- "17"
|
|
||||||
- "16"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 154
|
|
||||||
code: sslRequired
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: По умолчанию подключение обязательное (sslmode=require)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 155
|
|
||||||
code: poolerMaster
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на запись). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 156
|
|
||||||
code: poolerSlave
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на чтение). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 805
|
|
||||||
code: postgresConf
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 475
|
|
||||||
code: paramName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- log_connections
|
|
||||||
- log_disconnections
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 476
|
|
||||||
code: paramValue
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Как правильно вводить значения описано здесь (https://www.postgresql.org/docs/current/runtime-config.html)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 806
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
sub_params:
|
|
||||||
- id: 159
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 160
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 161
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 807
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
sub_params:
|
|
||||||
- id: 163
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 164
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 165
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 162
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- name: restart
|
|
||||||
id: 54
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
man: ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.<br/>Может быть полная поломка. Крайне осторожно запускать при работе
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 114
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 115
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,220 +0,0 @@
|
|||||||
name: redis
|
|
||||||
service_id: 91
|
|
||||||
service_display_name: Redis
|
|
||||||
service_short_name: redis
|
|
||||||
service_man: 'Redis кластер. Под кеши. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator<br/>port 6379'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 21
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1061
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 510
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1062
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 512
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 513
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 514
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 511
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1063
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 515
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 516
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 517
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 518
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 22
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 394
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1064
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 519
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 520
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 521
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 522
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1065
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 524
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 525
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 526
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 523
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 391
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 393
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 392
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,239 +0,0 @@
|
|||||||
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:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 37
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1089
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 594
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
descr: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1090
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 597
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 598
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "5"
|
|
||||||
man: Указывается в Gb
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 595
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 596
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1091
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 600
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 599
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_user
|
|
||||||
id: 198
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 635
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 636
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 643
|
|
||||||
code: role
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- dbOwner
|
|
||||||
- read
|
|
||||||
- readWrite
|
|
||||||
- name: delete
|
|
||||||
id: 190
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_user
|
|
||||||
id: 199
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 644
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: modify
|
|
||||||
id: 201
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1092
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 604
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Gb
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 601
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 602
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 603
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1093
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 605
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 606
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify_user
|
|
||||||
id: 200
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 640
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 641
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 642
|
|
||||||
code: role
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- dbOwner
|
|
||||||
- read
|
|
||||||
- readWrite
|
|
||||||
- name: reconcile
|
|
||||||
id: 409
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 196
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 194
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,186 +0,0 @@
|
|||||||
name: rabbitmq
|
|
||||||
service_id: 93
|
|
||||||
service_display_name: RabbitMQ
|
|
||||||
service_short_name: rabbitmq
|
|
||||||
service_man: '# Инструкция по развертыванию RabbitMQ через платформу<br/><br/>---<br/>## 1. Общая информация<br/>RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.<br/>Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание кластера<br/>- **modify** — Изменение параметров кластера<br/>- **delete** — Удаление кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.<br/> Пример: `1` (single node) или `3` (кластер с репликацией)<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.<br/> Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/><br/>---<br/>## 3. Модификация кластера<br/>Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.<br/><br/>**Изменяемые параметры:**<br/>* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить<br/>* **Квота (millicore) ядра пода** — можно увеличить или уменьшить<br/>* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)<br/>* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)<br/>* **Выделяет внешний IP для доступа к master** — можно включить или выключить<br/>* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP<br/><br/>**Ограничения:**<br/>* Уменьшение размера диска не поддерживается<br/>* Уменьшение количества реплик не поддерживается<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":<br/><br/>**clusterDomain**<br/>Домен кластера Kubernetes, в котором развернут RabbitMQ.<br/>Пример: `cluster.local`<br/><br/>**inernalConnect**<br/>Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.<br/>Содержит:<br/>* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`<br/><br/>**externalConnect**<br/>Внешние эндпоинты для подключения к кластеру RabbitMQ извне.<br/>Содержит объекты с полями:<br/>* **admin** — доступ к веб-интерфейсу управления:<br/> * `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`<br/> * `ip` — IP-адрес<br/>* **master** — доступ к AMQP протоколу (если включен внешний IP):<br/> * `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`<br/> * `ip` — IP-адрес<br/><br/>**monitoring**<br/>Информация о дашбордах мониторинга:<br/>* **allDashboards** — URL для доступа ко всем дашбордам Grafana<br/><br/>Для подключения используются следующие порты:<br/><br/>* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)<br/>* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)<br/><br/>**Учётные данные**<br/>Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":<br/>* **adminUser** — имя пользователя администратора<br/>* **adminPass** — пароль администратора<br/><br/><br/>---<br/>## 5. Примеры подключения через консоль (rabbitmqadmin)<br/><br/>### Работа с очередями через rabbitmqadmin<br/><br/>Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.<br/><br/>Задайте переменные окружения с учётными данными:<br/><br/>```bash<br/>export RABBITMQ_USERNAME=<adminUser><br/>export RABBITMQ_PASSWORD=<adminPass><br/>export RABBIT_HOST=<host><br/>```<br/><br/>Где:<br/>* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"<br/>* `<host>` — адрес для подключения:<br/> * Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`<br/><br/>**Создание очереди:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> declare queue name=healthcheck durable=false<br/>```<br/><br/>**Листинг очередей:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> list queues<br/>```<br/><br/>**Отправка сообщения:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"<br/>```<br/><br/>**Чтение сообщения:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> get queue=healthcheck ackmode=ack_requeue_false<br/>```<br/><br/>---<br/>## 6. Дополнительная информация<br/>Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".<br/><br/>Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.<br/><br/>Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.<br/><br/>---'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 38
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1097
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 619
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1098
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 620
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 621
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 622
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 623
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1099
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 624
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 625
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 39
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 106
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1100
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 629
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 626
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 627
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 628
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1101
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 630
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 631
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 410
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 117
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 116
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Пока не работает из за того что RabbitmqCluster нельзя занулить
|
|
||||||
params: []
|
|
||||||
@@ -1,248 +0,0 @@
|
|||||||
name: lucee
|
|
||||||
service_id: 94
|
|
||||||
service_display_name: Lucee
|
|
||||||
service_short_name: lucee
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 49
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1019
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 430
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1020
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 431
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 432
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "256"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 433
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1021
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 434
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: lucee-pzpvwkuk
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1022
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 437
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 435
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "6.0"
|
|
||||||
value_list:
|
|
||||||
- "5.4"
|
|
||||||
- "6.0"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 436
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: https://github.com/xahys/testlucee
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1023
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 50
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 55
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1024
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 438
|
|
||||||
code: cpu
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 439
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 440
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1025
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 442
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 443
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 441
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "6.0"
|
|
||||||
- "5.4"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1026
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 30
|
|
||||||
- name: reconcile
|
|
||||||
id: 373
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 53
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 1027
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 444
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- name: restart
|
|
||||||
id: 163
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 95
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 96
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,248 +0,0 @@
|
|||||||
name: nodejs
|
|
||||||
service_id: 95
|
|
||||||
service_display_name: NodeJS
|
|
||||||
service_short_name: nodejs
|
|
||||||
service_man: Развертывает контейнер в k8s кластере с node, который можно использовать для запуска своих приложений.<br/>Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 58
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1028
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 445
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1029
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 446
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 447
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "256"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 448
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1030
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 449
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: node-ctkmt4iw
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1031
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 450
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "23"
|
|
||||||
value_list:
|
|
||||||
- "18"
|
|
||||||
- "20"
|
|
||||||
- "22"
|
|
||||||
- "23"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 451
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: https://github.com/xahys/testnode.git
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 452
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1032
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 61
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 59
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1033
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 453
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 454
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 455
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1034
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 456
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "18"
|
|
||||||
- "20"
|
|
||||||
- "22"
|
|
||||||
- "23"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 457
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 458
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1035
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 30
|
|
||||||
- name: reconcile
|
|
||||||
id: 374
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 60
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 1036
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 459
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- name: resume
|
|
||||||
id: 121
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 120
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
name: pgadmin
|
|
||||||
service_id: 96
|
|
||||||
service_display_name: pgAdmin
|
|
||||||
service_short_name: pgadmin
|
|
||||||
service_man: Инструмент с графическим интерфейсом для управления базами данных PostgreSQL
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 62
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 164
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: pgadmin-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- id: 165
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (milicores). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (milicores). 1000Mili = 1 Ядро
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 166
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
descr: Квота памяти пода (MBytes)
|
|
||||||
man: Квота памяти пода (MBytes)
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 167
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 169
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 170
|
|
||||||
code: login
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)$
|
|
||||||
maxlength: 255
|
|
||||||
minlength: 3
|
|
||||||
descr: Логин для подключения к pgAdmin, в формате email (login@email.net)
|
|
||||||
man: Логин для подключения к pgAdmin, в формате email (login@email.net)
|
|
||||||
sort: 60
|
|
||||||
- id: 171
|
|
||||||
code: password
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Пароль для подключения к pgAdmin
|
|
||||||
man: Пароль для подключения к pgAdmin
|
|
||||||
sort: 70
|
|
||||||
is_sensitive: true
|
|
||||||
- name: delete
|
|
||||||
id: 63
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 64
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 172
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
- id: 173
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
descr: Квота памяти пода (MBytes)
|
|
||||||
man: Квота памяти пода (MBytes)
|
|
||||||
- id: 174
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
- name: redeploy
|
|
||||||
id: 65
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 277
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
- name: resume
|
|
||||||
id: 123
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 122
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,166 +0,0 @@
|
|||||||
name: http
|
|
||||||
service_id: 98
|
|
||||||
service_display_name: Простой HTTP контейнер
|
|
||||||
service_short_name: http
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 77
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 212
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: http-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- id: 213
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
descr: Квота ядра пода (Указывается в mili)
|
|
||||||
man: Квота ядра пода (Указывается в mili)
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 214
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 215
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество реплик приложения. Трафик будет распределяться между подами в режиме Round-Robin
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 216
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 217
|
|
||||||
code: registryPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: nexus-sa.tst.nubes.ru/docker-nubes/jolt
|
|
||||||
descr: Путь до image, который будет установлен как deployment
|
|
||||||
man: Путь до image, который будет установлен как deployment
|
|
||||||
sort: 60
|
|
||||||
- id: 241
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: Массив переменных, будут переданы в env приложения
|
|
||||||
sort: 70
|
|
||||||
- id: 782
|
|
||||||
code: ingressAnnotations
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
man: Формат ключ/значение<br/>Поддерживает пока простые аннотации
|
|
||||||
sort: 80
|
|
||||||
- name: delete
|
|
||||||
id: 78
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 81
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 218
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
- id: 219
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
- id: 220
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
- name: reconcile
|
|
||||||
id: 403
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 79
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 272
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
sort: 10
|
|
||||||
- name: resume
|
|
||||||
id: 130
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 131
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
name: gitea
|
|
||||||
service_id: 99
|
|
||||||
service_display_name: Gitea
|
|
||||||
service_short_name: gitea
|
|
||||||
service_man: '# Инструкция по развертыванию Gitea через платформу<br/><br/>---<br/>## 1. Общая информация<br/>Gitea — это лёгкий, быстрый и самодостаточный сервис хостинга Git-репозиториев с веб-интерфейсом.<br/>Позволяет создавать и управлять репозиториями, организациями, командами, а также настраивать CI/CD через интеграции.<br/>Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание сервиса Gitea<br/>- **delete** — Удаление сервиса Gitea<br/>- **modify** — Модификация сервиса Gitea<br/>- **suspend** — Остановка сервиса Gitea<br/>- **resume** — Запуск сервиса Gitea<br/><br/>---<br/>## 2. Параметры развертывания<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Gitea:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развёрнут сервис). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество реплик подов Gitea. Пример: `1`<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `1024`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер PVC для хранения репозиториев и данных Gitea в гигабайтах. Пример: `10`<br/><br/>* **FQDN / Домен:**<br/> Доменное имя, по которому будет доступен сервис. Пример: `git.example.com`<br/><br/>* **Инстанс услуги PostgreSQL:**<br/> UUID услуги k8sPgsql, в которой будет создана база данных `gitea` и пользователь `techgitea`.<br/><br/>* **Дополнительные параметры сервера (iniServerParams):**<br/> JSON-объект с дополнительными параметрами секции `[server]` в `app.ini`. Пример:<br/> ```json<br/> {"MAX_CONTENT_LENGTH": "524288000"}<br/> ```<br/><br/>* **Дополнительные annotations для Ingress (ingressExtraAnnotations):**<br/> JSON-объект с дополнительными annotations для Ingress-контроллера. Пример:<br/> ```json<br/> {"nginx.ingress.kubernetes.io/proxy-body-size": "500m"}<br/> ```<br/><br/>---<br/>## 3. Особенности подключения и работы с репозиториями<br/><br/>### 3.1. Доступ только по HTTPS<br/>Сервис развёртывается с **rootless-образом** Gitea. SSH-сервер внутри и он **доступен только внутри кластера Kubernetes**.<br/><br/>**Внешний доступ к репозиториям осуществляется исключительно по HTTPS через Ingress.**<br/><br/>```bash<br/># Пример клонирования<br/>https://<домен>/<пользователь>/<репозиторий>.git<br/>```<br/><br/>### 3.2. Настройка git для передачи логина и пароля<br/>Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:<br/><br/>**Встроить креды в URL remote**<br/>```bash<br/>git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git<br/>```<br/>> **Важно:** Логин и пароль администратора создаются автоматически при развертывании и хранятся в Vault.<br/><br/>### 3.3. Работа с большими файлами<br/>По умолчанию `MAX_CONTENT_LENGTH` установлен в **500 МБ**, а Ingress пропускает pack-файлы до **500 МБ**.<br/><br/>Если необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:<br/>```bash<br/>git config http.postBuffer 524288000<br/>```<br/><br/>Для файлов **более 500 МБ** рекомендуется использовать **Git LFS**.<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Gitea платформа возвращает ряд параметров.<br/><br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это внешний URL для доступа к веб-интерфейсу и Git-репозиториям по HTTPS. Пример:<br/>```<br/>https://git.example.com<br/>```<br/><br/>**internalConnect**<br/>Внутренний эндпоинт для подключения к PostgreSQL из других сервисов внутри кластера.<br/><br/>---<br/>## 5. Дополнительная информация<br/>- База данных `gitea` и пользователь `techgitea` создаются автоматически в указанной услуге PostgreSQL.<br/>- DNS-запись и TLS-сертификат (Let''s Encrypt) настраиваются автоматически на основе указанного домена.<br/>- Для изменения параметров сервера Gitea (`app.ini`) используйте операцию **modify** с полем `iniServerParams`.<br/>- Для добавления дополнительных Ingress-annotations используйте операцию **modify** с полем `ingressExtraAnnotations`.<br/>---'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 82
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 232
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 300
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 233
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 234
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 235
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество узлов в сети
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 237
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: gitea-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 20
|
|
||||||
- id: 238
|
|
||||||
code: psqlUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 90
|
|
||||||
descr: UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически
|
|
||||||
man: UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически
|
|
||||||
sort: 10
|
|
||||||
- id: 818
|
|
||||||
code: ingressExtraAnnotations
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 821
|
|
||||||
code: iniServerParams
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 83
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 91
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 259
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
sort: 10
|
|
||||||
- id: 260
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 20
|
|
||||||
- id: 261
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 30
|
|
||||||
- id: 262
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество узлов в сети
|
|
||||||
sort: 40
|
|
||||||
- id: 819
|
|
||||||
code: ingressExtraAnnotations
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: 'Примеры:<br/> - `nginx.ingress.kubernetes.io/proxy-body-size: 500m` (Размер пакета)<br/> - `nginx.ingress.kubernetes.io/proxy-read-timeout: "600"` (Время ожидания при чтении)<br/> - `nginx.ingress.kubernetes.io/proxy-send-timeout: "600"` (Время ожидания отправке)'
|
|
||||||
- id: 820
|
|
||||||
code: iniServerParams
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: 'Примеры:<br/> - `MAX_CONTENT_LENGTH: 524288000(~500мб)` (Размер пакета в байтах)'
|
|
||||||
- name: resume
|
|
||||||
id: 127
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 126
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,263 +0,0 @@
|
|||||||
name: zones_v2
|
|
||||||
service_id: 109
|
|
||||||
service_display_name: Управление DNS
|
|
||||||
service_short_name: zonesV2
|
|
||||||
service_man: '# Управление DNS<br/><br/>## Что делает сервис<br/><br/>Управляет DNS-зоной вашего домена в инфраструктуре `ngcloud.ru`.<br/>Сервис помогает:<br/><br/>- создать DNS-зону;<br/>- поддерживать записи в зоне (добавлять, удалять, массово менять);<br/>- удалять зону;<br/>- синхронизировать данные зоны с фактическим состоянием на DNS-серверах.<br/><br/>Сервис работает с авторитетными DNS-серверами зоны:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>## Очень важно: что сделать у регистратора домена<br/><br/>Чтобы зона действительно начала обслуживаться, **нужно делегировать домен** у регистратора на авторитетные DNS-серверы:<br/><br/>- `ns3.ngcloud.ru`<br/>- `ns4.ngcloud.ru`<br/><br/>В панели регистратора нужно заменить NS-серверы домена на значения выше.<br/>Без этого записи в зоне могут быть созданы, но интернет не будет использовать их для вашего домена.<br/><br/>## Проверка после настройки<br/><br/>Проверить ответы от серверов зоны:<br/><br/>```bash<br/>dig <ваш_домен> @ns3.ngcloud.ru<br/>dig <ваш_домен> @ns4.ngcloud.ru<br/>```<br/><br/>Проверить, что делегирование у регистратора применилось:<br/><br/>```bash<br/>dig <ваш_домен> NS<br/>```<br/><br/>В ответе должны быть `ns3.ngcloud.ru` и `ns4.ngcloud.ru`.<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 254
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '# Операция `create` (создание DNS-зоны)<br/><br/>## Что делает операция<br/><br/>`create` создает новую DNS-зону на авторитетных серверах сервиса.<br/>После создания зона закрепляется за пользователем, который запустил создание инстанса.<br/><br/>## Когда использовать<br/><br/>- подключаете домен к сервису впервые;<br/>- нужна новая отдельная зона.<br/><br/>## Важное условие после создания<br/><br/>У регистратора домена нужно делегировать зону на:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>Если этого не сделать, зона будет создана технически, но в интернете домен не начнет работать через эти DNS.<br/><br/>## Объяснение параметра `Типа зоны`<br/><br/>### `NATIVE`<br/><br/>Это основная (ведущая) зона в нашем сервисе.<br/>Вы управляете записями здесь, и именно эта зона считается источником правды.<br/><br/>### `SLAVE`<br/><br/>Это копия зоны, которая подтягивает данные с внешнего DNS-сервера.<br/>Такой режим нужен, когда истинный источник записей находится не в нашем сервисе, а на другом DNS.<br/><br/>## Что проверяет операция<br/><br/>- что такая зона еще не существует на целевых DNS;<br/>- корректность входных параметров зоны;<br/>- ограничения на служебные/запрещенные имена зон.'
|
|
||||||
params:
|
|
||||||
- id: 761
|
|
||||||
code: zoneName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^([a-z0-9-]+\.)+[a-z0-9-]+$
|
|
||||||
maxlength: 64
|
|
||||||
minlength: 1
|
|
||||||
descr: Имя зоны
|
|
||||||
sort: 20
|
|
||||||
- id: 762
|
|
||||||
code: zoneKind
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: NATIVE
|
|
||||||
value_list:
|
|
||||||
- NATIVE
|
|
||||||
- SLAVE
|
|
||||||
descr: Тип зоны
|
|
||||||
sort: 30
|
|
||||||
- id: 763
|
|
||||||
code: zoneMastersForSlave
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов
|
|
||||||
man: Пример:<br/>**8.8.8.8 8.8.4.4**
|
|
||||||
sort: 40
|
|
||||||
- id: 764
|
|
||||||
code: zoneRefresh
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "86400"
|
|
||||||
minvalue: 600
|
|
||||||
descr: Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов
|
|
||||||
sort: 50
|
|
||||||
- id: 765
|
|
||||||
code: zoneRetry
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7200"
|
|
||||||
minvalue: 600
|
|
||||||
descr: Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов
|
|
||||||
sort: 60
|
|
||||||
- id: 766
|
|
||||||
code: zoneExpire
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600000"
|
|
||||||
minvalue: 3600
|
|
||||||
descr: Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным
|
|
||||||
sort: 70
|
|
||||||
- id: 767
|
|
||||||
code: zoneTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "86400"
|
|
||||||
minvalue: 600
|
|
||||||
descr: Время, в течение которого информация будет кешироваться другими DNS-серверами
|
|
||||||
sort: 80
|
|
||||||
- id: 768
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: powerdns
|
|
||||||
value_list:
|
|
||||||
- powerdns
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
sort: 10
|
|
||||||
- name: create_record
|
|
||||||
id: 260
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: record
|
|
||||||
man: '# Операция `create_record` (добавление одной записи)<br/><br/>## Что делает операция<br/><br/>`create_record` точечно добавляет одну DNS-запись в существующую зону.<br/>Если аналогичная запись уже есть, итоговый набор дополняется в рамках логики типа/имени.<br/><br/>## Когда использовать<br/><br/>- нужно добавить одну новую запись без массовой переработки зоны;<br/>- нужно быстро внести точечное изменение.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 777
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^([a-zA-Z0-9\-_]+\.)*[a-zA-Z0-9\-_]+$|^(\d{1,3}\.){3}\d{1,3}$|^.+$
|
|
||||||
unique_scope: parent
|
|
||||||
maxlength: 64
|
|
||||||
minlength: 1
|
|
||||||
man: Имя зоны в конце проставляется автоматически
|
|
||||||
sort: 10
|
|
||||||
- id: 778
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600"
|
|
||||||
maxvalue: 84000
|
|
||||||
minvalue: 30
|
|
||||||
man: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
sort: 20
|
|
||||||
- id: 779
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: A
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
sort: 30
|
|
||||||
- id: 780
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
man: Валидация производится только после запуска операции. Если при указанном типе будет указано некорректно значение, это будет описано в логе ошибки операции
|
|
||||||
sort: 40
|
|
||||||
- name: delete
|
|
||||||
id: 255
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: '# Операция `delete` (удаление зоны)<br/><br/>## Что делает операция<br/><br/>`delete` удаляет DNS-зону целиком вместе со всеми записями.<br/><br/>## Когда использовать<br/><br/>- зона больше не нужна;<br/>- домен выводится из эксплуатации в рамках сервиса.<br/><br/>## Важная логика<br/><br/>- удаляется вся зона, а не отдельные записи;<br/>- перед удалением стоит проверить, что домен действительно не используется.<br/>'
|
|
||||||
params: []
|
|
||||||
- name: delete_record
|
|
||||||
id: 261
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: record
|
|
||||||
man: '# Операция `delete_record` (удаление записей по имени)<br/><br/>## Что делает операция<br/><br/>`delete_record` удаляет все записи с указанным именем (`recordName`), независимо от типа (`A`, `TXT`, `CNAME` и т.д.).<br/><br/>## Когда использовать<br/><br/>- нужно полностью убрать конкретное имя из зоны;<br/>- требуется быстро очистить все варианты записи для одного имени.<br/><br/>## Важная логика<br/><br/>- удаляются все типы записей для выбранного имени;<br/>- если нужно удалить только один тип записи, лучше использовать `modify_record` с нужным целевым состоянием.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 781
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: modify
|
|
||||||
id: 256
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: '# Операция `modify` (массовое изменение записей зоны)<br/><br/>## Что делает операция<br/><br/>`modify` обновляет записи зоны целиком на основе переданного массива `records`.<br/>Это операция "приведения к целевому состоянию": система берет входной набор и применяет его на DNS-серверах.<br/><br/>## Когда использовать<br/><br/>- нужно массово обновить зону;<br/>- нужно заменить сразу несколько записей одним запуском;<br/>- нужно синхронно привести зону к заранее подготовленному списку записей.<br/><br/>## Важная логика<br/><br/>- запись группируется по `(имя, тип, TTL)`;<br/>- операция ориентирована на полное обновление набора, а не на "точечную мелкую правку".<br/><br/>Для точечных изменений одной записи обычно удобнее `create_record` или `modify_record`.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 769
|
|
||||||
code: records
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 86
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
regex: ^([a-zA-Z0-9\-_]+\.)*[a-zA-Z0-9\-_]+$|^(\d{1,3}\.){3}\d{1,3}$|^.+$
|
|
||||||
man: Имя зоны в конце проставляется автоматически
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 88
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600"
|
|
||||||
man: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 85
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: A
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 87
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Валидация производится только после запуска операции. Если при указанном типе будет указано некорректно значение, это будет описано в логе ошибки операции
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify_record
|
|
||||||
id: 262
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: record
|
|
||||||
man: '# Операция `modify_record` (изменение конкретной записи)<br/><br/>## Что делает операция<br/><br/>`modify_record` заменяет записи с указанным именем одной новой записью заданного типа и значения.<br/><br/>## Когда использовать<br/><br/>- нужно исправить одну конкретную запись;<br/>- нужно заменить старые значения записи на новое целевое значение.<br/><br/>## Важная логика<br/><br/>- существующие записи выбранного имени очищаются;<br/>- затем добавляется одна новая запись с переданными параметрами.<br/>'
|
|
||||||
params:
|
|
||||||
- id: 783
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- id: 784
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 84000
|
|
||||||
minvalue: 30
|
|
||||||
man: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
sort: 20
|
|
||||||
- id: 785
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
sort: 30
|
|
||||||
- id: 786
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
man: Валидация производится только после запуска операции. Если при указанном типе будет указано некорректно значение, это будет описано в логе ошибки операции
|
|
||||||
sort: 40
|
|
||||||
- name: reconcile
|
|
||||||
id: 259
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
man: '# Операция `reconcile` (актуализация состояния зоны)<br/><br/>## Что делает операция<br/><br/>`reconcile` подтягивает актуальное фактическое состояние DNS-зоны и синхронизирует его с данными инстанса.<br/>Операция техническая: она нужна для выравнивания состояния, а не для бизнес-изменений записей.<br/><br/>## Когда использовать<br/><br/>- записи менялись вручную на DNS-серверах;<br/>- нужно обновить схему/состояние инстанса в личном кабинете;<br/>- нужно импортировать текущие записи в управляемое состояние.<br/><br/>## Важная логика<br/><br/>- актуализируется список записей в данных инстанса;<br/>- стандартно ничего "нового" для клиента не добавляет и не удаляет само по себе, а приводит данные к реальности.<br/>'
|
|
||||||
params: []
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
name: dnsrecord
|
|
||||||
service_id: 111
|
|
||||||
service_display_name: DNS запись
|
|
||||||
service_short_name: dnsrecord
|
|
||||||
service_man: Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 45
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 75
|
|
||||||
code: zoneUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 109
|
|
||||||
descr: UUID экземпляра услуги DNS-зоны
|
|
||||||
man: UUID экземпляра услуги DNS-зоны
|
|
||||||
sort: 10
|
|
||||||
- id: 76
|
|
||||||
code: recordType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- A
|
|
||||||
- AAAA
|
|
||||||
- CNAME
|
|
||||||
- MX
|
|
||||||
- PTR
|
|
||||||
- SOA
|
|
||||||
- SRV
|
|
||||||
- TXT
|
|
||||||
- LUA
|
|
||||||
- NS
|
|
||||||
- SSHFP
|
|
||||||
descr: Тип DNS-записи
|
|
||||||
man: Тип DNS-записи
|
|
||||||
sort: 20
|
|
||||||
- id: 77
|
|
||||||
code: recordName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
unique_scope: parent
|
|
||||||
descr: Имя записи. Имя зоны в конце проставляется автоматически
|
|
||||||
man: Имя записи. Имя зоны в конце проставляется автоматически
|
|
||||||
sort: 30
|
|
||||||
- id: 78
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
|
||||||
man: Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 450
|
|
||||||
code: recordTTL
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3600"
|
|
||||||
maxvalue: 604800
|
|
||||||
minvalue: 30
|
|
||||||
descr: Time-to-Leave записи. Раз в какое время запись будет обновлена
|
|
||||||
sort: 50
|
|
||||||
- name: delete
|
|
||||||
id: 46
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 90
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 256
|
|
||||||
code: recordInput
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
|
||||||
- name: reconcile
|
|
||||||
id: 408
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
@@ -1,460 +0,0 @@
|
|||||||
name: mariadb
|
|
||||||
service_id: 115
|
|
||||||
service_display_name: Mariadb
|
|
||||||
service_short_name: mariadb
|
|
||||||
service_man: 'Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.<br/>Автоматическое резервное копирование, ручное восстановление.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 138
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 877
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 242
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 878
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 246
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 243
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 244
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 245
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
man: Пока `Galera` выключена<br/>Как будет запрос на включение и тестирование, реплики можно будет увеличивать
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 879
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 247
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 248
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 880
|
|
||||||
code: mariadbConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 249
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 9.4.0
|
|
||||||
value_list:
|
|
||||||
- 8.4.0
|
|
||||||
- 9.4.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 881
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 250
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 251
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "720"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 252
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 882
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 253
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 254
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 255
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 256
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_database
|
|
||||||
id: 242
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 734
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: db-aah92zcm
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
descr: 'Пример: `db01`'
|
|
||||||
- name: create_user
|
|
||||||
id: 243
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 735
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: usero6y8ruyp
|
|
||||||
regex: ^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 2
|
|
||||||
descr: 'Пример: `myusername`'
|
|
||||||
sort: 10
|
|
||||||
- id: 736
|
|
||||||
code: password
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: kgocowba
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 8
|
|
||||||
descr: Секрет будет записан в хранилище секретов и не будет отображаться публично
|
|
||||||
sort: 20
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 737
|
|
||||||
code: dbName
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
descr: Необходимо указать массив существующих баз
|
|
||||||
man: Если базы не существует - при выполнении операции вернётся ошибка
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 54
|
|
||||||
code: dbname
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 738
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '%'
|
|
||||||
descr: 'Пример: `%`'
|
|
||||||
sort: 40
|
|
||||||
- name: delete
|
|
||||||
id: 139
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params:
|
|
||||||
- id: 456
|
|
||||||
code: deleteS3Bucket
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Также удалить технический S3 Bucket с бэкапами?
|
|
||||||
sort: 10
|
|
||||||
- name: delete_database
|
|
||||||
id: 248
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 745
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ
|
|
||||||
- name: delete_user
|
|
||||||
id: 247
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 744
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Имя пользователя, созданное через операцию `create_user`
|
|
||||||
- name: modify
|
|
||||||
id: 142
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 883
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 257
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 258
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 259
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
man: Пока `Galera` выключена<br/>Как будет запрос на включение и тестирование, реплики можно будет увеличивать
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 260
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 884
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 261
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 262
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 885
|
|
||||||
code: mariadbConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 263
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- 8.4.0
|
|
||||||
- 9.4.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 886
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 265
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 266
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 264
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 887
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 267
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 268
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 269
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 270
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 287
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 141
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 140
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,337 +0,0 @@
|
|||||||
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/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 148
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1084
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 579
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1085
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 580
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 581
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 582
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 583
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1086
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 584
|
|
||||||
code: allocationExternal
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 585
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_topic
|
|
||||||
id: 165
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: topic
|
|
||||||
man: '# Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 523
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `orders-events`'
|
|
||||||
sort: 10
|
|
||||||
- id: 524
|
|
||||||
code: partitions
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
descr: Число партиций можно увеличить, но уменьшить их нельзя.
|
|
||||||
- id: 525
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
descr: Количество реплик не может привышать количество реплик брокера
|
|
||||||
sort: 20
|
|
||||||
- name: create_user
|
|
||||||
id: 168
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
man: '# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --from-beginning \<br/> --group <group> \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 530
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
- id: 531
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`'
|
|
||||||
- id: 532
|
|
||||||
code: operations
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- Create
|
|
||||||
- Describe
|
|
||||||
- Read
|
|
||||||
- Write
|
|
||||||
descr: 'Пример: `Create, Describe, Read, Write`'
|
|
||||||
- id: 533
|
|
||||||
code: group
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `order-consumers` или `*`'
|
|
||||||
- id: 534
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `192.168.1.0/24` или `*`'
|
|
||||||
- name: delete
|
|
||||||
id: 149
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_topic
|
|
||||||
id: 167
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: topic
|
|
||||||
params:
|
|
||||||
- id: 529
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Необходимо выбрать топик, который необходимо удалить
|
|
||||||
- name: delete_user
|
|
||||||
id: 170
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
man: '# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --from-beginning \<br/> --group <group> \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 540
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
- name: modify
|
|
||||||
id: 162
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1087
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 586
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 587
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 588
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 589
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1088
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 590
|
|
||||||
code: allocationExternal
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 591
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify_topic
|
|
||||||
id: 166
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: topic
|
|
||||||
man: '# Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 526
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `orders-events`'
|
|
||||||
sort: 10
|
|
||||||
- id: 527
|
|
||||||
code: partitions
|
|
||||||
required: false
|
|
||||||
descr: Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`
|
|
||||||
sort: 30
|
|
||||||
- id: 528
|
|
||||||
code: replicas
|
|
||||||
required: false
|
|
||||||
descr: Количество партиций ≤ (число брокеров). Пример `2`
|
|
||||||
sort: 20
|
|
||||||
- name: modify_user
|
|
||||||
id: 169
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: user
|
|
||||||
man: '# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo ''<содержание поля>'' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<''EOF''<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \<br/> --command-config /work/user-read.properties \<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \<br/> --bootstrap-server <адрес сервис брокера>:9093 \<br/> --topic <topic> \<br/> --from-beginning \<br/> --group <group> \<br/> --consumer.config /work/user-read.properties \<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -L \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-write.crt \<br/> -X ssl.key.location=./user-write.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \<br/> -b <externalConnect.bootstrap.fqdn>:9093 \<br/> -t write-test \<br/> -o beginning \<br/> -q \<br/> -X security.protocol=SSL \<br/> -X ssl.ca.location=./ca.crt \<br/> -X ssl.certificate.location=./user-read.crt \<br/> -X ssl.key.location=./user-read.key \<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---'
|
|
||||||
params:
|
|
||||||
- id: 535
|
|
||||||
code: nameTopic
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`'
|
|
||||||
- id: 536
|
|
||||||
code: operations
|
|
||||||
data_type: array
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- Create
|
|
||||||
- Describe
|
|
||||||
- Read
|
|
||||||
- Write
|
|
||||||
descr: 'Пример: `Create, Describe, Read, Write`'
|
|
||||||
- id: 537
|
|
||||||
code: group
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `order-consumers` или `*`'
|
|
||||||
- id: 538
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: '*'
|
|
||||||
descr: 'Пример: `192.168.1.0/24` или `*`'
|
|
||||||
- id: 539
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
sort: 10
|
|
||||||
- name: resume
|
|
||||||
id: 161
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 160
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
name: akhq
|
|
||||||
service_id: 119
|
|
||||||
service_display_name: Akhq
|
|
||||||
service_short_name: Akhq
|
|
||||||
service_man: '# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать топики, consumer group''ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** — Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота (megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 175
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 550
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Выбрать платформу из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 551
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
minvalue: 512
|
|
||||||
descr: 'Пример: `1024`'
|
|
||||||
sort: 20
|
|
||||||
- id: 552
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
minvalue: 500
|
|
||||||
descr: 'Пример: `1000`'
|
|
||||||
sort: 30
|
|
||||||
- id: 553
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 40
|
|
||||||
- id: 554
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
minvalue: 1
|
|
||||||
sort: 11
|
|
||||||
- id: 555
|
|
||||||
code: kafkaUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 116
|
|
||||||
descr: Выбрать кластер из списка
|
|
||||||
sort: 5
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 176
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 180
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 565
|
|
||||||
code: kafkaUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 116
|
|
||||||
descr: Выбрать кластер из списка
|
|
||||||
- name: resume
|
|
||||||
id: 178
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 177
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,572 +0,0 @@
|
|||||||
name: clickhouse
|
|
||||||
service_id: 120
|
|
||||||
service_display_name: ClickHouse
|
|
||||||
service_short_name: clickhouse
|
|
||||||
service_man: '# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER ''clickhousek8s''`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster ''clickhousek8s''<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> ''/clickhouse/tables/{shard}/localUsers'',<br/> ''{replica}''<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster ''clickhousek8s''<br/>AS database.localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', rand());<br/><br/>INSERT INTO database.users VALUES (1, ''Alice'', ''alice@example.com'');<br/>INSERT INTO database.users VALUES (2, ''Bob'', ''bob@example.com'');<br/>INSERT INTO database.users VALUES (3, ''Charlie'', ''charlie@example.com'');<br/>INSERT INTO database.users VALUES (4, ''David'', ''david@example.com'');<br/>INSERT INTO database.users VALUES (5, ''Gosha'', ''gosha@example.com'');<br/>INSERT INTO database.users VALUES (6, ''Eve'', ''eve@example.com'');<br/>INSERT INTO database.users VALUES (7, ''Frank'', ''frank@example.com'');<br/>INSERT INTO database.users VALUES (8, ''Grace'', ''grace@example.com'');<br/>INSERT INTO database.users VALUES (9, ''Hannah'', ''hannah@example.com'');<br/>INSERT INTO database.users VALUES (10, ''Ivan'', ''ivan@example.com'');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 181
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: Операция создания кластера ClickHouse<br/><br/>Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`
|
|
||||||
params:
|
|
||||||
- id: 837
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 194
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 838
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 195
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 196
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 197
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 199
|
|
||||||
code: shards
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
man: '**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 198
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 839
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 200
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 201
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 840
|
|
||||||
code: clickhouseKeeperConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 202
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 203
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 204
|
|
||||||
code: replicas
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
man: Если указан 0, то инстансы ClickHouse Keeper развёрнуты не будут
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 841
|
|
||||||
code: clickhouseConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 205
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "25.10"
|
|
||||||
value_list:
|
|
||||||
- "25.10"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 842
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 206
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 207
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 208
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 843
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 211
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 212
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 209
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 210
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 851
|
|
||||||
code: clickhouseFilesConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
man: 'Формат:<br/> - path: somethings3.xml<br/> xmlConfig: ''<clickhouse>......</clickhouse>'''
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 234
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: something.xml
|
|
||||||
regex: ^[a-zA-Z0-9]+\.xml$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 235
|
|
||||||
code: xmlConfig
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '<clickhouse></clickhouse>'
|
|
||||||
man: Предварительно xml необходимо отформатировать через<br/>```<br/>$ tr -d '\n \t' < input.xml > output.xml<br/>```<br/><br/>Позже будет исправлено
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- name: create_database
|
|
||||||
id: 186
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: database
|
|
||||||
man: База данных создаётся на всех репликах кластера ClickHouse
|
|
||||||
params:
|
|
||||||
- id: 600
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: db01
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
descr: 'Пример: `db01`'
|
|
||||||
sort: 10
|
|
||||||
- name: create_user
|
|
||||||
id: 185
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 596
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: myusername
|
|
||||||
regex: ^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 2
|
|
||||||
descr: 'Пример: `myusername`'
|
|
||||||
sort: 10
|
|
||||||
- id: 598
|
|
||||||
code: dbName
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 233
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 599
|
|
||||||
code: accessHosts
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ::/0
|
|
||||||
descr: 'Пример: `::/0`'
|
|
||||||
sort: 40
|
|
||||||
- name: delete
|
|
||||||
id: 184
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: Удаление возможно только после остановки сервиса через операцию `suspend`<br/>После выполнения операции необходимо выждать определенное кол-во времени
|
|
||||||
params: []
|
|
||||||
- name: delete_database
|
|
||||||
id: 188
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: database
|
|
||||||
man: Необратимое действие!!!<br/>Трижды подумай, заблокируй телефон тимлида и не выполняй это действие
|
|
||||||
params:
|
|
||||||
- id: 602
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ
|
|
||||||
- name: delete_user
|
|
||||||
id: 187
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 601
|
|
||||||
code: username
|
|
||||||
required: true
|
|
||||||
descr: Имя пользователя, созданное через операцию `create_user`
|
|
||||||
- name: modify
|
|
||||||
id: 189
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 844
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 213
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 214
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 215
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 216
|
|
||||||
code: shards
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
man: '**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 217
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 845
|
|
||||||
code: clickhouseKeeperConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 218
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 219
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 220
|
|
||||||
code: replicas
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
man: Если указан 0, то инстансы ClickHouse Keeper развёрнуты не будут
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 846
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 221
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 222
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 847
|
|
||||||
code: clickhouseConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 223
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "25.10"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 848
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
sub_params:
|
|
||||||
- id: 224
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 225
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 226
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 849
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
sub_params:
|
|
||||||
- id: 230
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 227
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: false,true
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 228
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 229
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 850
|
|
||||||
code: clickhouseFilesConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
man: 'Формат:<br/> - path: somethings3.xml<br/> xmlConfig: ''<clickhouse>......</clickhouse>'''
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 231
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: something.xml
|
|
||||||
regex: ^[a-zA-Z0-9]+\.xml$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 232
|
|
||||||
code: xmlConfig
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '<clickhouse></clickhouse>'
|
|
||||||
man: Предварительно xml необходимо отформатировать через<br/>```<br/>$ tr -d '\n \t' < input.xml > output.xml<br/>```<br/><br/>Позже будет исправлено
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- name: reconcile
|
|
||||||
id: 276
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 183
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 182
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Операция приводит к удалению всех подов<br/>Persistent Volume остаются нетронутыми
|
|
||||||
params: []
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
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
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 1
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 163
|
|
||||||
code: resourceRealm
|
|
||||||
required: true
|
|
||||||
default: ceph.tst.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- ceph.tst.nubes.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: кластер S3 для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 320
|
|
||||||
code: displayName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[a-zA-Z0-9_]{1,61}[a-zA-Z0-9]$
|
|
||||||
descr: Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента
|
|
||||||
sort: 10
|
|
||||||
- name: create_sub_user
|
|
||||||
id: 6
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: sub_user
|
|
||||||
params:
|
|
||||||
- id: 60
|
|
||||||
code: subUserName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 61
|
|
||||||
code: subUserAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- read
|
|
||||||
- write
|
|
||||||
- readwrite
|
|
||||||
- full
|
|
||||||
- name: delete
|
|
||||||
id: 5
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_sub_user
|
|
||||||
id: 7
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: sub_user
|
|
||||||
params:
|
|
||||||
- id: 63
|
|
||||||
code: subUserName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: subUserName. По идее услуга уже создана - должен передаваться из ЛК
|
|
||||||
- name: modify
|
|
||||||
id: 4
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: При первичном вызове операции услуга Trial прекращает действие
|
|
||||||
params:
|
|
||||||
- id: 50
|
|
||||||
code: maxSizeGbPerUser
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 50000
|
|
||||||
minvalue: 1
|
|
||||||
descr: maxSizeGb. Передаём руками
|
|
||||||
man: maxSizeGb. Передаём руками
|
|
||||||
- id: 51
|
|
||||||
code: maxObjectsPerBucket
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 1e+07
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота на бакет. Кол-во объектов. Передаём руками
|
|
||||||
man: Квота на бакет. Кол-во объектов. Передаём руками
|
|
||||||
- id: 52
|
|
||||||
code: maxBucketsPerUser
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 1000
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота на пользователя. Количество бакетов пользователя. Передаём руками
|
|
||||||
man: Квота на пользователя. Количество бакетов пользователя. Передаём руками
|
|
||||||
- name: reconcile
|
|
||||||
id: 407
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 3
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 2
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
name: s3bucket
|
|
||||||
service_id: 13
|
|
||||||
service_display_name: S3 бакет
|
|
||||||
service_short_name: s3bucket
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 51
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 124
|
|
||||||
code: s3UserUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 12
|
|
||||||
descr: UID Корневой услуги S3. На основе него будет создан бакет.
|
|
||||||
- id: 125
|
|
||||||
code: bucketName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Имя бакета s3
|
|
||||||
- id: 126
|
|
||||||
code: maxSize
|
|
||||||
required: true
|
|
||||||
default: "-1"
|
|
||||||
descr: Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes
|
|
||||||
man: Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes
|
|
||||||
- id: 127
|
|
||||||
code: readAll
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета.
|
|
||||||
- id: 128
|
|
||||||
code: listAll
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете.
|
|
||||||
- id: 129
|
|
||||||
code: corsAll
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS
|
|
||||||
- id: 130
|
|
||||||
code: placement
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: HOT
|
|
||||||
value_list:
|
|
||||||
- HOT
|
|
||||||
- COLD
|
|
||||||
descr: Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения
|
|
||||||
- name: delete
|
|
||||||
id: 52
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
name: vc_mgmt_sthutrval_cluster
|
|
||||||
service_id: 148
|
|
||||||
service_display_name: Менеджмент Kubernetes кластер Штурвал
|
|
||||||
service_short_name: vcMgmtSthutrvalCluster
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 258
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 771
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 91
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: sandbox.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- sandbox.nubes.ru
|
|
||||||
descr: Облако в котором будет развёрнут тенант
|
|
||||||
man: Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 89
|
|
||||||
code: clusterName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: example-ywasgmh6
|
|
||||||
regex: (?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 772
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 90
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 2.13.1
|
|
||||||
value_list:
|
|
||||||
- 2.13.1
|
|
||||||
- 2.12.1
|
|
||||||
- 2.11.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 773
|
|
||||||
code: controlPlaneConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 92
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy представлены исходя из ресурсной платформы, которая была выбрана
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 93
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 94
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 774
|
|
||||||
code: workerConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 97
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 98
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 95
|
|
||||||
code: groupName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: workers-gj7zkkhv
|
|
||||||
regex: (?=^.{3,40}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
man: Имена групп воркеров в рамках кластера должно быть уникальным
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 96
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy представлены исходя из ресурсной платформы, которая была выбрана
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 775
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 101
|
|
||||||
code: needExternalAddressIngress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к Ingress
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 102
|
|
||||||
code: accessIpListIngress
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: 'Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем<br/>Пример: **["0.0.0.0/0"]** или **[]** или **["178.4.13.2", "178.4.14.0/24"]**'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 99
|
|
||||||
code: needExternalAddressAPI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 100
|
|
||||||
code: accessIpListAPI
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: 'Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем<br/>Пример: **["0.0.0.0/0"]** или **[]** или **["178.4.13.2", "178.4.14.0/24"]**'
|
|
||||||
is_modifiable: false
|
|
||||||
@@ -1,249 +0,0 @@
|
|||||||
name: valo_tenant
|
|
||||||
service_id: 149
|
|
||||||
service_display_name: VALO Cloud
|
|
||||||
service_short_name: valoTenant
|
|
||||||
service_man: '# Инструкция по развертыванию Тенант Valo через платформу<br/><br/>## 1. Общая информация<br/>Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.<br/><br/>### Доступные операции<br/><br/>* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.<br/>* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.<br/>* **suspend** — выключение (приостановка работы) тенанта.<br/>* **resume** — включение ранее приостановленного тенанта.<br/>* **delete** — удаление тенанта; доступно только после выполнения операции suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа, на которой будет создан тенант.<br/>Пример значения: `valo.ngcloud.ru`.<br/><br/>### DNS-Префикс<br/>Описание: Будет добавлено в зону valo.ngcloud.ru<br/>Пример значения: `mysimpledomain`.<br/><br/>### Параметры хранилища<br/>Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes<br/>Пример значения: `10`.<br/><br/>### Настройки тенанта<br/>Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала<br/>Пример значения: `опционально в рамках настройки`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы<br/><br/>### Промышленное окружение<br/>Для разблокировки используйте операцию `modify`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Статус тенанта<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.<br/>Удаление тенанта возможно только после его выключения с помощью операции suspend.<br/>Срок тестового режима составляет 2 месяца с момента создания.<br/>Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 202
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 655
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: valo.ngcloud.ru
|
|
||||||
value_list:
|
|
||||||
- valo.ngcloud.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
sort: 10
|
|
||||||
- id: 656
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$
|
|
||||||
maxlength: 61
|
|
||||||
minlength: 3
|
|
||||||
descr: Будет добавлено в зону valo.ngcloud.ru
|
|
||||||
sort: 20
|
|
||||||
- id: 657
|
|
||||||
code: valoOptions
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
default: '{}'
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 26
|
|
||||||
code: ffLogging
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 28
|
|
||||||
code: userCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 20
|
|
||||||
code: requestApproveMaxPeriod
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2"
|
|
||||||
descr: Максимальное значение периода согласования (в днях)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 21
|
|
||||||
code: ffOnlineEditor
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 22
|
|
||||||
code: ffWatermark
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 23
|
|
||||||
code: ffUserImport
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 24
|
|
||||||
code: ffThemes
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 25
|
|
||||||
code: ffPublicLink
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 658
|
|
||||||
code: s3Storage
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Параметр указывается в `Gb`
|
|
||||||
man: Данные хранятся в отдельном экземпляре S3
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 206
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 203
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 659
|
|
||||||
code: valoOptions
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 30
|
|
||||||
code: requestApproveMaxPeriod
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Максимальное значение периода согласования (в днях)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 31
|
|
||||||
code: ffOnlineEditor
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 32
|
|
||||||
code: ffWatermark
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 33
|
|
||||||
code: ffUserImport
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 34
|
|
||||||
code: ffThemes
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 35
|
|
||||||
code: ffPublicLink
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 36
|
|
||||||
code: ffLogging
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Тарифная опция
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 29
|
|
||||||
code: userCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 660
|
|
||||||
code: s3Storage
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
descr: Параметр указывается в `Gb`
|
|
||||||
man: Данные хранятся в отдельном экземпляре S3
|
|
||||||
sort: 20
|
|
||||||
- name: resume
|
|
||||||
id: 205
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 204
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,371 +0,0 @@
|
|||||||
name: k8s_sthutrval_cluster
|
|
||||||
service_id: 150
|
|
||||||
service_display_name: Kubernetes кластер Штурвал
|
|
||||||
service_short_name: k8sSthutrvalCluster
|
|
||||||
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 108
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 750
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 58
|
|
||||||
code: nsxtUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 59
|
|
||||||
code: clusterName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: example-kcrwfrbd
|
|
||||||
regex: (?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 57
|
|
||||||
code: vdcUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 751
|
|
||||||
code: controlPlaneConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 62
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 63
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 61
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 752
|
|
||||||
code: workerConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 64
|
|
||||||
code: groupName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: workers-rbrr6za5
|
|
||||||
regex: (?=^.{3,40}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
man: Имена групп воркеров в рамках кластера должно быть уникальным
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 65
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 66
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "50"
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 67
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 753
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 68
|
|
||||||
code: needExternalAddressAPI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 69
|
|
||||||
code: accessIpListAPI
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 70
|
|
||||||
code: needExternalAddressIngress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к Ingress
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 71
|
|
||||||
code: accessIpListIngress
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 755
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 72
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 2.13.1
|
|
||||||
value_list:
|
|
||||||
- 2.13.1
|
|
||||||
- 2.12.1
|
|
||||||
- 2.11.0
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_user
|
|
||||||
id: 281
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 869
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 236
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Пользователи будут добавлены, только если они зарегистрированы в личном кабинете
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 109
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_user
|
|
||||||
id: 282
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 870
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 237
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify
|
|
||||||
id: 110
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: При изменении кол-ва узлов, удаления группы, если в этой группе есть поды на которых есть PV с named-дисками, удаляться ноды сами НЕ БУДУТ. <br/>Убедитесь, что они будут смигрированы на другие ноды в процессе прежде чем группа узлов/узлы будут удалены
|
|
||||||
params:
|
|
||||||
- id: 756
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 73
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- 2.13.1
|
|
||||||
- 2.12.1
|
|
||||||
- 2.11.0
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 757
|
|
||||||
code: controlPlaneConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 74
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 75
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 76
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 758
|
|
||||||
code: workerConfiguration
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 77
|
|
||||||
code: groupName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: workers-kk0fpv6w
|
|
||||||
regex: (?=^.{3,40}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
man: Имена групп воркеров в рамках кластера должно быть уникальным
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 78
|
|
||||||
code: sizingPolicy
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '{}'
|
|
||||||
man: Доступные sizing Policy можно обновлять через услугу `Виртуальный датацентр`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 79
|
|
||||||
code: sizingDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Дисковая политика берётся из услуги VDC, первый в списке
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 80
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 759
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 81
|
|
||||||
code: needExternalAddressAPI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 82
|
|
||||||
code: accessIpListAPI
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 83
|
|
||||||
code: needExternalAddressIngress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Выделяет внешний IP для доступа к Ingress
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 84
|
|
||||||
code: accessIpListIngress
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 253
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 174
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 173
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,391 +0,0 @@
|
|||||||
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:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 210
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 663
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Кластер Kubernetes в котором будет развёрнуто приложение
|
|
||||||
man: Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы
|
|
||||||
sort: 0
|
|
||||||
- id: 664
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 8000
|
|
||||||
minvalue: 250
|
|
||||||
descr: 'Пример: `500`'
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 665
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "3"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `3`'
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 666
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: 'Пример: `2048`'
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 667
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `10`'
|
|
||||||
man: Указывается в Gigabytes
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 668
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 2.5.2
|
|
||||||
value_list:
|
|
||||||
- 2.5.2
|
|
||||||
descr: Выбрать из списка
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 669
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: bao-ovkw1qbi
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- name: create_kv
|
|
||||||
id: 212
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: kv
|
|
||||||
params:
|
|
||||||
- id: 675
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: kvname-bbycmhbz
|
|
||||||
regex: ^[a-zA-Z0-9-]{1,24}$
|
|
||||||
man: Будет создан `v2 тип движка`<br/><br/>Уникальное в рамках услуги
|
|
||||||
sort: 10
|
|
||||||
- name: create_policy
|
|
||||||
id: 237
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: policy
|
|
||||||
params:
|
|
||||||
- id: 728
|
|
||||||
code: policySettings
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 50
|
|
||||||
code: capabilities
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '["read", "list"]'
|
|
||||||
man: 'Пример: `["create", "read", "update", "delete", "list", "sudo"]`<br/>Только чтение: `["list", "read"]`<br/>Изменение: `["read", "list", "create", "update", "delete"]`'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 49
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Пример 1: `mykv/*`<br/>Пример 2: `mykv/path/*`<br/>Пример 3: `mykv/path/to/secret`<br/>'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 729
|
|
||||||
code: policyName
|
|
||||||
required: true
|
|
||||||
default: policy-xqjoiy6t
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
man: Сделано для дальнейшего удобного использования
|
|
||||||
sort: 10
|
|
||||||
- name: create_secrets
|
|
||||||
id: 214
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 677
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
man: Если список пустой, создайте kv через операцию `create_kv`
|
|
||||||
sort: 10
|
|
||||||
- id: 678
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: path/to/mysecret
|
|
||||||
regex: ^[a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*$
|
|
||||||
descr: 'Пример: `path` или `road/to/path`'
|
|
||||||
sort: 20
|
|
||||||
- id: 679
|
|
||||||
code: secretData
|
|
||||||
data_type: map
|
|
||||||
required: true
|
|
||||||
descr: Хотя бы один секрет необходимо добавить
|
|
||||||
man: Данные не сохраняются в ЛК, в дальнейшем при обновлении секретов это необходимо учитывать
|
|
||||||
sort: 30
|
|
||||||
- name: delete
|
|
||||||
id: 231
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_kv
|
|
||||||
id: 213
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: kv
|
|
||||||
man: '**ОСТОРОЖНО**<br/>Удаление KV подразумевает удаление ВСЕХ secrets внутри этой KV'
|
|
||||||
params:
|
|
||||||
- id: 676
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- name: delete_policy
|
|
||||||
id: 239
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: policy
|
|
||||||
params:
|
|
||||||
- id: 732
|
|
||||||
code: policyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: delete_secrets
|
|
||||||
id: 233
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 726
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 727
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 20
|
|
||||||
depends_on: kvName
|
|
||||||
- name: modify
|
|
||||||
id: 211
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 670
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `3`'
|
|
||||||
sort: 10
|
|
||||||
- id: 671
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 8000
|
|
||||||
minvalue: 250
|
|
||||||
descr: 'Пример: `500`'
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
sort: 20
|
|
||||||
- id: 672
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: 'Пример: `2048`'
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
sort: 30
|
|
||||||
- id: 673
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: 'Пример: `10`'
|
|
||||||
man: Указывается в Gigabytes
|
|
||||||
sort: 40
|
|
||||||
- id: 674
|
|
||||||
code: appVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- 2.5.2
|
|
||||||
descr: Выбрать из списка
|
|
||||||
sort: 50
|
|
||||||
- name: reconcile
|
|
||||||
id: 236
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: recovery_secrets
|
|
||||||
id: 232
|
|
||||||
kind: subresource
|
|
||||||
action: recovery
|
|
||||||
subresource: secrets
|
|
||||||
man: Данная операция подразумевает откат на конкретную версию в секрете.<br/><br/>**Это не восстановление удалённого секрета**
|
|
||||||
params:
|
|
||||||
- id: 723
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 724
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 20
|
|
||||||
depends_on: kvName
|
|
||||||
- id: 725
|
|
||||||
code: secretVersion
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
depends_on: kvName,secretPath
|
|
||||||
- name: restart
|
|
||||||
id: 234
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 216
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 215
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
- name: update_policy
|
|
||||||
id: 238
|
|
||||||
kind: subresource
|
|
||||||
action: update
|
|
||||||
subresource: policy
|
|
||||||
params:
|
|
||||||
- id: 730
|
|
||||||
code: policyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- id: 731
|
|
||||||
code: policySettings
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
descr: Производится полная перезапись политики!
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 52
|
|
||||||
code: capabilities
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 51
|
|
||||||
code: path
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: update_secrets
|
|
||||||
id: 230
|
|
||||||
kind: subresource
|
|
||||||
action: update
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 719
|
|
||||||
code: kvName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
sort: 10
|
|
||||||
- id: 720
|
|
||||||
code: secretPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Выберите из списка
|
|
||||||
man: Предварительно необходимо выбрать параметр `Имя Key/Value хранилища`
|
|
||||||
sort: 20
|
|
||||||
depends_on: kvName
|
|
||||||
- id: 721
|
|
||||||
code: needFullUpdateSecret
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Если выбрать `true`, будет создана новая версия секрета `с нуля`<br/>Если выбрать `false`, будет создана новая версия секрета с данными прошлой ревизии, а переданные данные в операции либо будут модифицированы, либо будут добавлены
|
|
||||||
sort: 30
|
|
||||||
- id: 722
|
|
||||||
code: secretData
|
|
||||||
data_type: map
|
|
||||||
required: true
|
|
||||||
descr: Хотя бы один секрет необходимо добавить
|
|
||||||
sort: 40
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
name: llm_ai
|
|
||||||
service_id: 163
|
|
||||||
service_display_name: LLM
|
|
||||||
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/>## 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/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 271
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 826
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: llmAi.aillm.ru
|
|
||||||
value_list:
|
|
||||||
- llmAi.aillm.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
- name: create_secrets
|
|
||||||
id: 274
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 833
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 834
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
minvalue: 1
|
|
||||||
- id: 835
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
minvalue: 1
|
|
||||||
- id: 857
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- id: 859
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 15
|
|
||||||
- name: create_team
|
|
||||||
id: 278
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: team
|
|
||||||
params:
|
|
||||||
- id: 858
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 860
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
- id: 861
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
- id: 862
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
- name: delete
|
|
||||||
id: 273
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_secrets
|
|
||||||
id: 275
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: secrets
|
|
||||||
params:
|
|
||||||
- id: 836
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 876
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
- name: delete_team
|
|
||||||
id: 280
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: team
|
|
||||||
params:
|
|
||||||
- id: 868
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: modify_team
|
|
||||||
id: 279
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: team
|
|
||||||
params:
|
|
||||||
- id: 864
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 865
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 873
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
minvalue: 1
|
|
||||||
- id: 874
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
minvalue: 1
|
|
||||||
- name: update_secrets
|
|
||||||
id: 277
|
|
||||||
kind: subresource
|
|
||||||
action: update
|
|
||||||
subresource: secrets
|
|
||||||
man: Данная операция предназначена для управления лимитами и моделями
|
|
||||||
params:
|
|
||||||
- id: 852
|
|
||||||
code: keyName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 853
|
|
||||||
code: models
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
depends_on: teamName
|
|
||||||
- id: 854
|
|
||||||
code: rpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "60"
|
|
||||||
- id: 855
|
|
||||||
code: tpmLimit
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100000"
|
|
||||||
- id: 875
|
|
||||||
code: teamName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 5
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
name: vc_org
|
|
||||||
service_id: 19
|
|
||||||
service_display_name: Организация в Cloud Director
|
|
||||||
service_short_name: vcOrg
|
|
||||||
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/>### Url организации<br/>Для быстрого доступа в тенант<br/><br/>### Статус организации<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.<br/>- Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 136
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу<br/>`SaaS` - Без доступа к Keycloak'
|
|
||||||
params:
|
|
||||||
- id: 418
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: sandbox.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- sandbox.nubes.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Облако в котором будет развёрнут тенант
|
|
||||||
man: Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы
|
|
||||||
sort: 10
|
|
||||||
- id: 556
|
|
||||||
code: organizationType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: iaas
|
|
||||||
value_list:
|
|
||||||
- iaas
|
|
||||||
- saas
|
|
||||||
man: Доступ к организации предоставляется только при выборе `iaas`
|
|
||||||
sort: 20
|
|
||||||
- name: create_user
|
|
||||||
id: 283
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 871
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 238
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Пользователи будут добавлены, только если они зарегистрированы в личном кабинете
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 137
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: 'Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**<br/><br/>Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов'
|
|
||||||
params: []
|
|
||||||
- name: delete_user
|
|
||||||
id: 284
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 872
|
|
||||||
code: admins
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 239
|
|
||||||
code: email
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify
|
|
||||||
id: 207
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**<br/>Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**
|
|
||||||
params:
|
|
||||||
- id: 662
|
|
||||||
code: vIPConfigure
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 39
|
|
||||||
code: name
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 40
|
|
||||||
code: count
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: 'Пример: `1`'
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 249
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 144
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 143
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта
|
|
||||||
params: []
|
|
||||||
@@ -1,339 +0,0 @@
|
|||||||
name: dummy
|
|
||||||
service_id: 1
|
|
||||||
service_display_name: Болванка
|
|
||||||
service_short_name: dummy
|
|
||||||
service_man: '## Болванка для тестов.<br/><br/>А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера. <br/><br/><br/>``` json<br/>{<br/> "iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",<br/> "idpResponse": {<br/> "prefix": {<br/> "charset": "",<br/> "status_text": "Request Time-out",<br/> "text": true,<br/> "errordetail": "",<br/> "filecontent": "Connection Timeout",<br/> "responseheader": {},<br/> "header": "",<br/> "statuscode": "408 Request Time-out",<br/> "status_code": 408,<br/> "mimetype": "Unable to determine MIME type of file."<br/> }<br/> }<br/>}<br/>```'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 18
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: Это мануал к операции CREATE сервиса Болванка
|
|
||||||
params:
|
|
||||||
- id: 198
|
|
||||||
code: durationMs
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
descr: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
man: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 199
|
|
||||||
code: failAtStart
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, завершить джоб, ничего не записывая в cmdb
|
|
||||||
man: '**Операция не будет завершена**<br/>Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой'
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 200
|
|
||||||
code: failInProgress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb
|
|
||||||
man: если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 201
|
|
||||||
code: whereFail
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
descr: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
man: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 242
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: dummy
|
|
||||||
value_list:
|
|
||||||
- dummy
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование ресурсной платформы для подключения
|
|
||||||
sort: 10
|
|
||||||
- id: 286
|
|
||||||
code: bodymessage
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Дата, уходящая в Vault
|
|
||||||
man: Дата, уходящая в Vault
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 321
|
|
||||||
code: mapExample
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 1
|
|
||||||
code: subparam1
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
descr: это для администратора
|
|
||||||
man: это для пользователя
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 3
|
|
||||||
code: secret
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
descr: это секрет
|
|
||||||
man: значение параметра маскируется. Write Only
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 2
|
|
||||||
code: subparam2
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 322
|
|
||||||
code: jsonExample
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: Для тестирования интерфейса
|
|
||||||
man: Для тестирования интерфейса. Сюда можно писать корректный json
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 396
|
|
||||||
code: nestedRefExample
|
|
||||||
required: false
|
|
||||||
- id: 647
|
|
||||||
code: mapFixed
|
|
||||||
data_type: map-fixed
|
|
||||||
required: false
|
|
||||||
descr: Новый тип поля
|
|
||||||
sub_params:
|
|
||||||
- id: 13
|
|
||||||
code: bol1
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Булевский, обязательный
|
|
||||||
man: Булевский, обязательный. Проверить, как воспринимается снятый флаг
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 14
|
|
||||||
code: minStr1
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: abracadabra
|
|
||||||
value_list:
|
|
||||||
- abracadabra
|
|
||||||
descr: не меньше 10 символов
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 10
|
|
||||||
code: param1
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
descr: Integer, secret
|
|
||||||
man: integer > 0, sensitive data (secret)
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 11
|
|
||||||
code: param2
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- '["1"'
|
|
||||||
- '"2"'
|
|
||||||
- '"3"]'
|
|
||||||
descr: Дескрипшен
|
|
||||||
man: Выбор из списка 1,2,3
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 12
|
|
||||||
code: param3
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
descr: целое положительное
|
|
||||||
man: int > 0, обязательный
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 654
|
|
||||||
code: arrayMapFixedExample
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
descr: Array of map-fixed
|
|
||||||
sub_params:
|
|
||||||
- id: 18
|
|
||||||
code: bol1
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 19
|
|
||||||
code: minStr1
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- abracadabra
|
|
||||||
descr: не меньше 10 символов
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 15
|
|
||||||
code: param1
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 16
|
|
||||||
code: param2
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- '["1"'
|
|
||||||
- '"2"'
|
|
||||||
- '"3"]'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 17
|
|
||||||
code: param3
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 863
|
|
||||||
code: arr
|
|
||||||
data_type: array
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- test
|
|
||||||
- "2"
|
|
||||||
- val1
|
|
||||||
- name: delete
|
|
||||||
id: 71
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 92
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 287
|
|
||||||
code: durationMs
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
descr: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
man: перед завершением подождать (sleep) столько миллисекунд
|
|
||||||
sort: 10
|
|
||||||
- id: 288
|
|
||||||
code: failAtStart
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, завершить джоб, ничего не записывая в cmdb
|
|
||||||
sort: 20
|
|
||||||
- id: 289
|
|
||||||
code: failInProgress
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb
|
|
||||||
sort: 30
|
|
||||||
- id: 290
|
|
||||||
code: whereFail
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
descr: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
man: принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write
|
|
||||||
sort: 40
|
|
||||||
- id: 291
|
|
||||||
code: bodymessage
|
|
||||||
required: false
|
|
||||||
descr: Дата, уходящая в Vault
|
|
||||||
man: Дата, уходящая в Vault
|
|
||||||
sort: 50
|
|
||||||
- id: 373
|
|
||||||
code: mapExample
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
sub_params:
|
|
||||||
- id: 4
|
|
||||||
code: secret
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
is_sensitive: true
|
|
||||||
- id: 374
|
|
||||||
code: jsonExample
|
|
||||||
required: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 257
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 240
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 94
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 93
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
name: vc_vdc
|
|
||||||
service_id: 21
|
|
||||||
service_display_name: Виртуальный датацентр (vDC)
|
|
||||||
service_short_name: vc_vdc
|
|
||||||
service_man: '# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.<br/><br/>### Доступные операции<br/><br/>**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.<br/>**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.<br/>**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.<br/>**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже перечислены входные параметры операции **create**.<br/><br/>### UUID Организации<br/>Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.<br/><br/>### Provider VDC в Cloud Director<br/>Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.<br/><br/>### Network Pool в Cloud Director<br/>Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.<br/><br/>### Гарантированная доля ЯДЕР<br/>Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.<br/><br/>### Гарантированная доля ОЗУ<br/>Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.<br/><br/>### Сколько аллоцировать на VDC ЯДЕР<br/>Количество виртуальных ядер, выделяемых в рамках vDC.<br/><br/>### Сколько аллоцировать на VDC ОЗУ<br/>Количество оперативной памяти в GB, выделяемой для vDC.<br/><br/>### Конфигурация Storage<br/>Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/><br/>- Количество ядер CPU: 10–20<br/>- Аллоцируемая RAM: 16–64 GB<br/>- Гарантированная доля CPU: 20%<br/>- Гарантированная доля RAM: 20%<br/>- Storage:<br/>- Политика `SATA`<br/>- Объём: 100–300 GB<br/><br/>### Промышленное окружение<br/><br/>- Количество ядер CPU: 16–128<br/>- Аллоцируемая RAM: 64–512 GB<br/>- Гарантированная доля CPU: 50%<br/>- Гарантированная доля RAM: 50%<br/>- Storage:<br/>- Политики уровня `SSD`<br/>- Объём: 1–10 TB, выбор несколько политик под разные нагрузки<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Выходные параметры формируются операцией **create** (и используются другими операциями):<br/><br/>### Имя vDC<br/>Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).<br/><br/>### Параметры выделенных ресурсов<br/>Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.<br/>- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.<br/>- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.<br/>- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.<br/>- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 9
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 30
|
|
||||||
code: organizationUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 19
|
|
||||||
man: Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director`
|
|
||||||
sort: 10
|
|
||||||
- id: 335
|
|
||||||
code: providerVdc
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
man: Приписка `2.8` - Скорость vCPU - 2800MHz<br/>И так далее...<br/>
|
|
||||||
sort: 30
|
|
||||||
depends_on: organizationUid,networkProvider
|
|
||||||
- id: 361
|
|
||||||
code: storageConfig
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
man: Первая политика в списке указывается как "По умолчанию"
|
|
||||||
sort: 100
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 41
|
|
||||||
code: name
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: getKeyListFromStruct(getResourceRealmConfig(getStringFromStruct(getInstanceState(params.organizationUid), "params.resourceRealm")), concat("vcd.hardware.providerVdcs['",params.providerVdc,"'].storage"))
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 42
|
|
||||||
code: size
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 397
|
|
||||||
code: cpuGuaranteed
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "20"
|
|
||||||
value_list:
|
|
||||||
- "20"
|
|
||||||
- "50"
|
|
||||||
- "80"
|
|
||||||
descr: '% резервирования'
|
|
||||||
man: Свойство нельзя изменить после создания
|
|
||||||
sort: 60
|
|
||||||
- id: 557
|
|
||||||
code: cpuAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "80"
|
|
||||||
maxvalue: 1000
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 558
|
|
||||||
code: memAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
maxvalue: 4096
|
|
||||||
minvalue: 1
|
|
||||||
descr: gb
|
|
||||||
sort: 90
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 746
|
|
||||||
code: networkProvider
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
depends_on: organizationUid
|
|
||||||
- name: delete
|
|
||||||
id: 24
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: 'Удалить возможно только через 14 дней после выполнения операции `suspend`<br/>**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**<br/><br/>Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов'
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 112
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 560
|
|
||||||
code: cpuAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 10
|
|
||||||
- id: 561
|
|
||||||
code: memAllocated
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 1024
|
|
||||||
minvalue: 1
|
|
||||||
descr: gb
|
|
||||||
sort: 20
|
|
||||||
- id: 562
|
|
||||||
code: storageConfig
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: true
|
|
||||||
man: Первая политика в списке указывается как "По умолчанию"
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 43
|
|
||||||
code: name
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 44
|
|
||||||
code: size
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 250
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 172
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 171
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC
|
|
||||||
params: []
|
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
name: vc_nsxt
|
|
||||||
service_id: 22
|
|
||||||
service_display_name: Сетевой шлюз периметра (Edge)
|
|
||||||
service_short_name: vc_nsxt
|
|
||||||
service_man: '# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC). <br/>При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`. <br/>Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.<br/><br/>### Доступные операции<br/><br/>**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети. <br/>**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал). <br/>**modify** — Изменение параметров и сетевых настроек существующего Edge.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже приведены параметры операции **create**.<br/><br/>### Тип родительской услуги<br/>Определяет контекст размещения Edge. <br/>Допустимые значения: `vdc`, `groupvdc`. <br/>Использование:<br/>- При выборе `vdc` обязателен параметр **UUID VDC**.<br/>- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра. <br/>Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)». <br/>Указывается только при выборе родительского типа `vdc`.<br/><br/>### UUID Группы VDC<br/>Идентификатор группы виртуальных датацентров. <br/>Создаётся через услугу «Группа виртуальных датацентров (groupvDC)». <br/>Используется при выборе родительского типа `groupvdc`.<br/><br/>### Включить ALB<br/>Флаг активации AVI Load Balancer в Cloud Director. <br/>Пример значения: `true`/`false`. <br/>Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.<br/><br/>### Наименование segroup<br/>Имя сервиса групп (segroup) на уровне ресурсной платформы. <br/>Обязательно при включённом ALB. <br/>Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.<br/><br/>### virtualServicesCount<br/>Количество резервируемых виртуальных сервисов (Virtual Services) на AVI. <br/>Типичное значение: 1–10 в зависимости от нагрузки.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение (Test)<br/><br/>- Тип родительской услуги: `vdc` <br/>- virtualServicesCount: 1–2 <br/>- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала) <br/>- segroup: задаётся только при включённом ALB <br/>- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)<br/><br/>### Промышленное окружение (Production)<br/><br/>- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов <br/>- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций <br/>- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал <br/>- segroup: рекомендуется использовать выделенную группу под проект <br/>- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Имя Edge<br/>Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.<br/><br/>### Имя routed-сети<br/>Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.<br/><br/>### Параметры Edge<br/>Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др. <br/>Используются в операциях modify и для анализа состояния сервиса.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC. <br/>- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал). <br/>- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI. <br/>- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC. <br/>- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).<br/><br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 10
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 8
|
|
||||||
code: vdcUid
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
ref_svc_id: 21
|
|
||||||
descr: UUID Услуги `Виртуальный датацентр (vDC)`
|
|
||||||
man: 'Необходимо, если выбран тип подключаемой VDC: `vdc`'
|
|
||||||
sort: 10
|
|
||||||
- id: 340
|
|
||||||
code: needEnableAVI
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Включение Load Balancer
|
|
||||||
man: Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 341
|
|
||||||
code: virtualServicesCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 4
|
|
||||||
minvalue: 1
|
|
||||||
descr: Кол-во виртуальных сервисов, которые **резервируются** на AVI
|
|
||||||
man: Во избежании коллапса пока выделяется до 4<br/>Необходимо указывать, если включён параметр `Включить ALB`
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 621
|
|
||||||
code: vdcType
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: vdc
|
|
||||||
value_list:
|
|
||||||
- vdc
|
|
||||||
- vdcGroup
|
|
||||||
descr: Тип родительской услуги
|
|
||||||
man: При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc<br/>При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc
|
|
||||||
sort: 0
|
|
||||||
- id: 622
|
|
||||||
code: vdcGroupUid
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
ref_svc_id: 29
|
|
||||||
descr: UUID Услуги `Группа виртуальных датацентров (groupvDC)`
|
|
||||||
man: 'Необходимо, если выбран тип подключаемой VDC: `groupvdc`'
|
|
||||||
sort: 20
|
|
||||||
- id: 825
|
|
||||||
code: qosProfile
|
|
||||||
required: false
|
|
||||||
descr: Параметр пока не работает<br/>Должен возвращать поле из ресурсной платформы типа vc из .vcd.hardware.gatewayQoSProfiles<br/><br/>Как по идее должен работать.<br/>Нужно заполнить или CFS vdcUid, или vdcGroupUid<br/>Идеально конечно проверять `if (params.vdcType == "vdc" && params.vdcUid != "")` или `if (params.vdcType == "vdcGroup" && params.vdcGroupUid != "")`<br/><br/>Далее надо пойти по стейту vdc -> org -> resPlatform, взять gatewayQoSProfiles<br/>Или пойти по стейту vdcgroup -> vdc -> org -> resPlatform, взять gatewayQoSProfiles<br/><br/>Регулярку могу написать (Виталя)
|
|
||||||
man: if (vdcUid != '") {<br/> наборфункций1<br/>} <br/><br/>elif (vdcGroupUid != "") {<br/> наборфункций2<br/>}<br/><br/>else {<br/> return "Необходимо выбрать vdc или vdcgroup"<br/>}
|
|
||||||
sort: 60
|
|
||||||
depends_on: vdcUid,vdcGroupUid
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 25
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: Невозможно удалить если routed-сеть в Edge связана с:<br/>- vApp<br/>- VM<br/>- Kubernetes-кластер Штурвал<br/><br/>Запустить операцию возможно, но будет ошибка
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 111
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
man: Для создания SNAT Правила убедитесь, что в организации есть свободные IP<br/>Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`
|
|
||||||
params:
|
|
||||||
- id: 368
|
|
||||||
code: needEnableAVI
|
|
||||||
data_type: boolean
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Включение Load Balancer
|
|
||||||
man: Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать
|
|
||||||
sort: 10
|
|
||||||
- id: 369
|
|
||||||
code: virtualServicesCount
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 4
|
|
||||||
minvalue: 1
|
|
||||||
descr: Кол-во виртуальных сервисов, которые выделяются на AVI
|
|
||||||
man: Во избежании коллапса пока выделяется до 4<br/>Необходимо указывать, если включён параметр `Включить ALB`
|
|
||||||
sort: 30
|
|
||||||
- id: 372
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Имя ip Space для внешнего IP
|
|
||||||
man: Необходимо указывать, если включён параметр `Выделить VIP для SNAT`
|
|
||||||
sort: 50
|
|
||||||
- id: 856
|
|
||||||
code: qosProfile
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
sort: 40
|
|
||||||
- name: reconcile
|
|
||||||
id: 252
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
name: vcexternalip
|
|
||||||
service_id: 25
|
|
||||||
service_display_name: Публичные IP адреса
|
|
||||||
service_short_name: vcexternalip
|
|
||||||
service_man: '**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**<br/>Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать<br/><br/>Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.<br/>Вы можете назначить IP адрес для существующего экземпляра сервиса.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 56
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 140
|
|
||||||
code: serviceUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 141
|
|
||||||
code: dnatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
descr: Необходимо создать DNAT-правило.
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 142
|
|
||||||
code: internalPortAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "5432"
|
|
||||||
descr: Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true<br/>
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 143
|
|
||||||
code: snatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: false
|
|
||||||
descr: Необходимо создать SNAT-правило.<br/>
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 144
|
|
||||||
code: internalAddrAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 324
|
|
||||||
code: fromServiceNamespace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Namespace составной услуги (для отображения правил FW)
|
|
||||||
sort: 80
|
|
||||||
- id: 325
|
|
||||||
code: fromServiceCloudEdgeName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Edge составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 90
|
|
||||||
- id: 326
|
|
||||||
code: fromServiceCloudVdcName
|
|
||||||
required: false
|
|
||||||
descr: Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 100
|
|
||||||
- id: 327
|
|
||||||
code: fromServiceCloudOrgName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Org составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 110
|
|
||||||
- id: 328
|
|
||||||
code: fromServiceCloudVmwareUrl
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
descr: Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector)
|
|
||||||
sort: 120
|
|
||||||
- id: 336
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1)
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 488
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: sandbox.nubes.ru
|
|
||||||
value_list:
|
|
||||||
- sandbox.nubes.ru
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
sort: 200
|
|
||||||
- id: 624
|
|
||||||
code: fromServiceCloudEdgeScope
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
sort: 130
|
|
||||||
- id: 626
|
|
||||||
code: fromServiceVdcGroupName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
sort: 140
|
|
||||||
- name: delete
|
|
||||||
id: 57
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 197
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 627
|
|
||||||
code: serviceUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
- id: 628
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
- id: 629
|
|
||||||
code: dnatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
- id: 630
|
|
||||||
code: snatCreate
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
- id: 631
|
|
||||||
code: internalPortAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
- id: 632
|
|
||||||
code: internalAddrAccess
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
name: vapp
|
|
||||||
service_id: 26
|
|
||||||
service_display_name: Виртуальный каталог ВМ (vApp)
|
|
||||||
service_short_name: vapp
|
|
||||||
service_man: '# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:<br/>- централизованное управление включением, выключением и приостановкой группы ВМ;<br/>- унифицированный сетевой доступ через привязанный Edge-шлюз;<br/><br/>### Доступные операции<br/><br/>**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge<br/>**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)<br/>**resume** — Запуск vApp (включение всех ВМ внутри каталога)<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры берутся из операции **create**.<br/><br/>### UUID Услуги VDC<br/>Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».<br/>Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.<br/><br/>### UUID Услуги Edge<br/>Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».<br/>Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.<br/><br/>### Имя vApp<br/>Строгое имя, соответствующее маске формирования DNS-имени.<br/>Используется как часть в DNS-имени при создании виртуальных машин.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/>Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Параметры vApp<br/>Заданные при создании vApp<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.<br/>- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.<br/>- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.<br/>- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.<br/>- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 69
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 190
|
|
||||||
code: nsxtUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 22
|
|
||||||
descr: UUID Услуги `Сетевой шлюз периметра (Edge)`
|
|
||||||
man: К какой сети может быть подключен виртуальный каталог
|
|
||||||
sort: 20
|
|
||||||
- id: 191
|
|
||||||
code: vappName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: hf1t7p5c
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$
|
|
||||||
minlength: 3
|
|
||||||
descr: Уникальное в рамках организации
|
|
||||||
man: Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`<br/><br/>Используется в формировании DNS-Имени (для виртуальных машин)
|
|
||||||
sort: 30
|
|
||||||
- id: 623
|
|
||||||
code: vdcUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 21
|
|
||||||
descr: UUID Услуги `Виртуальный датацентр (vDC)`
|
|
||||||
man: В каких ресурсах будет создан виртуальный каталог
|
|
||||||
sort: 10
|
|
||||||
- name: delete
|
|
||||||
id: 70
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: reconcile
|
|
||||||
id: 285
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 209
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 208
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
name: vc_vm_v2
|
|
||||||
service_id: 27
|
|
||||||
service_display_name: VM в Cloud Director (vc_vmV2)
|
|
||||||
service_short_name: vc_vm_v2
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 100
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 301
|
|
||||||
code: serverListJson
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
maxlength: 65536
|
|
||||||
minlength: 10
|
|
||||||
descr: Необходимо изменить vappUid и ipSpaceName<br/>Пример конфигурации взять по ссылке ниже<br/><br/>Объект серверов вида [{}] (Map(Object))<br/>Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 101
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 104
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 302
|
|
||||||
code: serverListJson
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[{}]'
|
|
||||||
maxlength: 65536
|
|
||||||
minlength: 10
|
|
||||||
descr: Объект серверов вида [{}] (Map(Object))<br/>Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)
|
|
||||||
sort: 10
|
|
||||||
- name: resume
|
|
||||||
id: 102
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 103
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,278 +0,0 @@
|
|||||||
name: vc_vm_v3
|
|
||||||
service_id: 28
|
|
||||||
service_display_name: Виртуальная машина
|
|
||||||
service_short_name: vc_vm_v3
|
|
||||||
service_man: '# Документация по разворачиванию ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>## Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию: myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\ложь, определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример: 50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix). <br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> - name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> - nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>### Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>## Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>- Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>- Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 132
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '# Документация по использованию услуги развёртывания ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>## Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию: myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\лож определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример: 50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed".<br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> - name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> - nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>### Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>## Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>- Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>- Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
|
|
||||||
params:
|
|
||||||
- id: 407
|
|
||||||
code: vappUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 26
|
|
||||||
sort: 10
|
|
||||||
- id: 408
|
|
||||||
code: vmName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: web01
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
sort: 20
|
|
||||||
- id: 409
|
|
||||||
code: vmCpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 64
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 410
|
|
||||||
code: vmRam
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 256
|
|
||||||
minvalue: 1
|
|
||||||
descr: Gb
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 411
|
|
||||||
code: vmDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$
|
|
||||||
descr: Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 412
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
depends_on: vappUid
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 413
|
|
||||||
code: accessIpList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|\[\s*(?:"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?"(?:\s*,\s*"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?")*)\s*\])$
|
|
||||||
descr: Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено ["0.0.0.0/0"]
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 414
|
|
||||||
code: imageVm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 90
|
|
||||||
depends_on: vappUid
|
|
||||||
- id: 415
|
|
||||||
code: cloudInit
|
|
||||||
data_type: yaml
|
|
||||||
required: false
|
|
||||||
descr: Можно передать создание дополнительных пользователей. <br/>На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.
|
|
||||||
sort: 200
|
|
||||||
- id: 416
|
|
||||||
code: userLogin
|
|
||||||
required: true
|
|
||||||
default: myuser
|
|
||||||
descr: Учётка SSH
|
|
||||||
sort: 180
|
|
||||||
- id: 417
|
|
||||||
code: userPublicKey
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Публичная часть SSH-Ключа для пользователя
|
|
||||||
sort: 190
|
|
||||||
- id: 448
|
|
||||||
code: accessPortList
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: '["22"]'
|
|
||||||
descr: 'По каким портам открыть доступ к ВМ.<br/>Порты 22, 10050 проставляются автоматически<br/>Пока доступно: <br/>22 - SSH, <br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX'
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 133
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 159
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 493
|
|
||||||
code: vmCpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 64
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 20
|
|
||||||
- id: 494
|
|
||||||
code: vmRam
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 256
|
|
||||||
minvalue: 1
|
|
||||||
descr: Gb
|
|
||||||
sort: 30
|
|
||||||
- id: 495
|
|
||||||
code: vmDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$
|
|
||||||
descr: Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму
|
|
||||||
sort: 40
|
|
||||||
- id: 496
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- no-needed
|
|
||||||
- internet-antiddos-v1
|
|
||||||
- internet-no-antiddos-v1
|
|
||||||
- internet-ipv4-v1
|
|
||||||
descr: no-needed, без внешнего ip<br/>internet-antiddos-v1, с функцией защиты от ddos атак<br/>internet-no-antiddos-v1, с функцией защиты от ddos атак<br/>internet-ipv4-v1 тестовое простанство dev
|
|
||||||
sort: 50
|
|
||||||
- id: 497
|
|
||||||
code: accessIpList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено ["0.0.0.0/0"]
|
|
||||||
sort: 60
|
|
||||||
- id: 498
|
|
||||||
code: accessPortList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: Формат массива<br/>По каким портам открыть доступ к ВМ.<br/>Пока доступно:<br/>22 - SSH,<br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX
|
|
||||||
sort: 70
|
|
||||||
- name: reconcile
|
|
||||||
id: 286
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 164
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 509
|
|
||||||
code: vmName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
|
|
||||||
sort: 10
|
|
||||||
- id: 510
|
|
||||||
code: vmCpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 64
|
|
||||||
minvalue: 1
|
|
||||||
descr: шт
|
|
||||||
sort: 20
|
|
||||||
- id: 511
|
|
||||||
code: vmRam
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 256
|
|
||||||
minvalue: 1
|
|
||||||
descr: Gb
|
|
||||||
sort: 30
|
|
||||||
- id: 512
|
|
||||||
code: vmDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|(?:0|[1-9]\d{0,2}|1\d{3}|20(?:[0-3]\d|4[0-8])))$
|
|
||||||
descr: Основной диск у vm зависит от образа (см. документацию)<br/>Если необходимо дополнительное место для vm, введите колличество Gb в эту форму
|
|
||||||
sort: 40
|
|
||||||
- id: 513
|
|
||||||
code: ipSpaceName
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
value_list:
|
|
||||||
- no-needed
|
|
||||||
- internet-antiddos-v1
|
|
||||||
- internet-no-antiddos-v1
|
|
||||||
- internet-ipv4-v1
|
|
||||||
descr: no-needed, без внешнего ip<br/>internet-antiddos-v1, с функцией защиты от ddos атак<br/>internet-no-antiddos-v1, с функцией защиты от ddos атак<br/>internet-ipv4-v1 тестовое простанство dev
|
|
||||||
sort: 50
|
|
||||||
- id: 514
|
|
||||||
code: accessIpList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
regex: ^(?:$|\[\s*(?:"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?"(?:\s*,\s*"(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?")*)\s*\])$
|
|
||||||
descr: Формат массива<br/>Каким адресам будет предоставлен доступ до вм<br/><br/>Требует выделенного внешнего IP<br/>Если ничего не передано, то выставлено ["0.0.0.0/0"]
|
|
||||||
sort: 60
|
|
||||||
- id: 515
|
|
||||||
code: imageVm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- RockyLinux_9-16G-cloudinit
|
|
||||||
- Ubuntu_22-20G
|
|
||||||
- Debian_13-20G
|
|
||||||
sort: 80
|
|
||||||
- id: 516
|
|
||||||
code: userLogin
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Учётка SSH
|
|
||||||
sort: 180
|
|
||||||
- id: 517
|
|
||||||
code: userPublicKey
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Публичная часть SSH-Ключа для пользователя
|
|
||||||
sort: 190
|
|
||||||
- id: 518
|
|
||||||
code: cloudInit
|
|
||||||
data_type: yaml
|
|
||||||
required: false
|
|
||||||
descr: Можно передать создание дополнительных пользователей.<br/>На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.
|
|
||||||
sort: 200
|
|
||||||
- id: 520
|
|
||||||
code: accessPortList
|
|
||||||
data_type: json
|
|
||||||
required: false
|
|
||||||
descr: По каким портам открыть доступ к ВМ.<br/>Порты 22, 10050 проставляются автоматически<br/>Пока доступно:<br/>22 - SSH,<br/>80 - HTTP,<br/>443 - HTTPS,<br/>10050 - ZABBIX
|
|
||||||
sort: 70
|
|
||||||
- name: resume
|
|
||||||
id: 135
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 134
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
name: vc_vdc_group
|
|
||||||
service_id: 29
|
|
||||||
service_display_name: Группа датацентров
|
|
||||||
service_short_name: vcVdcGroup
|
|
||||||
service_man: '# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.<br/>Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.<br/><br/>### Доступные операции<br/><br/>**create** — Создание новой группы виртуальных датацентров.<br/>**delete** — Удаление существующей группы vDC.<br/>**add_vdc** — Добавление дополнительного виртуального датацентра в группу.<br/>**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры операции **create**:<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра, который будет являться первичным в группе.<br/>Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director<br/><br/>### Промышленное окружение<br/>- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Параметры groupvdc<br/>Набор параметров, указанных пользователем при создании<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.<br/>- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.<br/>- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.<br/>- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: add_vdc
|
|
||||||
id: 192
|
|
||||||
kind: subresource
|
|
||||||
action: add
|
|
||||||
subresource: vdc
|
|
||||||
man: '**Не нужно** выбирать UUID VDC, который уже был добавлен в группу'
|
|
||||||
params:
|
|
||||||
- id: 619
|
|
||||||
code: vdcUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 21
|
|
||||||
sort: 10
|
|
||||||
- name: create
|
|
||||||
id: 191
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: '**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.<br/>Это позволит, к примеру, создать **общую сеть** для всех VDC в организации<br/><br/>- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)<br/>- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую'
|
|
||||||
params:
|
|
||||||
- id: 618
|
|
||||||
code: vdcUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 21
|
|
||||||
sort: 10
|
|
||||||
- name: delete
|
|
||||||
id: 195
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: reconcile
|
|
||||||
id: 251
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: remove_vdc
|
|
||||||
id: 193
|
|
||||||
kind: subresource
|
|
||||||
action: remove
|
|
||||||
subresource: vdc
|
|
||||||
params:
|
|
||||||
- id: 620
|
|
||||||
code: vdcName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
name: template
|
|
||||||
service_id: 2
|
|
||||||
service_display_name: Темплейт k8s
|
|
||||||
service_short_name: template
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 74
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 813
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 172
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 175
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 173
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "128"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 174
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 814
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 176
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 815
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 182
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 177
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ingress
|
|
||||||
value_list:
|
|
||||||
- ingress
|
|
||||||
- service
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 178
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: abracadabra-aoy3qnll
|
|
||||||
regex: (?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 179
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 180
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 181
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 75
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 76
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 816
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 183
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 185
|
|
||||||
code: disk
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 184
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 186
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 817
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 187
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- ingress
|
|
||||||
- service
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 188
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 189
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 191
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 190
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 192
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 298
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 98
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 97
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,489 +0,0 @@
|
|||||||
name: nextcloud
|
|
||||||
service_id: 50
|
|
||||||
service_display_name: Nextcloud
|
|
||||||
service_short_name: nextcloud
|
|
||||||
service_man: 'Ресурсная платформа: k8s. Автоматизация: helm chart'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 16
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: Для установки необходимо:<br/>- ресурсная платформа, где разворачивается Nextcloud, обязана совпадать с ресурсными платформами, где развёрнут Redis и PostgreSQL
|
|
||||||
params:
|
|
||||||
- id: 1055
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 496
|
|
||||||
code: redisUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить Redis из Личного кабинета`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 492
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 493
|
|
||||||
code: psqlEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 494
|
|
||||||
code: redisEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 495
|
|
||||||
code: psqlUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить PostgreSQL из Личного кабинета`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1056
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 499
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 500
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes<br/>На данном диске хранятся данные Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 497
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
value_list:
|
|
||||||
- "1000"
|
|
||||||
- "2000"
|
|
||||||
- "3000"
|
|
||||||
- "4000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 498
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
value_list:
|
|
||||||
- "1024"
|
|
||||||
- "2048"
|
|
||||||
- "3072"
|
|
||||||
- "4096"
|
|
||||||
- "5120"
|
|
||||||
- "6144"
|
|
||||||
- "7168"
|
|
||||||
- "8192"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1057
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 501
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: nextcloud-vjp2crbf
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1058
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 502
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 33.0.4
|
|
||||||
value_list:
|
|
||||||
- 33.0.4
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 503
|
|
||||||
code: documentServer
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: collabora
|
|
||||||
value_list:
|
|
||||||
- collabora
|
|
||||||
man: Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 549
|
|
||||||
code: logLevel
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: INFO
|
|
||||||
value_list:
|
|
||||||
- DEBUG
|
|
||||||
- INFO
|
|
||||||
- WARN
|
|
||||||
- ERROR
|
|
||||||
- FATAL
|
|
||||||
- NONE
|
|
||||||
man: Включает отображение логов самого nextcloud<br/>Логи уходят в /dev/stdout контейнера<br/>`NONE` отключает логирование
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_backup
|
|
||||||
id: 404
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: backup
|
|
||||||
man: Перед запуском обязательно надо перевести экземпляр Nextcloud в статус 'suspended'
|
|
||||||
params:
|
|
||||||
- id: 1077
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 578
|
|
||||||
code: veleroUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Предварительно необходимо создать инстанс услуги `Velero`<br/>Из этого инстанса будут взяты точки восстановления<br/>Если восстановление производится на другую ресурсную платформу, важно чтобы предварительно все компоненты связующие были либо перенесены, либо были доступны снаружи
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 17
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: DEV-Ветка удаления Nextcloud
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 67
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1059
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 504
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1000"
|
|
||||||
- "2000"
|
|
||||||
- "3000"
|
|
||||||
- "4000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 505
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1024"
|
|
||||||
- "2048"
|
|
||||||
- "3072"
|
|
||||||
- "4096"
|
|
||||||
- "5120"
|
|
||||||
- "6144"
|
|
||||||
- "7168"
|
|
||||||
- "8192"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 506
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 507
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes<br/>На данном диске хранятся данные Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1060
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 550
|
|
||||||
code: logLevel
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- DEBUG
|
|
||||||
- INFO
|
|
||||||
- WARN
|
|
||||||
- ERROR
|
|
||||||
- FATAL
|
|
||||||
- NONE
|
|
||||||
man: Включает отображение логов самого nextcloud<br/>Логи уходят в /dev/stdout контейнера<br/>`NONE` отключает логирование
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 508
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- 33.0.4
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 509
|
|
||||||
code: documentServer
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- collabora
|
|
||||||
man: Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 390
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: recovery
|
|
||||||
id: 406
|
|
||||||
kind: action
|
|
||||||
action: recovery
|
|
||||||
params:
|
|
||||||
- id: 1078
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 556
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 570
|
|
||||||
code: veleroUid
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из этого инстанса будут взяты точки восстановления<br/>Если восстановление производится на другую ресурсную платформу, важно чтобы предварительно все компоненты связующие были либо перенесены, либо были доступны снаружи
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 559
|
|
||||||
code: recoveryPoint
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 557
|
|
||||||
code: psqlEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 558
|
|
||||||
code: redisEnabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "true"
|
|
||||||
man: Инстанс обязан быть развёрнут на той же ресурсной платформе, где и будет располагаться Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 560
|
|
||||||
code: psqlUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить PostgreSQL из Личного кабинета`<br/>Если откат производится на ту же версию Nextcloud, в теории возможно развернуться в существующую базу<br/><br/>Предпочтительно создать отдельный инстанс PostgreSQL, который был восстановлен также через Recovery
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 561
|
|
||||||
code: redisUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо выбирать, когда выбран параметр `Подключить Redis из Личного кабинета`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1079
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 562
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1000"
|
|
||||||
- "2000"
|
|
||||||
- "3000"
|
|
||||||
- "4000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 563
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1024"
|
|
||||||
- "2048"
|
|
||||||
- "3072"
|
|
||||||
- "4096"
|
|
||||||
- "5120"
|
|
||||||
- "6144"
|
|
||||||
- "7168"
|
|
||||||
- "8192"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 564
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: 1,2
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 565
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes<br/>На данном диске хранятся данные Nextcloud
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1080
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 566
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: nextcloud-dcxz2gqv
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1081
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
man: Версия Nextcloud будет взята из бэкапа
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 568
|
|
||||||
code: logLevel
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: NONE
|
|
||||||
value_list:
|
|
||||||
- DEBUG
|
|
||||||
- INFO
|
|
||||||
- WARN
|
|
||||||
- ERROR
|
|
||||||
- FATAL
|
|
||||||
- NONE
|
|
||||||
man: Включает отображение логов самого nextcloud<br/>Логи уходят в /dev/stdout контейнера<br/>`NONE` отключает логирование
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 569
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Версия Nextcloud будет исправлена на ту версию, которая указана в бэкапе
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 567
|
|
||||||
code: documentServer
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: collabora
|
|
||||||
value_list:
|
|
||||||
- collabora
|
|
||||||
man: Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен<br/>Размер пода collabora:<br/>1.8 ядра. 2Gi ОЗУ
|
|
||||||
is_modifiable: false
|
|
||||||
- name: restart
|
|
||||||
id: 66
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 129
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 128
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
name: superset
|
|
||||||
service_id: 81
|
|
||||||
service_display_name: Apache Superset
|
|
||||||
service_short_name: superset
|
|
||||||
service_man: 'Apache Superset как сервис. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator.<br/>Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 12
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: DEV-Ветка сборки Superset
|
|
||||||
params:
|
|
||||||
- id: 14
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: superset-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- id: 20
|
|
||||||
code: emails
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: testuser1
|
|
||||||
descr: Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел
|
|
||||||
man: Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел
|
|
||||||
sort: 70
|
|
||||||
- id: 96
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро
|
|
||||||
sort: 30
|
|
||||||
- id: 97
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 40
|
|
||||||
- id: 98
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 50
|
|
||||||
- id: 109
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 227
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
sort: 60
|
|
||||||
- name: delete
|
|
||||||
id: 13
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: DEV-Ветка удаления Superset
|
|
||||||
params: []
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
name: harbor
|
|
||||||
service_id: 82
|
|
||||||
service_display_name: Container Registry
|
|
||||||
service_short_name: harbor
|
|
||||||
service_man: 'Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.<br/>Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.<br/>Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация: keycloak'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: false
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 14
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: DEV-Ветка сборки Harbor
|
|
||||||
params:
|
|
||||||
- id: 16
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: harbor-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 20
|
|
||||||
- id: 110
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 30
|
|
||||||
- id: 228
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 229
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 230
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество узлов в сети
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 231
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 12
|
|
||||||
descr: UUID экземпляра услуги S3
|
|
||||||
man: UUID экземпляра услуги S3
|
|
||||||
sort: 10
|
|
||||||
- name: delete
|
|
||||||
id: 15
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
man: DEV-Ветка удаления Harbor
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 270
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 822
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
- id: 823
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
- id: 824
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
@@ -1,199 +0,0 @@
|
|||||||
name: k8s_velero
|
|
||||||
service_id: 86
|
|
||||||
service_display_name: Velero
|
|
||||||
service_short_name: k8sVelero
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 332
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 962
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 334
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 336
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 337
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 963
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 338
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 964
|
|
||||||
code: nodeAgentConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
man: Реплик выставляется автоматически столько, сколько Worker-узлов в кластере
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 551
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2000"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 552
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "2048"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1076
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 555
|
|
||||||
code: s3BucketUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3-Бакета обязателен<br/>Учётная запись будет создана автоматически, если её нету
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 331
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params:
|
|
||||||
- id: 1082
|
|
||||||
code: deleteS3Bucket
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
sort: 10
|
|
||||||
- name: modify
|
|
||||||
id: 334
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 965
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 345
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 347
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 348
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 966
|
|
||||||
code: nodeAgentConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 553
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 554
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 336
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 335
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 333
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,244 +0,0 @@
|
|||||||
name: flask
|
|
||||||
service_id: 89
|
|
||||||
service_display_name: Web-сервер с фреймворком Flask
|
|
||||||
service_short_name: flask
|
|
||||||
service_man: '# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания веб-приложений на базе Flask.<br/><br/>### Доступные операции<br/><br/>create — включить сервис, развернуть веб-приложение с указанными параметрами.<br/>delete — удалить сервис, только после suspend.<br/>modify — изменить настройки сервиса и переразвернуть.<br/>suspend — выключить веб-приложение, остановить обслуживание.<br/>resume — включить веб-приложение после suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Имя домена<br/>Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.<br/>Пример значения: строка, допустимые FQDN или имя в одном октете. Пример: example.com или myapp.<br/><br/>### Платформа для развертывания<br/>Описание: кластер Kubernetes, в котором будет развернуто приложение.<br/>Пример значения: идентификатор кластера Kubernetes.<br/><br/>### Квота ядра пода<br/>Описание: количество CPU, выделяемое на под, в Milicores.<br/>Пример значения: целое число, например 500 для 0.5 ядра.<br/><br/>### Квота памяти пода<br/>Описание: количество памяти, выделяемое на под, в Megabytes.<br/>Пример значения: целое число, например 512 для 512 MB.<br/><br/>### Кол-во реплик пода<br/>Описание: количество инстансов пода для масштабирования.<br/>Пример значения: целое число, шт, например 2.<br/><br/>### URL Проекта (gitpath)<br/>Описание: полный HTTPS путь до проекта в Git-репозитории.<br/>Пример значения: URL в формате https://github.com/myuser/myproject.git. Доступ к репозиторию должен быть публичным.<br/><br/>### URL HealthCheck<br/>Описание: путь для проверки здоровья приложения внутри пода.<br/>Пример значения: строка, путь, например /api/v1/health.<br/><br/>### Переменные окружения пода<br/>Описание: структура данных, которая будет передана как переменные окружения в под.<br/>Пример значения: ключ-значение, например {"ENV": "production"}.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Квота ядра пода: 300m (0.3 ядра)<br/>- Квота памяти пода: 256 MB<br/>- Кол-во реплик пода: 1<br/><br/>### Промышленное окружение<br/>- Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки<br/>- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения<br/>- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости<br/><br/>---<br/><br/>## 4. Выходные параметры<br/>Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.<br/>- Исходный код веб-приложения должен располагаться в директории site.<br/>- Запуск веб-сервера осуществляется командой python app.py.<br/>- Используется версия Python: python:3.12-slim.<br/>- Git-репозиторий должен быть публично доступен для платформы.<br/>- Операция delete возможна только после suspend.<br/>- Операция modify приводит к переразвертыванию с новыми параметрами.'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 376
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1037
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 460
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1038
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 461
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 462
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "256"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 463
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1039
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 464
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: flask-ub0sbq5h
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1040
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 467
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "3.12"
|
|
||||||
value_list:
|
|
||||||
- "3.12"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 465
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: https://github.com/Foxyhhd/Baldurs-Gate-test.git
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 466
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1041
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 379
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 375
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1042
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 468
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 469
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 470
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1043
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 473
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "3.12"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 471
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 472
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1044
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
sort: 30
|
|
||||||
- name: reconcile
|
|
||||||
id: 381
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 380
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 1045
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 474
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- name: resume
|
|
||||||
id: 378
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 377
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,934 +0,0 @@
|
|||||||
name: postgres
|
|
||||||
service_id: 90
|
|
||||||
service_display_name: PostgreSQL
|
|
||||||
service_short_name: postgres
|
|
||||||
service_man: '# Инструкция по развертыванию PostgreSQL через платформу<br/><br/>---<br/>## 1. Общая информация<br/><br/>PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.<br/><br/>## Доступные операции<br/><br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>- **modify** — Модификация кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/>- **restart** — Перезапуск кластера<br/>- **recovery** — Восстановление из резервной копии<br/><br/>- **create_user** — Создание пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>- **create_database** — Создание базы данных<br/>- **delete_database** — Удаление базы данных<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).<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 master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>* **Выделяет внешний IP для доступа к slave:**<br/> Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.<br/><br/>* **Имя ipSpace для публикации внешнего IP slave:**<br/> Если включен параметр для slave, то поле необходимо заполнить.<br/><br/>* **UUID экземпляра услуги S3:**<br/> UUID экземпляра S3 для хранения резервных копий.<br/><br/>* **Версия PostgreSQL:**<br/> Версия PostgreSQL для развертывания. Пример: `16`<br/><br/>* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**<br/> Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно в полночь).<br/><br/>* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**<br/> Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`<br/><br/>* **PgPooler (master / slave):**<br/> Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.<br/><br/>* **Разрешить подключение без SSL (allowNoSSL):**<br/> По умолчанию подключение с sslmode=require. При `true` разрешается подключение без SSL.<br/><br/>* **Автоскейлинг PV (autoScale):**<br/> Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.<br/><br/>* **Дополнительные параметры PostgreSQL (jsonParameters):**<br/> JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html<br/><br/>---<br/>## 3. Выходные параметры<br/><br/>После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.<br/><br/>#### externalConnect<br/><br/>Внешние эндпоинты для подключения к кластеру:<br/>- **master** — для операций записи (host: `write.${namespace}`, port: 5432)<br/>- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": {<br/> "ip": "",<br/> "fqdn": "",<br/> "uuid": "",<br/> "isExternal": false<br/> },<br/> "master": {<br/> "ip": "<ip>",<br/> "fqdn": "write.<namespace>.<cluster-domain>",<br/> "uuid": "<uuid>",<br/> "isExternal": false<br/> }<br/>}<br/>```<br/><br/>Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.<br/><br/>#### internalConnect<br/><br/>Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": "postgresqlk8s-master.<namespace>.svc.cluster.local"<br/> }<br/> }<br/>}<br/>```<br/><br/>Для подключения используйте значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).<br/><br/>Для подключения используется порт **5432**.<br/><br/>---<br/>## 4. Управление пользователями<br/><br/>### create_user — Создание пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.<br/> Пример: `myapp_user`<br/><br/>* **Роль (role):**<br/> Тип роли пользователя. Допустимые значения:<br/> - `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)<br/> - `ddl_user` — расширенные права: createdb, createrole (управление базами и ролями)<br/><br/>Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.<br/><br/>### delete_user — Удаление пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя удаляемого пользователя. Пример: `myapp_user`<br/><br/>Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.<br/><br/>---<br/>## 5. Управление базами данных<br/><br/>### create_database — Создание базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название создаваемой базы данных. Пример: `myapp_db`<br/><br/>* **Владелец базы данных (dbOwner):**<br/> Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`<br/><br/>### delete_database — Удаление базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название удаляемой базы данных. Пример: `myapp_db`<br/>'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 19
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
man: руководство
|
|
||||||
params:
|
|
||||||
- id: 788
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 106
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 107
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 104
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 105
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 789
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 108
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 790
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 112
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 109
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 110
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 111
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 791
|
|
||||||
code: postgresConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 113
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "17"
|
|
||||||
value_list:
|
|
||||||
- "17"
|
|
||||||
- "16"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 116
|
|
||||||
code: sslRequired
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: По умолчанию подключение обязательное (sslmode=require)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 114
|
|
||||||
code: poolerMaster
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на запись). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 115
|
|
||||||
code: poolerSlave
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на чтение). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 792
|
|
||||||
code: postgresConf
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 118
|
|
||||||
code: paramName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- log_connections
|
|
||||||
- log_disconnections
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 117
|
|
||||||
code: paramValue
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Как правильно вводить значения описано здесь (https://www.postgresql.org/docs/current/runtime-config.html)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 793
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 119
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 120
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 121
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 794
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 125
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 122
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 123
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 124
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1094
|
|
||||||
code: mtlsConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
default: '{}'
|
|
||||||
sort: 80
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 613
|
|
||||||
code: certServer
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 609
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "off"
|
|
||||||
value_list:
|
|
||||||
- "off"
|
|
||||||
- manual
|
|
||||||
- auto
|
|
||||||
man: '`off` - Настройка MTLS производиться не будет<br/>`manual` - После создания кластера в полях данных будет запрос на создание сертификата. **Вам необходимо будет выписать сертификат через вашу CA** и уже после включить через операцию **modify** режим MTLS<br/>`auto` - Сертификаты будут созданы через Cert-Manager<br/><br/>Режимы **auto** и **manual** требует включить настройку `Включить sslMode` - **true**<br/>MTLS в режиме **auto** будет работать сразу, в режиме **manual** только после того как будет предоставлен **CA** и **Сертификат сервера**'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 610
|
|
||||||
code: durationCA
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "175200"
|
|
||||||
man: Указывается в **часах**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 611
|
|
||||||
code: durationServer
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "87600"
|
|
||||||
man: Указывается в **часах**<br/>Не может быть больше чем время жизни СА<br/>Обновляется **раз в год**, если выставлено значение **более 2 лет**<br/>Обновляется **раз в пол года**, если выставлено значение **менее 2 лет**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 612
|
|
||||||
code: certCA
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_backup
|
|
||||||
id: 264
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: backup
|
|
||||||
params: []
|
|
||||||
- name: create_database
|
|
||||||
id: 245
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 741
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[A-Za-z0-9]+$
|
|
||||||
- id: 742
|
|
||||||
code: dbOwner
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: create_user
|
|
||||||
id: 241
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 733
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^[A-Za-z0-9]+$
|
|
||||||
maxlength: 62
|
|
||||||
minlength: 2
|
|
||||||
sort: 10
|
|
||||||
- id: 740
|
|
||||||
code: role
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- app_user
|
|
||||||
- ddl_user
|
|
||||||
descr: Выбрать роль из списка
|
|
||||||
man: '`app_user` — стандартный пользователь с базовым набором прав<br/>`ddl_user` — пользователь с расширенными правами, включая управление ролями и базами данных'
|
|
||||||
sort: 20
|
|
||||||
- id: 1096
|
|
||||||
code: mtlsAccess
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Подключение пользователя без ввода паролей<br/>Политика применяется **ко всем базам** внутри Postgresql<br/><br/>RBAC на базы настраивать вручную
|
|
||||||
sort: 30
|
|
||||||
- name: delete
|
|
||||||
id: 20
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params:
|
|
||||||
- id: 457
|
|
||||||
code: deleteS3Bucket
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
descr: Также удалить технический S3 Bucket с бэкапами?
|
|
||||||
sort: 10
|
|
||||||
- name: delete_database
|
|
||||||
id: 246
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: database
|
|
||||||
params:
|
|
||||||
- id: 743
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: delete_user
|
|
||||||
id: 244
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 739
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: 'Пример: `username-admin`'
|
|
||||||
- name: modify
|
|
||||||
id: 48
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 795
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 126
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 127
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 128
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 129
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 796
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 130
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 131
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 132
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 133
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 797
|
|
||||||
code: postgresConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 134
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "17"
|
|
||||||
- "16"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 135
|
|
||||||
code: sslRequired
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: false,true
|
|
||||||
man: По умолчанию подключение обязательное (sslmode=require)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 136
|
|
||||||
code: poolerMaster
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на запись). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 137
|
|
||||||
code: poolerSlave
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на чтение). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 798
|
|
||||||
code: postgresConf
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 272
|
|
||||||
code: paramValue
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Как правильно вводить значения описано здесь (https://www.postgresql.org/docs/current/runtime-config.html)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 271
|
|
||||||
code: paramName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- log_connections
|
|
||||||
- log_disconnections
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 799
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 193
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 138
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 139
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 800
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
sub_params:
|
|
||||||
- id: 142
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 143
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 140
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 141
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1095
|
|
||||||
code: mtlsConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
sub_params:
|
|
||||||
- id: 615
|
|
||||||
code: durationCA
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в **часах**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 616
|
|
||||||
code: durationServer
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в **часах**<br/>Не может быть больше чем время жизни СА<br/>Обновляется **раз в год**, если выставлено значение **более 2 лет**<br/>Обновляется **раз в пол года**, если выставлено значение **менее 2 лет**<br/>Необходимо настраивать, когда параметр `Режим настройки` - **auto**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 617
|
|
||||||
code: certCA
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Предварительно сертификат можно получить командой<br/>`cat ca.crt | base64 -w0`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 618
|
|
||||||
code: certServer
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Предварительно сертификат можно получить командой<br/>`cat server.crt | base64 -w0`
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 634
|
|
||||||
code: refreshCert
|
|
||||||
data_type: boolean
|
|
||||||
required: false
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: На случай если его нужно обновить/заменить
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 614
|
|
||||||
code: type
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "off"
|
|
||||||
- manual
|
|
||||||
- auto
|
|
||||||
man: '`off` - Настройка MTLS производиться не будет<br/>`manual` - После создания кластера в полях данных будет запрос на создание сертификата. **Вам необходимо будет выписать сертификат через вашу CA** и уже после включить через операцию **modify** режим MTLS<br/>`auto` - Сертификаты будут созданы через Cert-Manager<br/><br/>Режимы **auto** и **manual** требует включить настройку `Включить sslMode` - **true**<br/>MTLS в режиме **auto** будет работать сразу, в режиме **manual** только после того как будет предоставлен **CA** и **Сертификат сервера**'
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 263
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: recovery
|
|
||||||
id: 47
|
|
||||||
kind: action
|
|
||||||
action: recovery
|
|
||||||
params:
|
|
||||||
- id: 801
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 144
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 166
|
|
||||||
code: recoveryPoint
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 802
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 146
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 147
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 148
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 145
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 803
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 150
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 151
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 152
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 149
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 804
|
|
||||||
code: postgresConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
sub_params:
|
|
||||||
- id: 153
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "17"
|
|
||||||
value_list:
|
|
||||||
- "17"
|
|
||||||
- "16"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 154
|
|
||||||
code: sslRequired
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "true"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: По умолчанию подключение обязательное (sslmode=require)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 155
|
|
||||||
code: poolerMaster
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на запись). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 156
|
|
||||||
code: poolerSlave
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает pgPooler (на чтение). Будет создан новый под<br/>Размер пода **200m/400Mi**
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 805
|
|
||||||
code: postgresConf
|
|
||||||
data_type: array-map-fixed
|
|
||||||
required: false
|
|
||||||
sort: 50
|
|
||||||
sub_params:
|
|
||||||
- id: 475
|
|
||||||
code: paramName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- log_connections
|
|
||||||
- log_disconnections
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 476
|
|
||||||
code: paramValue
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Как правильно вводить значения описано здесь (https://www.postgresql.org/docs/current/runtime-config.html)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 806
|
|
||||||
code: backupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 60
|
|
||||||
sub_params:
|
|
||||||
- id: 159
|
|
||||||
code: s3Uid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Экземпляр S3 обязателен
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 160
|
|
||||||
code: retain
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 161
|
|
||||||
code: schedule
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: 0 0 * * *
|
|
||||||
regex: ^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 807
|
|
||||||
code: autoscaleConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 70
|
|
||||||
sub_params:
|
|
||||||
- id: 162
|
|
||||||
code: enabled
|
|
||||||
data_type: boolean
|
|
||||||
required: true
|
|
||||||
default: "false"
|
|
||||||
value_list:
|
|
||||||
- "false"
|
|
||||||
- "true"
|
|
||||||
man: Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 163
|
|
||||||
code: schedule
|
|
||||||
data_type: integer >= 0
|
|
||||||
required: true
|
|
||||||
default: "0"
|
|
||||||
value_list:
|
|
||||||
- "0"
|
|
||||||
- "5"
|
|
||||||
- "12"
|
|
||||||
- "23"
|
|
||||||
man: Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 164
|
|
||||||
code: quota
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
man: До какого размера возможно увеличивать диск, когда включен Autoscale
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 165
|
|
||||||
code: percent
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
value_list:
|
|
||||||
- "10"
|
|
||||||
- "15"
|
|
||||||
- "20"
|
|
||||||
man: Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема<br/>Минимальный размер на который расширяется - **1Gb**
|
|
||||||
is_modifiable: false
|
|
||||||
- name: restart
|
|
||||||
id: 54
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
man: ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.<br/>Может быть полная поломка. Крайне осторожно запускать при работе
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 114
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 115
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
name: redis
|
|
||||||
service_id: 91
|
|
||||||
service_display_name: Redis
|
|
||||||
service_short_name: redis
|
|
||||||
service_man: 'Redis кластер. Под кеши. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator<br/>port 6379'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 21
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1061
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 510
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1062
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 511
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 512
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 513
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 514
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "10"
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1063
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 515
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 516
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 517
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 518
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 22
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 394
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1064
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 520
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 521
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 522
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в GIGAbytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 519
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1065
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 523
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 524
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 525
|
|
||||||
code: slaveIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 526
|
|
||||||
code: slaveAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 391
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 393
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 392
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,241 +0,0 @@
|
|||||||
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:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 37
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1089
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 594
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
descr: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1090
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 595
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 596
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 597
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 598
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "5"
|
|
||||||
man: Указывается в Gb
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1091
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 600
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 599
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- name: create_user
|
|
||||||
id: 198
|
|
||||||
kind: subresource
|
|
||||||
action: create
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 635
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 636
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 643
|
|
||||||
code: role
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- dbOwner
|
|
||||||
- read
|
|
||||||
- readWrite
|
|
||||||
- name: delete
|
|
||||||
id: 190
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: delete_user
|
|
||||||
id: 199
|
|
||||||
kind: subresource
|
|
||||||
action: delete
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 644
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- name: modify
|
|
||||||
id: 201
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1092
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 601
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 602
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 603
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 604
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Gb
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1093
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sub_params:
|
|
||||||
- id: 605
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 606
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: modify_user
|
|
||||||
id: 200
|
|
||||||
kind: subresource
|
|
||||||
action: modify
|
|
||||||
subresource: user
|
|
||||||
params:
|
|
||||||
- id: 640
|
|
||||||
code: username
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 641
|
|
||||||
code: dbName
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
- id: 642
|
|
||||||
code: role
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- dbOwner
|
|
||||||
- read
|
|
||||||
- readWrite
|
|
||||||
- name: reconcile
|
|
||||||
id: 409
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 196
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 194
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
name: rabbitmq
|
|
||||||
service_id: 93
|
|
||||||
service_display_name: RabbitMQ
|
|
||||||
service_short_name: rabbitmq
|
|
||||||
service_man: '# Инструкция по развертыванию RabbitMQ через платформу<br/><br/>---<br/>## 1. Общая информация<br/>RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.<br/>Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание кластера<br/>- **modify** — Изменение параметров кластера<br/>- **delete** — Удаление кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.<br/> Пример: `1` (single node) или `3` (кластер с репликацией)<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.<br/> Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/><br/>---<br/>## 3. Модификация кластера<br/>Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.<br/><br/>**Изменяемые параметры:**<br/>* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить<br/>* **Квота (millicore) ядра пода** — можно увеличить или уменьшить<br/>* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)<br/>* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)<br/>* **Выделяет внешний IP для доступа к master** — можно включить или выключить<br/>* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP<br/><br/>**Ограничения:**<br/>* Уменьшение размера диска не поддерживается<br/>* Уменьшение количества реплик не поддерживается<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":<br/><br/>**clusterDomain**<br/>Домен кластера Kubernetes, в котором развернут RabbitMQ.<br/>Пример: `cluster.local`<br/><br/>**inernalConnect**<br/>Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.<br/>Содержит:<br/>* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`<br/><br/>**externalConnect**<br/>Внешние эндпоинты для подключения к кластеру RabbitMQ извне.<br/>Содержит объекты с полями:<br/>* **admin** — доступ к веб-интерфейсу управления:<br/> * `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`<br/> * `ip` — IP-адрес<br/>* **master** — доступ к AMQP протоколу (если включен внешний IP):<br/> * `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`<br/> * `ip` — IP-адрес<br/><br/>**monitoring**<br/>Информация о дашбордах мониторинга:<br/>* **allDashboards** — URL для доступа ко всем дашбордам Grafana<br/><br/>Для подключения используются следующие порты:<br/><br/>* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)<br/>* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)<br/><br/>**Учётные данные**<br/>Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":<br/>* **adminUser** — имя пользователя администратора<br/>* **adminPass** — пароль администратора<br/><br/><br/>---<br/>## 5. Примеры подключения через консоль (rabbitmqadmin)<br/><br/>### Работа с очередями через rabbitmqadmin<br/><br/>Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.<br/><br/>Задайте переменные окружения с учётными данными:<br/><br/>```bash<br/>export RABBITMQ_USERNAME=<adminUser><br/>export RABBITMQ_PASSWORD=<adminPass><br/>export RABBIT_HOST=<host><br/>```<br/><br/>Где:<br/>* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"<br/>* `<host>` — адрес для подключения:<br/> * Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`<br/><br/>**Создание очереди:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> declare queue name=healthcheck durable=false<br/>```<br/><br/>**Листинг очередей:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> list queues<br/>```<br/><br/>**Отправка сообщения:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"<br/>```<br/><br/>**Чтение сообщения:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> get queue=healthcheck ackmode=ack_requeue_false<br/>```<br/><br/>---<br/>## 6. Дополнительная информация<br/>Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".<br/><br/>Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.<br/><br/>Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.<br/><br/>---'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 38
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1097
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 619
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1098
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 620
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1000"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 621
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1024"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 622
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 623
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "5"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1099
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 624
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 625
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: '[]'
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: delete
|
|
||||||
id: 39
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 106
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1100
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 629
|
|
||||||
code: disk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 626
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 627
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 628
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1101
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 630
|
|
||||||
code: masterIpSpace
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
descr: Из какого Ip-Space резервировать внешний IP<br/>Список предоставляется из Организации, в котором развёрнута ресурсная платформа
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 631
|
|
||||||
code: masterAccessList
|
|
||||||
data_type: json
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Необходимо настраивать, когда зарезервирован внешний адрес<br/>Если передан пустой массив, доступ выделяется всем
|
|
||||||
is_modifiable: false
|
|
||||||
- name: reconcile
|
|
||||||
id: 410
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 117
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 116
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
man: Пока не работает из за того что RabbitmqCluster нельзя занулить
|
|
||||||
params: []
|
|
||||||
@@ -1,252 +0,0 @@
|
|||||||
name: lucee
|
|
||||||
service_id: 94
|
|
||||||
service_display_name: Lucee
|
|
||||||
service_short_name: lucee
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 49
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1019
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 430
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1020
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 431
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 432
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "256"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 433
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1021
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 434
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: lucee-tepsq9jk
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1022
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 435
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "6.0"
|
|
||||||
value_list:
|
|
||||||
- "5.4"
|
|
||||||
- "6.0"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 436
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: https://github.com/xahys/testlucee
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 437
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1023
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 50
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 55
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1024
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 438
|
|
||||||
code: cpu
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 439
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 440
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1025
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 443
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 441
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "6.0"
|
|
||||||
- "5.4"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 442
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1026
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 30
|
|
||||||
- name: reconcile
|
|
||||||
id: 373
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 53
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 1027
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 444
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- name: restart
|
|
||||||
id: 163
|
|
||||||
kind: action
|
|
||||||
action: restart
|
|
||||||
params: []
|
|
||||||
- name: resume
|
|
||||||
id: 95
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 96
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,252 +0,0 @@
|
|||||||
name: nodejs
|
|
||||||
service_id: 95
|
|
||||||
service_display_name: NodeJS
|
|
||||||
service_short_name: nodejs
|
|
||||||
service_man: Развертывает контейнер в k8s кластере с node, который можно использовать для запуска своих приложений.<br/>Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 58
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 1028
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 445
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1029
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 446
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 447
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "256"
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 448
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1030
|
|
||||||
code: accessConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 30
|
|
||||||
sub_params:
|
|
||||||
- id: 449
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: node-btf263ja
|
|
||||||
man: 'Если указан FQDN в формате: `myapp.example.com`, предварительно будет проверяться DNS-запись (А-запись **должна смотреть на IP Ingress кластера ресурсной платформы**)<br/><br/>Если указан в формате `myapp`, DNS-запись будет автоматически создана в служебной DNS-зоне'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1031
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
sub_params:
|
|
||||||
- id: 450
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: "23"
|
|
||||||
value_list:
|
|
||||||
- "18"
|
|
||||||
- "20"
|
|
||||||
- "22"
|
|
||||||
- "23"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 451
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: https://github.com/xahys/testnode.git
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 452
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1032
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 61
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 59
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 1033
|
|
||||||
code: clusterConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 453
|
|
||||||
code: cpu
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Milicores<br/>`1000` Mili == `1` Ядро
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 454
|
|
||||||
code: memory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: Указывается в Megabytes
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 455
|
|
||||||
code: replicas
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "1"
|
|
||||||
- "3"
|
|
||||||
- "5"
|
|
||||||
- "7"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1034
|
|
||||||
code: appConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 20
|
|
||||||
sub_params:
|
|
||||||
- id: 456
|
|
||||||
code: version
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- "18"
|
|
||||||
- "20"
|
|
||||||
- "22"
|
|
||||||
- "23"
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 457
|
|
||||||
code: gitPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
man: 'Путь до репозитория приложения<br/>Обязательно должен быть передан как URL: `https://....`<br/><br/>Должен быть сетевой доступ до URL для скачивания исходников'
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 458
|
|
||||||
code: healthPath
|
|
||||||
data_type: string
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код<br/>Пустое значение означает, что будет проверяться исключительно доступность приложения по порту
|
|
||||||
is_modifiable: false
|
|
||||||
- id: 1035
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: Передаётся в формате КЛЮЧ:ЗНАЧЕНИЕ
|
|
||||||
sort: 30
|
|
||||||
- name: reconcile
|
|
||||||
id: 374
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 60
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 1036
|
|
||||||
code: startupConfiguration
|
|
||||||
data_type: map-fixed
|
|
||||||
required: true
|
|
||||||
sort: 10
|
|
||||||
sub_params:
|
|
||||||
- id: 459
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
man: Кластер Kubernetes, на котором будет развернут экземпляр
|
|
||||||
is_modifiable: false
|
|
||||||
- name: resume
|
|
||||||
id: 121
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 120
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,168 +0,0 @@
|
|||||||
name: pgadmin
|
|
||||||
service_id: 96
|
|
||||||
service_display_name: pgAdmin
|
|
||||||
service_short_name: pgadmin
|
|
||||||
service_man: Инструмент с графическим интерфейсом для управления базами данных PostgreSQL
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 62
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 164
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: pgadmin-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- id: 165
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (milicores). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (milicores). 1000Mili = 1 Ядро
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 166
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
descr: Квота памяти пода (MBytes)
|
|
||||||
man: Квота памяти пода (MBytes)
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 167
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 169
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 170
|
|
||||||
code: login
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
regex: ^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)$
|
|
||||||
maxlength: 255
|
|
||||||
minlength: 3
|
|
||||||
descr: Логин для подключения к pgAdmin, в формате email (login@email.net)
|
|
||||||
man: Логин для подключения к pgAdmin, в формате email (login@email.net)
|
|
||||||
sort: 60
|
|
||||||
- id: 171
|
|
||||||
code: password
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
descr: Пароль для подключения к pgAdmin
|
|
||||||
man: Пароль для подключения к pgAdmin
|
|
||||||
sort: 70
|
|
||||||
is_sensitive: true
|
|
||||||
- name: delete
|
|
||||||
id: 63
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 64
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 172
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
- id: 173
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 512
|
|
||||||
descr: Квота памяти пода (MBytes)
|
|
||||||
man: Квота памяти пода (MBytes)
|
|
||||||
- id: 174
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: false
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
- name: redeploy
|
|
||||||
id: 65
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 277
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
- name: resume
|
|
||||||
id: 123
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 122
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
name: http
|
|
||||||
service_id: 98
|
|
||||||
service_display_name: Простой HTTP контейнер
|
|
||||||
service_short_name: http
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 77
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 212
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: http-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 10
|
|
||||||
- id: 213
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "100"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
descr: Квота ядра пода (Указывается в mili)
|
|
||||||
man: Квота ядра пода (Указывается в mili)
|
|
||||||
sort: 30
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 214
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "200"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 215
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество реплик приложения. Трафик будет распределяться между подами в режиме Round-Robin
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 216
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
man: Наименование кластера Kubernetes для подключения
|
|
||||||
sort: 20
|
|
||||||
- id: 217
|
|
||||||
code: registryPath
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: nexus-sa.tst.nubes.ru/docker-nubes/jolt
|
|
||||||
descr: Путь до image, который будет установлен как deployment
|
|
||||||
man: Путь до image, который будет установлен как deployment
|
|
||||||
sort: 60
|
|
||||||
- id: 241
|
|
||||||
code: jsonEnv
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: Массив переменных, будут переданы в env приложения
|
|
||||||
sort: 70
|
|
||||||
- id: 782
|
|
||||||
code: ingressAnnotations
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
default: '{}'
|
|
||||||
man: Формат ключ/значение<br/>Поддерживает пока простые аннотации
|
|
||||||
sort: 80
|
|
||||||
- name: delete
|
|
||||||
id: 78
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 81
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 218
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 100
|
|
||||||
- id: 219
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 128
|
|
||||||
- id: 220
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
- name: reconcile
|
|
||||||
id: 403
|
|
||||||
kind: action
|
|
||||||
action: reconcile
|
|
||||||
params: []
|
|
||||||
- name: redeploy
|
|
||||||
id: 79
|
|
||||||
kind: action
|
|
||||||
action: redeploy
|
|
||||||
params:
|
|
||||||
- id: 272
|
|
||||||
code: resourceRealm
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
value_list:
|
|
||||||
- iot-naeel
|
|
||||||
- k8s-3-sandbox-nubes-ru
|
|
||||||
- k8s-4-sandbox-nubes-ru
|
|
||||||
- naeel-test-3
|
|
||||||
func: getAvailableResourceRealms
|
|
||||||
descr: Платформа для развертывания
|
|
||||||
sort: 10
|
|
||||||
- name: resume
|
|
||||||
id: 130
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 131
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
name: gitea
|
|
||||||
service_id: 99
|
|
||||||
service_display_name: Gitea
|
|
||||||
service_short_name: gitea
|
|
||||||
service_man: '# Инструкция по развертыванию Gitea через платформу<br/><br/>---<br/>## 1. Общая информация<br/>Gitea — это лёгкий, быстрый и самодостаточный сервис хостинга Git-репозиториев с веб-интерфейсом.<br/>Позволяет создавать и управлять репозиториями, организациями, командами, а также настраивать CI/CD через интеграции.<br/>Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание сервиса Gitea<br/>- **delete** — Удаление сервиса Gitea<br/>- **modify** — Модификация сервиса Gitea<br/>- **suspend** — Остановка сервиса Gitea<br/>- **resume** — Запуск сервиса Gitea<br/><br/>---<br/>## 2. Параметры развертывания<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Gitea:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развёрнут сервис). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество реплик подов Gitea. Пример: `1`<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `1024`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер PVC для хранения репозиториев и данных Gitea в гигабайтах. Пример: `10`<br/><br/>* **FQDN / Домен:**<br/> Доменное имя, по которому будет доступен сервис. Пример: `git.example.com`<br/><br/>* **Инстанс услуги PostgreSQL:**<br/> UUID услуги k8sPgsql, в которой будет создана база данных `gitea` и пользователь `techgitea`.<br/><br/>* **Дополнительные параметры сервера (iniServerParams):**<br/> JSON-объект с дополнительными параметрами секции `[server]` в `app.ini`. Пример:<br/> ```json<br/> {"MAX_CONTENT_LENGTH": "524288000"}<br/> ```<br/><br/>* **Дополнительные annotations для Ingress (ingressExtraAnnotations):**<br/> JSON-объект с дополнительными annotations для Ingress-контроллера. Пример:<br/> ```json<br/> {"nginx.ingress.kubernetes.io/proxy-body-size": "500m"}<br/> ```<br/><br/>---<br/>## 3. Особенности подключения и работы с репозиториями<br/><br/>### 3.1. Доступ только по HTTPS<br/>Сервис развёртывается с **rootless-образом** Gitea. SSH-сервер внутри и он **доступен только внутри кластера Kubernetes**.<br/><br/>**Внешний доступ к репозиториям осуществляется исключительно по HTTPS через Ingress.**<br/><br/>```bash<br/># Пример клонирования<br/>https://<домен>/<пользователь>/<репозиторий>.git<br/>```<br/><br/>### 3.2. Настройка git для передачи логина и пароля<br/>Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:<br/><br/>**Встроить креды в URL remote**<br/>```bash<br/>git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git<br/>```<br/>> **Важно:** Логин и пароль администратора создаются автоматически при развертывании и хранятся в Vault.<br/><br/>### 3.3. Работа с большими файлами<br/>По умолчанию `MAX_CONTENT_LENGTH` установлен в **500 МБ**, а Ingress пропускает pack-файлы до **500 МБ**.<br/><br/>Если необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:<br/>```bash<br/>git config http.postBuffer 524288000<br/>```<br/><br/>Для файлов **более 500 МБ** рекомендуется использовать **Git LFS**.<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Gitea платформа возвращает ряд параметров.<br/><br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это внешний URL для доступа к веб-интерфейсу и Git-репозиториям по HTTPS. Пример:<br/>```<br/>https://git.example.com<br/>```<br/><br/>**internalConnect**<br/>Внутренний эндпоинт для подключения к PostgreSQL из других сервисов внутри кластера.<br/><br/>---<br/>## 5. Дополнительная информация<br/>- База данных `gitea` и пользователь `techgitea` создаются автоматически в указанной услуге PostgreSQL.<br/>- DNS-запись и TLS-сертификат (Let''s Encrypt) настраиваются автоматически на основе указанного домена.<br/>- Для изменения параметров сервера Gitea (`app.ini`) используйте операцию **modify** с полем `iniServerParams`.<br/>- Для добавления дополнительных Ingress-annotations используйте операцию **modify** с полем `ingressExtraAnnotations`.<br/>---'
|
|
||||||
lifecycle:
|
|
||||||
suspend_on_destroy_default: true
|
|
||||||
adopt_existing_on_create_default: false
|
|
||||||
outputs:
|
|
||||||
params:
|
|
||||||
- code: state_params
|
|
||||||
type: map
|
|
||||||
- code: state_out
|
|
||||||
type: map
|
|
||||||
- code: state_params_flat
|
|
||||||
type: map
|
|
||||||
- code: state_out_flat
|
|
||||||
type: map
|
|
||||||
- code: vault_secrets
|
|
||||||
type: map
|
|
||||||
sensitive: true
|
|
||||||
- code: vault_url
|
|
||||||
type: string
|
|
||||||
- code: vault_user_path
|
|
||||||
type: string
|
|
||||||
- code: vault_fields
|
|
||||||
type: list
|
|
||||||
operations:
|
|
||||||
- name: create
|
|
||||||
id: 82
|
|
||||||
kind: instance
|
|
||||||
action: create
|
|
||||||
params:
|
|
||||||
- id: 232
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "500"
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 300
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
man: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
sort: 40
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 233
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "512"
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
man: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 50
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 234
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 60
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 235
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
default: "1"
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество узлов в сети
|
|
||||||
sort: 70
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 237
|
|
||||||
code: domain
|
|
||||||
data_type: string
|
|
||||||
required: true
|
|
||||||
default: gitea-1
|
|
||||||
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
|
|
||||||
unique_scope: provider
|
|
||||||
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
man: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
|
||||||
sort: 20
|
|
||||||
- id: 238
|
|
||||||
code: psqlUid
|
|
||||||
data_type: uuid
|
|
||||||
required: true
|
|
||||||
ref_svc_id: 90
|
|
||||||
descr: UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически
|
|
||||||
man: UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически
|
|
||||||
sort: 10
|
|
||||||
- id: 818
|
|
||||||
code: ingressExtraAnnotations
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
is_modifiable: true
|
|
||||||
- id: 821
|
|
||||||
code: iniServerParams
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
is_modifiable: true
|
|
||||||
- name: delete
|
|
||||||
id: 83
|
|
||||||
kind: instance
|
|
||||||
action: delete
|
|
||||||
params: []
|
|
||||||
- name: modify
|
|
||||||
id: 91
|
|
||||||
kind: instance
|
|
||||||
action: modify
|
|
||||||
params:
|
|
||||||
- id: 259
|
|
||||||
code: resourceCPU
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 4000
|
|
||||||
minvalue: 500
|
|
||||||
descr: Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро
|
|
||||||
sort: 10
|
|
||||||
- id: 260
|
|
||||||
code: resourceMemory
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 8192
|
|
||||||
minvalue: 256
|
|
||||||
descr: Квота памяти пода (Указывается в Megabytes)
|
|
||||||
sort: 20
|
|
||||||
- id: 261
|
|
||||||
code: resourceDisk
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 999
|
|
||||||
minvalue: 1
|
|
||||||
descr: Квота диска (Указывается в GIGAbytes)
|
|
||||||
man: Квота диска (Указывается в GIGAbytes)
|
|
||||||
sort: 30
|
|
||||||
- id: 262
|
|
||||||
code: resourceInstances
|
|
||||||
data_type: integer > 0
|
|
||||||
required: true
|
|
||||||
maxvalue: 7
|
|
||||||
minvalue: 1
|
|
||||||
descr: Количество узлов
|
|
||||||
man: Количество узлов в сети
|
|
||||||
sort: 40
|
|
||||||
- id: 819
|
|
||||||
code: ingressExtraAnnotations
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: 'Примеры:<br/> - `nginx.ingress.kubernetes.io/proxy-body-size: 500m` (Размер пакета)<br/> - `nginx.ingress.kubernetes.io/proxy-read-timeout: "600"` (Время ожидания при чтении)<br/> - `nginx.ingress.kubernetes.io/proxy-send-timeout: "600"` (Время ожидания отправке)'
|
|
||||||
- id: 820
|
|
||||||
code: iniServerParams
|
|
||||||
data_type: map
|
|
||||||
required: false
|
|
||||||
man: 'Примеры:<br/> - `MAX_CONTENT_LENGTH: 524288000(~500мб)` (Размер пакета в байтах)'
|
|
||||||
- name: resume
|
|
||||||
id: 127
|
|
||||||
kind: instance
|
|
||||||
action: resume
|
|
||||||
params: []
|
|
||||||
- name: suspend
|
|
||||||
id: 126
|
|
||||||
kind: instance
|
|
||||||
action: suspend
|
|
||||||
params: []
|
|
||||||
Reference in New Issue
Block a user