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:
@@ -0,0 +1,186 @@
|
||||
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:
|
||||
suspendOnDestroyDefault: true
|
||||
adoptExistingOnCreateDefault: false
|
||||
operations:
|
||||
- svcOperationId: 21
|
||||
operation: create
|
||||
kind: instance
|
||||
action: create
|
||||
- svcOperationId: 22
|
||||
operation: delete
|
||||
kind: instance
|
||||
action: delete
|
||||
- svcOperationId: 394
|
||||
operation: modify
|
||||
kind: instance
|
||||
action: modify
|
||||
- svcOperationId: 391
|
||||
operation: reconcile
|
||||
kind: action
|
||||
action: reconcile
|
||||
- svcOperationId: 393
|
||||
operation: resume
|
||||
kind: instance
|
||||
action: resume
|
||||
- svcOperationId: 392
|
||||
operation: suspend
|
||||
kind: instance
|
||||
action: suspend
|
||||
stateOut: {}
|
||||
cfsParams:
|
||||
- svcOperationCfsParamId: 1061
|
||||
svcOperationCfsParam: startupConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
dataDescriptor:
|
||||
resourceRealm:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- iot-naeel
|
||||
- k8s-3-sandbox-nubes-ru
|
||||
- k8s-4-sandbox-nubes-ru
|
||||
- naeel-test-3
|
||||
- svcOperationCfsParamId: 1062
|
||||
svcOperationCfsParam: clusterConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
dataDescriptor:
|
||||
cpu:
|
||||
dataType: integer > 0
|
||||
defaultValue: '500'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
memory:
|
||||
dataType: integer > 0
|
||||
defaultValue: '512'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
replicas:
|
||||
dataType: integer > 0
|
||||
defaultValue: '1'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- '1'
|
||||
- '3'
|
||||
- '5'
|
||||
- '7'
|
||||
disk:
|
||||
dataType: integer > 0
|
||||
defaultValue: '10'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
- svcOperationCfsParamId: 1063
|
||||
svcOperationCfsParam: accessConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
dataDescriptor:
|
||||
masterIpSpace:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
masterAccessList:
|
||||
dataType: json
|
||||
defaultValue: '[]'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
slaveIpSpace:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
slaveAccessList:
|
||||
dataType: json
|
||||
defaultValue: '[]'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
- svcOperationCfsParamId: 1064
|
||||
svcOperationCfsParam: clusterConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
dataDescriptor:
|
||||
memory:
|
||||
dataType: integer > 0
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
replicas:
|
||||
dataType: integer > 0
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- '1'
|
||||
- '3'
|
||||
- '5'
|
||||
- '7'
|
||||
disk:
|
||||
dataType: integer > 0
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
cpu:
|
||||
dataType: integer > 0
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
- svcOperationCfsParamId: 1065
|
||||
svcOperationCfsParam: accessConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
dataDescriptor:
|
||||
masterIpSpace:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
masterAccessList:
|
||||
dataType: json
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
slaveIpSpace:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
slaveAccessList:
|
||||
dataType: json
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
cfsParamsByOp:
|
||||
21:
|
||||
- 1061
|
||||
- 1062
|
||||
- 1063
|
||||
22: []
|
||||
394:
|
||||
- 1064
|
||||
- 1065
|
||||
391: []
|
||||
393: []
|
||||
392: []
|
||||
stateParams:
|
||||
startupConfiguration: '{"resourceRealm": ""}'
|
||||
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
|
||||
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
|
||||
Reference in New Issue
Block a user