@controlplane/schema 1.0.5 → 1.0.7
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 +56 -14
- 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 +173 -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/org.d.ts +3 -1
- package/build/src/interfaces/orgLogging.d.ts +7 -0
- package/build/src/interfaces/volumeSet.d.ts +8 -0
- package/build/src/interfaces/workload.d.ts +79 -14
- 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
|
+
|
|
@@ -36,6 +36,9 @@ export interface RunCronWorkloadSpec {
|
|
|
36
36
|
}
|
|
37
37
|
export interface RunCronWorkloadStatus {
|
|
38
38
|
replica?: string;
|
|
39
|
+
clusterIdByLocation?: {
|
|
40
|
+
[x: string]: string;
|
|
41
|
+
};
|
|
39
42
|
minimumWorkloadVersion?: number;
|
|
40
43
|
}
|
|
41
44
|
export interface StopReplicaSpec {
|
|
@@ -44,6 +47,9 @@ export interface StopReplicaSpec {
|
|
|
44
47
|
}
|
|
45
48
|
export interface StopReplicaStatus {
|
|
46
49
|
clusterId?: string;
|
|
50
|
+
clusterIdByLocation?: {
|
|
51
|
+
[x: string]: string;
|
|
52
|
+
};
|
|
47
53
|
podCreatedByCommandLink?: string;
|
|
48
54
|
podId: string;
|
|
49
55
|
}
|
|
@@ -52,14 +58,18 @@ export interface ReplaceVolumeSpec {
|
|
|
52
58
|
volumeIndex: number;
|
|
53
59
|
}
|
|
54
60
|
export interface RestoreVolumeSpec {
|
|
55
|
-
location: string;
|
|
56
61
|
volumeIndex: number;
|
|
62
|
+
location: string;
|
|
57
63
|
snapshotName: string;
|
|
64
|
+
zone?: string;
|
|
58
65
|
}
|
|
59
66
|
export interface ReplaceVolumeStatus {
|
|
60
67
|
stage: 'create-volume' | 'cleanup-after-volume-creation' | 'update-volume-set' | 'configure-storage-resources' | 'remove-finalizer' | 'shutdown-replica' | 'await-replica-termination' | 'cleanup-k8s' | 'fail' | 'revert' | 'cleanup-old-storage-device' | 'restart-replica';
|
|
61
68
|
messages?: string[];
|
|
62
69
|
clusterId?: string;
|
|
70
|
+
clusterIdByLocation?: {
|
|
71
|
+
[x: string]: string;
|
|
72
|
+
};
|
|
63
73
|
inUseByWorkloadId?: string;
|
|
64
74
|
storageDeviceIdToRemove?: string;
|
|
65
75
|
newStorageDeviceId?: string;
|
|
@@ -82,6 +92,9 @@ export interface CreateVolumeSnapshotStatus {
|
|
|
82
92
|
stage: 'create-snapshot' | 'update-volume-set' | 'cleanup-k8s' | 'revert';
|
|
83
93
|
messages?: string[];
|
|
84
94
|
clusterId?: string;
|
|
95
|
+
clusterIdByLocation?: {
|
|
96
|
+
[x: string]: string;
|
|
97
|
+
};
|
|
85
98
|
newSnapshotId?: string;
|
|
86
99
|
newSnapshotSize?: number;
|
|
87
100
|
creationStartTime?: Date;
|
|
@@ -90,9 +103,13 @@ export interface ExpandVolumeSpec {
|
|
|
90
103
|
location: string;
|
|
91
104
|
volumeIndex: number;
|
|
92
105
|
newStorageCapacity: number;
|
|
106
|
+
timeoutSeconds?: number;
|
|
93
107
|
}
|
|
94
108
|
export interface ExpandVolumeStatus {
|
|
95
109
|
clusterId?: string;
|
|
110
|
+
clusterIdByLocation?: {
|
|
111
|
+
[x: string]: string;
|
|
112
|
+
};
|
|
96
113
|
messages?: string[];
|
|
97
114
|
stage: 'expand-volume' | 'delete-stateful-set' | 'await-replica-termination' | 'await-expansion-completed' | 'update-volume-set' | 'recreate-replica' | 'cleanup-k8s' | 'revert';
|
|
98
115
|
replicaRestartedAt?: Date;
|
|
@@ -102,19 +119,52 @@ export interface DeleteVolumeSpec {
|
|
|
102
119
|
location: string;
|
|
103
120
|
volumeIndex: number;
|
|
104
121
|
}
|
|
122
|
+
export interface DeleteOrphanedVolumeSpec {
|
|
123
|
+
location: string;
|
|
124
|
+
storageDeviceId: string;
|
|
125
|
+
volumeIndex: number;
|
|
126
|
+
newlyObservedStorageDeviceId?: string;
|
|
127
|
+
}
|
|
105
128
|
export interface DeleteVolumeStatus {
|
|
106
129
|
stage: 'update-volume-set' | 'delete-storage-resources' | 'shutdown-replica' | 'await-replica-termination' | 'fail' | 'cleanup-k8s';
|
|
107
130
|
clusterId?: string;
|
|
131
|
+
clusterIdByLocation?: {
|
|
132
|
+
[x: string]: string;
|
|
133
|
+
};
|
|
108
134
|
messages?: string[];
|
|
109
135
|
inUseByWorkloadId?: string;
|
|
110
136
|
storageDeviceIdToRemove?: string;
|
|
111
137
|
}
|
|
138
|
+
export interface DeleteOrphanedVolumeStatus {
|
|
139
|
+
stage: 'delete-storage-resources' | 'cleanup-k8s' | 'update-volume-set' | 'fail';
|
|
140
|
+
clusterId?: string;
|
|
141
|
+
clusterIdByLocation?: {
|
|
142
|
+
[x: string]: string;
|
|
143
|
+
};
|
|
144
|
+
messages?: string[];
|
|
145
|
+
}
|
|
146
|
+
export interface DeleteOrphanedVolumeSnapshotSpec {
|
|
147
|
+
location: string;
|
|
148
|
+
snapshotId: string;
|
|
149
|
+
volumeIndex: number;
|
|
150
|
+
}
|
|
151
|
+
export interface DeleteOrphanedVolumeSnapshotStatus {
|
|
152
|
+
stage: 'delete-snapshot' | 'update-volume-set' | 'fail';
|
|
153
|
+
clusterId?: string;
|
|
154
|
+
clusterIdByLocation?: {
|
|
155
|
+
[x: string]: string;
|
|
156
|
+
};
|
|
157
|
+
messages?: string[];
|
|
158
|
+
}
|
|
112
159
|
export interface SnapshotDeletionStatus {
|
|
113
160
|
stage?: 'pending' | 'k8s-resources-created' | 'deleted';
|
|
114
161
|
messages?: string[];
|
|
115
162
|
}
|
|
116
163
|
export interface DeleteCloudDevicesStatus {
|
|
117
164
|
clusterId?: string;
|
|
165
|
+
clusterIdByLocation?: {
|
|
166
|
+
[x: string]: string;
|
|
167
|
+
};
|
|
118
168
|
volume: {
|
|
119
169
|
lifecycle?: 'creating' | 'unused' | 'unbound' | 'bound' | 'deleted' | 'repairing';
|
|
120
170
|
storageDeviceId?: string;
|
|
@@ -149,6 +199,9 @@ export interface DeleteVolumeSnapshotSpec {
|
|
|
149
199
|
}
|
|
150
200
|
export interface DeleteVolumeSnapshotStatus {
|
|
151
201
|
clusterId?: string;
|
|
202
|
+
clusterIdByLocation?: {
|
|
203
|
+
[x: string]: string;
|
|
204
|
+
};
|
|
152
205
|
snapshot: {
|
|
153
206
|
name: string;
|
|
154
207
|
id?: string;
|
|
@@ -161,6 +214,7 @@ export interface DeleteVolumeSnapshotStatus {
|
|
|
161
214
|
};
|
|
162
215
|
stage: 'delete-snapshot' | 'update-volume-set';
|
|
163
216
|
messages?: string[];
|
|
217
|
+
snapshotId?: string;
|
|
164
218
|
}
|
|
165
219
|
export interface Cluster {
|
|
166
220
|
clusterId?: string;
|
|
@@ -184,6 +238,7 @@ export interface DeleteVolumeSetSpec {
|
|
|
184
238
|
status?: VolumeSetStatus;
|
|
185
239
|
gvc?: any;
|
|
186
240
|
};
|
|
241
|
+
locations?: string[];
|
|
187
242
|
}
|
|
188
243
|
export interface DeleteVolumeSetLocationStatus {
|
|
189
244
|
stage: 'delete-volumes' | 'delete-orphaned-volumes' | 'cleanup-filesystem' | 'complete';
|
|
@@ -194,16 +249,3 @@ export interface DeleteVolumeSetLocationStatus {
|
|
|
194
249
|
export interface DeleteVolumeSetStatus {
|
|
195
250
|
[x: string]: DeleteVolumeSetLocationStatus;
|
|
196
251
|
}
|
|
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,175 @@ export interface AwsELBAddonConfig {
|
|
|
77
78
|
export interface AzureACRAddonConfig {
|
|
78
79
|
clientId: string;
|
|
79
80
|
}
|
|
81
|
+
export interface HttpHeaderValue {
|
|
82
|
+
values?: string[];
|
|
83
|
+
secrets?: string[];
|
|
84
|
+
files?: string[];
|
|
85
|
+
}
|
|
86
|
+
export interface ByokAddonConfig {
|
|
87
|
+
ignoreUpdates?: boolean;
|
|
88
|
+
location: string;
|
|
89
|
+
config?: {
|
|
90
|
+
actuator?: {
|
|
91
|
+
minCpu?: Cpu;
|
|
92
|
+
maxCpu?: Cpu;
|
|
93
|
+
minMemory?: Memory;
|
|
94
|
+
maxMemory?: Memory;
|
|
95
|
+
logLevel?: 'trace' | 'info' | 'error';
|
|
96
|
+
env?: {
|
|
97
|
+
[x: string]: string;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
middlebox?: {
|
|
101
|
+
enabled?: boolean;
|
|
102
|
+
bandwidthAlertMbps?: number;
|
|
103
|
+
port?: number;
|
|
104
|
+
ip?: string;
|
|
105
|
+
};
|
|
106
|
+
common?: {
|
|
107
|
+
deploymentReplicas?: number;
|
|
108
|
+
pdb?: {
|
|
109
|
+
maxUnavailable?: number;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
longhorn?: {
|
|
113
|
+
numberOfReplicas?: number;
|
|
114
|
+
replicas?: number;
|
|
115
|
+
isDefault?: boolean;
|
|
116
|
+
};
|
|
117
|
+
byok?: {
|
|
118
|
+
noDefaultStorageClasses?: boolean;
|
|
119
|
+
};
|
|
120
|
+
ingress?: {
|
|
121
|
+
cpu?: Cpu;
|
|
122
|
+
memory?: Memory;
|
|
123
|
+
targetPercent?: number;
|
|
124
|
+
};
|
|
125
|
+
istio?: {
|
|
126
|
+
istiod?: {
|
|
127
|
+
replicas?: number;
|
|
128
|
+
minCpu?: Cpu;
|
|
129
|
+
maxCpu?: Cpu;
|
|
130
|
+
minMemory?: Memory;
|
|
131
|
+
maxMemory?: Memory;
|
|
132
|
+
pdb?: number;
|
|
133
|
+
};
|
|
134
|
+
ingressgateway?: {
|
|
135
|
+
replicas?: number;
|
|
136
|
+
maxCpu?: Cpu;
|
|
137
|
+
maxMemory?: Memory;
|
|
138
|
+
};
|
|
139
|
+
sidecar?: {
|
|
140
|
+
minCpu?: Cpu;
|
|
141
|
+
minMemory?: Memory;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
logSplitter?: {
|
|
145
|
+
minCpu?: Cpu;
|
|
146
|
+
maxCpu?: Cpu;
|
|
147
|
+
minMemory?: Memory;
|
|
148
|
+
maxMemory?: Memory;
|
|
149
|
+
memBufferSize?: string;
|
|
150
|
+
perPodRate?: number;
|
|
151
|
+
};
|
|
152
|
+
monitoring?: {
|
|
153
|
+
minMemory?: Memory;
|
|
154
|
+
maxMemory?: Memory;
|
|
155
|
+
kubeStateMetrics?: {
|
|
156
|
+
minMemory?: Memory;
|
|
157
|
+
};
|
|
158
|
+
prometheus?: {
|
|
159
|
+
main?: {
|
|
160
|
+
storage?: Memory;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
remoteWrite?: {
|
|
164
|
+
basic_auth?: {
|
|
165
|
+
username?: string;
|
|
166
|
+
username_file?: string;
|
|
167
|
+
password?: string;
|
|
168
|
+
password_file?: string;
|
|
169
|
+
};
|
|
170
|
+
authorization?: {
|
|
171
|
+
type?: string;
|
|
172
|
+
credentials?: string;
|
|
173
|
+
credentials_file?: string;
|
|
174
|
+
};
|
|
175
|
+
oauth2?: {
|
|
176
|
+
[x: string]: any;
|
|
177
|
+
};
|
|
178
|
+
follow_redirects?: boolean;
|
|
179
|
+
enable_http2?: boolean;
|
|
180
|
+
tls_config?: {
|
|
181
|
+
[x: string]: any;
|
|
182
|
+
};
|
|
183
|
+
proxy_url?: string;
|
|
184
|
+
no_proxy?: string;
|
|
185
|
+
proxy_from_environment?: boolean;
|
|
186
|
+
proxy_connect_header?: {
|
|
187
|
+
[x: string]: string[];
|
|
188
|
+
};
|
|
189
|
+
http_headers?: {
|
|
190
|
+
[x: string]: HttpHeaderValue;
|
|
191
|
+
};
|
|
192
|
+
url?: string;
|
|
193
|
+
remote_timeout?: string;
|
|
194
|
+
headers?: {
|
|
195
|
+
[x: string]: string;
|
|
196
|
+
};
|
|
197
|
+
write_relabel_configs?: {
|
|
198
|
+
[x: string]: any;
|
|
199
|
+
}[];
|
|
200
|
+
name?: string;
|
|
201
|
+
send_exemplars?: boolean;
|
|
202
|
+
send_native_histograms?: boolean;
|
|
203
|
+
sigv4?: {
|
|
204
|
+
[x: string]: any;
|
|
205
|
+
};
|
|
206
|
+
azuread?: {
|
|
207
|
+
[x: string]: any;
|
|
208
|
+
};
|
|
209
|
+
google_iam?: {
|
|
210
|
+
[x: string]: any;
|
|
211
|
+
};
|
|
212
|
+
queue_config?: {
|
|
213
|
+
[x: string]: any;
|
|
214
|
+
};
|
|
215
|
+
}[];
|
|
216
|
+
externalLabels?: {
|
|
217
|
+
[x: string]: string;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
redis?: {
|
|
221
|
+
minCpu?: Cpu;
|
|
222
|
+
maxCpu?: Cpu;
|
|
223
|
+
minMemory?: Memory;
|
|
224
|
+
maxMemory?: Memory;
|
|
225
|
+
storage?: Memory;
|
|
226
|
+
};
|
|
227
|
+
redisHa?: {
|
|
228
|
+
minCpu?: Cpu;
|
|
229
|
+
maxCpu?: Cpu;
|
|
230
|
+
minMemory?: Memory;
|
|
231
|
+
maxMemory?: Memory;
|
|
232
|
+
storage?: number;
|
|
233
|
+
};
|
|
234
|
+
redisSentinel?: {
|
|
235
|
+
minCpu?: Cpu;
|
|
236
|
+
maxCpu?: Cpu;
|
|
237
|
+
minMemory?: Memory;
|
|
238
|
+
maxMemory?: Memory;
|
|
239
|
+
storage?: number;
|
|
240
|
+
};
|
|
241
|
+
tempoAgent?: {
|
|
242
|
+
minCpu?: Cpu;
|
|
243
|
+
minMemory?: Memory;
|
|
244
|
+
};
|
|
245
|
+
internalDns?: {
|
|
246
|
+
minCpu?: Cpu;
|
|
247
|
+
maxCpu?: Cpu;
|
|
248
|
+
minMemory?: Memory;
|
|
249
|
+
maxMemory?: Memory;
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
}
|
|
@@ -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
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S3Logging, CoralogixLogging, DatadogLogging, LogzioLogging, ElasticLogging, CloudWatchLogging, FluentdLogging, StackdriverLogging, SyslogLogging } from './orgLogging';
|
|
1
|
+
import { S3Logging, CoralogixLogging, DatadogLogging, LogzioLogging, ElasticLogging, CloudWatchLogging, FluentdLogging, StackdriverLogging, SyslogLogging, OpenTelemetryLogging } from './orgLogging';
|
|
2
2
|
import { Tracing } from './tracing';
|
|
3
3
|
import { Kind, Tags, Links } from './base';
|
|
4
4
|
export interface OrgStatus {
|
|
@@ -36,6 +36,7 @@ export interface OrgSpec {
|
|
|
36
36
|
fluentd?: FluentdLogging;
|
|
37
37
|
stackdriver?: StackdriverLogging;
|
|
38
38
|
syslog?: SyslogLogging;
|
|
39
|
+
opentelemetry?: OpenTelemetryLogging;
|
|
39
40
|
};
|
|
40
41
|
extraLogging?: {
|
|
41
42
|
s3?: S3Logging;
|
|
@@ -47,6 +48,7 @@ export interface OrgSpec {
|
|
|
47
48
|
fluentd?: FluentdLogging;
|
|
48
49
|
stackdriver?: StackdriverLogging;
|
|
49
50
|
syslog?: SyslogLogging;
|
|
51
|
+
opentelemetry?: OpenTelemetryLogging;
|
|
50
52
|
}[];
|
|
51
53
|
tracing?: Tracing;
|
|
52
54
|
sessionTimeoutSeconds?: number;
|
|
@@ -15,6 +15,13 @@ export interface DatadogLogging {
|
|
|
15
15
|
host: 'http-intake.logs.datadoghq.com' | 'http-intake.logs.us3.datadoghq.com' | 'http-intake.logs.us5.datadoghq.com' | 'http-intake.logs.datadoghq.eu';
|
|
16
16
|
credentials: string;
|
|
17
17
|
}
|
|
18
|
+
export interface OpenTelemetryLogging {
|
|
19
|
+
endpoint: string;
|
|
20
|
+
headers?: {
|
|
21
|
+
[x: string]: string;
|
|
22
|
+
};
|
|
23
|
+
credentials?: string;
|
|
24
|
+
}
|
|
18
25
|
export interface LogzioLogging {
|
|
19
26
|
listenerHost: 'listener.logz.io' | 'listener-nl.logz.io';
|
|
20
27
|
credentials: string;
|
|
@@ -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,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Regex, Kind, Tags, Links } from './base';
|
|
2
2
|
import { EnvVar } from './env';
|
|
3
3
|
import { VolumeSpec } from './volumeSpec';
|
|
4
|
-
import { Regex, Kind, Tags, Links } from './base';
|
|
5
4
|
import { DefaultOptions, LocalOptions } from './workloadOptions';
|
|
6
|
-
import {
|
|
5
|
+
import { AccessLog } from './envoyAccessLog';
|
|
6
|
+
import { Cluster } from './envoyCluster';
|
|
7
|
+
import { ExcExtAuth, ExcludedRateLimit } from './envoyExcExtAuth';
|
|
8
|
+
import { HttpFilter } from './envoyHttp';
|
|
7
9
|
export type Memory = string;
|
|
8
10
|
export type Cpu = string;
|
|
9
11
|
export interface HealthCheckSpec {
|
|
@@ -11,7 +13,7 @@ export interface HealthCheckSpec {
|
|
|
11
13
|
command?: string[];
|
|
12
14
|
};
|
|
13
15
|
grpc?: {
|
|
14
|
-
port?:
|
|
16
|
+
port?: number;
|
|
15
17
|
};
|
|
16
18
|
tcpSocket?: {
|
|
17
19
|
port?: number;
|
|
@@ -47,6 +49,7 @@ export interface RolloutOptionsStateful {
|
|
|
47
49
|
}
|
|
48
50
|
export interface SecurityOptions {
|
|
49
51
|
filesystemGroupId?: number;
|
|
52
|
+
runAsUser?: number;
|
|
50
53
|
}
|
|
51
54
|
export interface GpuResource {
|
|
52
55
|
nvidia?: {
|
|
@@ -66,6 +69,7 @@ export interface ContainerSpec {
|
|
|
66
69
|
metrics?: {
|
|
67
70
|
port: number;
|
|
68
71
|
path: string;
|
|
72
|
+
dropMetrics?: Regex[];
|
|
69
73
|
};
|
|
70
74
|
port?: number;
|
|
71
75
|
ports?: ({
|
|
@@ -78,7 +82,7 @@ export interface ContainerSpec {
|
|
|
78
82
|
command?: string[];
|
|
79
83
|
};
|
|
80
84
|
grpc?: {
|
|
81
|
-
port?:
|
|
85
|
+
port?: number;
|
|
82
86
|
};
|
|
83
87
|
tcpSocket?: {
|
|
84
88
|
port?: number;
|
|
@@ -103,7 +107,7 @@ export interface ContainerSpec {
|
|
|
103
107
|
command?: string[];
|
|
104
108
|
};
|
|
105
109
|
grpc?: {
|
|
106
|
-
port?:
|
|
110
|
+
port?: number;
|
|
107
111
|
};
|
|
108
112
|
tcpSocket?: {
|
|
109
113
|
port?: number;
|
|
@@ -191,9 +195,24 @@ export interface WorkloadStatus {
|
|
|
191
195
|
canonicalEndpoint?: string;
|
|
192
196
|
endpoint?: string;
|
|
193
197
|
internalName?: string;
|
|
194
|
-
|
|
198
|
+
replicaInternalNames?: string[];
|
|
199
|
+
healthCheck?: {
|
|
200
|
+
active: boolean;
|
|
201
|
+
success?: boolean;
|
|
202
|
+
code?: number;
|
|
203
|
+
message?: string;
|
|
204
|
+
failures?: number;
|
|
205
|
+
successes?: number;
|
|
206
|
+
lastChecked?: Date;
|
|
207
|
+
};
|
|
195
208
|
currentReplicaCount?: number;
|
|
196
|
-
resolvedImages?:
|
|
209
|
+
resolvedImages?: {
|
|
210
|
+
resolvedForVersion?: number;
|
|
211
|
+
resolvedAt?: Date;
|
|
212
|
+
errorMessages?: string[];
|
|
213
|
+
nextRetryAt?: Date;
|
|
214
|
+
images?: ResolvedImage[];
|
|
215
|
+
};
|
|
197
216
|
loadBalancer?: LoadBalancerStatus[];
|
|
198
217
|
[x: string]: any;
|
|
199
218
|
}
|
|
@@ -225,7 +244,7 @@ export interface FirewallSpec {
|
|
|
225
244
|
export type ScheduleType = string;
|
|
226
245
|
export interface JobSpec {
|
|
227
246
|
schedule: ScheduleType;
|
|
228
|
-
concurrencyPolicy?: 'Forbid' | 'Replace';
|
|
247
|
+
concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
|
|
229
248
|
historyLimit?: number;
|
|
230
249
|
restartPolicy?: 'OnFailure' | 'Never';
|
|
231
250
|
activeDeadlineSeconds?: number;
|
|
@@ -291,18 +310,27 @@ export interface WorkloadSpec {
|
|
|
291
310
|
localOptions?: LocalOptions;
|
|
292
311
|
job?: {
|
|
293
312
|
schedule: ScheduleType;
|
|
294
|
-
concurrencyPolicy?: 'Forbid' | 'Replace';
|
|
313
|
+
concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
|
|
295
314
|
historyLimit?: number;
|
|
296
315
|
restartPolicy?: 'OnFailure' | 'Never';
|
|
297
316
|
activeDeadlineSeconds?: number;
|
|
298
317
|
};
|
|
299
318
|
sidecar?: {
|
|
300
|
-
envoy?:
|
|
319
|
+
envoy?: {
|
|
320
|
+
accessLog?: AccessLog[];
|
|
321
|
+
clusters?: Cluster[];
|
|
322
|
+
excludedExternalAuth?: ExcExtAuth[];
|
|
323
|
+
excludedRateLimit?: ExcludedRateLimit[];
|
|
324
|
+
http?: HttpFilter[];
|
|
325
|
+
network?: any[];
|
|
326
|
+
volumes?: VolumeSpec[];
|
|
327
|
+
};
|
|
301
328
|
};
|
|
302
329
|
supportDynamicTags?: boolean;
|
|
303
330
|
rolloutOptions?: any;
|
|
304
331
|
securityOptions?: {
|
|
305
332
|
filesystemGroupId?: number;
|
|
333
|
+
runAsUser?: number;
|
|
306
334
|
};
|
|
307
335
|
loadBalancer?: {
|
|
308
336
|
direct?: {
|
|
@@ -370,18 +398,27 @@ export interface Workload {
|
|
|
370
398
|
localOptions?: LocalOptions;
|
|
371
399
|
job?: {
|
|
372
400
|
schedule: ScheduleType;
|
|
373
|
-
concurrencyPolicy?: 'Forbid' | 'Replace';
|
|
401
|
+
concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
|
|
374
402
|
historyLimit?: number;
|
|
375
403
|
restartPolicy?: 'OnFailure' | 'Never';
|
|
376
404
|
activeDeadlineSeconds?: number;
|
|
377
405
|
};
|
|
378
406
|
sidecar?: {
|
|
379
|
-
envoy?:
|
|
407
|
+
envoy?: {
|
|
408
|
+
accessLog?: AccessLog[];
|
|
409
|
+
clusters?: Cluster[];
|
|
410
|
+
excludedExternalAuth?: ExcExtAuth[];
|
|
411
|
+
excludedRateLimit?: ExcludedRateLimit[];
|
|
412
|
+
http?: HttpFilter[];
|
|
413
|
+
network?: any[];
|
|
414
|
+
volumes?: VolumeSpec[];
|
|
415
|
+
};
|
|
380
416
|
};
|
|
381
417
|
supportDynamicTags?: boolean;
|
|
382
418
|
rolloutOptions?: any;
|
|
383
419
|
securityOptions?: {
|
|
384
420
|
filesystemGroupId?: number;
|
|
421
|
+
runAsUser?: number;
|
|
385
422
|
};
|
|
386
423
|
loadBalancer?: {
|
|
387
424
|
direct?: {
|
|
@@ -410,7 +447,32 @@ export interface Workload {
|
|
|
410
447
|
retryOn?: string[];
|
|
411
448
|
};
|
|
412
449
|
};
|
|
413
|
-
status?:
|
|
450
|
+
status?: {
|
|
451
|
+
parentId?: string;
|
|
452
|
+
canonicalEndpoint?: string;
|
|
453
|
+
endpoint?: string;
|
|
454
|
+
internalName?: string;
|
|
455
|
+
replicaInternalNames?: string[];
|
|
456
|
+
healthCheck?: {
|
|
457
|
+
active: boolean;
|
|
458
|
+
success?: boolean;
|
|
459
|
+
code?: number;
|
|
460
|
+
message?: string;
|
|
461
|
+
failures?: number;
|
|
462
|
+
successes?: number;
|
|
463
|
+
lastChecked?: Date;
|
|
464
|
+
};
|
|
465
|
+
currentReplicaCount?: number;
|
|
466
|
+
resolvedImages?: {
|
|
467
|
+
resolvedForVersion?: number;
|
|
468
|
+
resolvedAt?: Date;
|
|
469
|
+
errorMessages?: string[];
|
|
470
|
+
nextRetryAt?: Date;
|
|
471
|
+
images?: ResolvedImage[];
|
|
472
|
+
};
|
|
473
|
+
loadBalancer?: LoadBalancerStatus[];
|
|
474
|
+
[x: string]: any;
|
|
475
|
+
};
|
|
414
476
|
}
|
|
415
477
|
export interface PodZoneMap {
|
|
416
478
|
[x: string]: string;
|
|
@@ -427,6 +489,9 @@ export interface WorkloadConfig {
|
|
|
427
489
|
locationPodZoneMap?: {
|
|
428
490
|
[x: string]: PodZoneMap;
|
|
429
491
|
};
|
|
492
|
+
proxy?: {
|
|
493
|
+
minCpu?: number;
|
|
494
|
+
};
|
|
430
495
|
subsets?: {
|
|
431
496
|
enabled?: boolean;
|
|
432
497
|
};
|
|
@@ -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;
|