name: k8s_openbao
service_id: 151
service_display_name: Vault
service_short_name: k8sOpenbao
service_man: '# Инструкция по развертыванию Хранилища секретов через платформу
## 1. Общая информация
Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных
(секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.
В качестве приложения используется открытый проект OpenBao
с поддержкой кластерного режима RAFT.
### Доступные операции
**create** — Создание хранилища секретов и инициализация кластера.
**delete** — Удаление хранилища секретов с полной очисткой
всех связанных сущностей.
**modify** — Изменение параметров развернутого хранилища секретов.
**suspend** — Приостановка работы кластера без удаления Persistent Volume.
**resume** — Возобновление
работы кластера с автоматическим unseal всех нод.
**restart** — Поочередный перезапуск нод с последующим подключением в кластер.
**create_kv** — Создание Key/Value хранилища версии V2.
**delete_kv**
— Удаление Key/Value хранилища со всеми содержащимися секретами.
**create_secrets** — Создание секрета внутри Key/Value хранилища.
**delete_secrets** — Удаление секрета из Key/Value хранилища.
**update_secrets**
— Обновление значения секрета.
**recovery_secrets** — Откат секрета к указанной версии.
**create_role** — Создание роли для управления Key/Value хранилищем или секретами.
**update_role** —
Обновление параметров роли.
**delete_role** — Удаление роли доступа.
---
## 2. Параметры развертывания
Параметры входных данных операции **create**:
### Платформа
для развертывания
Описание: Кластер Kubernetes, в котором будет развернуто приложение.
Формат значения: имя Kubernetes-кластера.
### Имя домена
Описание: Доменное имя сервиса. При
указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.
Формат значения: secrets.domain.com / mysecretdomain.
### Кол-во реплик
Описание:
Количество узлов в кластере.
Формат значения: целое число.
### Квота ядра пода
Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).
Формат значения:
целое число.
### Квота памяти пода
Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.
Формат значения: целое число.
### Размер диска под хранение секретов
Описание:
Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes
Формат значения: целое число.
### Версия OpenBao
Описание:
Версия OpenBao для развертывания сервиса.
Формат значения: выбор из предоставленного списка версий.
---
## 3. Рекомендованные характеристики
### Тестовое окружение
Кол-во
реплик: 2.
Квота ядра пода: 200.
Квота памяти пода: 256.
Размер диска под хранение секретов: 1.
Версия OpenBao: актуальная стабильная версия.
### Промышленное окружение
Кол-во
реплик: от 3.
Квота ядра пода: от 1000.
Квота памяти пода: от 1024.
Размер диска под хранение секретов: от 10.
Версия OpenBao: актуальная стабильная версия.
---
## 4.
Выходные параметры
Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.
Настройки самого хранилище (сайзинг, объемы)
— параметры ресурсов и хранилища данных, примененные к сервису.
Статус кластера (running / suspended) — текущее состояние работы кластера.
url для подключения к веб — адрес веб-интерфейса сервиса.
---
##
5. Дополнительная информация
При удалении хранилища все данные и настройки безвозвратно удаляются.
При использовании доменного имени требуется корректная настройка DNS.
Операции управления
секретами и ролями выполняются только после успешного создания хранилища.
Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера
Правило
выше не относится к операции `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