timonel 2.2.0 → 2.4.0
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/CHANGELOG.md +16 -0
- package/README.md +5 -1
- package/SECURITY.md +15 -8
- package/dist/cli.js +29 -31
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/helm.d.ts +200 -12
- package/dist/lib/helm.d.ts.map +1 -1
- package/dist/lib/helm.js +234 -13
- package/dist/lib/helm.js.map +1 -1
- package/dist/lib/helmChartWriter.d.ts +238 -0
- package/dist/lib/helmChartWriter.d.ts.map +1 -0
- package/dist/lib/helmChartWriter.js +318 -0
- package/dist/lib/helmChartWriter.js.map +1 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts +26 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts.map +1 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.js +35 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.js.map +1 -0
- package/dist/lib/resources/baseResourceProvider.d.ts +47 -0
- package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -0
- package/dist/lib/resources/baseResourceProvider.js +83 -0
- package/dist/lib/resources/baseResourceProvider.js.map +1 -0
- package/dist/lib/resources/cloud/aws/awsResources.d.ts +165 -0
- package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/aws/awsResources.js +187 -0
- package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -0
- package/dist/lib/resources/cloud/azure/azureResources.d.ts +169 -0
- package/dist/lib/resources/cloud/azure/azureResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/azure/azureResources.js +218 -0
- package/dist/lib/resources/cloud/azure/azureResources.js.map +1 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts +133 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.js +162 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.js.map +1 -0
- package/dist/lib/resources/core/coreResources.d.ts +584 -0
- package/dist/lib/resources/core/coreResources.d.ts.map +1 -0
- package/dist/lib/resources/core/coreResources.js +796 -0
- package/dist/lib/resources/core/coreResources.js.map +1 -0
- package/dist/lib/resources/core/storageResources.d.ts +133 -0
- package/dist/lib/resources/core/storageResources.d.ts.map +1 -0
- package/dist/lib/resources/core/storageResources.js +120 -0
- package/dist/lib/resources/core/storageResources.js.map +1 -0
- package/dist/lib/resources/validation/validationResources.d.ts +26 -0
- package/dist/lib/resources/validation/validationResources.d.ts.map +1 -0
- package/dist/lib/resources/validation/validationResources.js +33 -0
- package/dist/lib/resources/validation/validationResources.js.map +1 -0
- package/dist/lib/rutter.d.ts +554 -0
- package/dist/lib/rutter.d.ts.map +1 -0
- package/dist/lib/rutter.js +665 -0
- package/dist/lib/rutter.js.map +1 -0
- package/dist/lib/security.d.ts +73 -0
- package/dist/lib/security.d.ts.map +1 -0
- package/dist/lib/security.js +138 -0
- package/dist/lib/security.js.map +1 -0
- package/dist/lib/umbrella.d.ts +22 -2
- package/dist/lib/umbrella.d.ts.map +1 -1
- package/dist/lib/umbrella.js +21 -1
- package/dist/lib/umbrella.js.map +1 -1
- package/dist/lib/umbrellaRutter.d.ts +97 -0
- package/dist/lib/umbrellaRutter.d.ts.map +1 -0
- package/dist/lib/{UmbrellaRutter.js → umbrellaRutter.js} +72 -23
- package/dist/lib/umbrellaRutter.js.map +1 -0
- package/package.json +2 -1
- package/dist/lib/HelmChartWriter.d.ts +0 -69
- package/dist/lib/HelmChartWriter.d.ts.map +0 -1
- package/dist/lib/HelmChartWriter.js +0 -124
- package/dist/lib/HelmChartWriter.js.map +0 -1
- package/dist/lib/Rutter.d.ts +0 -1334
- package/dist/lib/Rutter.d.ts.map +0 -1
- package/dist/lib/Rutter.js +0 -2138
- package/dist/lib/Rutter.js.map +0 -1
- package/dist/lib/UmbrellaRutter.d.ts +0 -34
- package/dist/lib/UmbrellaRutter.d.ts.map +0 -1
- package/dist/lib/UmbrellaRutter.js.map +0 -1
package/dist/lib/Rutter.d.ts
DELETED
|
@@ -1,1334 +0,0 @@
|
|
|
1
|
-
import { ApiObject } from 'cdk8s';
|
|
2
|
-
import type { HelmChartMeta, HelperDefinition } from './HelmChartWriter.js';
|
|
3
|
-
export interface HttpHeader {
|
|
4
|
-
name: string;
|
|
5
|
-
value: string;
|
|
6
|
-
}
|
|
7
|
-
export interface HttpGetAction {
|
|
8
|
-
path?: string;
|
|
9
|
-
port: number | string;
|
|
10
|
-
scheme?: 'HTTP' | 'HTTPS';
|
|
11
|
-
httpHeaders?: HttpHeader[];
|
|
12
|
-
}
|
|
13
|
-
export interface ExecAction {
|
|
14
|
-
command: string[];
|
|
15
|
-
}
|
|
16
|
-
export interface TcpSocketAction {
|
|
17
|
-
port: number | string;
|
|
18
|
-
}
|
|
19
|
-
export interface Probe {
|
|
20
|
-
httpGet?: HttpGetAction;
|
|
21
|
-
exec?: ExecAction;
|
|
22
|
-
tcpSocket?: TcpSocketAction;
|
|
23
|
-
initialDelaySeconds?: number;
|
|
24
|
-
periodSeconds?: number;
|
|
25
|
-
timeoutSeconds?: number;
|
|
26
|
-
successThreshold?: number;
|
|
27
|
-
failureThreshold?: number;
|
|
28
|
-
}
|
|
29
|
-
export interface EnvFromSource {
|
|
30
|
-
configMapRef?: string;
|
|
31
|
-
secretRef?: string;
|
|
32
|
-
}
|
|
33
|
-
export interface VolumeSourceSpec {
|
|
34
|
-
name: string;
|
|
35
|
-
configMap?: string;
|
|
36
|
-
secret?: string;
|
|
37
|
-
persistentVolumeClaim?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface VolumeMountSpec {
|
|
40
|
-
name: string;
|
|
41
|
-
mountPath: string;
|
|
42
|
-
readOnly?: boolean;
|
|
43
|
-
subPath?: string;
|
|
44
|
-
}
|
|
45
|
-
export interface ResourceRequirements {
|
|
46
|
-
limits?: {
|
|
47
|
-
cpu?: string;
|
|
48
|
-
memory?: string;
|
|
49
|
-
};
|
|
50
|
-
requests?: {
|
|
51
|
-
cpu?: string;
|
|
52
|
-
memory?: string;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export type AccessMode = 'ReadWriteOnce' | 'ReadOnlyMany' | 'ReadWriteMany' | 'ReadWriteOncePod';
|
|
56
|
-
export type VolumeMode = 'Filesystem' | 'Block';
|
|
57
|
-
export type ReclaimPolicy = 'Retain' | 'Recycle' | 'Delete';
|
|
58
|
-
export interface CsiVolumeSource {
|
|
59
|
-
driver: string;
|
|
60
|
-
volumeHandle: string;
|
|
61
|
-
fsType?: string;
|
|
62
|
-
readOnly?: boolean;
|
|
63
|
-
volumeAttributes?: Record<string, string>;
|
|
64
|
-
controllerPublishSecretRef?: {
|
|
65
|
-
name: string;
|
|
66
|
-
namespace?: string;
|
|
67
|
-
};
|
|
68
|
-
nodeStageSecretRef?: {
|
|
69
|
-
name: string;
|
|
70
|
-
namespace?: string;
|
|
71
|
-
};
|
|
72
|
-
nodePublishSecretRef?: {
|
|
73
|
-
name: string;
|
|
74
|
-
namespace?: string;
|
|
75
|
-
};
|
|
76
|
-
controllerExpandSecretRef?: {
|
|
77
|
-
name: string;
|
|
78
|
-
namespace?: string;
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
export interface NfsVolumeSource {
|
|
82
|
-
server: string;
|
|
83
|
-
path: string;
|
|
84
|
-
readOnly?: boolean;
|
|
85
|
-
}
|
|
86
|
-
export interface AwsElasticBlockStoreSource {
|
|
87
|
-
volumeID: string;
|
|
88
|
-
fsType?: string;
|
|
89
|
-
partition?: number;
|
|
90
|
-
readOnly?: boolean;
|
|
91
|
-
}
|
|
92
|
-
export interface HostPathSource {
|
|
93
|
-
path: string;
|
|
94
|
-
type?: string;
|
|
95
|
-
}
|
|
96
|
-
export interface PersistentVolumeSourceSpec {
|
|
97
|
-
csi?: CsiVolumeSource;
|
|
98
|
-
nfs?: NfsVolumeSource;
|
|
99
|
-
awsElasticBlockStore?: AwsElasticBlockStoreSource;
|
|
100
|
-
hostPath?: HostPathSource;
|
|
101
|
-
azureDisk?: {
|
|
102
|
-
diskName: string;
|
|
103
|
-
diskURI: string;
|
|
104
|
-
cachingMode?: 'None' | 'ReadOnly' | 'ReadWrite';
|
|
105
|
-
fsType?: string;
|
|
106
|
-
readOnly?: boolean;
|
|
107
|
-
kind?: 'Shared' | 'Dedicated' | 'Managed';
|
|
108
|
-
};
|
|
109
|
-
azureFile?: {
|
|
110
|
-
secretName: string;
|
|
111
|
-
shareName: string;
|
|
112
|
-
readOnly?: boolean;
|
|
113
|
-
secretNamespace?: string;
|
|
114
|
-
};
|
|
115
|
-
gcePersistentDisk?: {
|
|
116
|
-
pdName: string;
|
|
117
|
-
fsType?: string;
|
|
118
|
-
partition?: number;
|
|
119
|
-
readOnly?: boolean;
|
|
120
|
-
};
|
|
121
|
-
[key: string]: unknown;
|
|
122
|
-
}
|
|
123
|
-
export interface PersistentVolumeSpec {
|
|
124
|
-
name: string;
|
|
125
|
-
capacity: string;
|
|
126
|
-
accessModes: AccessMode[];
|
|
127
|
-
storageClassName?: string;
|
|
128
|
-
volumeMode?: VolumeMode;
|
|
129
|
-
reclaimPolicy?: ReclaimPolicy;
|
|
130
|
-
mountOptions?: string[];
|
|
131
|
-
nodeAffinity?: Record<string, unknown>;
|
|
132
|
-
labels?: Record<string, string>;
|
|
133
|
-
annotations?: Record<string, string>;
|
|
134
|
-
source: PersistentVolumeSourceSpec;
|
|
135
|
-
/** Reference to related PVC for binding */
|
|
136
|
-
claimRef?: {
|
|
137
|
-
name: string;
|
|
138
|
-
namespace?: string;
|
|
139
|
-
};
|
|
140
|
-
/** Cloud provider for optimized defaults */
|
|
141
|
-
cloudProvider?: 'aws' | 'azure' | 'gcp';
|
|
142
|
-
}
|
|
143
|
-
export interface DeploymentSpec {
|
|
144
|
-
name: string;
|
|
145
|
-
image: string;
|
|
146
|
-
replicas?: number;
|
|
147
|
-
containerPort?: number;
|
|
148
|
-
env?: Record<string, string>;
|
|
149
|
-
envFrom?: EnvFromSource[];
|
|
150
|
-
volumes?: VolumeSourceSpec[];
|
|
151
|
-
volumeMounts?: VolumeMountSpec[];
|
|
152
|
-
resources?: ResourceRequirements;
|
|
153
|
-
livenessProbe?: Probe;
|
|
154
|
-
readinessProbe?: Probe;
|
|
155
|
-
imagePullPolicy?: 'Always' | 'IfNotPresent' | 'Never';
|
|
156
|
-
serviceAccountName?: string;
|
|
157
|
-
matchLabels?: Record<string, string>;
|
|
158
|
-
/** Optional extra labels on the Deployment metadata */
|
|
159
|
-
labels?: Record<string, string>;
|
|
160
|
-
/** Optional annotations on the Deployment metadata */
|
|
161
|
-
annotations?: Record<string, string>;
|
|
162
|
-
/** Optional extra labels on the pod template (merged with matchLabels) */
|
|
163
|
-
podLabels?: Record<string, string>;
|
|
164
|
-
/** Optional annotations on the pod template (useful for reloaders, etc.) */
|
|
165
|
-
podAnnotations?: Record<string, string>;
|
|
166
|
-
}
|
|
167
|
-
export interface ReplicaSetSpec {
|
|
168
|
-
name: string;
|
|
169
|
-
image: string;
|
|
170
|
-
replicas?: number;
|
|
171
|
-
containerPort?: number;
|
|
172
|
-
env?: Record<string, string>;
|
|
173
|
-
envFrom?: EnvFromSource[];
|
|
174
|
-
volumes?: VolumeSourceSpec[];
|
|
175
|
-
volumeMounts?: VolumeMountSpec[];
|
|
176
|
-
resources?: ResourceRequirements;
|
|
177
|
-
livenessProbe?: Probe;
|
|
178
|
-
readinessProbe?: Probe;
|
|
179
|
-
imagePullPolicy?: 'Always' | 'IfNotPresent' | 'Never';
|
|
180
|
-
serviceAccountName?: string;
|
|
181
|
-
matchLabels?: Record<string, string>;
|
|
182
|
-
/** Optional extra labels on the ReplicaSet metadata */
|
|
183
|
-
labels?: Record<string, string>;
|
|
184
|
-
/** Optional annotations on the ReplicaSet metadata */
|
|
185
|
-
annotations?: Record<string, string>;
|
|
186
|
-
/** Optional extra labels on the pod template (merged with matchLabels) */
|
|
187
|
-
podLabels?: Record<string, string>;
|
|
188
|
-
/** Optional annotations on the pod template (useful for reloaders, etc.) */
|
|
189
|
-
podAnnotations?: Record<string, string>;
|
|
190
|
-
}
|
|
191
|
-
export interface JobSpec {
|
|
192
|
-
name: string;
|
|
193
|
-
image: string;
|
|
194
|
-
command?: string[];
|
|
195
|
-
args?: string[];
|
|
196
|
-
env?: Record<string, string>;
|
|
197
|
-
envFrom?: EnvFromSource[];
|
|
198
|
-
volumes?: VolumeSourceSpec[];
|
|
199
|
-
volumeMounts?: VolumeMountSpec[];
|
|
200
|
-
resources?: ResourceRequirements;
|
|
201
|
-
restartPolicy?: 'Never' | 'OnFailure';
|
|
202
|
-
backoffLimit?: number;
|
|
203
|
-
activeDeadlineSeconds?: number;
|
|
204
|
-
ttlSecondsAfterFinished?: number;
|
|
205
|
-
completions?: number;
|
|
206
|
-
parallelism?: number;
|
|
207
|
-
completionMode?: 'NonIndexed' | 'Indexed';
|
|
208
|
-
suspend?: boolean;
|
|
209
|
-
imagePullPolicy?: 'Always' | 'IfNotPresent' | 'Never';
|
|
210
|
-
serviceAccountName?: string;
|
|
211
|
-
/** Optional extra labels on the Job metadata */
|
|
212
|
-
labels?: Record<string, string>;
|
|
213
|
-
/** Optional annotations on the Job metadata */
|
|
214
|
-
annotations?: Record<string, string>;
|
|
215
|
-
/** Optional extra labels on the pod template */
|
|
216
|
-
podLabels?: Record<string, string>;
|
|
217
|
-
/** Optional annotations on the pod template */
|
|
218
|
-
podAnnotations?: Record<string, string>;
|
|
219
|
-
}
|
|
220
|
-
export interface CronJobSpec {
|
|
221
|
-
name: string;
|
|
222
|
-
schedule: string;
|
|
223
|
-
image: string;
|
|
224
|
-
command?: string[];
|
|
225
|
-
args?: string[];
|
|
226
|
-
env?: Record<string, string>;
|
|
227
|
-
envFrom?: EnvFromSource[];
|
|
228
|
-
volumes?: VolumeSourceSpec[];
|
|
229
|
-
volumeMounts?: VolumeMountSpec[];
|
|
230
|
-
resources?: ResourceRequirements;
|
|
231
|
-
restartPolicy?: 'Never' | 'OnFailure';
|
|
232
|
-
backoffLimit?: number;
|
|
233
|
-
activeDeadlineSeconds?: number;
|
|
234
|
-
ttlSecondsAfterFinished?: number;
|
|
235
|
-
completions?: number;
|
|
236
|
-
parallelism?: number;
|
|
237
|
-
completionMode?: 'NonIndexed' | 'Indexed';
|
|
238
|
-
suspend?: boolean;
|
|
239
|
-
startingDeadlineSeconds?: number;
|
|
240
|
-
concurrencyPolicy?: 'Allow' | 'Forbid' | 'Replace';
|
|
241
|
-
successfulJobsHistoryLimit?: number;
|
|
242
|
-
failedJobsHistoryLimit?: number;
|
|
243
|
-
timeZone?: string;
|
|
244
|
-
imagePullPolicy?: 'Always' | 'IfNotPresent' | 'Never';
|
|
245
|
-
serviceAccountName?: string;
|
|
246
|
-
/** Optional extra labels on the CronJob metadata */
|
|
247
|
-
labels?: Record<string, string>;
|
|
248
|
-
/** Optional annotations on the CronJob metadata */
|
|
249
|
-
annotations?: Record<string, string>;
|
|
250
|
-
/** Optional extra labels on the pod template */
|
|
251
|
-
podLabels?: Record<string, string>;
|
|
252
|
-
/** Optional annotations on the pod template */
|
|
253
|
-
podAnnotations?: Record<string, string>;
|
|
254
|
-
}
|
|
255
|
-
export interface ServiceSpec {
|
|
256
|
-
name: string;
|
|
257
|
-
ports: Array<{
|
|
258
|
-
port: number;
|
|
259
|
-
targetPort?: number;
|
|
260
|
-
protocol?: 'TCP' | 'UDP' | 'SCTP';
|
|
261
|
-
name?: string;
|
|
262
|
-
nodePort?: number;
|
|
263
|
-
}>;
|
|
264
|
-
type?: 'ClusterIP' | 'NodePort' | 'LoadBalancer' | 'ExternalName';
|
|
265
|
-
selector?: Record<string, string>;
|
|
266
|
-
clusterIP?: string;
|
|
267
|
-
externalName?: string;
|
|
268
|
-
sessionAffinity?: 'None' | 'ClientIP';
|
|
269
|
-
loadBalancerIP?: string;
|
|
270
|
-
loadBalancerSourceRanges?: string[];
|
|
271
|
-
loadBalancerClass?: string;
|
|
272
|
-
externalTrafficPolicy?: 'Cluster' | 'Local';
|
|
273
|
-
internalTrafficPolicy?: 'Cluster' | 'Local';
|
|
274
|
-
ipFamilyPolicy?: 'SingleStack' | 'PreferDualStack' | 'RequireDualStack';
|
|
275
|
-
ipFamilies?: Array<'IPv4' | 'IPv6'>;
|
|
276
|
-
labels?: Record<string, string>;
|
|
277
|
-
annotations?: Record<string, string>;
|
|
278
|
-
}
|
|
279
|
-
export interface IngressRule {
|
|
280
|
-
host?: string;
|
|
281
|
-
paths: Array<{
|
|
282
|
-
path: string;
|
|
283
|
-
pathType: 'Exact' | 'Prefix' | 'ImplementationSpecific';
|
|
284
|
-
backend: {
|
|
285
|
-
service: {
|
|
286
|
-
name: string;
|
|
287
|
-
port: {
|
|
288
|
-
number?: number;
|
|
289
|
-
name?: string;
|
|
290
|
-
};
|
|
291
|
-
};
|
|
292
|
-
};
|
|
293
|
-
}>;
|
|
294
|
-
}
|
|
295
|
-
export interface IngressTLS {
|
|
296
|
-
hosts?: string[];
|
|
297
|
-
secretName?: string;
|
|
298
|
-
}
|
|
299
|
-
export interface IngressSpec {
|
|
300
|
-
name: string;
|
|
301
|
-
rules: IngressRule[];
|
|
302
|
-
tls?: IngressTLS[];
|
|
303
|
-
ingressClassName?: string;
|
|
304
|
-
defaultBackend?: {
|
|
305
|
-
service: {
|
|
306
|
-
name: string;
|
|
307
|
-
port: {
|
|
308
|
-
number?: number;
|
|
309
|
-
name?: string;
|
|
310
|
-
};
|
|
311
|
-
};
|
|
312
|
-
};
|
|
313
|
-
labels?: Record<string, string>;
|
|
314
|
-
annotations?: Record<string, string>;
|
|
315
|
-
}
|
|
316
|
-
export interface ConfigMapSpec {
|
|
317
|
-
name: string;
|
|
318
|
-
data?: Record<string, string>;
|
|
319
|
-
binaryData?: Record<string, string>;
|
|
320
|
-
immutable?: boolean;
|
|
321
|
-
labels?: Record<string, string>;
|
|
322
|
-
annotations?: Record<string, string>;
|
|
323
|
-
}
|
|
324
|
-
export interface SecretSpec {
|
|
325
|
-
name: string;
|
|
326
|
-
type?: string;
|
|
327
|
-
stringData?: Record<string, string>;
|
|
328
|
-
data?: Record<string, string>;
|
|
329
|
-
immutable?: boolean;
|
|
330
|
-
labels?: Record<string, string>;
|
|
331
|
-
annotations?: Record<string, string>;
|
|
332
|
-
}
|
|
333
|
-
export interface PersistentVolumeClaimSpec {
|
|
334
|
-
name: string;
|
|
335
|
-
accessModes: AccessMode[];
|
|
336
|
-
resources: {
|
|
337
|
-
requests: {
|
|
338
|
-
storage: string;
|
|
339
|
-
};
|
|
340
|
-
limits?: {
|
|
341
|
-
storage: string;
|
|
342
|
-
};
|
|
343
|
-
};
|
|
344
|
-
storageClassName?: string;
|
|
345
|
-
volumeMode?: VolumeMode;
|
|
346
|
-
selector?: {
|
|
347
|
-
matchLabels?: Record<string, string>;
|
|
348
|
-
matchExpressions?: unknown[];
|
|
349
|
-
};
|
|
350
|
-
labels?: Record<string, string>;
|
|
351
|
-
annotations?: Record<string, string>;
|
|
352
|
-
/** Reference to specific PV for static binding */
|
|
353
|
-
volumeName?: string;
|
|
354
|
-
/** Cloud provider for optimized defaults */
|
|
355
|
-
cloudProvider?: 'aws' | 'azure' | 'gcp';
|
|
356
|
-
}
|
|
357
|
-
export interface ServiceAccountSpec {
|
|
358
|
-
name: string;
|
|
359
|
-
annotations?: Record<string, string>;
|
|
360
|
-
labels?: Record<string, string>;
|
|
361
|
-
automountServiceAccountToken?: boolean;
|
|
362
|
-
imagePullSecrets?: string[];
|
|
363
|
-
secrets?: string[];
|
|
364
|
-
/**
|
|
365
|
-
* EKS IRSA support: IAM role ARN for service account to assume
|
|
366
|
-
* Example: arn:aws:iam::<account-id>:role/<role-name>
|
|
367
|
-
* Adds annotation eks.amazonaws.com/role-arn
|
|
368
|
-
*/
|
|
369
|
-
awsRoleArn?: string;
|
|
370
|
-
/**
|
|
371
|
-
* IRSA audience for token validation (default: sts.amazonaws.com)
|
|
372
|
-
* Adds annotation eks.amazonaws.com/audience when provided
|
|
373
|
-
*/
|
|
374
|
-
awsAudience?: string;
|
|
375
|
-
/**
|
|
376
|
-
* AWS STS endpoint type for IRSA (regional recommended for better performance)
|
|
377
|
-
* Adds annotation eks.amazonaws.com/sts-regional-endpoints when provided
|
|
378
|
-
* @default 'regional'
|
|
379
|
-
*/
|
|
380
|
-
awsStsEndpointType?: 'regional' | 'legacy';
|
|
381
|
-
/**
|
|
382
|
-
* AWS region for regional STS endpoint (auto-detected if not provided)
|
|
383
|
-
* Used with awsStsEndpointType: 'regional'
|
|
384
|
-
*/
|
|
385
|
-
awsRegion?: string;
|
|
386
|
-
/**
|
|
387
|
-
* Token expiration time in seconds for IRSA tokens (3600-43200)
|
|
388
|
-
* Adds annotation eks.amazonaws.com/token-expiration when provided
|
|
389
|
-
* @default 3600
|
|
390
|
-
*/
|
|
391
|
-
awsTokenExpiration?: number;
|
|
392
|
-
/**
|
|
393
|
-
* AKS Workload Identity: Azure application client ID
|
|
394
|
-
* Adds annotation azure.workload.identity/client-id when provided
|
|
395
|
-
*/
|
|
396
|
-
azureClientId?: string;
|
|
397
|
-
/**
|
|
398
|
-
* AKS Workload Identity: Azure tenant ID
|
|
399
|
-
* Adds annotation azure.workload.identity/tenant-id when provided
|
|
400
|
-
*/
|
|
401
|
-
azureTenantId?: string;
|
|
402
|
-
/**
|
|
403
|
-
* AKS Workload Identity: projected SA token expiration (seconds)
|
|
404
|
-
* Adds annotation azure.workload.identity/service-account-token-expiration
|
|
405
|
-
*/
|
|
406
|
-
azureServiceAccountTokenExpiration?: number;
|
|
407
|
-
/**
|
|
408
|
-
* GKE Workload Identity: Google service account email
|
|
409
|
-
* Adds annotation iam.gke.io/gcp-service-account when provided
|
|
410
|
-
*/
|
|
411
|
-
gcpServiceAccountEmail?: string;
|
|
412
|
-
}
|
|
413
|
-
export interface HorizontalPodAutoscalerMetric {
|
|
414
|
-
type: 'Resource' | 'Pods' | 'Object' | 'External';
|
|
415
|
-
resource?: {
|
|
416
|
-
name: 'cpu' | 'memory';
|
|
417
|
-
target: {
|
|
418
|
-
type: 'Utilization' | 'AverageValue';
|
|
419
|
-
averageUtilization?: number;
|
|
420
|
-
averageValue?: string;
|
|
421
|
-
};
|
|
422
|
-
};
|
|
423
|
-
pods?: {
|
|
424
|
-
metric: {
|
|
425
|
-
name: string;
|
|
426
|
-
selector?: Record<string, unknown>;
|
|
427
|
-
};
|
|
428
|
-
target: {
|
|
429
|
-
type: 'AverageValue';
|
|
430
|
-
averageValue: string;
|
|
431
|
-
};
|
|
432
|
-
};
|
|
433
|
-
object?: {
|
|
434
|
-
metric: {
|
|
435
|
-
name: string;
|
|
436
|
-
selector?: Record<string, unknown>;
|
|
437
|
-
};
|
|
438
|
-
describedObject: {
|
|
439
|
-
apiVersion: string;
|
|
440
|
-
kind: string;
|
|
441
|
-
name: string;
|
|
442
|
-
};
|
|
443
|
-
target: {
|
|
444
|
-
type: 'Value' | 'AverageValue';
|
|
445
|
-
value?: string;
|
|
446
|
-
averageValue?: string;
|
|
447
|
-
};
|
|
448
|
-
};
|
|
449
|
-
external?: {
|
|
450
|
-
metric: {
|
|
451
|
-
name: string;
|
|
452
|
-
selector?: Record<string, unknown>;
|
|
453
|
-
};
|
|
454
|
-
target: {
|
|
455
|
-
type: 'Value' | 'AverageValue';
|
|
456
|
-
value?: string;
|
|
457
|
-
averageValue?: string;
|
|
458
|
-
};
|
|
459
|
-
};
|
|
460
|
-
}
|
|
461
|
-
export interface HorizontalPodAutoscalerBehavior {
|
|
462
|
-
scaleUp?: {
|
|
463
|
-
stabilizationWindowSeconds?: number;
|
|
464
|
-
selectPolicy?: 'Max' | 'Min' | 'Disabled';
|
|
465
|
-
policies?: Array<{
|
|
466
|
-
type: 'Pods' | 'Percent';
|
|
467
|
-
value: number;
|
|
468
|
-
periodSeconds: number;
|
|
469
|
-
}>;
|
|
470
|
-
};
|
|
471
|
-
scaleDown?: {
|
|
472
|
-
stabilizationWindowSeconds?: number;
|
|
473
|
-
selectPolicy?: 'Max' | 'Min' | 'Disabled';
|
|
474
|
-
policies?: Array<{
|
|
475
|
-
type: 'Pods' | 'Percent';
|
|
476
|
-
value: number;
|
|
477
|
-
periodSeconds: number;
|
|
478
|
-
}>;
|
|
479
|
-
};
|
|
480
|
-
}
|
|
481
|
-
export interface HorizontalPodAutoscalerSpec {
|
|
482
|
-
name: string;
|
|
483
|
-
scaleTargetRef: {
|
|
484
|
-
apiVersion: string;
|
|
485
|
-
kind: 'Deployment' | 'StatefulSet' | 'ReplicaSet';
|
|
486
|
-
name: string;
|
|
487
|
-
};
|
|
488
|
-
minReplicas?: number;
|
|
489
|
-
maxReplicas: number;
|
|
490
|
-
metrics?: HorizontalPodAutoscalerMetric[];
|
|
491
|
-
behavior?: HorizontalPodAutoscalerBehavior;
|
|
492
|
-
labels?: Record<string, string>;
|
|
493
|
-
annotations?: Record<string, string>;
|
|
494
|
-
}
|
|
495
|
-
export interface VerticalPodAutoscalerResourcePolicy {
|
|
496
|
-
containerName?: string;
|
|
497
|
-
mode?: 'Auto' | 'Off';
|
|
498
|
-
minAllowed?: {
|
|
499
|
-
cpu?: string;
|
|
500
|
-
memory?: string;
|
|
501
|
-
};
|
|
502
|
-
maxAllowed?: {
|
|
503
|
-
cpu?: string;
|
|
504
|
-
memory?: string;
|
|
505
|
-
};
|
|
506
|
-
controlledResources?: Array<'cpu' | 'memory'>;
|
|
507
|
-
controlledValues?: 'RequestsAndLimits' | 'RequestsOnly';
|
|
508
|
-
}
|
|
509
|
-
export interface VerticalPodAutoscalerUpdatePolicy {
|
|
510
|
-
updateMode?: 'Off' | 'Initial' | 'Recreation' | 'Auto';
|
|
511
|
-
minReplicas?: number;
|
|
512
|
-
}
|
|
513
|
-
export interface PodDisruptionBudgetSpec {
|
|
514
|
-
name: string;
|
|
515
|
-
minAvailable?: number | string;
|
|
516
|
-
maxUnavailable?: number | string;
|
|
517
|
-
selector?: {
|
|
518
|
-
matchLabels?: Record<string, string>;
|
|
519
|
-
matchExpressions?: Array<{
|
|
520
|
-
key: string;
|
|
521
|
-
operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
|
|
522
|
-
values?: string[];
|
|
523
|
-
}>;
|
|
524
|
-
};
|
|
525
|
-
labels?: Record<string, string>;
|
|
526
|
-
annotations?: Record<string, string>;
|
|
527
|
-
}
|
|
528
|
-
export interface AWSEBSStorageClassSpec extends CloudResourceTags {
|
|
529
|
-
name: string;
|
|
530
|
-
volumeType?: 'gp2' | 'gp3' | 'io1' | 'io2' | 'sc1' | 'st1';
|
|
531
|
-
fsType?: 'ext4' | 'xfs';
|
|
532
|
-
encrypted?: boolean;
|
|
533
|
-
kmsKeyId?: string;
|
|
534
|
-
iops?: number;
|
|
535
|
-
throughput?: number;
|
|
536
|
-
reclaimPolicy?: 'Delete' | 'Retain';
|
|
537
|
-
allowVolumeExpansion?: boolean;
|
|
538
|
-
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
539
|
-
labels?: Record<string, string>;
|
|
540
|
-
annotations?: Record<string, string>;
|
|
541
|
-
}
|
|
542
|
-
export interface AWSEBSPersistentVolumeClaimSpec {
|
|
543
|
-
name: string;
|
|
544
|
-
storageClassName: string;
|
|
545
|
-
size: string;
|
|
546
|
-
accessModes?: AccessMode[];
|
|
547
|
-
labels?: Record<string, string>;
|
|
548
|
-
annotations?: Record<string, string>;
|
|
549
|
-
}
|
|
550
|
-
export interface AWSEFSStorageClassSpec {
|
|
551
|
-
name: string;
|
|
552
|
-
reclaimPolicy?: 'Delete' | 'Retain';
|
|
553
|
-
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
554
|
-
labels?: Record<string, string>;
|
|
555
|
-
annotations?: Record<string, string>;
|
|
556
|
-
}
|
|
557
|
-
export interface AWSEFSPersistentVolumeSpec {
|
|
558
|
-
name: string;
|
|
559
|
-
fileSystemId: string;
|
|
560
|
-
accessPoint?: string;
|
|
561
|
-
directoryPerms?: string;
|
|
562
|
-
gidRangeStart?: number;
|
|
563
|
-
gidRangeEnd?: number;
|
|
564
|
-
basePath?: string;
|
|
565
|
-
subPath?: string;
|
|
566
|
-
capacity?: string;
|
|
567
|
-
accessModes?: AccessMode[];
|
|
568
|
-
storageClassName?: string;
|
|
569
|
-
labels?: Record<string, string>;
|
|
570
|
-
annotations?: Record<string, string>;
|
|
571
|
-
}
|
|
572
|
-
export interface AWSEFSPersistentVolumeClaimSpec {
|
|
573
|
-
name: string;
|
|
574
|
-
storageClassName: string;
|
|
575
|
-
size?: string;
|
|
576
|
-
accessModes?: AccessMode[];
|
|
577
|
-
labels?: Record<string, string>;
|
|
578
|
-
annotations?: Record<string, string>;
|
|
579
|
-
}
|
|
580
|
-
export interface AWSIRSAServiceAccountSpec {
|
|
581
|
-
name: string;
|
|
582
|
-
roleArn: string;
|
|
583
|
-
audience?: string;
|
|
584
|
-
stsEndpointType?: 'regional' | 'legacy';
|
|
585
|
-
region?: string;
|
|
586
|
-
tokenExpiration?: number;
|
|
587
|
-
labels?: Record<string, string>;
|
|
588
|
-
annotations?: Record<string, string>;
|
|
589
|
-
automountServiceAccountToken?: boolean;
|
|
590
|
-
imagePullSecrets?: string[];
|
|
591
|
-
secrets?: string[];
|
|
592
|
-
}
|
|
593
|
-
export interface AWSSecretsManagerObject {
|
|
594
|
-
objectName: string;
|
|
595
|
-
objectType: 'secretsmanager';
|
|
596
|
-
objectAlias?: string;
|
|
597
|
-
jmesPath?: string;
|
|
598
|
-
}
|
|
599
|
-
export interface AWSParameterStoreObject {
|
|
600
|
-
objectName: string;
|
|
601
|
-
objectType: 'ssmparameter';
|
|
602
|
-
objectAlias?: string;
|
|
603
|
-
}
|
|
604
|
-
export interface AWSSecretProviderClassSpec {
|
|
605
|
-
name: string;
|
|
606
|
-
region?: string;
|
|
607
|
-
objects: (AWSSecretsManagerObject | AWSParameterStoreObject)[];
|
|
608
|
-
labels?: Record<string, string>;
|
|
609
|
-
annotations?: Record<string, string>;
|
|
610
|
-
}
|
|
611
|
-
/**
|
|
612
|
-
* Configuration interface for Azure Workload Identity ServiceAccount.
|
|
613
|
-
* Enables secure authentication to Azure services without storing credentials.
|
|
614
|
-
*
|
|
615
|
-
* @see https://learn.microsoft.com/en-us/azure/aks/workload-identity-overview
|
|
616
|
-
*/
|
|
617
|
-
export interface AzureWorkloadIdentityServiceAccountSpec {
|
|
618
|
-
/** Name of the ServiceAccount */
|
|
619
|
-
name: string;
|
|
620
|
-
/** Azure application client ID for workload identity */
|
|
621
|
-
clientId: string;
|
|
622
|
-
/** Azure tenant ID where the application is registered */
|
|
623
|
-
tenantId: string;
|
|
624
|
-
/** Service account token expiration in seconds (3600-86400) */
|
|
625
|
-
tokenExpiration?: number;
|
|
626
|
-
/** Labels to apply to the ServiceAccount */
|
|
627
|
-
labels?: Record<string, string>;
|
|
628
|
-
/** Additional annotations to apply to the ServiceAccount */
|
|
629
|
-
annotations?: Record<string, string>;
|
|
630
|
-
/** Whether to automount service account token */
|
|
631
|
-
automountServiceAccountToken?: boolean;
|
|
632
|
-
/** Names of image pull secrets */
|
|
633
|
-
imagePullSecrets?: string[];
|
|
634
|
-
/** Names of secrets to mount */
|
|
635
|
-
secrets?: string[];
|
|
636
|
-
}
|
|
637
|
-
/**
|
|
638
|
-
* Azure Key Vault object configuration for SecretProviderClass.
|
|
639
|
-
*/
|
|
640
|
-
export interface AzureKeyVaultObject {
|
|
641
|
-
/** Name of the object in Azure Key Vault */
|
|
642
|
-
objectName: string;
|
|
643
|
-
/** Type of object to retrieve */
|
|
644
|
-
objectType: 'secret' | 'key' | 'cert';
|
|
645
|
-
/** Optional alias for the object when mounted */
|
|
646
|
-
objectAlias?: string;
|
|
647
|
-
/** Optional version of the object */
|
|
648
|
-
objectVersion?: string;
|
|
649
|
-
}
|
|
650
|
-
/**
|
|
651
|
-
* Configuration interface for Azure Key Vault SecretProviderClass.
|
|
652
|
-
* Enables mounting secrets from Azure Key Vault using CSI driver.
|
|
653
|
-
*
|
|
654
|
-
* @see https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-driver
|
|
655
|
-
*/
|
|
656
|
-
export interface AzureKeyVaultSecretProviderClassSpec {
|
|
657
|
-
/** Name of the SecretProviderClass */
|
|
658
|
-
name: string;
|
|
659
|
-
/** Name of the Azure Key Vault */
|
|
660
|
-
keyVaultName: string;
|
|
661
|
-
/** Azure tenant ID */
|
|
662
|
-
tenantId: string;
|
|
663
|
-
/** Objects to retrieve from Key Vault */
|
|
664
|
-
objects: AzureKeyVaultObject[];
|
|
665
|
-
/** User-assigned managed identity client ID for authentication */
|
|
666
|
-
userAssignedIdentityID?: string;
|
|
667
|
-
/** Azure cloud environment */
|
|
668
|
-
cloudName?: 'AzurePublicCloud' | 'AzureUSGovernmentCloud' | 'AzureChinaCloud';
|
|
669
|
-
/** Labels to apply to the SecretProviderClass */
|
|
670
|
-
labels?: Record<string, string>;
|
|
671
|
-
/** Additional annotations to apply to the SecretProviderClass */
|
|
672
|
-
annotations?: Record<string, string>;
|
|
673
|
-
}
|
|
674
|
-
/**
|
|
675
|
-
* Configuration interface for Azure Files StorageClass.
|
|
676
|
-
* Defines parameters for creating Azure Files StorageClass in AKS.
|
|
677
|
-
*
|
|
678
|
-
* @see https://learn.microsoft.com/en-us/azure/aks/azure-csi-files-storage-provision
|
|
679
|
-
*/
|
|
680
|
-
export interface AzureFilesStorageClassSpec {
|
|
681
|
-
/** Name of the StorageClass */
|
|
682
|
-
name: string;
|
|
683
|
-
/** Azure Files SKU */
|
|
684
|
-
skuName?: 'Standard_LRS' | 'Standard_GRS' | 'Standard_RAGRS' | 'Standard_ZRS' | 'Premium_LRS' | 'Premium_ZRS';
|
|
685
|
-
/** File share protocol */
|
|
686
|
-
protocol?: 'smb' | 'nfs';
|
|
687
|
-
/** Allow shared access across multiple pods */
|
|
688
|
-
allowSharedAccess?: boolean;
|
|
689
|
-
/** Resource group for storage account */
|
|
690
|
-
resourceGroup?: string;
|
|
691
|
-
/** Storage account name */
|
|
692
|
-
storageAccount?: string;
|
|
693
|
-
/** Location for storage account */
|
|
694
|
-
location?: string;
|
|
695
|
-
/** Network endpoints for storage account */
|
|
696
|
-
networkEndpointType?: 'publicEndpoint' | 'privateEndpoint';
|
|
697
|
-
/** Mount permissions for NFS (e.g., '0777') */
|
|
698
|
-
mountPermissions?: string;
|
|
699
|
-
/** Root squash type for NFS */
|
|
700
|
-
rootSquashType?: 'NoRootSquash' | 'RootSquash' | 'AllSquash';
|
|
701
|
-
/** Volume reclaim policy */
|
|
702
|
-
reclaimPolicy?: 'Delete' | 'Retain';
|
|
703
|
-
/** Allow volume expansion */
|
|
704
|
-
allowVolumeExpansion?: boolean;
|
|
705
|
-
/** Volume binding mode */
|
|
706
|
-
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
707
|
-
/** Mount options for the storage class */
|
|
708
|
-
mountOptions?: string[];
|
|
709
|
-
/** Labels to apply to the StorageClass */
|
|
710
|
-
labels?: Record<string, string>;
|
|
711
|
-
/** Annotations to apply to the StorageClass */
|
|
712
|
-
annotations?: Record<string, string>;
|
|
713
|
-
}
|
|
714
|
-
/**
|
|
715
|
-
* Configuration interface for Azure Files PersistentVolume.
|
|
716
|
-
* Defines parameters for static Azure Files volume provisioning.
|
|
717
|
-
*/
|
|
718
|
-
export interface AzureFilesPersistentVolumeSpec {
|
|
719
|
-
/** Name of the PersistentVolume */
|
|
720
|
-
name: string;
|
|
721
|
-
/** Storage capacity */
|
|
722
|
-
capacity: string;
|
|
723
|
-
/** Access modes */
|
|
724
|
-
accessModes?: AccessMode[];
|
|
725
|
-
/** Storage account name */
|
|
726
|
-
storageAccount: string;
|
|
727
|
-
/** File share name */
|
|
728
|
-
shareName: string;
|
|
729
|
-
/** Resource group name */
|
|
730
|
-
resourceGroup?: string;
|
|
731
|
-
/** File share protocol */
|
|
732
|
-
protocol?: 'smb' | 'nfs';
|
|
733
|
-
/** Secret name containing storage account key (SMB only) */
|
|
734
|
-
secretName?: string;
|
|
735
|
-
/** Secret namespace (SMB only) */
|
|
736
|
-
secretNamespace?: string;
|
|
737
|
-
/** Server address override */
|
|
738
|
-
server?: string;
|
|
739
|
-
/** Folder name within share */
|
|
740
|
-
folderName?: string;
|
|
741
|
-
/** Mount permissions for NFS */
|
|
742
|
-
mountPermissions?: string;
|
|
743
|
-
/** Volume reclaim policy */
|
|
744
|
-
reclaimPolicy?: ReclaimPolicy;
|
|
745
|
-
/** Storage class name */
|
|
746
|
-
storageClassName?: string;
|
|
747
|
-
/** Mount options */
|
|
748
|
-
mountOptions?: string[];
|
|
749
|
-
/** Labels to apply to the PersistentVolume */
|
|
750
|
-
labels?: Record<string, string>;
|
|
751
|
-
/** Annotations to apply to the PersistentVolume */
|
|
752
|
-
annotations?: Record<string, string>;
|
|
753
|
-
}
|
|
754
|
-
/**
|
|
755
|
-
* Configuration interface for Azure Files PersistentVolumeClaim.
|
|
756
|
-
* Simplifies creation of PVCs for Azure Files.
|
|
757
|
-
*/
|
|
758
|
-
export interface AzureFilesPersistentVolumeClaimSpec {
|
|
759
|
-
/** Name of the PersistentVolumeClaim */
|
|
760
|
-
name: string;
|
|
761
|
-
/** Storage class name */
|
|
762
|
-
storageClassName: string;
|
|
763
|
-
/** Storage size request */
|
|
764
|
-
size: string;
|
|
765
|
-
/** Access modes */
|
|
766
|
-
accessModes?: AccessMode[];
|
|
767
|
-
/** Labels to apply to the PersistentVolumeClaim */
|
|
768
|
-
labels?: Record<string, string>;
|
|
769
|
-
/** Annotations to apply to the PersistentVolumeClaim */
|
|
770
|
-
annotations?: Record<string, string>;
|
|
771
|
-
}
|
|
772
|
-
/**
|
|
773
|
-
* Configuration interface for Azure Container Registry ServiceAccount.
|
|
774
|
-
* Simplifies ACR integration with AKS using managed identity.
|
|
775
|
-
*/
|
|
776
|
-
export interface AzureACRServiceAccountSpec {
|
|
777
|
-
/** Name of the ServiceAccount */
|
|
778
|
-
name: string;
|
|
779
|
-
/** Azure Container Registry name */
|
|
780
|
-
acrName: string;
|
|
781
|
-
/** Resource group containing the ACR */
|
|
782
|
-
resourceGroup: string;
|
|
783
|
-
/** Client ID for Workload Identity (optional) */
|
|
784
|
-
clientId?: string;
|
|
785
|
-
/** Tenant ID for Workload Identity (optional) */
|
|
786
|
-
tenantId?: string;
|
|
787
|
-
/** Labels to apply to the ServiceAccount */
|
|
788
|
-
labels?: Record<string, string>;
|
|
789
|
-
/** Additional annotations to apply to the ServiceAccount */
|
|
790
|
-
annotations?: Record<string, string>;
|
|
791
|
-
/** Whether to automount service account token */
|
|
792
|
-
automountServiceAccountToken?: boolean;
|
|
793
|
-
/** Names of additional image pull secrets */
|
|
794
|
-
imagePullSecrets?: string[];
|
|
795
|
-
/** Names of secrets to mount */
|
|
796
|
-
secrets?: string[];
|
|
797
|
-
}
|
|
798
|
-
/**
|
|
799
|
-
* Configuration interface for Azure Disk StorageClass.
|
|
800
|
-
* Defines the parameters for creating an Azure Disk StorageClass in AKS.
|
|
801
|
-
*
|
|
802
|
-
* @see https://learn.microsoft.com/en-us/azure/aks/azure-csi-disk-storage-provision
|
|
803
|
-
*/
|
|
804
|
-
/**
|
|
805
|
-
* Cloud resource tags with basic validation.
|
|
806
|
-
* Provides a consistent interface for tagging resources across cloud providers.
|
|
807
|
-
*/
|
|
808
|
-
export interface CloudResourceTags {
|
|
809
|
-
/** Resource tags as key-value pairs */
|
|
810
|
-
tags?: Record<string, string>;
|
|
811
|
-
}
|
|
812
|
-
export interface AzureDiskStorageClassSpec extends CloudResourceTags {
|
|
813
|
-
/** Name of the StorageClass */
|
|
814
|
-
name: string;
|
|
815
|
-
/** Azure disk SKU to use */
|
|
816
|
-
skuName?: 'Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'PremiumV2_LRS' | 'UltraSSD_LRS' | 'Premium_ZRS' | 'StandardSSD_ZRS';
|
|
817
|
-
/** File system type to use */
|
|
818
|
-
fsType?: 'ext4' | 'ext3' | 'ext2' | 'xfs' | 'btrfs' | 'ntfs';
|
|
819
|
-
/** Host caching mode */
|
|
820
|
-
cachingMode?: 'None' | 'ReadOnly' | 'ReadWrite';
|
|
821
|
-
/** Resource group where disks will be created */
|
|
822
|
-
resourceGroup?: string;
|
|
823
|
-
/** IOPS for the disk (UltraSSD_LRS only) */
|
|
824
|
-
diskIOPSReadWrite?: number;
|
|
825
|
-
/** Throughput in MB/s (UltraSSD_LRS only) */
|
|
826
|
-
diskMBpsReadWrite?: number;
|
|
827
|
-
/** Logical sector size in bytes */
|
|
828
|
-
logicalSectorSize?: 512 | 4096;
|
|
829
|
-
/** ID of the disk encryption set */
|
|
830
|
-
diskEncryptionSetID?: string;
|
|
831
|
-
/** Type of disk encryption */
|
|
832
|
-
diskEncryptionType?: 'EncryptionAtRestWithCustomerKey' | 'EncryptionAtRestWithPlatformAndCustomerKeys';
|
|
833
|
-
/** Enable write accelerator */
|
|
834
|
-
writeAcceleratorEnabled?: boolean;
|
|
835
|
-
/** Network access policy for the disk */
|
|
836
|
-
networkAccessPolicy?: 'AllowAll' | 'DenyAll' | 'AllowPrivate';
|
|
837
|
-
/** ID of the disk access resource */
|
|
838
|
-
diskAccessID?: string;
|
|
839
|
-
/** Enable bursting (Premium SSD only) */
|
|
840
|
-
enableBursting?: boolean;
|
|
841
|
-
/** Maximum number of hosts that can attach to the disk simultaneously */
|
|
842
|
-
maxShares?: number;
|
|
843
|
-
/** Volume reclaim policy */
|
|
844
|
-
reclaimPolicy?: 'Delete' | 'Retain';
|
|
845
|
-
/** Allow volume expansion */
|
|
846
|
-
allowVolumeExpansion?: boolean;
|
|
847
|
-
/** Volume binding mode */
|
|
848
|
-
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
849
|
-
/** Labels to apply to the StorageClass */
|
|
850
|
-
labels?: Record<string, string>;
|
|
851
|
-
/** Annotations to apply to the StorageClass */
|
|
852
|
-
annotations?: Record<string, string>;
|
|
853
|
-
}
|
|
854
|
-
export interface AWSALBIngressSpec extends CloudResourceTags {
|
|
855
|
-
name: string;
|
|
856
|
-
rules: IngressRule[];
|
|
857
|
-
tls?: IngressTLS[];
|
|
858
|
-
scheme?: 'internet-facing' | 'internal';
|
|
859
|
-
targetType?: 'instance' | 'ip';
|
|
860
|
-
ipAddressType?: 'ipv4' | 'dualstack';
|
|
861
|
-
groupName?: string;
|
|
862
|
-
groupOrder?: number;
|
|
863
|
-
subnets?: string[];
|
|
864
|
-
securityGroups?: string[];
|
|
865
|
-
certificateArn?: string;
|
|
866
|
-
sslRedirect?: boolean;
|
|
867
|
-
healthCheckPath?: string;
|
|
868
|
-
healthCheckIntervalSeconds?: number;
|
|
869
|
-
healthCheckTimeoutSeconds?: number;
|
|
870
|
-
healthyThresholdCount?: number;
|
|
871
|
-
unhealthyThresholdCount?: number;
|
|
872
|
-
labels?: Record<string, string>;
|
|
873
|
-
annotations?: Record<string, string>;
|
|
874
|
-
}
|
|
875
|
-
/**
|
|
876
|
-
* Configuration interface for Azure Application Gateway Ingress Controller (AGIC).
|
|
877
|
-
* Provides comprehensive support for AGIC annotations and features for AKS deployments.
|
|
878
|
-
*
|
|
879
|
-
* @see https://learn.microsoft.com/en-us/azure/application-gateway/ingress-controller-annotations
|
|
880
|
-
*/
|
|
881
|
-
export interface AzureAGICIngressSpec {
|
|
882
|
-
/** Name of the Ingress resource */
|
|
883
|
-
name: string;
|
|
884
|
-
/** Ingress rules defining routing configuration */
|
|
885
|
-
rules: IngressRule[];
|
|
886
|
-
/** TLS configuration for HTTPS termination */
|
|
887
|
-
tls?: IngressTLS[];
|
|
888
|
-
/** Backend path prefix to rewrite request paths */
|
|
889
|
-
backendPathPrefix?: string;
|
|
890
|
-
/** Backend hostname for Application Gateway to use when communicating with pods */
|
|
891
|
-
backendHostname?: string;
|
|
892
|
-
/** Backend protocol (http or https) */
|
|
893
|
-
backendProtocol?: 'http' | 'https';
|
|
894
|
-
/** Enable SSL redirect from HTTP to HTTPS */
|
|
895
|
-
sslRedirect?: boolean;
|
|
896
|
-
/** Use private IP address of Application Gateway */
|
|
897
|
-
usePrivateIp?: boolean;
|
|
898
|
-
/** Override frontend port (default: 80 for HTTP, 443 for HTTPS) */
|
|
899
|
-
overrideFrontendPort?: number;
|
|
900
|
-
/** Enable cookie-based session affinity */
|
|
901
|
-
cookieBasedAffinity?: boolean;
|
|
902
|
-
/** Request timeout in seconds */
|
|
903
|
-
requestTimeout?: number;
|
|
904
|
-
/** Enable connection draining */
|
|
905
|
-
connectionDraining?: boolean;
|
|
906
|
-
/** Connection draining timeout in seconds */
|
|
907
|
-
connectionDrainingTimeout?: number;
|
|
908
|
-
/** Custom health probe hostname */
|
|
909
|
-
healthProbeHostname?: string;
|
|
910
|
-
/** Custom health probe port */
|
|
911
|
-
healthProbePort?: number;
|
|
912
|
-
/** Custom health probe path */
|
|
913
|
-
healthProbePath?: string;
|
|
914
|
-
/** Accepted HTTP status codes for health probe */
|
|
915
|
-
healthProbeStatusCodes?: string;
|
|
916
|
-
/** Health probe interval in seconds */
|
|
917
|
-
healthProbeInterval?: number;
|
|
918
|
-
/** Health probe timeout in seconds */
|
|
919
|
-
healthProbeTimeout?: number;
|
|
920
|
-
/** Health probe unhealthy threshold */
|
|
921
|
-
healthProbeUnhealthyThreshold?: number;
|
|
922
|
-
/**
|
|
923
|
-
* Additional hostnames for multisite listener
|
|
924
|
-
* @security Validate hostname format to prevent injection attacks
|
|
925
|
-
*/
|
|
926
|
-
hostnameExtension?: string[];
|
|
927
|
-
/**
|
|
928
|
-
* WAF policy resource ID for path-based protection
|
|
929
|
-
* @security Validate resource ID format to prevent path traversal attacks
|
|
930
|
-
*/
|
|
931
|
-
wafPolicyForPath?: string;
|
|
932
|
-
/**
|
|
933
|
-
* Application Gateway SSL certificate name
|
|
934
|
-
* @security Ensure certificate exists and is properly configured
|
|
935
|
-
*/
|
|
936
|
-
appgwSslCertificate?: string;
|
|
937
|
-
/** Application Gateway SSL profile name */
|
|
938
|
-
appgwSslProfile?: string;
|
|
939
|
-
/** Trusted root certificate names for end-to-end SSL */
|
|
940
|
-
appgwTrustedRootCertificate?: string[];
|
|
941
|
-
/** Rewrite rule set name */
|
|
942
|
-
rewriteRuleSet?: string;
|
|
943
|
-
/** Rule priority for request routing */
|
|
944
|
-
rulePriority?: number;
|
|
945
|
-
/** Labels to apply to the Ingress */
|
|
946
|
-
labels?: Record<string, string>;
|
|
947
|
-
/** Additional annotations to apply to the Ingress */
|
|
948
|
-
annotations?: Record<string, string>;
|
|
949
|
-
}
|
|
950
|
-
export interface VerticalPodAutoscalerSpec {
|
|
951
|
-
name: string;
|
|
952
|
-
targetRef: {
|
|
953
|
-
apiVersion: string;
|
|
954
|
-
kind: 'Deployment' | 'StatefulSet' | 'ReplicaSet' | 'DaemonSet' | 'Job' | 'CronJob';
|
|
955
|
-
name: string;
|
|
956
|
-
};
|
|
957
|
-
updatePolicy?: VerticalPodAutoscalerUpdatePolicy;
|
|
958
|
-
resourcePolicy?: {
|
|
959
|
-
containerPolicies?: VerticalPodAutoscalerResourcePolicy[];
|
|
960
|
-
};
|
|
961
|
-
recommenders?: Array<{
|
|
962
|
-
name: string;
|
|
963
|
-
}>;
|
|
964
|
-
labels?: Record<string, string>;
|
|
965
|
-
annotations?: Record<string, string>;
|
|
966
|
-
}
|
|
967
|
-
export interface NetworkPolicyPeer {
|
|
968
|
-
podSelector?: {
|
|
969
|
-
matchLabels?: Record<string, string>;
|
|
970
|
-
matchExpressions?: Array<{
|
|
971
|
-
key: string;
|
|
972
|
-
operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
|
|
973
|
-
values?: string[];
|
|
974
|
-
}>;
|
|
975
|
-
};
|
|
976
|
-
namespaceSelector?: {
|
|
977
|
-
matchLabels?: Record<string, string>;
|
|
978
|
-
matchExpressions?: Array<{
|
|
979
|
-
key: string;
|
|
980
|
-
operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
|
|
981
|
-
values?: string[];
|
|
982
|
-
}>;
|
|
983
|
-
};
|
|
984
|
-
ipBlock?: {
|
|
985
|
-
cidr: string;
|
|
986
|
-
except?: string[];
|
|
987
|
-
};
|
|
988
|
-
}
|
|
989
|
-
export interface NetworkPolicyPort {
|
|
990
|
-
protocol?: 'TCP' | 'UDP' | 'SCTP';
|
|
991
|
-
port?: number | string;
|
|
992
|
-
endPort?: number;
|
|
993
|
-
}
|
|
994
|
-
export interface NetworkPolicyIngressRule {
|
|
995
|
-
from?: NetworkPolicyPeer[];
|
|
996
|
-
ports?: NetworkPolicyPort[];
|
|
997
|
-
}
|
|
998
|
-
export interface NetworkPolicyEgressRule {
|
|
999
|
-
to?: NetworkPolicyPeer[];
|
|
1000
|
-
ports?: NetworkPolicyPort[];
|
|
1001
|
-
}
|
|
1002
|
-
export interface NetworkPolicySpec {
|
|
1003
|
-
name: string;
|
|
1004
|
-
podSelector?: {
|
|
1005
|
-
matchLabels?: Record<string, string>;
|
|
1006
|
-
matchExpressions?: Array<{
|
|
1007
|
-
key: string;
|
|
1008
|
-
operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
|
|
1009
|
-
values?: string[];
|
|
1010
|
-
}>;
|
|
1011
|
-
};
|
|
1012
|
-
policyTypes?: Array<'Ingress' | 'Egress'>;
|
|
1013
|
-
ingress?: NetworkPolicyIngressRule[];
|
|
1014
|
-
egress?: NetworkPolicyEgressRule[];
|
|
1015
|
-
labels?: Record<string, string>;
|
|
1016
|
-
annotations?: Record<string, string>;
|
|
1017
|
-
}
|
|
1018
|
-
export interface RutterProps {
|
|
1019
|
-
meta: HelmChartMeta;
|
|
1020
|
-
defaultValues?: Record<string, unknown>;
|
|
1021
|
-
envValues?: Record<string, Record<string, unknown>>;
|
|
1022
|
-
/** Optional Helm helpers content for templates/_helpers.tpl */
|
|
1023
|
-
helpersTpl?: string | HelperDefinition[];
|
|
1024
|
-
/** Optional NOTES.txt content */
|
|
1025
|
-
notesTpl?: string;
|
|
1026
|
-
/** Optional values.schema.json object */
|
|
1027
|
-
valuesSchema?: Record<string, unknown>;
|
|
1028
|
-
/** Optional custom name for the generated manifest file (without extension) */
|
|
1029
|
-
manifestName?: string;
|
|
1030
|
-
/**
|
|
1031
|
-
* If true, all Kubernetes resources will be combined into a single manifest file.
|
|
1032
|
-
* If false (default), each resource will be in its own numbered file.
|
|
1033
|
-
* @default false
|
|
1034
|
-
*/
|
|
1035
|
-
singleManifestFile?: boolean;
|
|
1036
|
-
}
|
|
1037
|
-
/**
|
|
1038
|
-
* Rutter builds Kubernetes manifests using cdk8s and writes a Helm chart.
|
|
1039
|
-
*/
|
|
1040
|
-
export declare class Rutter {
|
|
1041
|
-
private readonly props;
|
|
1042
|
-
private readonly app;
|
|
1043
|
-
private readonly chart;
|
|
1044
|
-
private readonly assets;
|
|
1045
|
-
private valueOverrides;
|
|
1046
|
-
constructor(props: RutterProps);
|
|
1047
|
-
/**
|
|
1048
|
-
* Set dynamic value overrides (from --set flags)
|
|
1049
|
-
*/
|
|
1050
|
-
setValues(overrides: Record<string, string>): void;
|
|
1051
|
-
/**
|
|
1052
|
-
* Apply value overrides to nested object using dot notation
|
|
1053
|
-
*/
|
|
1054
|
-
private applyOverrides;
|
|
1055
|
-
private setNestedValue;
|
|
1056
|
-
private parseValue;
|
|
1057
|
-
private static readonly LABEL_NAME;
|
|
1058
|
-
private static readonly LABEL_INSTANCE;
|
|
1059
|
-
private static readonly HELPER_NAME;
|
|
1060
|
-
private static readonly NETWORKING_API_VERSION;
|
|
1061
|
-
private static readonly STORAGE_API_VERSION;
|
|
1062
|
-
private static readonly AZURE_DISK_CSI_DRIVER;
|
|
1063
|
-
private static readonly AZURE_DISK_PROVISIONER_ANNOTATION;
|
|
1064
|
-
private static readonly AZURE_FILES_CSI_DRIVER;
|
|
1065
|
-
addDeployment(spec: DeploymentSpec): ApiObject;
|
|
1066
|
-
addService(spec: ServiceSpec): ApiObject;
|
|
1067
|
-
addReplicaSet(spec: ReplicaSetSpec): ApiObject;
|
|
1068
|
-
addJob(spec: JobSpec): ApiObject;
|
|
1069
|
-
addCronJob(spec: CronJobSpec): ApiObject;
|
|
1070
|
-
addIngress(spec: IngressSpec): ApiObject;
|
|
1071
|
-
addPersistentVolume(spec: PersistentVolumeSpec): ApiObject;
|
|
1072
|
-
private optimizePVForCloud;
|
|
1073
|
-
addPersistentVolumeClaim(spec: PersistentVolumeClaimSpec): ApiObject;
|
|
1074
|
-
private validatePVCAccessModes;
|
|
1075
|
-
addConfigMap(spec: ConfigMapSpec): ApiObject;
|
|
1076
|
-
addSecret(spec: SecretSpec): ApiObject;
|
|
1077
|
-
addServiceAccount(spec: ServiceAccountSpec): ApiObject;
|
|
1078
|
-
private buildServiceAccountAnnotations;
|
|
1079
|
-
private addAWSIRSAAnnotations;
|
|
1080
|
-
private addAzureWorkloadIdentityAnnotations;
|
|
1081
|
-
private addGCPWorkloadIdentityAnnotations;
|
|
1082
|
-
addHorizontalPodAutoscaler(spec: HorizontalPodAutoscalerSpec): ApiObject;
|
|
1083
|
-
addVerticalPodAutoscaler(spec: VerticalPodAutoscalerSpec): ApiObject;
|
|
1084
|
-
addPodDisruptionBudget(spec: PodDisruptionBudgetSpec): ApiObject;
|
|
1085
|
-
addAWSEBSStorageClass(spec: AWSEBSStorageClassSpec): ApiObject;
|
|
1086
|
-
addAWSEBSPersistentVolumeClaim(spec: AWSEBSPersistentVolumeClaimSpec): ApiObject;
|
|
1087
|
-
addAWSEFSStorageClass(spec: AWSEFSStorageClassSpec): ApiObject;
|
|
1088
|
-
addAWSEFSPersistentVolume(spec: AWSEFSPersistentVolumeSpec): ApiObject;
|
|
1089
|
-
addAWSEFSPersistentVolumeClaim(spec: AWSEFSPersistentVolumeClaimSpec): ApiObject;
|
|
1090
|
-
addAWSALBIngress(spec: AWSALBIngressSpec): ApiObject;
|
|
1091
|
-
private buildALBAnnotations;
|
|
1092
|
-
private addOptionalALBAnnotations;
|
|
1093
|
-
private addHealthCheckAnnotations;
|
|
1094
|
-
private addTagsAnnotation;
|
|
1095
|
-
/**
|
|
1096
|
-
* Add Azure Application Gateway Ingress Controller (AGIC) Ingress.
|
|
1097
|
-
* Creates an Ingress resource with AGIC-specific annotations for AKS deployments.
|
|
1098
|
-
*
|
|
1099
|
-
* @param spec - AGIC Ingress specification
|
|
1100
|
-
* @returns The created Ingress ApiObject
|
|
1101
|
-
*
|
|
1102
|
-
* @example
|
|
1103
|
-
* ```typescript
|
|
1104
|
-
* rutter.addAzureAGICIngress({
|
|
1105
|
-
* name: 'app-ingress',
|
|
1106
|
-
* rules: [{
|
|
1107
|
-
* host: 'app.example.com',
|
|
1108
|
-
* paths: [{
|
|
1109
|
-
* path: '/',
|
|
1110
|
-
* pathType: 'Prefix',
|
|
1111
|
-
* backend: { service: { name: 'app-service', port: { number: 80 } } }
|
|
1112
|
-
* }]
|
|
1113
|
-
* }],
|
|
1114
|
-
* sslRedirect: true,
|
|
1115
|
-
* backendProtocol: 'https',
|
|
1116
|
-
* healthProbePath: '/health'
|
|
1117
|
-
* });
|
|
1118
|
-
* ```
|
|
1119
|
-
*/
|
|
1120
|
-
addAzureAGICIngress(spec: AzureAGICIngressSpec): ApiObject;
|
|
1121
|
-
private buildAGICAnnotations;
|
|
1122
|
-
private addAGICPathAnnotations;
|
|
1123
|
-
private addAGICProtocolAnnotations;
|
|
1124
|
-
private addAGICHealthProbeAnnotations;
|
|
1125
|
-
private addAGICConnectionAnnotations;
|
|
1126
|
-
private addAGICSecurityAnnotations;
|
|
1127
|
-
private addAGICAdvancedAnnotations;
|
|
1128
|
-
addAWSIRSAServiceAccount(spec: AWSIRSAServiceAccountSpec): ApiObject;
|
|
1129
|
-
addAWSSecretProviderClass(spec: AWSSecretProviderClassSpec): ApiObject;
|
|
1130
|
-
/**
|
|
1131
|
-
* Add Azure Workload Identity ServiceAccount.
|
|
1132
|
-
* Creates a ServiceAccount with Azure Workload Identity annotations for secure authentication.
|
|
1133
|
-
*
|
|
1134
|
-
* @param spec - Azure Workload Identity ServiceAccount specification
|
|
1135
|
-
* @returns The created ServiceAccount ApiObject
|
|
1136
|
-
*
|
|
1137
|
-
* @example
|
|
1138
|
-
* ```typescript
|
|
1139
|
-
* rutter.addAzureWorkloadIdentityServiceAccount({
|
|
1140
|
-
* name: 'workload-identity-sa',
|
|
1141
|
-
* clientId: '12345678-1234-1234-1234-123456789012',
|
|
1142
|
-
* tenantId: '87654321-4321-4321-4321-210987654321',
|
|
1143
|
-
* tokenExpiration: 3600
|
|
1144
|
-
* });
|
|
1145
|
-
* ```
|
|
1146
|
-
*/
|
|
1147
|
-
addAzureWorkloadIdentityServiceAccount(spec: AzureWorkloadIdentityServiceAccountSpec): ApiObject;
|
|
1148
|
-
/**
|
|
1149
|
-
* Add Azure Key Vault SecretProviderClass.
|
|
1150
|
-
* Creates a SecretProviderClass for mounting secrets from Azure Key Vault using CSI driver.
|
|
1151
|
-
*
|
|
1152
|
-
* @param spec - Azure Key Vault SecretProviderClass specification
|
|
1153
|
-
* @returns The created SecretProviderClass ApiObject
|
|
1154
|
-
*
|
|
1155
|
-
* @example
|
|
1156
|
-
* ```typescript
|
|
1157
|
-
* rutter.addAzureKeyVaultSecretProviderClass({
|
|
1158
|
-
* name: 'app-secrets',
|
|
1159
|
-
* keyVaultName: 'my-keyvault',
|
|
1160
|
-
* tenantId: '87654321-4321-4321-4321-210987654321',
|
|
1161
|
-
* objects: [
|
|
1162
|
-
* { objectName: 'database-password', objectType: 'secret' },
|
|
1163
|
-
* { objectName: 'api-key', objectType: 'secret', objectAlias: 'API_KEY' }
|
|
1164
|
-
* ],
|
|
1165
|
-
* userAssignedIdentityID: '12345678-1234-1234-1234-123456789012'
|
|
1166
|
-
* });
|
|
1167
|
-
* ```
|
|
1168
|
-
*/
|
|
1169
|
-
addAzureKeyVaultSecretProviderClass(spec: AzureKeyVaultSecretProviderClassSpec): ApiObject;
|
|
1170
|
-
/**
|
|
1171
|
-
* Add Azure Files StorageClass.
|
|
1172
|
-
* Creates a StorageClass for dynamic provisioning of Azure Files volumes.
|
|
1173
|
-
*
|
|
1174
|
-
* @param spec - Azure Files StorageClass specification
|
|
1175
|
-
* @returns The created StorageClass ApiObject
|
|
1176
|
-
*
|
|
1177
|
-
* @example
|
|
1178
|
-
* ```typescript
|
|
1179
|
-
* rutter.addAzureFilesStorageClass({
|
|
1180
|
-
* name: 'azure-files-premium',
|
|
1181
|
-
* skuName: 'Premium_LRS',
|
|
1182
|
-
* protocol: 'smb',
|
|
1183
|
-
* allowSharedAccess: true
|
|
1184
|
-
* });
|
|
1185
|
-
* ```
|
|
1186
|
-
*/
|
|
1187
|
-
addAzureFilesStorageClass(spec: AzureFilesStorageClassSpec): ApiObject;
|
|
1188
|
-
/**
|
|
1189
|
-
* Add Azure Files PersistentVolume.
|
|
1190
|
-
* Creates a PersistentVolume for static Azure Files volume provisioning.
|
|
1191
|
-
*
|
|
1192
|
-
* @param spec - Azure Files PersistentVolume specification
|
|
1193
|
-
* @returns The created PersistentVolume ApiObject
|
|
1194
|
-
*/
|
|
1195
|
-
addAzureFilesPersistentVolume(spec: AzureFilesPersistentVolumeSpec): ApiObject;
|
|
1196
|
-
/**
|
|
1197
|
-
* Add Azure Files PersistentVolumeClaim.
|
|
1198
|
-
* Creates a PersistentVolumeClaim for Azure Files storage.
|
|
1199
|
-
*
|
|
1200
|
-
* @param spec - Azure Files PersistentVolumeClaim specification
|
|
1201
|
-
* @returns The created PersistentVolumeClaim ApiObject
|
|
1202
|
-
*/
|
|
1203
|
-
addAzureFilesPersistentVolumeClaim(spec: AzureFilesPersistentVolumeClaimSpec): ApiObject;
|
|
1204
|
-
/**
|
|
1205
|
-
* Add Azure Container Registry ServiceAccount.
|
|
1206
|
-
* Creates a ServiceAccount configured for ACR access.
|
|
1207
|
-
*
|
|
1208
|
-
* @param spec - Azure ACR ServiceAccount specification
|
|
1209
|
-
* @returns The created ServiceAccount ApiObject
|
|
1210
|
-
*/
|
|
1211
|
-
addAzureACRServiceAccount(spec: AzureACRServiceAccountSpec): ApiObject;
|
|
1212
|
-
addAzureDiskStorageClass(spec: AzureDiskStorageClassSpec): ApiObject;
|
|
1213
|
-
private buildAzureDiskParameters;
|
|
1214
|
-
private addOptionalAzureDiskParameters;
|
|
1215
|
-
private addAzureDiskEncryptionParameters;
|
|
1216
|
-
private addAzureDiskPerformanceParameters;
|
|
1217
|
-
private validateAzureDiskNumericParameters;
|
|
1218
|
-
private validateAzureDiskIOPS;
|
|
1219
|
-
private validateAzureDiskThroughput;
|
|
1220
|
-
private validateAzureDiskShares;
|
|
1221
|
-
private validateAzureDiskSectorSize;
|
|
1222
|
-
/**
|
|
1223
|
-
* Format cloud resource tags for provider-specific string format.
|
|
1224
|
-
* Provides basic validation and consistent formatting across cloud providers.
|
|
1225
|
-
*/
|
|
1226
|
-
private formatCloudResourceTags;
|
|
1227
|
-
/**
|
|
1228
|
-
* Validate cloud resource tags with basic rules.
|
|
1229
|
-
* Each cloud provider has specific validation, but these are common basics.
|
|
1230
|
-
*/
|
|
1231
|
-
private validateCloudResourceTags;
|
|
1232
|
-
addNetworkPolicy(spec: NetworkPolicySpec): ApiObject;
|
|
1233
|
-
private static readonly EMPTY_POD_SELECTOR;
|
|
1234
|
-
/**
|
|
1235
|
-
* Create a deny-all ingress NetworkPolicy for the current namespace
|
|
1236
|
-
*/
|
|
1237
|
-
addDenyAllIngressNetworkPolicy(name?: string): ApiObject;
|
|
1238
|
-
/**
|
|
1239
|
-
* Create a deny-all egress NetworkPolicy for the current namespace
|
|
1240
|
-
*/
|
|
1241
|
-
addDenyAllEgressNetworkPolicy(name?: string): ApiObject;
|
|
1242
|
-
/**
|
|
1243
|
-
* Create a deny-all NetworkPolicy for both ingress and egress
|
|
1244
|
-
*/
|
|
1245
|
-
addDenyAllNetworkPolicy(name?: string): ApiObject;
|
|
1246
|
-
/**
|
|
1247
|
-
* Allow traffic from specific pods to target pods on specific ports
|
|
1248
|
-
*/
|
|
1249
|
-
addAllowFromPodsNetworkPolicy(spec: {
|
|
1250
|
-
name: string;
|
|
1251
|
-
targetPodSelector: Record<string, string>;
|
|
1252
|
-
sourcePodSelector: Record<string, string>;
|
|
1253
|
-
ports?: NetworkPolicyPort[];
|
|
1254
|
-
labels?: Record<string, string>;
|
|
1255
|
-
annotations?: Record<string, string>;
|
|
1256
|
-
}): ApiObject;
|
|
1257
|
-
/**
|
|
1258
|
-
* Allow traffic from specific namespace to target pods
|
|
1259
|
-
*/
|
|
1260
|
-
addAllowFromNamespaceNetworkPolicy(spec: {
|
|
1261
|
-
name: string;
|
|
1262
|
-
targetPodSelector: Record<string, string>;
|
|
1263
|
-
sourceNamespaceSelector: Record<string, string>;
|
|
1264
|
-
ports?: NetworkPolicyPort[];
|
|
1265
|
-
labels?: Record<string, string>;
|
|
1266
|
-
annotations?: Record<string, string>;
|
|
1267
|
-
}): ApiObject;
|
|
1268
|
-
private validateNetworkPolicyTypes;
|
|
1269
|
-
private validatePolicyTypeValues;
|
|
1270
|
-
private validatePolicyTypeRules;
|
|
1271
|
-
private validateNetworkPolicyCIDRs;
|
|
1272
|
-
private isValidCIDR;
|
|
1273
|
-
private isValidIPv4;
|
|
1274
|
-
private isValidPrefix;
|
|
1275
|
-
private validateIngressCIDRs;
|
|
1276
|
-
private validateEgressCIDRs;
|
|
1277
|
-
private validatePeerCIDRs;
|
|
1278
|
-
private validateAGICHealthProbeParams;
|
|
1279
|
-
private validateAGICSecurityParams;
|
|
1280
|
-
private isValidHostname;
|
|
1281
|
-
private validateAGICAnnotationConsistency;
|
|
1282
|
-
private buildAzureFilesParameters;
|
|
1283
|
-
private buildAzureFilesPVCSISpec;
|
|
1284
|
-
private buildPodEnvironment;
|
|
1285
|
-
private buildJobSpec;
|
|
1286
|
-
private buildJobPodTemplate;
|
|
1287
|
-
private buildCronJobSpec;
|
|
1288
|
-
private buildCronJobTemplate;
|
|
1289
|
-
/**
|
|
1290
|
-
* Validate Job specification for security and best practices
|
|
1291
|
-
*/
|
|
1292
|
-
private validateJobSpec;
|
|
1293
|
-
/**
|
|
1294
|
-
* Validate CronJob specification for security and best practices
|
|
1295
|
-
*/
|
|
1296
|
-
private validateCronJobSpec;
|
|
1297
|
-
/**
|
|
1298
|
-
* Validate cron schedule expression
|
|
1299
|
-
*/
|
|
1300
|
-
private validateCronSchedule;
|
|
1301
|
-
/**
|
|
1302
|
-
* Sanitize environment variable names and values
|
|
1303
|
-
*/
|
|
1304
|
-
private sanitizeEnvVar;
|
|
1305
|
-
/**
|
|
1306
|
-
* Get default resource limits for Jobs and CronJobs
|
|
1307
|
-
*/
|
|
1308
|
-
private getDefaultResources;
|
|
1309
|
-
/**
|
|
1310
|
-
* Validate Azure Files parameters for security and compliance
|
|
1311
|
-
*/
|
|
1312
|
-
private validateAzureFilesParameters;
|
|
1313
|
-
/**
|
|
1314
|
-
* Sanitize volume handle to ensure valid format for CSI driver
|
|
1315
|
-
*/
|
|
1316
|
-
private sanitizeVolumeHandle;
|
|
1317
|
-
/**
|
|
1318
|
-
* Capture the YAML of an ApiObject or Construct into assets.
|
|
1319
|
-
*/
|
|
1320
|
-
private capture;
|
|
1321
|
-
/**
|
|
1322
|
-
* Extract a meaningful name from a Kubernetes resource object
|
|
1323
|
-
*/
|
|
1324
|
-
private getResourceName;
|
|
1325
|
-
/**
|
|
1326
|
-
* Add a raw CRD manifest to the chart (written under crds/).
|
|
1327
|
-
*/
|
|
1328
|
-
addCrd(yaml: string, id?: string): void;
|
|
1329
|
-
/**
|
|
1330
|
-
* Synthesize the cdk8s app and write a Helm chart to outDir.
|
|
1331
|
-
*/
|
|
1332
|
-
write(outDir: string): void;
|
|
1333
|
-
}
|
|
1334
|
-
//# sourceMappingURL=Rutter.d.ts.map
|