kb-cloud-client-typescript 2.3.47 → 2.3.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/adminapi/models/component-item-create.d.ts +12 -0
  2. package/dist/adminapi/models/component-item-create.d.ts.map +1 -1
  3. package/dist/adminapi/models/component-item.d.ts +19 -0
  4. package/dist/adminapi/models/component-item.d.ts.map +1 -1
  5. package/dist/adminapi/models/index.d.ts +1 -0
  6. package/dist/adminapi/models/index.d.ts.map +1 -1
  7. package/dist/adminapi/models/index.js +1 -0
  8. package/dist/adminapi/models/index.js.map +1 -1
  9. package/dist/adminapi/models/instance-template-attribute.d.ts +0 -1
  10. package/dist/adminapi/models/instance-template-attribute.d.ts.map +1 -1
  11. package/dist/adminapi/models/instance-template-attribute.js +0 -1
  12. package/dist/adminapi/models/instance-template-attribute.js.map +1 -1
  13. package/dist/adminapi/models/instance-template-create.d.ts +9 -3
  14. package/dist/adminapi/models/instance-template-create.d.ts.map +1 -1
  15. package/dist/adminapi/models/instance.d.ts +6 -0
  16. package/dist/adminapi/models/instance.d.ts.map +1 -1
  17. package/dist/adminapi/models/mode-option.d.ts +7 -0
  18. package/dist/adminapi/models/mode-option.d.ts.map +1 -1
  19. package/dist/adminapi/models/placement-scope.d.ts +22 -0
  20. package/dist/adminapi/models/placement-scope.d.ts.map +1 -0
  21. package/dist/adminapi/models/placement-scope.js +26 -0
  22. package/dist/adminapi/models/placement-scope.js.map +1 -0
  23. package/dist/internalapi/models/component-item.d.ts +19 -0
  24. package/dist/internalapi/models/component-item.d.ts.map +1 -1
  25. package/dist/internalapi/models/index.d.ts +2 -0
  26. package/dist/internalapi/models/index.d.ts.map +1 -1
  27. package/dist/internalapi/models/index.js +2 -0
  28. package/dist/internalapi/models/index.js.map +1 -1
  29. package/dist/internalapi/models/instance-template-create-env-inner.d.ts +31 -0
  30. package/dist/internalapi/models/instance-template-create-env-inner.d.ts.map +1 -0
  31. package/dist/internalapi/models/instance-template-create-env-inner.js +16 -0
  32. package/dist/internalapi/models/instance-template-create-env-inner.js.map +1 -0
  33. package/dist/internalapi/models/instance-template-create.d.ts +72 -0
  34. package/dist/internalapi/models/instance-template-create.d.ts.map +1 -0
  35. package/dist/internalapi/models/instance-template-create.js +16 -0
  36. package/dist/internalapi/models/instance-template-create.js.map +1 -0
  37. package/dist/openapi/models/component-item-create.d.ts +12 -0
  38. package/dist/openapi/models/component-item-create.d.ts.map +1 -1
  39. package/dist/openapi/models/component-item.d.ts +19 -0
  40. package/dist/openapi/models/component-item.d.ts.map +1 -1
  41. package/dist/openapi/models/index.d.ts +1 -0
  42. package/dist/openapi/models/index.d.ts.map +1 -1
  43. package/dist/openapi/models/index.js +1 -0
  44. package/dist/openapi/models/index.js.map +1 -1
  45. package/dist/openapi/models/instance-template-attribute.d.ts +0 -1
  46. package/dist/openapi/models/instance-template-attribute.d.ts.map +1 -1
  47. package/dist/openapi/models/instance-template-attribute.js +0 -1
  48. package/dist/openapi/models/instance-template-attribute.js.map +1 -1
  49. package/dist/openapi/models/instance-template-create.d.ts +9 -3
  50. package/dist/openapi/models/instance-template-create.d.ts.map +1 -1
  51. package/dist/openapi/models/instance.d.ts +6 -0
  52. package/dist/openapi/models/instance.d.ts.map +1 -1
  53. package/dist/openapi/models/mode-option.d.ts +7 -0
  54. package/dist/openapi/models/mode-option.d.ts.map +1 -1
  55. package/dist/openapi/models/placement-scope.d.ts +22 -0
  56. package/dist/openapi/models/placement-scope.d.ts.map +1 -0
  57. package/dist/openapi/models/placement-scope.js +26 -0
  58. package/dist/openapi/models/placement-scope.js.map +1 -0
  59. package/package.json +1 -1
  60. package/src/adminapi/.openapi-generator/FILES +1 -0
  61. package/src/adminapi/models/component-item-create.ts +12 -0
  62. package/src/adminapi/models/component-item.ts +21 -0
  63. package/src/adminapi/models/index.ts +1 -0
  64. package/src/adminapi/models/instance-template-attribute.ts +0 -1
  65. package/src/adminapi/models/instance-template-create.ts +9 -3
  66. package/src/adminapi/models/instance.ts +6 -0
  67. package/src/adminapi/models/mode-option.ts +9 -0
  68. package/src/adminapi/models/placement-scope.ts +31 -0
  69. package/src/adminapi.yaml +35 -5
  70. package/src/internalapi/.openapi-generator/FILES +2 -0
  71. package/src/internalapi/models/component-item.ts +21 -0
  72. package/src/internalapi/models/index.ts +2 -0
  73. package/src/internalapi/models/instance-template-create-env-inner.ts +36 -0
  74. package/src/internalapi/models/instance-template-create.ts +75 -0
  75. package/src/internalapi.yaml +62 -0
  76. package/src/openapi/.openapi-generator/FILES +1 -0
  77. package/src/openapi/models/component-item-create.ts +12 -0
  78. package/src/openapi/models/component-item.ts +21 -0
  79. package/src/openapi/models/index.ts +1 -0
  80. package/src/openapi/models/instance-template-attribute.ts +0 -1
  81. package/src/openapi/models/instance-template-create.ts +9 -3
  82. package/src/openapi/models/instance.ts +6 -0
  83. package/src/openapi/models/mode-option.ts +9 -0
  84. package/src/openapi/models/placement-scope.ts +31 -0
  85. package/src/openapi.yaml +35 -5
