kb-cloud-client-typescript 2.3.31 → 2.3.32

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 (132) hide show
  1. package/dist/adminapi/apis/vip-pool-api.d.ts +72 -0
  2. package/dist/adminapi/apis/vip-pool-api.d.ts.map +1 -1
  3. package/dist/adminapi/apis/vip-pool-api.js +80 -0
  4. package/dist/adminapi/apis/vip-pool-api.js.map +1 -1
  5. package/dist/adminapi/models/cluster-create.d.ts +6 -0
  6. package/dist/adminapi/models/cluster-create.d.ts.map +1 -1
  7. package/dist/adminapi/models/component-item-create.d.ts +8 -1
  8. package/dist/adminapi/models/component-item-create.d.ts.map +1 -1
  9. package/dist/adminapi/models/index.d.ts +8 -0
  10. package/dist/adminapi/models/index.d.ts.map +1 -1
  11. package/dist/adminapi/models/index.js +8 -0
  12. package/dist/adminapi/models/index.js.map +1 -1
  13. package/dist/adminapi/models/instance-template-attribute.d.ts +23 -0
  14. package/dist/adminapi/models/instance-template-attribute.d.ts.map +1 -0
  15. package/dist/adminapi/models/instance-template-attribute.js +27 -0
  16. package/dist/adminapi/models/instance-template-attribute.js.map +1 -0
  17. package/dist/adminapi/models/instance-template-create-env-inner.d.ts +31 -0
  18. package/dist/adminapi/models/instance-template-create-env-inner.d.ts.map +1 -0
  19. package/dist/adminapi/models/instance-template-create-env-inner.js +16 -0
  20. package/dist/adminapi/models/instance-template-create-env-inner.js.map +1 -0
  21. package/dist/adminapi/models/instance-template-create.d.ts +54 -0
  22. package/dist/adminapi/models/instance-template-create.d.ts.map +1 -0
  23. package/dist/adminapi/models/instance-template-create.js +16 -0
  24. package/dist/adminapi/models/instance-template-create.js.map +1 -0
  25. package/dist/adminapi/models/instance-template-env.d.ts +50 -0
  26. package/dist/adminapi/models/instance-template-env.d.ts.map +1 -0
  27. package/dist/adminapi/models/instance-template-env.js +16 -0
  28. package/dist/adminapi/models/instance-template-env.js.map +1 -0
  29. package/dist/adminapi/models/instance-template-op.d.ts +22 -0
  30. package/dist/adminapi/models/instance-template-op.d.ts.map +1 -0
  31. package/dist/adminapi/models/instance-template-op.js +26 -0
  32. package/dist/adminapi/models/instance-template-op.js.map +1 -0
  33. package/dist/adminapi/models/instance-template-replicas.d.ts +31 -0
  34. package/dist/adminapi/models/instance-template-replicas.d.ts.map +1 -0
  35. package/dist/adminapi/models/instance-template-replicas.js +16 -0
  36. package/dist/adminapi/models/instance-template-replicas.js.map +1 -0
  37. package/dist/adminapi/models/mode-component-instance-template.d.ts +46 -0
  38. package/dist/adminapi/models/mode-component-instance-template.d.ts.map +1 -0
  39. package/dist/adminapi/models/mode-component-instance-template.js +16 -0
  40. package/dist/adminapi/models/mode-component-instance-template.js.map +1 -0
  41. package/dist/adminapi/models/mode-component.d.ts +7 -0
  42. package/dist/adminapi/models/mode-component.d.ts.map +1 -1
  43. package/dist/adminapi/models/ops-hscale.d.ts +8 -1
  44. package/dist/adminapi/models/ops-hscale.d.ts.map +1 -1
  45. package/dist/adminapi/models/ops-vscale.d.ts +1 -1
  46. package/dist/adminapi/models/vip-pool-create.d.ts +6 -0
  47. package/dist/adminapi/models/vip-pool-create.d.ts.map +1 -1
  48. package/dist/adminapi/models/vip-pool-update.d.ts +25 -0
  49. package/dist/adminapi/models/vip-pool-update.d.ts.map +1 -0
  50. package/dist/adminapi/models/vip-pool-update.js +16 -0
  51. package/dist/adminapi/models/vip-pool-update.js.map +1 -0
  52. package/dist/adminapi/models/vip-pool.d.ts +12 -0
  53. package/dist/adminapi/models/vip-pool.d.ts.map +1 -1
  54. package/dist/openapi/models/cluster-create.d.ts +6 -0
  55. package/dist/openapi/models/cluster-create.d.ts.map +1 -1
  56. package/dist/openapi/models/component-item-create.d.ts +8 -1
  57. package/dist/openapi/models/component-item-create.d.ts.map +1 -1
  58. package/dist/openapi/models/index.d.ts +7 -0
  59. package/dist/openapi/models/index.d.ts.map +1 -1
  60. package/dist/openapi/models/index.js +7 -0
  61. package/dist/openapi/models/index.js.map +1 -1
  62. package/dist/openapi/models/instance-template-attribute.d.ts +23 -0
  63. package/dist/openapi/models/instance-template-attribute.d.ts.map +1 -0
  64. package/dist/openapi/models/instance-template-attribute.js +27 -0
  65. package/dist/openapi/models/instance-template-attribute.js.map +1 -0
  66. package/dist/openapi/models/instance-template-create-env-inner.d.ts +31 -0
  67. package/dist/openapi/models/instance-template-create-env-inner.d.ts.map +1 -0
  68. package/dist/openapi/models/instance-template-create-env-inner.js +16 -0
  69. package/dist/openapi/models/instance-template-create-env-inner.js.map +1 -0
  70. package/dist/openapi/models/instance-template-create.d.ts +54 -0
  71. package/dist/openapi/models/instance-template-create.d.ts.map +1 -0
  72. package/dist/openapi/models/instance-template-create.js +16 -0
  73. package/dist/openapi/models/instance-template-create.js.map +1 -0
  74. package/dist/openapi/models/instance-template-env.d.ts +50 -0
  75. package/dist/openapi/models/instance-template-env.d.ts.map +1 -0
  76. package/dist/openapi/models/instance-template-env.js +16 -0
  77. package/dist/openapi/models/instance-template-env.js.map +1 -0
  78. package/dist/openapi/models/instance-template-op.d.ts +22 -0
  79. package/dist/openapi/models/instance-template-op.d.ts.map +1 -0
  80. package/dist/openapi/models/instance-template-op.js +26 -0
  81. package/dist/openapi/models/instance-template-op.js.map +1 -0
  82. package/dist/openapi/models/instance-template-replicas.d.ts +31 -0
  83. package/dist/openapi/models/instance-template-replicas.d.ts.map +1 -0
  84. package/dist/openapi/models/instance-template-replicas.js +16 -0
  85. package/dist/openapi/models/instance-template-replicas.js.map +1 -0
  86. package/dist/openapi/models/mode-component-instance-template.d.ts +46 -0
  87. package/dist/openapi/models/mode-component-instance-template.d.ts.map +1 -0
  88. package/dist/openapi/models/mode-component-instance-template.js +16 -0
  89. package/dist/openapi/models/mode-component-instance-template.js.map +1 -0
  90. package/dist/openapi/models/mode-component.d.ts +7 -0
  91. package/dist/openapi/models/mode-component.d.ts.map +1 -1
  92. package/dist/openapi/models/ops-hscale.d.ts +8 -1
  93. package/dist/openapi/models/ops-hscale.d.ts.map +1 -1
  94. package/dist/openapi/models/ops-vscale.d.ts +1 -1
  95. package/dist/openapi/models/vip-pool.d.ts +12 -0
  96. package/dist/openapi/models/vip-pool.d.ts.map +1 -1
  97. package/package.json +1 -1
  98. package/src/adminapi/.openapi-generator/FILES +8 -0
  99. package/src/adminapi/apis/vip-pool-api.ts +128 -0
  100. package/src/adminapi/models/cluster-create.ts +6 -0
  101. package/src/adminapi/models/component-item-create.ts +10 -1
  102. package/src/adminapi/models/index.ts +8 -0
  103. package/src/adminapi/models/instance-template-attribute.ts +32 -0
  104. package/src/adminapi/models/instance-template-create-env-inner.ts +36 -0
  105. package/src/adminapi/models/instance-template-create.ts +57 -0
  106. package/src/adminapi/models/instance-template-env.ts +57 -0
  107. package/src/adminapi/models/instance-template-op.ts +31 -0
  108. package/src/adminapi/models/instance-template-replicas.ts +36 -0
  109. package/src/adminapi/models/mode-component-instance-template.ts +57 -0
  110. package/src/adminapi/models/mode-component.ts +9 -0
  111. package/src/adminapi/models/ops-hscale.ts +10 -1
  112. package/src/adminapi/models/ops-vscale.ts +1 -1
  113. package/src/adminapi/models/vip-pool-create.ts +6 -0
  114. package/src/adminapi/models/vip-pool-update.ts +30 -0
  115. package/src/adminapi/models/vip-pool.ts +12 -0
  116. package/src/adminapi.yaml +228 -3
  117. package/src/openapi/.openapi-generator/FILES +7 -0
  118. package/src/openapi/models/cluster-create.ts +6 -0
  119. package/src/openapi/models/component-item-create.ts +10 -1
  120. package/src/openapi/models/index.ts +7 -0
  121. package/src/openapi/models/instance-template-attribute.ts +32 -0
  122. package/src/openapi/models/instance-template-create-env-inner.ts +36 -0
  123. package/src/openapi/models/instance-template-create.ts +57 -0
  124. package/src/openapi/models/instance-template-env.ts +57 -0
  125. package/src/openapi/models/instance-template-op.ts +31 -0
  126. package/src/openapi/models/instance-template-replicas.ts +36 -0
  127. package/src/openapi/models/mode-component-instance-template.ts +57 -0
  128. package/src/openapi/models/mode-component.ts +9 -0
  129. package/src/openapi/models/ops-hscale.ts +10 -1
  130. package/src/openapi/models/ops-vscale.ts +1 -1
  131. package/src/openapi/models/vip-pool.ts +12 -0
  132. package/src/openapi.yaml +175 -3
