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/... → стенд по умолчанию
This commit is contained in:
2026-08-01 20:10:19 +04:00
parent 11f98738d0
commit 58d54f2a95
122 changed files with 25223 additions and 76 deletions
+82
View File
@@ -0,0 +1,82 @@
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:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 12
operation: create
kind: instance
action: create
- svcOperationId: 13
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 14
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: superset-1
isModifiable: false
- svcOperationCfsParamId: 20
svcOperationCfsParam: emails
dataType: string
isRequired: true
defaultValue: testuser1
isModifiable: false
- svcOperationCfsParamId: 96
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 97
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 98
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 109
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 227
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
cfsParamsByOp:
12:
- 14
- 20
- 96
- 97
- 98
- 109
- 227
13: []
stateParams:
domain: superset-1
emails: testuser1
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
resourceInstances: '1'