@@ -832,6 +832,7 @@ export * from './persistent-volume-claim-list';
832
832
  export * from './pg-create-extension-opt';
833
833
  export * from './pg-extension';
834
834
  export * from './pg-extension-available-database-schema';
835
+ export * from './placement-scope';
835
836
  export * from './platform-component';
836
837
  export * from './platform-component-details';
837
838
  export * from './platform-component-pod';
@@ -24,7 +24,6 @@ export const InstanceTemplateAttribute = {
24
24
  env: 'env',
25
25
  annotations: 'annotations',
26
26
  labels: 'labels',
27
- availabilityZone: 'availabilityZone',
28
27
  storageClass: 'storageClass'
29
28
  } as const;
30
29
 
@@ -18,11 +18,17 @@
18
18
  import type { InstanceTemplateCreateEnvInner } from './instance-template-create-env-inner';
19
19
 
20
20
  /**
21
- * Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, and storageClass are optional overlays onto the chart-rendered instance. The request must include every chart-rendered instance template exactly once. A template with an explicit zone uses single-zone scheduling: hostname anti-affinity follows the scheduling policy, while explicit rules and additional topology keys are preserved. Component scheduling remains unchanged; templates without a zone inherit it, including its zone anti-affinity constraints. Chart instance scheduling policies are cleared; an omitted or empty availabilityZone leaves the instance policy unset to inherit the component policy.
21
+ * Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, nodeGroup and storageClass are optional overlays. The request must include every chart-rendered instance template exactly once. Explicit placement requires availabilityZone and optionally accepts nodeGroup, without inheriting upper-level AZ or NodeGroup. Omitting both leaves SchedulingPolicy unset for KubeBlocks default inheritance. Hostname, user scheduling rules and additional topology keys are preserved.
22
22
  * @export
23
23
  * @interface InstanceTemplateCreate
24
24
  */