@@ -0,0 +1,57 @@
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
+ // May contain unused imports in some cases
17
+ // @ts-ignore
18
+ import type { LocalizedDescription } from './localized-description';
19
+
20
+ /**
21
+ * One fillable env var on an instance template, for frontend rendering.
22
+ * @export
23
+ * @interface InstanceTemplateEnv
24
+ */
25
+ export interface InstanceTemplateEnv {
26
+ /**
27
+ * Env var name written to the instance template.
28
+ * @type {string}
29
+ * @memberof InstanceTemplateEnv
30
+ */
31
+ 'name': string;
32
+ /**
33
+ *
34
+ * @type {LocalizedDescription}
35
+ * @memberof InstanceTemplateEnv
36
+ */
37
+ 'label'?: LocalizedDescription;
38
+ /**
39
+ *
40
+ * @type {LocalizedDescription}
41
+ * @memberof InstanceTemplateEnv
42
+ */
43
+ 'description'?: LocalizedDescription;
44
+ /**
45
+ * If true, the frontend should treat this env as required. Create does not re-check.
46
+ * @type {boolean}
47
+ * @memberof InstanceTemplateEnv
48
+ */
49
+ 'required'?: boolean;
50
+ /**
51
+ * Default value shown by the frontend.
52
+ * @type {string}
53
+ * @memberof InstanceTemplateEnv
54
+ */
55
+ 'default'?: string;
56
+ }
57
+
@@ -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
+ * Operation that can be declared on instanceTemplate.ops.
19
+ * @export
20
+ * @enum {string}
21
+ */
22
+
23
+ export const InstanceTemplateOp = {
24
+ hscale: 'hscale',
25
+ vscale: 'vscale'
26
+ } as const;
27
+
28
+ export type InstanceTemplateOp = typeof InstanceTemplateOp[keyof typeof InstanceTemplateOp];
29
+
30
+
31
+
@@ -0,0 +1,36 @@
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
+ * HScale assignment for one instance template. name and replicas only.
19
+ * @export
20
+ * @interface InstanceTemplateReplicas
21
+ */
22
+ export interface InstanceTemplateReplicas {
23
+ /**
24
+ * Instance template name on the live Cluster spec.
25
+ * @type {string}
26
+ * @memberof InstanceTemplateReplicas
27
+ */
28
+ 'name': string;
29
+ /**
30
+ * Target replica count for this instance template.
31
+ * @type {number}
32
+ * @memberof InstanceTemplateReplicas
33
+ */
34
+ 'replicas': number;
35
+ }
36
+
@@ -0,0 +1,57 @@
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
+ // May contain unused imports in some cases
17
+ // @ts-ignore
18
+ import type { InstanceTemplateAttribute } from './instance-template-attribute';
19
+ // May contain unused imports in some cases
20
+ // @ts-ignore
21
+ import type { InstanceTemplateEnv } from './instance-template-env';
22
+ // May contain unused imports in some cases
23
+ // @ts-ignore
24
+ import type { InstanceTemplateOp } from './instance-template-op';
25
+
26
+ /**
27
+ * Frontend catalog of instance templates for this mode component. names, ops, attributes, and env are for UI rendering. Create validates the request against chart-rendered Cluster instances, not this catalog. HScale does not re-check this catalog; it builds the OpsRequest from the request and the live Cluster. HScale instanceTemplates still requires top-level replicas. ops lists hscale and vscale for the UI (vscale is reserved; class stays component-level). Only HScale processes instance templates. VolumeExpansion, VScale, Upgrade, Restart, and other operations silently ignore instance templates and keep their component-level behavior. Template-level volumeexpansion is not implemented. The platform does not even-split or fill in missing templates. When absent, the frontend should use component-level operations.
28
+ * @export
29
+ * @interface ModeComponentInstanceTemplate
30
+ */
31
+ export interface ModeComponentInstanceTemplate {
32
+ /**
33
+ * Instance template names the frontend should render. Create and hscale check names against the chart or live Cluster, not this list.
34
+ * @type {Set<string>}
35
+ * @memberof ModeComponentInstanceTemplate
36
+ */
37
+ 'names': Set<string>;
38
+ /**
39
+ * Operations the frontend should offer per template: hscale, vscale. Not re-checked when creating a cluster or building an hscale OpsRequest. Only hscale currently acts per template; vscale is reserved. VolumeExpansion, VScale, Upgrade, and Restart ignore instance templates and keep their component-level behavior.
40
+ * @type {Array<InstanceTemplateOp>}
41
+ * @memberof ModeComponentInstanceTemplate
42
+ */
43
+ 'ops': Array<InstanceTemplateOp>;
44
+ /**
45
+ * Heterogeneous attributes the frontend should render on each instance template at create. Omitted or empty means only name and replicas. Create overlays the request onto the chart and does not re-check this list.
46
+ * @type {Set<InstanceTemplateAttribute>}
47
+ * @memberof ModeComponentInstanceTemplate
48
+ */
49
+ 'attributes'?: Set<InstanceTemplateAttribute>;
50
+ /**
51
+ * Env vars the frontend may render when attributes includes env. Create does not re-check this list.
52
+ * @type {Array<InstanceTemplateEnv>}
53
+ * @memberof ModeComponentInstanceTemplate
54
+ */
55
+ 'env'?: Array<InstanceTemplateEnv>;
56
+ }
57
+
@@ -13,6 +13,9 @@
13
13
  */
