Files
polygon/site/services/stand3/150_k8s_sthutrval_cluster.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

325 lines
7.4 KiB
YAML

name: k8s_sthutrval_cluster
service_id: 150
service_display_name: Kubernetes кластер Штурвал
service_short_name: k8sSthutrvalCluster
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 108
operation: create
kind: instance
action: create
- svcOperationId: 281
operation: create_user
kind: subresource
action: create
- svcOperationId: 109
operation: delete
kind: instance
action: delete
- svcOperationId: 282
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 110
operation: modify
kind: instance
action: modify
- svcOperationId: 253
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 174
operation: resume
kind: instance
action: resume
- svcOperationId: 173
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 750
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
vdcUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
nsxtUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
clusterName:
dataType: string
defaultValue: example-imhltbba
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 751
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
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: 752
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
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: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-0krz2kek
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 753
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
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
- svcOperationCfsParamId: 755
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 869
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 870
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 756
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 757
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 758
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-apak4rks
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 759
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
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:
108:
- 750
- 751
- 752
- 753
- 755
281:
- 869
109: []
282:
- 870
110:
- 756
- 757
- 758
- 759
253: []
174: []
173: []
stateParams:
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-imhltbba"}'
controlPlaneConfiguration: '{"sizingPolicy": "[]", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 2, "groupName": "workers-0krz2kek"}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'