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,150 @@
|
||||
name: vc_mgmt_sthutrval_cluster
|
||||
service_id: 148
|
||||
service_display_name: Менеджмент Kubernetes кластер Штурвал
|
||||
service_short_name: vcMgmtSthutrvalCluster
|
||||
lifecycle:
|
||||
suspendOnDestroyDefault: false
|
||||
adoptExistingOnCreateDefault: false
|
||||
operations:
|
||||
- svcOperationId: 258
|
||||
operation: create
|
||||
kind: instance
|
||||
action: create
|
||||
stateOut: {}
|
||||
cfsParams:
|
||||
- svcOperationCfsParamId: 771
|
||||
svcOperationCfsParam: startupConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
dataDescriptor:
|
||||
resourceRealm:
|
||||
dataType: string
|
||||
defaultValue: sandbox.nubes.ru
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- sandbox.nubes.ru
|
||||
clusterName:
|
||||
dataType: string
|
||||
defaultValue: example-brcyqrjr
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
- svcOperationCfsParamId: 772
|
||||
svcOperationCfsParam: clusterConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
dataDescriptor:
|
||||
appVersion:
|
||||
dataType: string
|
||||
defaultValue: 2.13.1
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- 2.13.1
|
||||
- 2.12.1
|
||||
- 2.11.0
|
||||
- svcOperationCfsParamId: 773
|
||||
svcOperationCfsParam: controlPlaneConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
dataDescriptor:
|
||||
sizingPolicy:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- '{}'
|
||||
sizingDisk:
|
||||
dataType: integer > 0
|
||||
defaultValue: '50'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
count:
|
||||
dataType: integer > 0
|
||||
defaultValue: '1'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- '1'
|
||||
- '3'
|
||||
- '5'
|
||||
- svcOperationCfsParamId: 774
|
||||
svcOperationCfsParam: workerConfiguration
|
||||
dataType: array-map-fixed
|
||||
isRequired: true
|
||||
defaultValue: '[{}]'
|
||||
isModifiable: false
|
||||
dataDescriptor:
|
||||
sizingDisk:
|
||||
dataType: integer > 0
|
||||
defaultValue: '50'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
count:
|
||||
dataType: integer > 0
|
||||
defaultValue: '2'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
groupName:
|
||||
dataType: string
|
||||
defaultValue: workers-jax0kk2f
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
sizingPolicy:
|
||||
dataType: string
|
||||
defaultValue: ''
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- '{}'
|
||||
- svcOperationCfsParamId: 775
|
||||
svcOperationCfsParam: accessConfiguration
|
||||
dataType: map-fixed
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
dataDescriptor:
|
||||
needExternalAddressAPI:
|
||||
dataType: boolean
|
||||
defaultValue: 'true'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- 'true'
|
||||
accessIpListAPI:
|
||||
dataType: json
|
||||
defaultValue: '[]'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
needExternalAddressIngress:
|
||||
dataType: boolean
|
||||
defaultValue: 'true'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- 'true'
|
||||
accessIpListIngress:
|
||||
dataType: json
|
||||
defaultValue: '[]'
|
||||
isRequired: true
|
||||
isModifiable: false
|
||||
cfsParamsByOp:
|
||||
258:
|
||||
- 771
|
||||
- 772
|
||||
- 773
|
||||
- 774
|
||||
- 775
|
||||
stateParams:
|
||||
startupConfiguration: '{"resourceRealm": "sandbox.nubes.ru", "clusterName": "example-brcyqrjr"}'
|
||||
clusterConfiguration: '{"appVersion": "2.13.1"}'
|
||||
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
|
||||
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-jax0kk2f", "sizingPolicy": ""}'
|
||||
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
|
||||
Reference in New Issue
Block a user