Files
polygon/site/services/stand1/151_k8s_openbao.yaml
T
naeel 58d54f2a95 v0.5.0: 3 стенда — изоляция состояния, WSGI middleware, OpenAPI server selector, POLYGON_STANDS env
- loader.py: STANDS dict, get_services/get_ops_index per stand, POLYGON_STANDS env
- mock_state.py: get_state(stand_id) — ленивая инициализация
- app.py: StandMiddleware — перезапись PATH_INFO до Flask-роутинга
- Все роуты: LocalProxy(state), LocalProxy(SERVICES/OPS_INDEX) через g.stand_id
- openapi.py: _build_servers() — по одному серверу на стенд
- services/stand{1,2,3}/ — 37 YAML на стенд из STANDS/dev и STANDS/test
- tests/test_api.py: +4 multi-stand теста (изоляция, fail-next, OpenAPI servers)
- Обратная совместимость: /api/v1/svc/... → стенд по умолчанию
2026-08-01 20:10:19 +04:00

373 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:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- 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-onbcvsgk
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-9e9wvkt2
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-s0hfjfmn
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-onbcvsgk