25
25
  export interface InstanceTemplateCreate {
26
+ /**
27
+ * Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
28
+ * @type {string}
29
+ * @memberof InstanceTemplateCreate
30
+ */
31
+ 'nodeGroup'?: string;
26
32
  /**
27
33
  * Instance template name; must match a chart-rendered instance.
28
34
  * @type {string}
@@ -36,7 +42,7 @@ export interface InstanceTemplateCreate {
36
42
  */
37
43
  'replicas': number;
38
44
  /**
39
- * Availability zone for this template (topology.kubernetes.io/zone); omitted or empty inherits the component zone selection. Must be enabled in the environment. If the request explicitly supplies a non-empty cluster availabilityZones list, the template zone must also belong to that list.
45
+ * Single AZ for explicit template placement (topology.kubernetes.io/zone). Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the component or cluster host group. Omitting both leaves SchedulingPolicy unset for KubeBlocks inheritance.
40
46
  * @type {string}
41
47
  * @memberof InstanceTemplateCreate
42
48
  */
@@ -60,7 +66,7 @@ export interface InstanceTemplateCreate {
60
66
  */
61
67
  'annotations'?: { [key: string]: string; };
62
68
  /**
63
- * Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
69
+ * Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted. The apps.kubeblocks.io/instance-template label is managed by the system and must equal the template name if supplied.
64
70
  * @type {{ [key: string]: string; }}
65
71
  * @memberof InstanceTemplateCreate
66
72
  */
@@ -62,6 +62,12 @@ export interface Instance {
62
62
  * @memberof Instance
63
63
  */
64
64
  'componentDef'?: string;
65
+ /**
66
+ * Instance template name within the actual component. Omitted when no template identity is available.
67
+ * @type {string}
68
+ * @memberof Instance
69
+ */
70
+ 'instanceTemplate'?: string;
65
71
  /**
66
72
  * component type, refer to componentDef and support NamePrefix
67
73
  * @type {string}
@@ -40,6 +40,9 @@ import type { ModeOptionValuesMappings } from './mode-option-values-mappings';
40
40
  // May contain unused imports in some cases
41
41
  // @ts-ignore
42
42
  import type { ModeServiceRef } from './mode-service-ref';
43
+ // May contain unused imports in some cases
44
+ // @ts-ignore
45
+ import type { PlacementScope } from './placement-scope';
43
46
 
44
47
  /**
45
48
  *
@@ -47,6 +50,12 @@ import type { ModeServiceRef } from './mode-service-ref';
47
50
  * @interface ModeOption
48
51
  */
49
52
  export interface ModeOption {
53
+ /**
54
+ *
55
+ * @type {PlacementScope}
56
+ * @memberof ModeOption
57
+ */
58
+ 'placementScope'?: PlacementScope;
50
59
  /**
51
60
  *
52
61
  * @type {string}
@@ -0,0 +1,31 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Admin API
5
+ * The Admin API is used to manage the ApeCloud platform.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ * Contact: support@apecloud.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+
17
+ /**
18
+ * UI placement input scope for this mode. Omitted defaults to cluster. cluster displays AZ and NodeGroup selection for the cluster. component hides cluster placement and displays selection for each component, or for each instance template when the component declares templates. This does not restrict API placement overrides.
19
+ * @export
20
+ * @enum {string}
21
+ */
22
+
23
+ export const PlacementScope = {
24
+ cluster: 'cluster',
25
+ component: 'component'
26
+ } as const;
27
+
28
+ export type PlacementScope = typeof PlacementScope[keyof typeof PlacementScope];
29
+
30
+
31
+
package/src/adminapi.yaml CHANGED
@@ -29962,12 +29962,14 @@ components:
29962
29962
  instanceTemplateCreate:
29963
29963
  type: object
29964
29964
  additionalProperties: false
29965
- description: |
29966
- Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, and storageClass are optional overlays onto the chart-rendered instance. The request must include every chart-rendered instance template exactly once. A template with an explicit zone uses single-zone scheduling: hostname anti-affinity follows the scheduling policy, while explicit rules and additional topology keys are preserved. Component scheduling remains unchanged; templates without a zone inherit it, including its zone anti-affinity constraints. Chart instance scheduling policies are cleared; an omitted or empty availabilityZone leaves the instance policy unset to inherit the component policy.
29965
+ description: Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, nodeGroup and storageClass are optional overlays. The request must include every chart-rendered instance template exactly once. Explicit placement requires availabilityZone and optionally accepts nodeGroup, without inheriting upper-level AZ or NodeGroup. Omitting both leaves SchedulingPolicy unset for KubeBlocks default inheritance. Hostname, user scheduling rules and additional topology keys are preserved.
29967
29966
  required:
29968
29967
  - name
29969
29968
  - replicas
29970
29969
  properties:
29970
+ nodeGroup:
29971
+ type: string
29972
+ description: Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
29971
29973
  name:
29972
29974
  type: string
29973
29975
  minLength: 1
@@ -29978,7 +29980,7 @@ components:
29978
29980
  description: Replica count for this instance template.
29979
29981
  availabilityZone:
29980
29982
  type: string
29981
- description: Availability zone for this template (topology.kubernetes.io/zone); omitted or empty inherits the component zone selection. Must be enabled in the environment. If the request explicitly supplies a non-empty cluster availabilityZones list, the template zone must also belong to that list.
29983
+ description: Single AZ for explicit template placement (topology.kubernetes.io/zone). Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the component or cluster host group. Omitting both leaves SchedulingPolicy unset for KubeBlocks inheritance.
29982
29984
  storageClass:
29983
29985
  type: string
29984
29986
  description: StorageClass name for all persistent volumes in this template. Copied from component volumeClaimTemplates, preserving volume sizes and other settings while overriding storageClassName. Chart instance volume templates are cleared; omitted or empty leaves instance volumeClaimTemplates unset.
@@ -30006,7 +30008,7 @@ components:
30006
30008
  type: object
30007
30009
  additionalProperties:
30008
30010
  type: string
30009
- description: Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
30011
+ description: Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted. The apps.kubeblocks.io/instance-template label is managed by the system and must equal the template name if supplied.
30010
30012
  ioQuantity:
30011
30013
  description: IO Quantity describes IOPS and BPS of a volume
30012
30014
  properties:
@@ -30079,6 +30081,12 @@ components:
30079
30081
  required:
30080
30082
  - component
30081
30083
  properties:
30084
+ nodeGroup:
30085
+ type: string
30086
+ description: Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
30087
+ availabilityZone:
30088
+ type: string
30089
+ description: Single AZ for explicit component placement. Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the cluster host group. Omitting both retains cluster scheduling.
30082
30090
  component:
30083
30091
  type: string
30084
30092
  description: component type, refer to componentDef and support NamePrefix
@@ -30417,6 +30425,18 @@ components:
30417
30425
  type: object
30418
30426
  description: ComponentItem is the information of a component
30419
30427
  properties:
30428
+ nodeGroup:
30429
+ type: string
30430
+ description: Optional host group in this environment. Explicit placement does not inherit an upper-level host group.
30431
+ availabilityZone:
30432
+ type: string
30433
+ description: Explicit component AZ selection, if configured.
30434
+ instanceTemplates:
30435
+ type: array
30436
+ x-omitempty: true
30437
+ description: Instance template assignments with effective replicas, placement and storage class, and user-provided env, labels and annotations.
30438
+ items:
30439
+ $ref: '#/components/schemas/instanceTemplateCreate'
30420
30440
  name:
30421
30441
  type: string
30422
30442
  description: component name
@@ -30762,6 +30782,9 @@ components:
30762
30782
  componentDef:
30763
30783
  description: ComponentDefinition name
30764
30784
  type: string
30785
+ instanceTemplate:
30786
+ description: Instance template name within the actual component. Omitted when no template identity is available.
30787
+ type: string
30765
30788
  component:
30766
30789
  description: component type, refer to componentDef and support NamePrefix
30767
30790
  type: string
@@ -39435,6 +39458,12 @@ components:
39435
39458
  type: boolean
39436
39459
  description: whether the component supports custom secret
39437
39460
  x-nullable: false
39461
+ placementScope:
39462
+ type: string
39463
+ description: UI placement input scope for this mode. Omitted defaults to cluster. cluster displays AZ and NodeGroup selection for the cluster. component hides cluster placement and displays selection for each component, or for each instance template when the component declares templates. This does not restrict API placement overrides.
39464
+ enum:
39465
+ - cluster
39466
+ - component
39438
39467
  modeCompatibleKubeblocksVersion:
39439
39468
  type: string
39440
39469
  description: |
@@ -39456,7 +39485,6 @@ components:
39456
39485
  - env
39457
39486
  - annotations
39458
39487
  - labels
39459
- - availabilityZone
39460
39488
  - storageClass
39461
39489
  instanceTemplateEnv:
39462
39490
  type: object
@@ -39832,6 +39860,8 @@ components:
39832
39860
  - description
39833
39861
  - components
39834
39862
  properties:
39863
+ placementScope:
39864
+ $ref: '#/components/schemas/placementScope'
39835
39865
  name:
39836
39866
  type: string
39837
39867
  title:
@@ -60,6 +60,8 @@ models/http-body.ts
60
60
  models/image-registry.ts
61
61
  models/index.ts
62
62
  models/init-option-item.ts
63
+ models/instance-template-create-env-inner.ts
64
+ models/instance-template-create.ts
63
65
  models/io-quantity.ts
64
66
  models/ip-pool-provider.ts
65
67
  models/ip-pool-selection.ts
@@ -19,6 +19,9 @@ import type { ComponentNetwork } from './component-network';
19
19
  // May contain unused imports in some cases
20
20
  // @ts-ignore
21
21
  import type { ComponentVolumeItem } from './component-volume-item';
22
+ // May contain unused imports in some cases
23
+ // @ts-ignore
24
+ import type { InstanceTemplateCreate } from './instance-template-create';
22
25
 
23
26
  /**
24
27
  * ComponentItem is the information of a component
@@ -26,6 +29,24 @@ import type { ComponentVolumeItem } from './component-volume-item';
26
29
  * @interface ComponentItem
27
30
  */
28
31
  export interface ComponentItem {
32
+ /**
33
+ * Optional host group in this environment. Explicit placement does not inherit an upper-level host group.
34
+ * @type {string}
35
+ * @memberof ComponentItem
36
+ */
37
+ 'nodeGroup'?: string;
38
+ /**
39
+ * Explicit component AZ selection, if configured.
40
+ * @type {string}
41
+ * @memberof ComponentItem
42
+ */
43
+ 'availabilityZone'?: string;
44
+ /**
45
+ * Instance template assignments with effective replicas, placement and storage class, and user-provided env, labels and annotations.
46
+ * @type {Array<InstanceTemplateCreate>}
47
+ * @memberof ComponentItem
48
+ */
49
+ 'instanceTemplates'?: Array<InstanceTemplateCreate>;
29
50
  /**
30
51
  * component name
31
52
  * @type {string}
@@ -35,6 +35,8 @@ export * from './grafana-datasource-create';
35
35
  export * from './http-body';
36
36
  export * from './image-registry';
37
37
  export * from './init-option-item';
38
+ export * from './instance-template-create';
39
+ export * from './instance-template-create-env-inner';
38
40
  export * from './io-quantity';
39
41
  export * from './ip-pool-provider';
40
42
  export * from './ip-pool-selection';
@@ -0,0 +1,36 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * KubeBlocks Cloud Internal API
5
+ * The Internal API is using for interaction of ApeCloud platform microservices.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+
17
+ /**
18
+ *
19
+ * @export
20
+ * @interface InstanceTemplateCreateEnvInner
21
+ */
22
+ export interface InstanceTemplateCreateEnvInner {
23
+ /**
24
+ *
25
+ * @type {string}
26
+ * @memberof InstanceTemplateCreateEnvInner
27
+ */
28
+ 'name': string;
29
+ /**
30
+ * Plain string value only. valueFrom is not supported.
31
+ * @type {string}
32
+ * @memberof InstanceTemplateCreateEnvInner
33
+ */
34
+ 'value': string;
35
+ }
36
+
@@ -0,0 +1,75 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * KubeBlocks Cloud Internal API
5
+ * The Internal API is using for interaction of ApeCloud platform microservices.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+ // May contain unused imports in some cases
17
+ // @ts-ignore
18
+ import type { InstanceTemplateCreateEnvInner } from './instance-template-create-env-inner';
19
+
20
+ /**
21
+ * Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, nodeGroup and storageClass are optional overlays. The request must include every chart-rendered instance template exactly once. Explicit placement requires availabilityZone and optionally accepts nodeGroup, without inheriting upper-level AZ or NodeGroup. Omitting both leaves SchedulingPolicy unset for KubeBlocks default inheritance. Hostname, user scheduling rules and additional topology keys are preserved.
22
+ * @export
23
+ * @interface InstanceTemplateCreate
24
+ */
25
+ export interface InstanceTemplateCreate {
26
+ /**
27
+ * Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
28
+ * @type {string}
29
+ * @memberof InstanceTemplateCreate
30
+ */
31
+ 'nodeGroup'?: string;
32
+ /**
33
+ * Instance template name; must match a chart-rendered instance.
34
+ * @type {string}
35
+ * @memberof InstanceTemplateCreate
36
+ */
37
+ 'name': string;
38
+ /**
39
+ * Replica count for this instance template.
40
+ * @type {number}
41
+ * @memberof InstanceTemplateCreate
42
+ */
43
+ 'replicas': number;
44
+ /**
45
+ * Single AZ for explicit template placement (topology.kubernetes.io/zone). Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the component or cluster host group. Omitting both leaves SchedulingPolicy unset for KubeBlocks inheritance.
46
+ * @type {string}
47
+ * @memberof InstanceTemplateCreate
48
+ */
49
+ 'availabilityZone'?: string;
50
+ /**
51
+ * StorageClass name for all persistent volumes in this template. Copied from component volumeClaimTemplates, preserving volume sizes and other settings while overriding storageClassName. Chart instance volume templates are cleared; omitted or empty leaves instance volumeClaimTemplates unset.
52
+ * @type {string}
53
+ * @memberof InstanceTemplateCreate
54
+ */
55
+ 'storageClass'?: string;
56
+ /**
57
+ * Simple env vars (name and value only) merged into this template. valueFrom is not supported; overlaying a name clears any chart valueFrom.
58
+ * @type {Array<InstanceTemplateCreateEnvInner>}
59
+ * @memberof InstanceTemplateCreate
60
+ */
61
+ 'env'?: Array<InstanceTemplateCreateEnvInner>;
62
+ /**
63
+ * Annotation map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
64
+ * @type {{ [key: string]: string; }}
65
+ * @memberof InstanceTemplateCreate
66
+ */
67
+ 'annotations'?: { [key: string]: string; };
68
+ /**
69
+ * Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted. The apps.kubeblocks.io/instance-template label is managed by the system and must equal the template name if supplied.
70
+ * @type {{ [key: string]: string; }}
71
+ * @memberof InstanceTemplateCreate
72
+ */
73
+ 'labels'?: { [key: string]: string; };
74
+ }
75
+
@@ -1287,6 +1287,56 @@ components:
1287
1287
  enum:
1288
1288
  - DoNotTerminate
1289
1289
  - Delete
1290
+ instanceTemplateCreate:
1291
+ type: object
1292
+ additionalProperties: false
1293
+ description: Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, nodeGroup and storageClass are optional overlays. The request must include every chart-rendered instance template exactly once. Explicit placement requires availabilityZone and optionally accepts nodeGroup, without inheriting upper-level AZ or NodeGroup. Omitting both leaves SchedulingPolicy unset for KubeBlocks default inheritance. Hostname, user scheduling rules and additional topology keys are preserved.
1294
+ required:
1295
+ - name
1296
+ - replicas
1297
+ properties:
1298
+ nodeGroup:
1299
+ type: string
1300
+ description: Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
1301
+ name:
1302
+ type: string
1303
+ minLength: 1
1304
+ description: Instance template name; must match a chart-rendered instance.
1305
+ replicas:
1306
+ type: integer
1307
+ minimum: 0
1308
+ description: Replica count for this instance template.
1309
+ availabilityZone:
1310
+ type: string
1311
+ description: Single AZ for explicit template placement (topology.kubernetes.io/zone). Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the component or cluster host group. Omitting both leaves SchedulingPolicy unset for KubeBlocks inheritance.
1312
+ storageClass:
1313
+ type: string
1314
+ description: StorageClass name for all persistent volumes in this template. Copied from component volumeClaimTemplates, preserving volume sizes and other settings while overriding storageClassName. Chart instance volume templates are cleared; omitted or empty leaves instance volumeClaimTemplates unset.
1315
+ env:
1316
+ type: array
1317
+ description: Simple env vars (name and value only) merged into this template. valueFrom is not supported; overlaying a name clears any chart valueFrom.
1318
+ items:
1319
+ type: object
1320
+ required:
1321
+ - name
1322
+ - value
1323
+ properties:
1324
+ name:
1325
+ type: string
1326
+ value:
1327
+ type: string
1328
+ minLength: 1
1329
+ description: Plain string value only. valueFrom is not supported.
1330
+ annotations:
1331
+ type: object
1332
+ additionalProperties:
1333
+ type: string
1334
+ description: Annotation map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
1335
+ labels:
1336
+ type: object
1337
+ additionalProperties:
1338
+ type: string
1339
+ description: Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted. The apps.kubeblocks.io/instance-template label is managed by the system and must equal the template name if supplied.
1290
1340
  ioQuantity:
1291
1341
  description: IO Quantity describes IOPS and BPS of a volume
1292
1342
  properties:
@@ -1357,6 +1407,18 @@ components:
1357
1407
  type: object
1358
1408
  description: ComponentItem is the information of a component
1359
1409
  properties:
1410
+ nodeGroup:
1411
+ type: string
1412
+ description: Optional host group in this environment. Explicit placement does not inherit an upper-level host group.
1413
+ availabilityZone:
1414
+ type: string
1415
+ description: Explicit component AZ selection, if configured.
1416
+ instanceTemplates:
1417
+ type: array
1418
+ x-omitempty: true
1419
+ description: Instance template assignments with effective replicas, placement and storage class, and user-provided env, labels and annotations.
1420
+ items:
1421
+ $ref: '#/components/schemas/instanceTemplateCreate'
1360
1422
  name:
1361
1423
  type: string
1362
1424
  description: component name
@@ -830,6 +830,7 @@ models/pg-extension-available-database-schema.ts
830
830
  models/pg-extension.ts
831
831
  models/pgbench.ts
832
832
  models/phone-verification-request.ts
833
+ models/placement-scope.ts
833
834
  models/platform-parameter-constraints.ts
834
835
  models/platform-parameter-list.ts
835
836
  models/platform-parameter.ts
@@ -29,6 +29,18 @@ import type { InstanceTemplateCreate } from './instance-template-create';
29
29
  * @interface ComponentItemCreate
30
30
  */
31
31
  export interface ComponentItemCreate {
32
+ /**
33
+ * Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
34
+ * @type {string}
35
+ * @memberof ComponentItemCreate
36
+ */
37
+ 'nodeGroup'?: string;
38
+ /**
39
+ * Single AZ for explicit component placement. Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the cluster host group. Omitting both retains cluster scheduling.
40
+ * @type {string}
41
+ * @memberof ComponentItemCreate
42
+ */
43
+ 'availabilityZone'?: string;
32
44
  /**
33
45
  * component type, refer to componentDef and support NamePrefix
34
46
  * @type {string}
@@ -19,6 +19,9 @@ import type { ComponentNetwork } from './component-network';
19
19
  // May contain unused imports in some cases
20
20
  // @ts-ignore
21
21
  import type { ComponentVolumeItem } from './component-volume-item';
22
+ // May contain unused imports in some cases
23
+ // @ts-ignore
24
+ import type { InstanceTemplateCreate } from './instance-template-create';
22
25
 
23
26
  /**
24
27
  * ComponentItem is the information of a component
@@ -26,6 +29,24 @@ import type { ComponentVolumeItem } from './component-volume-item';
26
29
  * @interface ComponentItem
27
30
  */
28
31
  export interface ComponentItem {
32
+ /**
33
+ * Optional host group in this environment. Explicit placement does not inherit an upper-level host group.
34
+ * @type {string}
35
+ * @memberof ComponentItem
36
+ */
37
+ 'nodeGroup'?: string;
38
+ /**
39
+ * Explicit component AZ selection, if configured.
40
+ * @type {string}
41
+ * @memberof ComponentItem
42
+ */
43
+ 'availabilityZone'?: string;
44
+ /**
45
+ * Instance template assignments with effective replicas, placement and storage class, and user-provided env, labels and annotations.
46
+ * @type {Array<InstanceTemplateCreate>}
47
+ * @memberof ComponentItem
48
+ */
49
+ 'instanceTemplates'?: Array<InstanceTemplateCreate>;
29
50
  /**
30
51
  * component name
31
52
  * @type {string}
@@ -735,6 +735,7 @@ export * from './pg-extension';
735
735
  export * from './pg-extension-available-database-schema';
736
736
  export * from './pgbench';
737
737
  export * from './phone-verification-request';
738
+ export * from './placement-scope';
738
739
  export * from './platform-parameter';
739
740
  export * from './platform-parameter-constraints';
740
741
  export * from './platform-parameter-list';
@@ -24,7 +24,6 @@ export const InstanceTemplateAttribute = {
24
24
  env: 'env',
25
25
  annotations: 'annotations',
26
26
  labels: 'labels',
27
- availabilityZone: 'availabilityZone',
28
27
  storageClass: 'storageClass'
29
28
  } as const;
30
29
 
@@ -18,11 +18,17 @@
18
18
  import type { InstanceTemplateCreateEnvInner } from './instance-template-create-env-inner';
19
19
 
20
20
  /**
21
- * Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, and storageClass are optional overlays onto the chart-rendered instance. The request must include every chart-rendered instance template exactly once. A template with an explicit zone uses single-zone scheduling: hostname anti-affinity follows the scheduling policy, while explicit rules and additional topology keys are preserved. Component scheduling remains unchanged; templates without a zone inherit it, including its zone anti-affinity constraints. Chart instance scheduling policies are cleared; an omitted or empty availabilityZone leaves the instance policy unset to inherit the component policy.
21
+ * Create assignment for one instance template. name and replicas are required. env, annotations, labels, availabilityZone, nodeGroup and storageClass are optional overlays. The request must include every chart-rendered instance template exactly once. Explicit placement requires availabilityZone and optionally accepts nodeGroup, without inheriting upper-level AZ or NodeGroup. Omitting both leaves SchedulingPolicy unset for KubeBlocks default inheritance. Hostname, user scheduling rules and additional topology keys are preserved.
22
22
  * @export
23
23
  * @interface InstanceTemplateCreate
24
24
  */
25
25
  export interface InstanceTemplateCreate {
26
+ /**
27
+ * Optional host group in this environment and the explicitly selected availabilityZone. Requires availabilityZone; no upper-level host group is inherited.
28
+ * @type {string}
29
+ * @memberof InstanceTemplateCreate
30
+ */
31
+ 'nodeGroup'?: string;
26
32
  /**
27
33
  * Instance template name; must match a chart-rendered instance.
28
34
  * @type {string}
@@ -36,7 +42,7 @@ export interface InstanceTemplateCreate {
36
42
  */
37
43
  'replicas': number;
38
44
  /**
39
- * Availability zone for this template (topology.kubernetes.io/zone); omitted or empty inherits the component zone selection. Must be enabled in the environment. If the request explicitly supplies a non-empty cluster availabilityZones list, the template zone must also belong to that list.
45
+ * Single AZ for explicit template placement (topology.kubernetes.io/zone). Must be enabled in the environment and is required when nodeGroup is specified. An omitted nodeGroup does not inherit the component or cluster host group. Omitting both leaves SchedulingPolicy unset for KubeBlocks inheritance.
40
46
  * @type {string}
41
47
  * @memberof InstanceTemplateCreate
42
48
  */
@@ -60,7 +66,7 @@ export interface InstanceTemplateCreate {
60
66
  */
61
67
  'annotations'?: { [key: string]: string; };
62
68
  /**
63
- * Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
69
+ * Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted. The apps.kubeblocks.io/instance-template label is managed by the system and must equal the template name if supplied.
64
70
  * @type {{ [key: string]: string; }}
65
71
  * @memberof InstanceTemplateCreate
66
72
  */
@@ -62,6 +62,12 @@ export interface Instance {
62
62
  * @memberof Instance
63
63
  */
64
64
  'componentDef'?: string;
65
+ /**
66
+ * Instance template name within the actual component. Omitted when no template identity is available.
67
+ * @type {string}
68
+ * @memberof Instance
69
+ */
70
+ 'instanceTemplate'?: string;
65
71
  /**
66
72
  * component type, refer to componentDef and support NamePrefix
67
73
  * @type {string}
@@ -40,6 +40,9 @@ import type { ModeOptionValuesMappings } from './mode-option-values-mappings';
40
40
  // May contain unused imports in some cases
41
41
  // @ts-ignore
42
42
  import type { ModeServiceRef } from './mode-service-ref';
43
+ // May contain unused imports in some cases
44
+ // @ts-ignore
45
+ import type { PlacementScope } from './placement-scope';
43
46
 
44
47
  /**
45
48
  *
@@ -47,6 +50,12 @@ import type { ModeServiceRef } from './mode-service-ref';
47
50
  * @interface ModeOption
48
51
  */
49
52
  export interface ModeOption {
53
+ /**
54
+ *
55
+ * @type {PlacementScope}
56
+ * @memberof ModeOption
57
+ */
58
+ 'placementScope'?: PlacementScope;
50
59
  /**
51
60
  *
52
61
  * @type {string}