14
14
 
15
15
 
16
+ // May contain unused imports in some cases
17
+ // @ts-ignore
18
+ import type { ModeComponentInstanceTemplate } from './mode-component-instance-template';
16
19
  // May contain unused imports in some cases
17
20
  // @ts-ignore
18
21
  import type { ModeReadonlyEndpoint } from './mode-readonly-endpoint';
@@ -41,6 +44,12 @@ export interface ModeComponent {
41
44
  * @memberof ModeComponent
42
45
  */
43
46
  'hideOnCreate': boolean;
47
+ /**
48
+ *
49
+ * @type {ModeComponentInstanceTemplate}
50
+ * @memberof ModeComponent
51
+ */
52
+ 'instanceTemplate'?: ModeComponentInstanceTemplate;
44
53
  /**
45
54
  * the name of the serviceRef defined in mode\'s serviceRefs. If set, it means a serviceRef can be used to replace this component.
46
55
  * @type {string}
@@ -13,12 +13,15 @@
13
13
  */
14
14
 
15
15
 
16
+ // May contain unused imports in some cases
17
+ // @ts-ignore
18
+ import type { InstanceTemplateReplicas } from './instance-template-replicas';
16
19
  // May contain unused imports in some cases
17
20
  // @ts-ignore
18
21
  import type { TaskSchedule } from './task-schedule';
19
22
 
20
23
  /**
21
- * OpsHScale is the payload to horizontally scale a KubeBlocks cluster. It requires specifying either the number of replicas or the number of shards.
24
+ * OpsHScale is the payload to horizontally scale a KubeBlocks cluster. Specify replicas or shards. instanceTemplates is an optional overlay and requires top-level replicas.
22
25
  * @export
23
26
  * @interface OpsHScale
24
27
  */
@@ -41,6 +44,12 @@ export interface OpsHScale {
41
44
  * @memberof OpsHScale
42
45
  */
43
46
  'replicas'?: number | null;
47
+ /**
48
+ * Target replica count for named instance templates. Requires top-level replicas. Mapped onto the live Cluster spec to build scaleIn/scaleOut.instances. Required for replica scaling when the live component has instance templates. Names must exactly match all live instance templates, without missing, extra, or duplicate names; order does not matter. Top-level replicas must equal the sum of all requested template replica counts. Shard-count scaling does not check templates and cannot include this list.
49
+ * @type {Array<InstanceTemplateReplicas>}
50
+ * @memberof OpsHScale
51
+ */
52
+ 'instanceTemplates'?: Array<InstanceTemplateReplicas>;
44
53
  /**
45
54
  * List of online instance names to be switched to offline during scaling in.
46
55
  * @type {Array<string>}
@@ -42,7 +42,7 @@ export interface OpsVScale {
42
42
  */
43
43
  'memory'?: string;
44
44
  /**
45
- * class code of the cluster
45
+ * Class code for component-level vertical scaling.
46
46
  * @type {string}
47
47
  * @memberof OpsVScale
48
48
  */
@@ -26,5 +26,11 @@ export interface VipPoolCreate {
26
26
  * @memberof VipPoolCreate
27
27
  */
28
28
  'addresses': string;
29
+ /**
30
+ * Name of the VIP Pool. It is what a cluster selects the pool by, so it is not restricted by Kubernetes resource naming rules. The MetalLB IPAddressPool resource name stays the generated kb-<id>.
31
+ * @type {string}
32
+ * @memberof VipPoolCreate
33
+ */
34
+ 'poolName': string;
29
35
  }
30
36
 
@@ -0,0 +1,30 @@
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
+ * VIP Pool update
19
+ * @export
20
+ * @interface VipPoolUpdate
21
+ */
22
+ export interface VipPoolUpdate {
23
+ /**
24
+ * IP Addresses
25
+ * @type {string}
26
+ * @memberof VipPoolUpdate
27
+ */
28
+ 'addresses': string;
29
+ }
30
+
@@ -32,6 +32,18 @@ export interface VipPool {
32
32
  * @memberof VipPool
33
33
  */
34
34
  'id'?: string;
35
+ /**
36
+ * Name of VIP Pool. It is the MetalLB IPAddressPool resource name, generated as kb-<id>.
37
+ * @type {string}
38
+ * @memberof VipPool
39
+ */
40
+ 'name'?: string;
41
+ /**
42
+ * User facing name of the VIP Pool, used to select the pool when creating a cluster. It falls back to the IPAddressPool resource name.
43
+ * @type {string}
44
+ * @memberof VipPool
45
+ */
46
+ 'poolName'?: string;
35
47
  /**
36
48
  * Total number of IP addresses
37
49
  * @type {number}
package/src/adminapi.yaml CHANGED
@@ -11435,6 +11435,44 @@ paths:
11435
11435
  $ref: '#/components/responses/404'
11436
11436
  tags:
11437
11437
  - vipPool
11438
+ put:
11439
+ operationId: updateVIPPool
11440
+ summary: Update environment VIP Pool
11441
+ parameters:
11442
+ - description: name of the environment
11443
+ in: path
11444
+ name: environmentName
11445
+ required: true
11446
+ schema:
11447
+ type: string
11448
+ - description: id of the VIP Pool
11449
+ in: path
11450
+ name: poolID
11451
+ required: true
11452
+ schema:
11453
+ type: string
11454
+ requestBody:
11455
+ content:
11456
+ application/json:
11457
+ schema:
11458
+ $ref: '#/components/schemas/vipPoolUpdate'
11459
+ required: true
11460
+ responses:
11461
+ '200':
11462
+ content:
11463
+ application/json:
11464
+ schema:
11465
+ $ref: '#/components/schemas/vipPool'
11466
+ description: A successful response.
11467
+ '400':
11468
+ $ref: '#/components/responses/400'
11469
+ '403':
11470
+ $ref: '#/components/responses/403'
11471
+ '404':
11472
+ $ref: '#/components/responses/404'
11473
+ tags:
11474
+ - vipPool
11475
+ x-codegen-request-body-name: body
11438
11476
  /admin/v1/environments/{environmentName}/storageClasses:
11439
11477
  get:
11440
11478
  description: Provides a summary of storage class statistics.
@@ -29913,6 +29951,48 @@ components:
29913
29951
  enum:
29914
29952
  - DoNotTerminate
29915
29953
  - Delete
29954
+ instanceTemplateCreate:
29955
+ type: object
29956
+ additionalProperties: false
29957
+ description: |
29958
+ Create assignment for one instance template. name and replicas are required. env, annotations, and labels are optional overlays onto the chart-rendered instance. The request must include every chart-rendered instance template exactly once.
29959
+ required:
29960
+ - name
29961
+ - replicas
29962
+ properties:
29963
+ name:
29964
+ type: string
29965
+ minLength: 1
29966
+ description: Instance template name; must match a chart-rendered instance.
29967
+ replicas:
29968
+ type: integer
29969
+ minimum: 0
29970
+ description: Replica count for this instance template.
29971
+ env:
29972
+ type: array
29973
+ description: Simple env vars (name and value only) merged into this template. valueFrom is not supported; overlaying a name clears any chart valueFrom.
29974
+ items:
29975
+ type: object
29976
+ required:
29977
+ - name
29978
+ - value
29979
+ properties:
29980
+ name:
29981
+ type: string
29982
+ value:
29983
+ type: string
29984
+ minLength: 1
29985
+ description: Plain string value only. valueFrom is not supported.
29986
+ annotations:
29987
+ type: object
29988
+ additionalProperties:
29989
+ type: string
29990
+ description: Annotation map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
29991
+ labels:
29992
+ type: object
29993
+ additionalProperties:
29994
+ type: string
29995
+ description: Label map (string key to string value). Merged into this template; same-name keys overwritten. Chart keys are not deleted.
29916
29996
  ioQuantity:
29917
29997
  description: IO Quantity describes IOPS and BPS of a volume
29918
29998
  properties:
@@ -29995,7 +30075,13 @@ components:
29995
30075
  replicas:
29996
30076
  title: Replicas
29997
30077
  type: integer
29998
- description: The number of replicas, for standalone mode, the replicas is 1, for raftGroup mode, the default replicas is 3.
30078
+ description: The number of replicas, for standalone mode, the replicas is 1, for raftGroup mode, the default replicas is 3. If the rendered component has instance templates, this must equal the sum of all template replica counts in the complete instanceTemplates list.
30079
+ instanceTemplates:
30080
+ type: array
30081
+ minItems: 1
30082
+ description: Per-template replicas and optional overlays (env, annotations, labels). Required when the chart renders instance templates. Names must exactly match all chart-rendered instances, without missing, extra, or duplicate names; order does not matter. Component replicas must equal the sum of all requested instance template replica counts.
30083
+ items:
30084
+ $ref: '#/components/schemas/instanceTemplateCreate'
29999
30085
  skipResourceConstraints:
30000
30086
  type: boolean
30001
30087
  description: Whether to skip resource constraint validation when creating cluster
@@ -30289,6 +30375,10 @@ components:
30289
30375
  networkMode:
30290
30376
  description: Specify the network mode for intra-cluster communication
30291
30377
  $ref: '#/components/schemas/networkMode'
30378
+ vipPoolName:
30379
+ title: VIP Pool Name
30380
+ description: Name of the VIP Pool (VIP Pool poolName) used as the MetalLB address pool for LoadBalancer services. Only effective when networkMode is LoadBalancer.
30381
+ type: string
30292
30382
  serviceRefs:
30293
30383
  type: array
30294
30384
  items:
@@ -31407,8 +31497,23 @@ components:
31407
31497
  x-nullable: true
31408
31498
  required:
31409
31499
  - type
31500
+ instanceTemplateReplicas:
31501
+ type: object
31502
+ description: HScale assignment for one instance template. name and replicas only.
31503
+ required:
31504
+ - name
31505
+ - replicas
31506
+ properties:
31507
+ name:
31508
+ type: string
31509
+ minLength: 1
31510
+ description: Instance template name on the live Cluster spec.
31511
+ replicas:
31512
+ type: integer
31513
+ minimum: 0
31514
+ description: Target replica count for this instance template.
31410
31515
  opsHScale:
31411
- description: OpsHScale is the payload to horizontally scale a KubeBlocks cluster. It requires specifying either the number of replicas or the number of shards.
31516
+ description: OpsHScale is the payload to horizontally scale a KubeBlocks cluster. Specify replicas or shards. instanceTemplates is an optional overlay and requires top-level replicas.
31412
31517
  required:
31413
31518
  - component
31414
31519
  properties:
@@ -31424,6 +31529,12 @@ components:
31424
31529
  description: number of replicas
31425
31530
  type: integer
31426
31531
  nullable: true
31532
+ instanceTemplates:
31533
+ type: array
31534
+ minItems: 1
31535
+ description: Target replica count for named instance templates. Requires top-level replicas. Mapped onto the live Cluster spec to build scaleIn/scaleOut.instances. Required for replica scaling when the live component has instance templates. Names must exactly match all live instance templates, without missing, extra, or duplicate names; order does not matter. Top-level replicas must equal the sum of all requested template replica counts. Shard-count scaling does not check templates and cannot include this list.
31536
+ items:
31537
+ $ref: '#/components/schemas/instanceTemplateReplicas'
31427
31538
  onlineInstancesToOffline:
31428
31539
  type: array
31429
31540
  items:
@@ -35472,7 +35583,7 @@ components:
35472
35583
  description: memory size
35473
35584
  type: string
35474
35585
  classCode:
35475
- description: class code of the cluster
35586
+ description: Class code for component-level vertical scaling.
35476
35587
  type: string
35477
35588
  schedule:
35478
35589
  $ref: '#/components/schemas/taskSchedule'
@@ -37078,6 +37189,14 @@ components:
37078
37189
  description: ID of VIP Pool
37079
37190
  title: ID
37080
37191
  type: string
37192
+ name:
37193
+ description: Name of VIP Pool. It is the MetalLB IPAddressPool resource name, generated as kb-<id>.
37194
+ title: Name
37195
+ type: string
37196
+ poolName:
37197
+ description: User facing name of the VIP Pool, used to select the pool when creating a cluster. It falls back to the IPAddressPool resource name.
37198
+ title: Pool Name
37199
+ type: string
37081
37200
  total:
37082
37201
  description: Total number of IP addresses
37083
37202
  format: int64
@@ -37114,6 +37233,21 @@ components:
37114
37233
  type: object
37115
37234
  vipPoolCreate:
37116
37235
  description: VIP Pool create
37236
+ properties:
37237
+ addresses:
37238
+ description: IP Addresses
37239
+ title: IP Addresses
37240
+ type: string
37241
+ poolName:
37242
+ description: Name of the VIP Pool. It is what a cluster selects the pool by, so it is not restricted by Kubernetes resource naming rules. The MetalLB IPAddressPool resource name stays the generated kb-<id>.
37243
+ title: Pool Name
37244
+ type: string
37245
+ required:
37246
+ - addresses
37247
+ - poolName
37248
+ type: object
37249
+ vipPoolUpdate:
37250
+ description: VIP Pool update
37117
37251
  properties:
37118
37252
  addresses:
37119
37253
  description: IP Addresses
@@ -39150,6 +39284,39 @@ components:
39150
39284
  enum:
39151
39285
  - '0.9'
39152
39286
  - '1.0'
39287
+ instanceTemplateOp:
39288
+ type: string
39289
+ description: Operation that can be declared on instanceTemplate.ops.
39290
+ enum:
39291
+ - hscale
39292
+ - vscale
39293
+ instanceTemplateAttribute:
39294
+ type: string
39295
+ description: Heterogeneous attribute the frontend may render on an instance template at create.
39296
+ enum:
39297
+ - env
39298
+ - annotations
39299
+ - labels
39300
+ instanceTemplateEnv:
39301
+ type: object
39302
+ description: One fillable env var on an instance template, for frontend rendering.
39303
+ required:
39304
+ - name
39305
+ properties:
39306
+ name:
39307
+ type: string
39308
+ minLength: 1
39309
+ description: Env var name written to the instance template.
39310
+ label:
39311
+ $ref: '#/components/schemas/localizedDescription'
39312
+ description:
39313
+ $ref: '#/components/schemas/localizedDescription'
39314
+ required:
39315
+ type: boolean
39316
+ description: If true, the frontend should treat this env as required. Create does not re-check.
39317
+ default:
39318
+ type: string
39319
+ description: Default value shown by the frontend.
39153
39320
  modeReadonlyEndpoint:
39154
39321
  type: object
39155
39322
  required:
@@ -39171,6 +39338,64 @@ components:
39171
39338
  type: boolean
39172
39339
  hideOnCreate:
39173
39340
  type: boolean
39341
+ instanceTemplate:
39342
+ type: object
39343
+ description: |
39344
+ Frontend catalog of instance templates for this mode component.
39345
+ names, ops, attributes, and env are for UI rendering. Create
39346
+ validates the request against chart-rendered Cluster instances,
39347
+ not this catalog. HScale does not re-check this catalog; it
39348
+ builds the OpsRequest from the request and the live Cluster.
39349
+ HScale instanceTemplates still requires top-level replicas.
39350
+ ops lists hscale and vscale for the UI (vscale is reserved;
39351
+ class stays component-level). Only HScale processes instance templates.
39352
+ VolumeExpansion, VScale, Upgrade, Restart, and other operations silently
39353
+ ignore instance templates and keep their component-level behavior.
39354
+ Template-level volumeexpansion is not implemented.
39355
+ The platform does not even-split or fill in missing templates.
39356
+ When absent, the frontend should use component-level operations.
39357
+ required:
39358
+ - names
39359
+ - ops
39360
+ properties:
39361
+ names:
39362
+ type: array
39363
+ minItems: 1
39364
+ uniqueItems: true
39365
+ items:
39366
+ type: string
39367
+ description: |
39368
+ Instance template names the frontend should render.
39369
+ Create and hscale check names against the chart or live Cluster,
39370
+ not this list.
39371
+ ops:
39372
+ type: array
39373
+ minItems: 1
39374
+ items:
39375
+ $ref: '#/components/schemas/instanceTemplateOp'
39376
+ description: |
39377
+ Operations the frontend should offer per template: hscale, vscale.
39378
+ Not re-checked when creating a cluster or building an hscale OpsRequest.
39379
+ Only hscale currently acts per template; vscale is reserved.
39380
+ VolumeExpansion, VScale, Upgrade, and Restart ignore instance templates
39381
+ and keep their component-level behavior.
39382
+ attributes:
39383
+ type: array
39384
+ uniqueItems: true
39385
+ items:
39386
+ $ref: '#/components/schemas/instanceTemplateAttribute'
39387
+ description: |
39388
+ Heterogeneous attributes the frontend should render on each
39389
+ instance template at create. Omitted or empty means only name
39390
+ and replicas. Create overlays the request onto the chart and
39391
+ does not re-check this list.
39392
+ env:
39393
+ type: array
39394
+ description: |
39395
+ Env vars the frontend may render when attributes includes env.
39396
+ Create does not re-check this list.
39397
+ items:
39398
+ $ref: '#/components/schemas/instanceTemplateEnv'
39174
39399
  serviceRef:
39175
39400
  type: string
39176
39401
  description: |
@@ -605,6 +605,12 @@ models/instance-metrics-list.ts
605
605
  models/instance-metrics.ts
606
606
  models/instance-status.ts
607
607
  models/instance-storage-item.ts
608
+ models/instance-template-attribute.ts
609
+ models/instance-template-create-env-inner.ts
610
+ models/instance-template-create.ts
611
+ models/instance-template-env.ts
612
+ models/instance-template-op.ts
613
+ models/instance-template-replicas.ts
608
614
  models/instance.ts
609
615
  models/integer-option.ts
610
616
  models/international-desc.ts
@@ -667,6 +673,7 @@ models/milvus-role-list.ts
667
673
  models/milvus-role-request.ts
668
674
  models/milvus-role.ts
669
675
  models/mode-compatible-kubeblocks-version.ts
676
+ models/mode-component-instance-template.ts
670
677
  models/mode-component.ts
671
678
  models/mode-object-storage-additional-helm-value-path.ts
672
679
  models/mode-object-storage-service-ref.ts
@@ -191,6 +191,12 @@ export interface ClusterCreate {
191
191
  * @memberof ClusterCreate
192
192
  */
193
193
  'networkMode'?: NetworkMode;
194
+ /**
195
+ * Name of the VIP Pool (VIP Pool poolName) used as the MetalLB address pool for LoadBalancer services. Only effective when networkMode is LoadBalancer.
196
+ * @type {string}
197
+ * @memberof ClusterCreate
198
+ */
199
+ 'vipPoolName'?: string;
194
200
  /**
195
201
  *
196
202
  * @type {Array<ServiceRef>}
@@ -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
@@ -39,11 +42,17 @@ export interface ComponentItemCreate {
39
42
  */
40
43
  'compNum'?: number;
41
44
  /**
42
- * The number of replicas, for standalone mode, the replicas is 1, for raftGroup mode, the default replicas is 3.
45
+ * The number of replicas, for standalone mode, the replicas is 1, for raftGroup mode, the default replicas is 3. If the rendered component has instance templates, this must equal the sum of all template replica counts in the complete instanceTemplates list.
43
46
  * @type {number}
44
47
  * @memberof ComponentItemCreate
45
48
  */
46
49
  'replicas'?: number;
50
+ /**
51
+ * Per-template replicas and optional overlays (env, annotations, labels). Required when the chart renders instance templates. Names must exactly match all chart-rendered instances, without missing, extra, or duplicate names; order does not matter. Component replicas must equal the sum of all requested instance template replica counts.
52
+ * @type {Array<InstanceTemplateCreate>}
53
+ * @memberof ComponentItemCreate
54
+ */
55
+ 'instanceTemplates'?: Array<InstanceTemplateCreate>;
47
56
  /**
48
57
  * Whether to skip resource constraint validation when creating cluster
49
58
  * @type {boolean}