375 lines
14 KiB
YAML
375 lines
14 KiB
YAML
name: k8s_openbao
|
|
service_id: 151
|
|
service_display_name: Vault
|
|
service_short_name: k8sOpenbao
|
|
service_man: '# Инструкция по развертыванию Хранилища секретов через платформу<br/><br/>## 1. Общая информация<br/>Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных
|
|
(секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.<br/>В качестве приложения используется открытый проект OpenBao
|
|
с поддержкой кластерного режима RAFT.<br/><br/>### Доступные операции<br/>**create** — Создание хранилища секретов и инициализация кластера.<br/>**delete** — Удаление хранилища секретов с полной очисткой
|
|
всех связанных сущностей.<br/>**modify** — Изменение параметров развернутого хранилища секретов.<br/>**suspend** — Приостановка работы кластера без удаления Persistent Volume.<br/>**resume** — Возобновление
|
|
работы кластера с автоматическим unseal всех нод.<br/>**restart** — Поочередный перезапуск нод с последующим подключением в кластер.<br/>**create_kv** — Создание Key/Value хранилища версии V2.<br/>**delete_kv**
|
|
— Удаление Key/Value хранилища со всеми содержащимися секретами.<br/>**create_secrets** — Создание секрета внутри Key/Value хранилища.<br/>**delete_secrets** — Удаление секрета из Key/Value хранилища.<br/>**update_secrets**
|
|
— Обновление значения секрета.<br/>**recovery_secrets** — Откат секрета к указанной версии.<br/>**create_role** — Создание роли для управления Key/Value хранилищем или секретами.<br/>**update_role** —
|
|
Обновление параметров роли.<br/>**delete_role** — Удаление роли доступа.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа
|
|
для развертывания<br/>Описание: Кластер Kubernetes, в котором будет развернуто приложение.<br/>Формат значения: имя Kubernetes-кластера.<br/><br/>### Имя домена<br/>Описание: Доменное имя сервиса. При
|
|
указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.<br/>Формат значения: secrets.domain.com / mysecretdomain.<br/><br/>### Кол-во реплик<br/>Описание:
|
|
Количество узлов в кластере.<br/>Формат значения: целое число.<br/><br/>### Квота ядра пода<br/>Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).<br/>Формат значения:
|
|
целое число.<br/><br/>### Квота памяти пода<br/>Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.<br/>Формат значения: целое число.<br/><br/>### Размер диска под хранение секретов<br/>Описание:
|
|
Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes<br/>Формат значения: целое число.<br/><br/>### Версия OpenBao<br/>Описание:
|
|
Версия OpenBao для развертывания сервиса.<br/>Формат значения: выбор из предоставленного списка версий.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Кол-во
|
|
реплик: 2.<br/>Квота ядра пода: 200.<br/>Квота памяти пода: 256.<br/>Размер диска под хранение секретов: 1.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>### Промышленное окружение<br/>Кол-во
|
|
реплик: от 3.<br/>Квота ядра пода: от 1000.<br/>Квота памяти пода: от 1024.<br/>Размер диска под хранение секретов: от 10.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>---<br/><br/>## 4.
|
|
Выходные параметры<br/>Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.<br/>Настройки самого хранилище (сайзинг, объемы)
|
|
— параметры ресурсов и хранилища данных, примененные к сервису.<br/>Статус кластера (running / suspended) — текущее состояние работы кластера.<br/>url для подключения к веб — адрес веб-интерфейса сервиса.<br/><br/>---<br/><br/>##
|
|
5. Дополнительная информация<br/>При удалении хранилища все данные и настройки безвозвратно удаляются.<br/>При использовании доменного имени требуется корректная настройка DNS.<br/>Операции управления
|
|
секретами и ролями выполняются только после успешного создания хранилища.<br/>Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера<br/>Правило
|
|
выше не относится к операции `delete_kv` / `delete_secrets` / `delete_role`'
|
|
lifecycle:
|
|
suspendOnDestroyDefault: true
|
|
adoptExistingOnCreateDefault: false
|
|
operations:
|
|
- svcOperationId: 210
|
|
operation: create
|
|
kind: instance
|
|
action: create
|
|
- svcOperationId: 212
|
|
operation: create_kv
|
|
kind: subresource
|
|
action: create
|
|
- svcOperationId: 237
|
|
operation: create_policy
|
|
kind: subresource
|
|
action: create
|
|
- svcOperationId: 214
|
|
operation: create_secrets
|
|
kind: subresource
|
|
action: create
|
|
- svcOperationId: 231
|
|
operation: delete
|
|
kind: instance
|
|
action: delete
|
|
- svcOperationId: 213
|
|
operation: delete_kv
|
|
kind: subresource
|
|
action: delete
|
|
- svcOperationId: 239
|
|
operation: delete_policy
|
|
kind: subresource
|
|
action: delete
|
|
- svcOperationId: 233
|
|
operation: delete_secrets
|
|
kind: subresource
|
|
action: delete
|
|
- svcOperationId: 211
|
|
operation: modify
|
|
kind: instance
|
|
action: modify
|
|
- svcOperationId: 236
|
|
operation: reconcile
|
|
kind: action
|
|
action: reconcile
|
|
- svcOperationId: 232
|
|
operation: recovery_secrets
|
|
kind: subresource
|
|
action: recovery
|
|
- svcOperationId: 234
|
|
operation: restart
|
|
kind: action
|
|
action: restart
|
|
- svcOperationId: 216
|
|
operation: resume
|
|
kind: instance
|
|
action: resume
|
|
- svcOperationId: 215
|
|
operation: suspend
|
|
kind: instance
|
|
action: suspend
|
|
- svcOperationId: 238
|
|
operation: update_policy
|
|
kind: subresource
|
|
action: update
|
|
- svcOperationId: 230
|
|
operation: update_secrets
|
|
kind: subresource
|
|
action: update
|
|
stateOut:
|
|
kvs: {}
|
|
policies: {}
|
|
secrets: {}
|
|
cfsParams:
|
|
- svcOperationCfsParamId: 663
|
|
svcOperationCfsParam: resourceRealm
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
valueList:
|
|
- iot-naeel
|
|
- k8s-3-sandbox-nubes-ru
|
|
- k8s-4-sandbox-nubes-ru
|
|
- naeel-test-3
|
|
- svcOperationCfsParamId: 664
|
|
svcOperationCfsParam: resourceCPU
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '500'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 665
|
|
svcOperationCfsParam: resourceInstances
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '3'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 666
|
|
svcOperationCfsParam: resourceMemory
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '512'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 667
|
|
svcOperationCfsParam: resourceDisk
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '10'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 668
|
|
svcOperationCfsParam: appVersion
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: 2.5.2
|
|
isModifiable: true
|
|
valueList:
|
|
- 2.5.2
|
|
- svcOperationCfsParamId: 669
|
|
svcOperationCfsParam: domain
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: bao-ovkw1qbi
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 675
|
|
svcOperationCfsParam: kvName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: kvname-bbycmhbz
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 728
|
|
svcOperationCfsParam: policySettings
|
|
dataType: array-map-fixed
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
dataDescriptor:
|
|
capabilities:
|
|
dataType: json
|
|
defaultValue: '["read", "list"]'
|
|
isRequired: true
|
|
isModifiable: false
|
|
path:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 729
|
|
svcOperationCfsParam: policyName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: policy-xqjoiy6t
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 677
|
|
svcOperationCfsParam: kvName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 678
|
|
svcOperationCfsParam: secretPath
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: path/to/mysecret
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 679
|
|
svcOperationCfsParam: secretData
|
|
dataType: map
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 676
|
|
svcOperationCfsParam: kvName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 732
|
|
svcOperationCfsParam: policyName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 726
|
|
svcOperationCfsParam: kvName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 727
|
|
svcOperationCfsParam: secretPath
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 670
|
|
svcOperationCfsParam: resourceInstances
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 671
|
|
svcOperationCfsParam: resourceCPU
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '500'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 672
|
|
svcOperationCfsParam: resourceMemory
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '512'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 673
|
|
svcOperationCfsParam: resourceDisk
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 674
|
|
svcOperationCfsParam: appVersion
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
valueList:
|
|
- 2.5.2
|
|
- svcOperationCfsParamId: 723
|
|
svcOperationCfsParam: kvName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 724
|
|
svcOperationCfsParam: secretPath
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 725
|
|
svcOperationCfsParam: secretVersion
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 730
|
|
svcOperationCfsParam: policyName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 731
|
|
svcOperationCfsParam: policySettings
|
|
dataType: array-map-fixed
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
dataDescriptor:
|
|
capabilities:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
path:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 719
|
|
svcOperationCfsParam: kvName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 720
|
|
svcOperationCfsParam: secretPath
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 721
|
|
svcOperationCfsParam: needFullUpdateSecret
|
|
dataType: boolean
|
|
isRequired: true
|
|
defaultValue: 'false'
|
|
isModifiable: true
|
|
valueList:
|
|
- 'false'
|
|
- 'true'
|
|
- svcOperationCfsParamId: 722
|
|
svcOperationCfsParam: secretData
|
|
dataType: map
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
cfsParamsByOp:
|
|
210:
|
|
- 663
|
|
- 664
|
|
- 665
|
|
- 666
|
|
- 667
|
|
- 668
|
|
- 669
|
|
212:
|
|
- 675
|
|
237:
|
|
- 728
|
|
- 729
|
|
214:
|
|
- 677
|
|
- 678
|
|
- 679
|
|
231: []
|
|
213:
|
|
- 676
|
|
239:
|
|
- 732
|
|
233:
|
|
- 726
|
|
- 727
|
|
211:
|
|
- 670
|
|
- 671
|
|
- 672
|
|
- 673
|
|
- 674
|
|
236: []
|
|
232:
|
|
- 723
|
|
- 724
|
|
- 725
|
|
234: []
|
|
216: []
|
|
215: []
|
|
238:
|
|
- 730
|
|
- 731
|
|
230:
|
|
- 719
|
|
- 720
|
|
- 721
|
|
- 722
|
|
stateParams:
|
|
resourceRealm: ''
|
|
resourceCPU: '500'
|
|
resourceInstances: '3'
|
|
resourceMemory: '512'
|
|
resourceDisk: '10'
|
|
appVersion: 2.5.2
|
|
domain: bao-ovkw1qbi
|