@controlplane/schema 1.0.5 → 1.0.6
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.
- package/LICENSE +21 -0
- package/README.md +2 -1
- package/build/src/interfaces/command.d.ts +23 -13
- package/build/src/interfaces/discovery.d.ts +2 -0
- package/build/src/interfaces/event.d.ts +2 -0
- package/build/src/interfaces/gvc.d.ts +40 -2
- package/build/src/interfaces/mk8s.d.ts +11 -3
- package/build/src/interfaces/mk8sAddons.d.ts +106 -0
- package/build/src/interfaces/mk8sAzure.d.ts +1 -1
- package/build/src/interfaces/mk8sCommon.d.ts +4 -4
- package/build/src/interfaces/mk8sGcp.d.ts +28 -17
- package/build/src/interfaces/mk8sTriton.d.ts +1 -0
- package/build/src/interfaces/volumeSet.d.ts +8 -0
- package/build/src/interfaces/workload.d.ts +9 -4
- package/build/src/interfaces/workloadOptions.d.ts +22 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Control Plane
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Control Plane Corp. Schema
|
|
1
|
+
# Control Plane Corp. TypeScript Schema
|
|
2
2
|
|
|
3
3
|
This is a collection of TypeScript interfaces designed to streamline and standardize the data structures used across projects that uses our [OpenAPI](https://console.cpln.io/openapi/core).
|
|
4
4
|
|
|
@@ -19,3 +19,4 @@ const example: Base = {
|
|
|
19
19
|
// ... your data
|
|
20
20
|
};
|
|
21
21
|
```
|
|
22
|
+
|
|
@@ -90,6 +90,7 @@ export interface ExpandVolumeSpec {
|
|
|
90
90
|
location: string;
|
|
91
91
|
volumeIndex: number;
|
|
92
92
|
newStorageCapacity: number;
|
|
93
|
+
timeoutSeconds?: number;
|
|
93
94
|
}
|
|
94
95
|
export interface ExpandVolumeStatus {
|
|
95
96
|
clusterId?: string;
|
|
@@ -102,6 +103,12 @@ export interface DeleteVolumeSpec {
|
|
|
102
103
|
location: string;
|
|
103
104
|
volumeIndex: number;
|
|
104
105
|
}
|
|
106
|
+
export interface DeleteOrphanedVolumeSpec {
|
|
107
|
+
location: string;
|
|
108
|
+
storageDeviceId: string;
|
|
109
|
+
volumeIndex: number;
|
|
110
|
+
newlyObservedStorageDeviceId?: string;
|
|
111
|
+
}
|
|
105
112
|
export interface DeleteVolumeStatus {
|
|
106
113
|
stage: 'update-volume-set' | 'delete-storage-resources' | 'shutdown-replica' | 'await-replica-termination' | 'fail' | 'cleanup-k8s';
|
|
107
114
|
clusterId?: string;
|
|
@@ -109,6 +116,21 @@ export interface DeleteVolumeStatus {
|
|
|
109
116
|
inUseByWorkloadId?: string;
|
|
110
117
|
storageDeviceIdToRemove?: string;
|
|
111
118
|
}
|
|
119
|
+
export interface DeleteOrphanedVolumeStatus {
|
|
120
|
+
stage: 'delete-storage-resources' | 'cleanup-k8s' | 'update-volume-set' | 'fail';
|
|
121
|
+
clusterId?: string;
|
|
122
|
+
messages?: string[];
|
|
123
|
+
}
|
|
124
|
+
export interface DeleteOrphanedVolumeSnapshotSpec {
|
|
125
|
+
location: string;
|
|
126
|
+
snapshotId: string;
|
|
127
|
+
volumeIndex: number;
|
|
128
|
+
}
|
|
129
|
+
export interface DeleteOrphanedVolumeSnapshotStatus {
|
|
130
|
+
stage: 'delete-snapshot' | 'update-volume-set' | 'fail';
|
|
131
|
+
clusterId?: string;
|
|
132
|
+
messages?: string[];
|
|
133
|
+
}
|
|
112
134
|
export interface SnapshotDeletionStatus {
|
|
113
135
|
stage?: 'pending' | 'k8s-resources-created' | 'deleted';
|
|
114
136
|
messages?: string[];
|
|
@@ -161,6 +183,7 @@ export interface DeleteVolumeSnapshotStatus {
|
|
|
161
183
|
};
|
|
162
184
|
stage: 'delete-snapshot' | 'update-volume-set';
|
|
163
185
|
messages?: string[];
|
|
186
|
+
snapshotId?: string;
|
|
164
187
|
}
|
|
165
188
|
export interface Cluster {
|
|
166
189
|
clusterId?: string;
|
|
@@ -194,16 +217,3 @@ export interface DeleteVolumeSetLocationStatus {
|
|
|
194
217
|
export interface DeleteVolumeSetStatus {
|
|
195
218
|
[x: string]: DeleteVolumeSetLocationStatus;
|
|
196
219
|
}
|
|
197
|
-
export interface DeleteOrphanedVolumeSpec {
|
|
198
|
-
storageDeviceId: string;
|
|
199
|
-
org: string;
|
|
200
|
-
gvc: string;
|
|
201
|
-
workloadName: string;
|
|
202
|
-
volumeSetUri: string;
|
|
203
|
-
driver: string;
|
|
204
|
-
}
|
|
205
|
-
export interface DeleteOrphanedVolumeStatus {
|
|
206
|
-
clusterId?: string;
|
|
207
|
-
stage?: 'create-deletion-records' | 'delete' | 'cleanup-k8s';
|
|
208
|
-
messages?: string[];
|
|
209
|
-
}
|
|
@@ -8,6 +8,7 @@ export interface Discovery {
|
|
|
8
8
|
audit?: string;
|
|
9
9
|
logs?: string;
|
|
10
10
|
metrics?: string;
|
|
11
|
+
"metrics-ng"?: string;
|
|
11
12
|
tracing?: string;
|
|
12
13
|
byok?: string;
|
|
13
14
|
metering?: string;
|
|
@@ -15,6 +16,7 @@ export interface Discovery {
|
|
|
15
16
|
grafana?: string;
|
|
16
17
|
"terraform-exporter"?: string;
|
|
17
18
|
"k8s-crd-exporter"?: string;
|
|
19
|
+
mcp?: string;
|
|
18
20
|
};
|
|
19
21
|
firebase?: {
|
|
20
22
|
apiKey?: string;
|
|
@@ -3,6 +3,7 @@ import { Tracing } from './tracing';
|
|
|
3
3
|
import { EnvoyFilters } from './envoy';
|
|
4
4
|
import { EnvVar } from './env';
|
|
5
5
|
import { Name, Kind, Tags, Links } from './base';
|
|
6
|
+
import { Memory } from './workload';
|
|
6
7
|
export interface GvcStatus {
|
|
7
8
|
[x: string]: any;
|
|
8
9
|
}
|
|
@@ -14,7 +15,7 @@ export interface GvcSpec {
|
|
|
14
15
|
staticPlacement?: StaticPlacement;
|
|
15
16
|
pullSecretLinks?: string[];
|
|
16
17
|
domain?: string;
|
|
17
|
-
endpointNamingFormat?: 'default' | 'org';
|
|
18
|
+
endpointNamingFormat?: 'default' | 'legacy' | 'org';
|
|
18
19
|
tracing?: Tracing;
|
|
19
20
|
sidecar?: {
|
|
20
21
|
envoy?: EnvoyFilters;
|
|
@@ -34,6 +35,11 @@ export interface GvcSpec {
|
|
|
34
35
|
};
|
|
35
36
|
ipSet?: string;
|
|
36
37
|
};
|
|
38
|
+
keda?: {
|
|
39
|
+
enabled?: boolean;
|
|
40
|
+
identityLink?: string;
|
|
41
|
+
secrets?: string[];
|
|
42
|
+
};
|
|
37
43
|
}
|
|
38
44
|
export interface Gvc {
|
|
39
45
|
id?: string;
|
|
@@ -49,6 +55,22 @@ export interface Gvc {
|
|
|
49
55
|
spec?: GvcSpec;
|
|
50
56
|
status?: GvcStatus;
|
|
51
57
|
}
|
|
58
|
+
export interface GvcLoadBalancerConfig {
|
|
59
|
+
minScale?: number;
|
|
60
|
+
maxScale?: number;
|
|
61
|
+
minCpu?: string;
|
|
62
|
+
minMemory?: string;
|
|
63
|
+
readinessProbe?: {
|
|
64
|
+
timeoutSeconds?: number;
|
|
65
|
+
failureThreshold?: number;
|
|
66
|
+
successThreshold?: number;
|
|
67
|
+
};
|
|
68
|
+
livenessProbe?: {
|
|
69
|
+
timeoutSeconds?: number;
|
|
70
|
+
failureThreshold?: number;
|
|
71
|
+
successThreshold?: number;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
52
74
|
export interface GvcConfig {
|
|
53
75
|
clusters?: {
|
|
54
76
|
[x: string]: {
|
|
@@ -61,11 +83,27 @@ export interface GvcConfig {
|
|
|
61
83
|
clusterId?: string;
|
|
62
84
|
};
|
|
63
85
|
};
|
|
86
|
+
proxy?: {
|
|
87
|
+
minCpu?: number;
|
|
88
|
+
};
|
|
64
89
|
loadBalancer?: {
|
|
65
90
|
minScale?: number;
|
|
91
|
+
maxScale?: number;
|
|
92
|
+
minCpu?: string;
|
|
93
|
+
minMemory?: string;
|
|
94
|
+
readinessProbe?: {
|
|
95
|
+
timeoutSeconds?: number;
|
|
96
|
+
failureThreshold?: number;
|
|
97
|
+
successThreshold?: number;
|
|
98
|
+
};
|
|
99
|
+
livenessProbe?: {
|
|
100
|
+
timeoutSeconds?: number;
|
|
101
|
+
failureThreshold?: number;
|
|
102
|
+
successThreshold?: number;
|
|
103
|
+
};
|
|
66
104
|
};
|
|
67
105
|
thinProvision?: number;
|
|
68
|
-
largeDiskSize?:
|
|
106
|
+
largeDiskSize?: Memory;
|
|
69
107
|
capacityAI?: {
|
|
70
108
|
memToCpuRatio?: number;
|
|
71
109
|
};
|
|
@@ -9,10 +9,11 @@ import { EphemeralProvider } from './mk8sEphemeral';
|
|
|
9
9
|
import { TritonProvider } from './mk8sTriton';
|
|
10
10
|
import { AzureProvider } from './mk8sAzure';
|
|
11
11
|
import { DigitalOceanProvider } from './mk8sDigitalOcean';
|
|
12
|
-
import {
|
|
12
|
+
import { GcpProvider } from './mk8sGcp';
|
|
13
|
+
import { NonCustomizableAddonConfig, AzureAddonConfig, MetricsAddonConfig, LogsAddonConfig, RegistryMirrorConfig, NvidiaAddonConfig, AwsEFSAddonConfig, AwsECRAddonConfig, AwsELBAddonConfig, AzureACRAddonConfig, ByokAddonConfig, DashboardAddonStatus, AwsWorkloadIdentityAddonStatus, MetricsAddonStatus, LogsAddonStatus, AwsTrustPolicyConfig } from './mk8sAddons';
|
|
13
14
|
import { Name, Kind, Tags, Links } from './base';
|
|
14
15
|
export interface Mk8sSpec {
|
|
15
|
-
version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.32.1';
|
|
16
|
+
version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.31.13' | '1.32.1' | '1.32.9' | '1.33.5' | '1.34.2';
|
|
16
17
|
firewall?: {
|
|
17
18
|
sourceCIDR: string;
|
|
18
19
|
description?: string;
|
|
@@ -29,9 +30,11 @@ export interface Mk8sSpec {
|
|
|
29
30
|
triton?: TritonProvider;
|
|
30
31
|
azure?: AzureProvider;
|
|
31
32
|
digitalocean?: DigitalOceanProvider;
|
|
33
|
+
gcp?: GcpProvider;
|
|
32
34
|
};
|
|
33
35
|
addOns?: {
|
|
34
36
|
dashboard?: NonCustomizableAddonConfig;
|
|
37
|
+
headlamp?: NonCustomizableAddonConfig;
|
|
35
38
|
azureWorkloadIdentity?: AzureAddonConfig;
|
|
36
39
|
awsWorkloadIdentity?: NonCustomizableAddonConfig;
|
|
37
40
|
localPathStorage?: NonCustomizableAddonConfig;
|
|
@@ -44,6 +47,7 @@ export interface Mk8sSpec {
|
|
|
44
47
|
awsELB?: AwsELBAddonConfig;
|
|
45
48
|
azureACR?: AzureACRAddonConfig;
|
|
46
49
|
sysbox?: NonCustomizableAddonConfig;
|
|
50
|
+
byok?: ByokAddonConfig;
|
|
47
51
|
};
|
|
48
52
|
}
|
|
49
53
|
export interface Mk8sStatus {
|
|
@@ -52,6 +56,7 @@ export interface Mk8sStatus {
|
|
|
52
56
|
homeLocation?: string;
|
|
53
57
|
addOns?: {
|
|
54
58
|
dashboard?: DashboardAddonStatus;
|
|
59
|
+
headlamp?: DashboardAddonStatus;
|
|
55
60
|
awsWorkloadIdentity?: AwsWorkloadIdentityAddonStatus;
|
|
56
61
|
metrics?: MetricsAddonStatus;
|
|
57
62
|
logs?: LogsAddonStatus;
|
|
@@ -71,7 +76,7 @@ export interface Mk8sCluster {
|
|
|
71
76
|
lastModified?: Date;
|
|
72
77
|
links?: Links;
|
|
73
78
|
spec: {
|
|
74
|
-
version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.32.1';
|
|
79
|
+
version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.31.13' | '1.32.1' | '1.32.9' | '1.33.5' | '1.34.2';
|
|
75
80
|
firewall?: {
|
|
76
81
|
sourceCIDR: string;
|
|
77
82
|
description?: string;
|
|
@@ -88,9 +93,11 @@ export interface Mk8sCluster {
|
|
|
88
93
|
triton?: TritonProvider;
|
|
89
94
|
azure?: AzureProvider;
|
|
90
95
|
digitalocean?: DigitalOceanProvider;
|
|
96
|
+
gcp?: GcpProvider;
|
|
91
97
|
};
|
|
92
98
|
addOns?: {
|
|
93
99
|
dashboard?: NonCustomizableAddonConfig;
|
|
100
|
+
headlamp?: NonCustomizableAddonConfig;
|
|
94
101
|
azureWorkloadIdentity?: AzureAddonConfig;
|
|
95
102
|
awsWorkloadIdentity?: NonCustomizableAddonConfig;
|
|
96
103
|
localPathStorage?: NonCustomizableAddonConfig;
|
|
@@ -103,6 +110,7 @@ export interface Mk8sCluster {
|
|
|
103
110
|
awsELB?: AwsELBAddonConfig;
|
|
104
111
|
azureACR?: AzureACRAddonConfig;
|
|
105
112
|
sysbox?: NonCustomizableAddonConfig;
|
|
113
|
+
byok?: ByokAddonConfig;
|
|
106
114
|
};
|
|
107
115
|
};
|
|
108
116
|
alias?: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Cpu, Memory } from './workload';
|
|
1
2
|
export type RegularExpression = string;
|
|
2
3
|
export interface FlexibleAddonConfig {
|
|
3
4
|
[x: string]: string;
|
|
@@ -77,3 +78,108 @@ export interface AwsELBAddonConfig {
|
|
|
77
78
|
export interface AzureACRAddonConfig {
|
|
78
79
|
clientId: string;
|
|
79
80
|
}
|
|
81
|
+
export interface ByokAddonConfig {
|
|
82
|
+
ignoreUpdates?: boolean;
|
|
83
|
+
location: string;
|
|
84
|
+
config?: {
|
|
85
|
+
actuator?: {
|
|
86
|
+
minCpu?: Cpu;
|
|
87
|
+
maxCpu?: Cpu;
|
|
88
|
+
minMemory?: Memory;
|
|
89
|
+
maxMemory?: Memory;
|
|
90
|
+
logLevel?: 'trace' | 'info' | 'error';
|
|
91
|
+
env?: {
|
|
92
|
+
[x: string]: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
middlebox?: {
|
|
96
|
+
enabled?: boolean;
|
|
97
|
+
bandwidthAlertMbps?: number;
|
|
98
|
+
};
|
|
99
|
+
common?: {
|
|
100
|
+
deploymentReplicas?: number;
|
|
101
|
+
pdb?: {
|
|
102
|
+
maxUnavailable?: number;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
longhorn?: {
|
|
106
|
+
replicas?: number;
|
|
107
|
+
};
|
|
108
|
+
ingress?: {
|
|
109
|
+
cpu?: Cpu;
|
|
110
|
+
memory?: Memory;
|
|
111
|
+
targetPercent?: number;
|
|
112
|
+
};
|
|
113
|
+
istio?: {
|
|
114
|
+
istiod?: {
|
|
115
|
+
replicas?: number;
|
|
116
|
+
minCpu?: Cpu;
|
|
117
|
+
maxCpu?: Cpu;
|
|
118
|
+
minMemory?: Memory;
|
|
119
|
+
maxMemory?: Memory;
|
|
120
|
+
pdb?: number;
|
|
121
|
+
};
|
|
122
|
+
ingressgateway?: {
|
|
123
|
+
replicas?: number;
|
|
124
|
+
maxCpu?: Cpu;
|
|
125
|
+
maxMemory?: Memory;
|
|
126
|
+
};
|
|
127
|
+
sidecar?: {
|
|
128
|
+
minCpu?: Cpu;
|
|
129
|
+
minMemory?: Memory;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
logSplitter?: {
|
|
133
|
+
minCpu?: Cpu;
|
|
134
|
+
maxCpu?: Cpu;
|
|
135
|
+
minMemory?: Memory;
|
|
136
|
+
maxMemory?: Memory;
|
|
137
|
+
memBufferSize?: string;
|
|
138
|
+
perPodRate?: number;
|
|
139
|
+
};
|
|
140
|
+
monitoring?: {
|
|
141
|
+
minMemory?: Memory;
|
|
142
|
+
maxMemory?: Memory;
|
|
143
|
+
kubeStateMetrics?: {
|
|
144
|
+
minMemory?: Memory;
|
|
145
|
+
};
|
|
146
|
+
prometheus?: {
|
|
147
|
+
main?: {
|
|
148
|
+
storage?: Memory;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
redis?: {
|
|
153
|
+
minCpu?: Cpu;
|
|
154
|
+
maxCpu?: Cpu;
|
|
155
|
+
minMemory?: Memory;
|
|
156
|
+
maxMemory?: Memory;
|
|
157
|
+
storage?: Memory;
|
|
158
|
+
};
|
|
159
|
+
redisHa?: {
|
|
160
|
+
minCpu?: Cpu;
|
|
161
|
+
maxCpu?: Cpu;
|
|
162
|
+
minMemory?: Memory;
|
|
163
|
+
maxMemory?: Memory;
|
|
164
|
+
storage?: number;
|
|
165
|
+
};
|
|
166
|
+
redisSentinel?: {
|
|
167
|
+
minCpu?: Cpu;
|
|
168
|
+
maxCpu?: Cpu;
|
|
169
|
+
minMemory?: Memory;
|
|
170
|
+
maxMemory?: Memory;
|
|
171
|
+
storage?: number;
|
|
172
|
+
};
|
|
173
|
+
tempoAgent?: {
|
|
174
|
+
minCpu?: Cpu;
|
|
175
|
+
minMemory?: Memory;
|
|
176
|
+
};
|
|
177
|
+
internalDns?: {
|
|
178
|
+
minCpu?: Cpu;
|
|
179
|
+
maxCpu?: Cpu;
|
|
180
|
+
minMemory?: Memory;
|
|
181
|
+
maxMemory?: Memory;
|
|
182
|
+
};
|
|
183
|
+
[x: string]: any;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
@@ -11,10 +11,10 @@ export type Taints = Taint[];
|
|
|
11
11
|
export type NodePoolName = string;
|
|
12
12
|
export type SshPublicKey = string;
|
|
13
13
|
export interface AutoscalerConfig {
|
|
14
|
-
expander
|
|
15
|
-
unneededTime
|
|
16
|
-
unreadyTime
|
|
17
|
-
utilizationThreshold
|
|
14
|
+
expander?: ('random' | 'most-pods' | 'least-waste' | 'price')[];
|
|
15
|
+
unneededTime?: string;
|
|
16
|
+
unreadyTime?: string;
|
|
17
|
+
utilizationThreshold?: number;
|
|
18
18
|
}
|
|
19
19
|
export interface UnmanagedPool {
|
|
20
20
|
name: string;
|
|
@@ -1,42 +1,53 @@
|
|
|
1
|
-
import { Labels, Taints, AutoscalerConfig } from './mk8sCommon';
|
|
1
|
+
import { Labels, Taints, PreInstallScript, AutoscalerConfig } from './mk8sCommon';
|
|
2
2
|
export interface Image {
|
|
3
|
-
recommended?: 'ubuntu-
|
|
3
|
+
recommended?: 'ubuntu/jammy-22.04' | 'ubuntu/noble-24.04' | 'debian/bookworm-12' | 'debian/trixie-13' | 'google/cos-stable';
|
|
4
|
+
family?: {
|
|
5
|
+
project: string;
|
|
6
|
+
family: string;
|
|
7
|
+
};
|
|
4
8
|
exact?: string;
|
|
5
9
|
}
|
|
6
10
|
export interface GcpPool {
|
|
7
11
|
name: string;
|
|
8
12
|
labels?: Labels;
|
|
9
13
|
taints?: Taints;
|
|
10
|
-
|
|
14
|
+
machineType: string;
|
|
15
|
+
assignPublicIP?: boolean;
|
|
16
|
+
zone: string;
|
|
11
17
|
overrideImage?: Image;
|
|
12
18
|
bootDiskSize: number;
|
|
13
19
|
minSize: number;
|
|
14
20
|
maxSize: number;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
extraSecurityGroupIds?: string[];
|
|
21
|
+
preemptible?: boolean;
|
|
22
|
+
subnet: string;
|
|
23
|
+
localPersistentDisks?: number;
|
|
19
24
|
}
|
|
20
25
|
export interface GcpProvider {
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
projectId: string;
|
|
27
|
+
region: string;
|
|
28
|
+
labels?: {
|
|
23
29
|
[x: string]: string;
|
|
24
30
|
};
|
|
25
|
-
|
|
31
|
+
tags?: string[];
|
|
32
|
+
metadata?: {
|
|
33
|
+
[x: string]: string;
|
|
34
|
+
};
|
|
35
|
+
network: string;
|
|
36
|
+
saKeyLink: string;
|
|
26
37
|
networking?: {
|
|
27
38
|
serviceNetwork?: '10.43.0.0/16' | '192.168.0.0/16';
|
|
28
39
|
podNetwork?: 'vpc' | '10.42.0.0/16' | '172.16.0.0/15' | '172.18.0.0/15' | '172.20.0.0/15' | '172.22.0.0/15' | '172.24.0.0/15' | '172.26.0.0/15' | '172.28.0.0/15' | '172.30.0.0/15';
|
|
40
|
+
dnsForwarder?: string;
|
|
29
41
|
};
|
|
30
|
-
preInstallScript?:
|
|
42
|
+
preInstallScript?: PreInstallScript;
|
|
31
43
|
image: {
|
|
32
|
-
recommended?: 'ubuntu-
|
|
44
|
+
recommended?: 'ubuntu/jammy-22.04' | 'ubuntu/noble-24.04' | 'debian/bookworm-12' | 'debian/trixie-13' | 'google/cos-stable';
|
|
45
|
+
family?: {
|
|
46
|
+
project: string;
|
|
47
|
+
family: string;
|
|
48
|
+
};
|
|
33
49
|
exact?: string;
|
|
34
50
|
};
|
|
35
|
-
deployServiceAccount: string;
|
|
36
|
-
vpcId: string;
|
|
37
|
-
projectId: string;
|
|
38
|
-
keyPair?: string;
|
|
39
|
-
diskEncryptionKey?: string;
|
|
40
51
|
nodePools?: GcpPool[];
|
|
41
52
|
autoscaler?: AutoscalerConfig;
|
|
42
53
|
}
|
|
@@ -63,11 +63,19 @@ export interface MountResources {
|
|
|
63
63
|
minMemory?: string;
|
|
64
64
|
maxMemory?: string;
|
|
65
65
|
}
|
|
66
|
+
export interface CustomEncryptionRegion {
|
|
67
|
+
keyId?: string;
|
|
68
|
+
}
|
|
66
69
|
export interface VolumeSetSpec {
|
|
67
70
|
initialCapacity: number;
|
|
68
71
|
performanceClass?: PerformanceClassName;
|
|
69
72
|
storageClassSuffix?: string;
|
|
70
73
|
fileSystemType?: FileSystemType;
|
|
74
|
+
customEncryption?: {
|
|
75
|
+
regions?: {
|
|
76
|
+
[x: string]: CustomEncryptionRegion;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
71
79
|
snapshots?: SnapshotSpec;
|
|
72
80
|
autoscaling?: {
|
|
73
81
|
maxCapacity?: number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Port } from './port';
|
|
2
|
+
import { Regex, Kind, Tags, Links } from './base';
|
|
2
3
|
import { EnvVar } from './env';
|
|
3
4
|
import { VolumeSpec } from './volumeSpec';
|
|
4
|
-
import { Regex, Kind, Tags, Links } from './base';
|
|
5
5
|
import { DefaultOptions, LocalOptions } from './workloadOptions';
|
|
6
6
|
import { EnvoyFilters } from './envoy';
|
|
7
7
|
export type Memory = string;
|
|
@@ -66,6 +66,7 @@ export interface ContainerSpec {
|
|
|
66
66
|
metrics?: {
|
|
67
67
|
port: number;
|
|
68
68
|
path: string;
|
|
69
|
+
dropMetrics?: Regex[];
|
|
69
70
|
};
|
|
70
71
|
port?: number;
|
|
71
72
|
ports?: ({
|
|
@@ -191,6 +192,7 @@ export interface WorkloadStatus {
|
|
|
191
192
|
canonicalEndpoint?: string;
|
|
192
193
|
endpoint?: string;
|
|
193
194
|
internalName?: string;
|
|
195
|
+
replicaInternalNames?: string[];
|
|
194
196
|
healthCheck?: HealthCheckStatus;
|
|
195
197
|
currentReplicaCount?: number;
|
|
196
198
|
resolvedImages?: ResolvedImages;
|
|
@@ -225,7 +227,7 @@ export interface FirewallSpec {
|
|
|
225
227
|
export type ScheduleType = string;
|
|
226
228
|
export interface JobSpec {
|
|
227
229
|
schedule: ScheduleType;
|
|
228
|
-
concurrencyPolicy?: 'Forbid' | 'Replace';
|
|
230
|
+
concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
|
|
229
231
|
historyLimit?: number;
|
|
230
232
|
restartPolicy?: 'OnFailure' | 'Never';
|
|
231
233
|
activeDeadlineSeconds?: number;
|
|
@@ -291,7 +293,7 @@ export interface WorkloadSpec {
|
|
|
291
293
|
localOptions?: LocalOptions;
|
|
292
294
|
job?: {
|
|
293
295
|
schedule: ScheduleType;
|
|
294
|
-
concurrencyPolicy?: 'Forbid' | 'Replace';
|
|
296
|
+
concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
|
|
295
297
|
historyLimit?: number;
|
|
296
298
|
restartPolicy?: 'OnFailure' | 'Never';
|
|
297
299
|
activeDeadlineSeconds?: number;
|
|
@@ -370,7 +372,7 @@ export interface Workload {
|
|
|
370
372
|
localOptions?: LocalOptions;
|
|
371
373
|
job?: {
|
|
372
374
|
schedule: ScheduleType;
|
|
373
|
-
concurrencyPolicy?: 'Forbid' | 'Replace';
|
|
375
|
+
concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
|
|
374
376
|
historyLimit?: number;
|
|
375
377
|
restartPolicy?: 'OnFailure' | 'Never';
|
|
376
378
|
activeDeadlineSeconds?: number;
|
|
@@ -427,6 +429,9 @@ export interface WorkloadConfig {
|
|
|
427
429
|
locationPodZoneMap?: {
|
|
428
430
|
[x: string]: PodZoneMap;
|
|
429
431
|
};
|
|
432
|
+
proxy?: {
|
|
433
|
+
minCpu?: number;
|
|
434
|
+
};
|
|
430
435
|
subsets?: {
|
|
431
436
|
enabled?: boolean;
|
|
432
437
|
};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export interface KedaTrigger {
|
|
2
2
|
type: string;
|
|
3
3
|
metadata?: {
|
|
4
|
-
[x: string]: string;
|
|
4
|
+
[x: string]: string | any;
|
|
5
5
|
};
|
|
6
6
|
name?: string;
|
|
7
7
|
useCachedMetrics?: boolean;
|
|
8
8
|
metricType?: 'AverageValue' | 'Value' | 'Utilization';
|
|
9
|
+
authenticationRef?: {
|
|
10
|
+
name: string;
|
|
11
|
+
};
|
|
9
12
|
}
|
|
10
13
|
export interface DefaultOptions {
|
|
11
14
|
autoscaling?: {
|
|
@@ -30,10 +33,19 @@ export interface DefaultOptions {
|
|
|
30
33
|
formula?: string;
|
|
31
34
|
};
|
|
32
35
|
};
|
|
36
|
+
fallback?: {
|
|
37
|
+
failureThreshold: number;
|
|
38
|
+
replicas: number;
|
|
39
|
+
behavior?: 'static' | 'currentReplicas' | 'currentReplicasIfHigher' | 'currentReplicasIfLower';
|
|
40
|
+
};
|
|
41
|
+
pollingInterval?: number;
|
|
42
|
+
cooldownPeriod?: number;
|
|
43
|
+
initialCooldownPeriod?: number;
|
|
33
44
|
};
|
|
34
45
|
};
|
|
35
46
|
timeoutSeconds?: number;
|
|
36
47
|
capacityAI?: boolean;
|
|
48
|
+
capacityAIUpdateMinutes?: number;
|
|
37
49
|
spot?: boolean;
|
|
38
50
|
debug?: boolean;
|
|
39
51
|
suspend?: boolean;
|
|
@@ -64,10 +76,19 @@ export type LocalOptions = ({
|
|
|
64
76
|
formula?: string;
|
|
65
77
|
};
|
|
66
78
|
};
|
|
79
|
+
fallback?: {
|
|
80
|
+
failureThreshold: number;
|
|
81
|
+
replicas: number;
|
|
82
|
+
behavior?: 'static' | 'currentReplicas' | 'currentReplicasIfHigher' | 'currentReplicasIfLower';
|
|
83
|
+
};
|
|
84
|
+
pollingInterval?: number;
|
|
85
|
+
cooldownPeriod?: number;
|
|
86
|
+
initialCooldownPeriod?: number;
|
|
67
87
|
};
|
|
68
88
|
};
|
|
69
89
|
timeoutSeconds?: number;
|
|
70
90
|
capacityAI?: boolean;
|
|
91
|
+
capacityAIUpdateMinutes?: number;
|
|
71
92
|
spot?: boolean;
|
|
72
93
|
debug?: boolean;
|
|
73
94
|
suspend?: boolean;
|