timonel 2.8.0-beta.5 → 2.8.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +9 -25
  2. package/README.md +12 -55
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/{src/cli.js → cli.js} +4 -35
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +13 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/{src/lib → lib}/helm.d.ts +234 -4
  11. package/dist/lib/helm.d.ts.map +1 -0
  12. package/dist/{src/lib → lib}/helm.js +309 -20
  13. package/dist/lib/helm.js.map +1 -0
  14. package/dist/lib/helmChartWriter.d.ts.map +1 -0
  15. package/dist/{src/lib → lib}/helmChartWriter.js +5 -19
  16. package/dist/lib/helmChartWriter.js.map +1 -0
  17. package/dist/{src/lib → lib}/resources/baseResourceProvider.d.ts +1 -1
  18. package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -0
  19. package/dist/lib/resources/baseResourceProvider.js.map +1 -0
  20. package/dist/{src/lib → lib}/resources/cloud/aws/awsResources.d.ts +5 -14
  21. package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -0
  22. package/dist/{src/lib → lib}/resources/cloud/aws/awsResources.js +63 -78
  23. package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -0
  24. package/dist/lib/resources/cloud/aws/karpenterResources.d.ts.map +1 -0
  25. package/dist/lib/resources/cloud/aws/karpenterResources.js.map +1 -0
  26. package/dist/lib/rutter.d.ts +445 -0
  27. package/dist/lib/rutter.d.ts.map +1 -0
  28. package/dist/lib/rutter.js +585 -0
  29. package/dist/lib/rutter.js.map +1 -0
  30. package/dist/{src/lib → lib}/security.d.ts +2 -72
  31. package/dist/lib/security.d.ts.map +1 -0
  32. package/dist/lib/security.js +390 -0
  33. package/dist/lib/security.js.map +1 -0
  34. package/dist/lib/umbrella.d.ts.map +1 -0
  35. package/dist/lib/umbrella.js.map +1 -0
  36. package/dist/{src/lib → lib}/umbrellaRutter.d.ts +1 -1
  37. package/dist/lib/umbrellaRutter.d.ts.map +1 -0
  38. package/dist/lib/umbrellaRutter.js.map +1 -0
  39. package/dist/{src/lib → lib}/utils/helmHelpers.d.ts +2 -12
  40. package/dist/lib/utils/helmHelpers.d.ts.map +1 -0
  41. package/dist/{src/lib → lib}/utils/helmHelpers.js +2 -46
  42. package/dist/lib/utils/helmHelpers.js.map +1 -0
  43. package/package.json +3 -4
  44. package/dist/src/cli.d.ts.map +0 -1
  45. package/dist/src/cli.js.map +0 -1
  46. package/dist/src/index.d.ts +0 -23
  47. package/dist/src/index.d.ts.map +0 -1
  48. package/dist/src/index.js +0 -15
  49. package/dist/src/index.js.map +0 -1
  50. package/dist/src/lib/constants.d.ts +0 -142
  51. package/dist/src/lib/constants.d.ts.map +0 -1
  52. package/dist/src/lib/constants.js +0 -167
  53. package/dist/src/lib/constants.js.map +0 -1
  54. package/dist/src/lib/helm.d.ts.map +0 -1
  55. package/dist/src/lib/helm.js.map +0 -1
  56. package/dist/src/lib/helmChartWriter.d.ts.map +0 -1
  57. package/dist/src/lib/helmChartWriter.js.map +0 -1
  58. package/dist/src/lib/resources/autoscaling/autoscalingResources.d.ts +0 -248
  59. package/dist/src/lib/resources/autoscaling/autoscalingResources.d.ts.map +0 -1
  60. package/dist/src/lib/resources/autoscaling/autoscalingResources.js +0 -81
  61. package/dist/src/lib/resources/autoscaling/autoscalingResources.js.map +0 -1
  62. package/dist/src/lib/resources/baseResourceProvider.d.ts.map +0 -1
  63. package/dist/src/lib/resources/baseResourceProvider.js.map +0 -1
  64. package/dist/src/lib/resources/cloud/aws/awsResources.d.ts.map +0 -1
  65. package/dist/src/lib/resources/cloud/aws/awsResources.js.map +0 -1
  66. package/dist/src/lib/resources/cloud/aws/karpenterResources.d.ts.map +0 -1
  67. package/dist/src/lib/resources/cloud/aws/karpenterResources.js.map +0 -1
  68. package/dist/src/lib/resources/cloud/azure/azureResources.d.ts +0 -169
  69. package/dist/src/lib/resources/cloud/azure/azureResources.d.ts.map +0 -1
  70. package/dist/src/lib/resources/cloud/azure/azureResources.js +0 -218
  71. package/dist/src/lib/resources/cloud/azure/azureResources.js.map +0 -1
  72. package/dist/src/lib/resources/cloud/gcp/gcpResources.d.ts +0 -164
  73. package/dist/src/lib/resources/cloud/gcp/gcpResources.d.ts.map +0 -1
  74. package/dist/src/lib/resources/cloud/gcp/gcpResources.js +0 -192
  75. package/dist/src/lib/resources/cloud/gcp/gcpResources.js.map +0 -1
  76. package/dist/src/lib/resources/core/coreResources.d.ts +0 -790
  77. package/dist/src/lib/resources/core/coreResources.d.ts.map +0 -1
  78. package/dist/src/lib/resources/core/coreResources.js +0 -1115
  79. package/dist/src/lib/resources/core/coreResources.js.map +0 -1
  80. package/dist/src/lib/resources/core/storageResources.d.ts +0 -133
  81. package/dist/src/lib/resources/core/storageResources.d.ts.map +0 -1
  82. package/dist/src/lib/resources/core/storageResources.js +0 -120
  83. package/dist/src/lib/resources/core/storageResources.js.map +0 -1
  84. package/dist/src/lib/resources/network/networkResources.d.ts +0 -515
  85. package/dist/src/lib/resources/network/networkResources.d.ts.map +0 -1
  86. package/dist/src/lib/resources/network/networkResources.js +0 -784
  87. package/dist/src/lib/resources/network/networkResources.js.map +0 -1
  88. package/dist/src/lib/resources/security/encryption.d.ts +0 -290
  89. package/dist/src/lib/resources/security/encryption.d.ts.map +0 -1
  90. package/dist/src/lib/resources/security/encryption.js +0 -295
  91. package/dist/src/lib/resources/security/encryption.js.map +0 -1
  92. package/dist/src/lib/resources/security/index.d.ts +0 -6
  93. package/dist/src/lib/resources/security/index.d.ts.map +0 -1
  94. package/dist/src/lib/resources/security/index.js +0 -6
  95. package/dist/src/lib/resources/security/index.js.map +0 -1
  96. package/dist/src/lib/resources/validation/validationResources.d.ts +0 -26
  97. package/dist/src/lib/resources/validation/validationResources.d.ts.map +0 -1
  98. package/dist/src/lib/resources/validation/validationResources.js +0 -33
  99. package/dist/src/lib/resources/validation/validationResources.js.map +0 -1
  100. package/dist/src/lib/rutter.d.ts +0 -1106
  101. package/dist/src/lib/rutter.d.ts.map +0 -1
  102. package/dist/src/lib/rutter.js +0 -1295
  103. package/dist/src/lib/rutter.js.map +0 -1
  104. package/dist/src/lib/security.d.ts.map +0 -1
  105. package/dist/src/lib/security.js +0 -569
  106. package/dist/src/lib/security.js.map +0 -1
  107. package/dist/src/lib/umbrella.d.ts.map +0 -1
  108. package/dist/src/lib/umbrella.js.map +0 -1
  109. package/dist/src/lib/umbrellaRutter.d.ts.map +0 -1
  110. package/dist/src/lib/umbrellaRutter.js.map +0 -1
  111. package/dist/src/lib/utils/helmHelpers.d.ts.map +0 -1
  112. package/dist/src/lib/utils/helmHelpers.js.map +0 -1
  113. package/dist/src/lib/utils/podTemplates.d.ts +0 -192
  114. package/dist/src/lib/utils/podTemplates.d.ts.map +0 -1
  115. package/dist/src/lib/utils/podTemplates.js +0 -331
  116. package/dist/src/lib/utils/podTemplates.js.map +0 -1
  117. package/dist/src/lib/utils/resourceNaming.d.ts +0 -57
  118. package/dist/src/lib/utils/resourceNaming.d.ts.map +0 -1
  119. package/dist/src/lib/utils/resourceNaming.js +0 -82
  120. package/dist/src/lib/utils/resourceNaming.js.map +0 -1
  121. /package/dist/{src/cli.d.ts → cli.d.ts} +0 -0
  122. /package/dist/{src/lib → lib}/helmChartWriter.d.ts +0 -0
  123. /package/dist/{src/lib → lib}/resources/baseResourceProvider.js +0 -0
  124. /package/dist/{src/lib → lib}/resources/cloud/aws/karpenterResources.d.ts +0 -0
  125. /package/dist/{src/lib → lib}/resources/cloud/aws/karpenterResources.js +0 -0
  126. /package/dist/{src/lib → lib}/umbrella.d.ts +0 -0
  127. /package/dist/{src/lib → lib}/umbrella.js +0 -0
  128. /package/dist/{src/lib → lib}/umbrellaRutter.js +0 -0
@@ -1,1106 +0,0 @@
1
- import type { ChartProps } from 'cdk8s';
2
- import type { Construct } from 'constructs';
3
- import type { ApiObject } from 'cdk8s';
4
- import type { DeploymentSpec, DaemonSetSpec, StatefulSetSpec, RoleSpec, ClusterRoleSpec, RoleBindingSpec, ClusterRoleBindingSpec, JobSpec, ServiceSpec, ConfigMapSpec, SecretSpec, ServiceAccountSpec } from './resources/core/coreResources.js';
5
- import type { PersistentVolumeSpec, PersistentVolumeClaimSpec, StorageClassSpec } from './resources/core/storageResources.js';
6
- import type { AWSEBSStorageClassSpec, AWSEFSStorageClassSpec, AWSIRSAServiceAccountSpec, AWSECRServiceAccountSpec, AWSALBIngressSpec } from './resources/cloud/aws/awsResources.js';
7
- import type { AzureDiskStorageClassSpec, AzureFileStorageClassSpec, AzureAGICIngressSpec, AzureKeyVaultSecretProviderClassSpec, AzureACRServiceAccountSpec } from './resources/cloud/azure/azureResources.js';
8
- import type { GCPPersistentDiskStorageClassSpec, GCPFilestoreStorageClassSpec, GCPGCEIngressSpec, GCPWorkloadIdentityServiceAccountSpec, GCPArtifactRegistryServiceAccountSpec } from './resources/cloud/gcp/gcpResources.js';
9
- import type { HorizontalPodAutoscalerSpec, VerticalPodAutoscalerSpec, CronJobSpec } from './resources/autoscaling/autoscalingResources.js';
10
- import type { NetworkPolicySpec, IngressSpec } from './resources/network/networkResources.js';
11
- import type { KarpenterNodePoolSpec, KarpenterNodeClaimSpec, KarpenterEC2NodeClassSpec } from './resources/cloud/aws/karpenterResources.js';
12
- import type { HelperDefinition } from './utils/helmHelpers.js';
13
- import type { NamingStrategy } from './utils/resourceNaming.js';
14
- /**
15
- * Rutter class with modular architecture
16
- * Provides a clean API while delegating to specialized resource providers
17
- * Maintains full backward compatibility with the original Rutter class
18
- *
19
- * @since 2.4.0
20
- */
21
- export declare class Rutter {
22
- private static readonly HELPER_NAME;
23
- private readonly app;
24
- private readonly chart;
25
- private readonly coreResources;
26
- private readonly storageResources;
27
- private readonly awsResources;
28
- private readonly azureResources;
29
- private readonly gcpResources;
30
- private readonly autoscalingResources;
31
- private readonly networkResources;
32
- private readonly karpenterResources;
33
- private readonly meta;
34
- private readonly defaultValues;
35
- private readonly envValues;
36
- private readonly props;
37
- private readonly assets;
38
- constructor(props: RutterProps);
39
- /**
40
- * Creates a Deployment resource
41
- * @param spec - Deployment specification
42
- * @returns Created Deployment ApiObject
43
- *
44
- * @example
45
- * ```typescript
46
- * rutter.addDeployment({
47
- * name: 'web-app',
48
- * image: 'nginx:1.21',
49
- * replicas: 3,
50
- * containerPort: 80
51
- * });
52
- * ```
53
- *
54
- * @since 1.0.0
55
- */
56
- addDeployment(spec: DeploymentSpec): ApiObject;
57
- /**
58
- * Creates a DaemonSet resource
59
- * @param spec - DaemonSet specification
60
- * @returns Created DaemonSet ApiObject
61
- *
62
- * @example
63
- * ```typescript
64
- * rutter.addDaemonSet({
65
- * name: 'log-collector',
66
- * image: 'fluentd:v1.14',
67
- * containerPort: 24224,
68
- * hostNetwork: true
69
- * });
70
- * ```
71
- *
72
- * @since 2.4.0
73
- */
74
- addDaemonSet(spec: DaemonSetSpec): ApiObject;
75
- /**
76
- * Creates a StatefulSet resource
77
- * @param spec - StatefulSet specification
78
- * @returns Created StatefulSet ApiObject
79
- *
80
- * @example
81
- * ```typescript
82
- * rutter.addStatefulSet({
83
- * name: 'database',
84
- * image: 'postgres:13',
85
- * replicas: 3,
86
- * serviceName: 'database-headless',
87
- * containerPort: 5432
88
- * });
89
- * ```
90
- *
91
- * @since 2.4.0
92
- */
93
- addStatefulSet(spec: StatefulSetSpec): ApiObject;
94
- /**
95
- * Creates a Role resource for RBAC
96
- * @param spec - Role specification
97
- * @returns Created Role ApiObject
98
- *
99
- * @example
100
- * ```typescript
101
- * rutter.addRole({
102
- * name: 'pod-reader',
103
- * rules: [
104
- * {
105
- * apiGroups: [''],
106
- * resources: ['pods'],
107
- * verbs: ['get', 'list', 'watch']
108
- * }
109
- * ]
110
- * });
111
- * ```
112
- *
113
- * @since 2.4.0
114
- */
115
- addRole(spec: RoleSpec): ApiObject;
116
- /**
117
- * Creates a ClusterRole resource for cluster-wide RBAC
118
- * @param spec - ClusterRole specification
119
- * @returns Created ClusterRole ApiObject
120
- *
121
- * @example
122
- * ```typescript
123
- * rutter.addClusterRole({
124
- * name: 'cluster-reader',
125
- * rules: [
126
- * {
127
- * apiGroups: [''],
128
- * resources: ['nodes', 'namespaces'],
129
- * verbs: ['get', 'list', 'watch']
130
- * }
131
- * ]
132
- * });
133
- * ```
134
- *
135
- * @since 2.4.0
136
- */
137
- addClusterRole(spec: ClusterRoleSpec): ApiObject;
138
- /**
139
- * Creates a RoleBinding resource for RBAC
140
- * @param spec - RoleBinding specification
141
- * @returns Created RoleBinding ApiObject
142
- *
143
- * @example
144
- * ```typescript
145
- * rutter.addRoleBinding({
146
- * name: 'pod-reader-binding',
147
- * roleRef: {
148
- * kind: 'Role',
149
- * name: 'pod-reader',
150
- * apiGroup: 'rbac.authorization.k8s.io'
151
- * },
152
- * subjects: [
153
- * {
154
- * kind: 'ServiceAccount',
155
- * name: 'my-service-account'
156
- * }
157
- * ]
158
- * });
159
- * ```
160
- *
161
- * @since 2.4.0
162
- */
163
- addRoleBinding(spec: RoleBindingSpec): ApiObject;
164
- /**
165
- * Creates a ClusterRoleBinding resource for cluster-wide RBAC
166
- * @param spec - ClusterRoleBinding specification
167
- * @returns Created ClusterRoleBinding ApiObject
168
- *
169
- * @example
170
- * ```typescript
171
- * rutter.addClusterRoleBinding({
172
- * name: 'cluster-reader-binding',
173
- * roleRef: {
174
- * kind: 'ClusterRole',
175
- * name: 'cluster-reader',
176
- * apiGroup: 'rbac.authorization.k8s.io'
177
- * },
178
- * subjects: [
179
- * {
180
- * kind: 'ServiceAccount',
181
- * name: 'monitoring-agent',
182
- * namespace: 'monitoring'
183
- * }
184
- * ]
185
- * });
186
- * ```
187
- *
188
- * @since 2.4.0
189
- */
190
- addClusterRoleBinding(spec: ClusterRoleBindingSpec): ApiObject;
191
- /**
192
- * Creates a Job resource for batch workloads
193
- * @param spec - Job specification
194
- * @returns Created Job ApiObject
195
- *
196
- * @example
197
- * ```typescript
198
- * rutter.addJob({
199
- * name: 'data-processor',
200
- * image: 'busybox:1.35',
201
- * command: ['sh', '-c', 'echo "Processing..." && sleep 30'],
202
- * completions: 1
203
- * });
204
- * ```
205
- *
206
- * @since 2.4.0
207
- */
208
- addJob(spec: JobSpec): ApiObject;
209
- /**
210
- * Creates a Service resource
211
- * @param spec - Service specification
212
- * @returns Created Service ApiObject
213
- *
214
- * @example
215
- * ```typescript
216
- * rutter.addService({
217
- * name: 'web-service',
218
- * port: 80,
219
- * targetPort: 8080,
220
- * type: 'ClusterIP'
221
- * });
222
- * ```
223
- *
224
- * @since 1.0.0
225
- */
226
- addService(spec: ServiceSpec): ApiObject;
227
- /**
228
- * Creates a ConfigMap resource
229
- * @param spec - ConfigMap specification
230
- * @returns Created ConfigMap ApiObject
231
- *
232
- * @example
233
- * ```typescript
234
- * rutter.addConfigMap({
235
- * name: 'app-config',
236
- * data: {
237
- * 'config.yaml': 'key: value',
238
- * 'app.properties': 'debug=true'
239
- * }
240
- * });
241
- * ```
242
- *
243
- * @since 1.0.0
244
- */
245
- addConfigMap(spec: ConfigMapSpec): ApiObject;
246
- /**
247
- * Creates a Secret resource
248
- * @param spec - Secret specification
249
- * @returns Created Secret ApiObject
250
- *
251
- * @example
252
- * ```typescript
253
- * rutter.addSecret({
254
- * name: 'app-secrets',
255
- * type: 'Opaque',
256
- * data: {
257
- * username: 'YWRtaW4=',
258
- * password: 'MWYyZDFlMmU2N2Rm'
259
- * }
260
- * });
261
- * ```
262
- *
263
- * @since 1.0.0
264
- */
265
- addSecret(spec: SecretSpec): ApiObject;
266
- /**
267
- * Creates a ServiceAccount resource
268
- * @param spec - ServiceAccount specification
269
- * @returns Created ServiceAccount ApiObject
270
- *
271
- * @example
272
- * ```typescript
273
- * rutter.addServiceAccount({
274
- * name: 'app-service-account',
275
- * automountServiceAccountToken: false
276
- * });
277
- * ```
278
- *
279
- * @since 1.0.0
280
- */
281
- addServiceAccount(spec: ServiceAccountSpec): ApiObject;
282
- /**
283
- * Creates a PersistentVolume resource
284
- * @param spec - PersistentVolume specification
285
- * @returns Created PersistentVolume ApiObject
286
- *
287
- * @example
288
- * ```typescript
289
- * rutter.addPersistentVolume({
290
- * name: 'data-pv',
291
- * capacity: '10Gi',
292
- * accessModes: ['ReadWriteOnce'],
293
- * storageClassName: 'fast-ssd'
294
- * });
295
- * ```
296
- *
297
- * @since 1.0.0
298
- */
299
- addPersistentVolume(spec: PersistentVolumeSpec): ApiObject;
300
- /**
301
- * Creates a PersistentVolumeClaim resource
302
- * @param spec - PersistentVolumeClaim specification
303
- * @returns Created PersistentVolumeClaim ApiObject
304
- *
305
- * @example
306
- * ```typescript
307
- * rutter.addPersistentVolumeClaim({
308
- * name: 'data-pvc',
309
- * size: '10Gi',
310
- * accessModes: ['ReadWriteOnce'],
311
- * storageClassName: 'fast-ssd'
312
- * });
313
- * ```
314
- *
315
- * @since 1.0.0
316
- */
317
- addPersistentVolumeClaim(spec: PersistentVolumeClaimSpec): ApiObject;
318
- /**
319
- * Creates a StorageClass resource
320
- * @param spec - StorageClass specification
321
- * @returns Created StorageClass ApiObject
322
- *
323
- * @example
324
- * ```typescript
325
- * rutter.addStorageClass({
326
- * name: 'fast-ssd',
327
- * provisioner: 'kubernetes.io/aws-ebs',
328
- * parameters: {
329
- * type: 'gp3',
330
- * encrypted: 'true'
331
- * }
332
- * });
333
- * ```
334
- *
335
- * @since 1.0.0
336
- */
337
- addStorageClass(spec: StorageClassSpec): ApiObject;
338
- /**
339
- * Creates an AWS EBS StorageClass
340
- * @param spec - EBS StorageClass specification
341
- * @returns Created StorageClass ApiObject
342
- *
343
- * @example
344
- * ```typescript
345
- * rutter.addAWSEBSStorageClass({
346
- * name: 'fast-ebs',
347
- * volumeType: 'gp3',
348
- * encrypted: true,
349
- * allowVolumeExpansion: true
350
- * });
351
- * ```
352
- *
353
- * @since 1.0.0
354
- */
355
- addAWSEBSStorageClass(spec: AWSEBSStorageClassSpec): ApiObject;
356
- /**
357
- * Creates an AWS EFS StorageClass
358
- * @param spec - EFS StorageClass specification
359
- * @returns Created StorageClass ApiObject
360
- *
361
- * @example
362
- * ```typescript
363
- * rutter.addAWSEFSStorageClass({
364
- * name: 'efs-storage',
365
- * fileSystemId: 'fs-12345678',
366
- * directoryPerms: '0755'
367
- * });
368
- * ```
369
- *
370
- * @since 1.0.0
371
- */
372
- addAWSEFSStorageClass(spec: AWSEFSStorageClassSpec): ApiObject;
373
- /**
374
- * Creates an AWS IRSA ServiceAccount
375
- * @param spec - IRSA ServiceAccount specification
376
- * @returns Created ServiceAccount ApiObject
377
- *
378
- * @example
379
- * ```typescript
380
- * rutter.addAWSIRSAServiceAccount({
381
- * name: 'aws-service-account',
382
- * roleArn: 'arn:aws:iam::123456789012:role/MyRole'
383
- * });
384
- * ```
385
- *
386
- * @since 1.0.0
387
- */
388
- addAWSIRSAServiceAccount(spec: AWSIRSAServiceAccountSpec): ApiObject;
389
- /**
390
- * Creates an AWS ALB Ingress
391
- * @param spec - ALB Ingress specification
392
- * @returns Created Ingress ApiObject
393
- *
394
- * @example
395
- * ```typescript
396
- * rutter.addAWSALBIngress({
397
- * name: 'web-ingress',
398
- * rules: [{
399
- * paths: [{
400
- * path: '/',
401
- * pathType: 'Prefix',
402
- * backend: { service: { name: 'web-service', port: { number: 80 } } }
403
- * }]
404
- * }],
405
- * scheme: 'internet-facing'
406
- * });
407
- * ```
408
- *
409
- * @since 1.0.0
410
- */
411
- addAWSALBIngress(spec: AWSALBIngressSpec): ApiObject;
412
- /**
413
- * Creates an Azure Disk StorageClass
414
- * @param spec - Azure Disk StorageClass specification
415
- * @returns Created StorageClass ApiObject
416
- *
417
- * @since 2.4.0
418
- */
419
- addAzureDiskStorageClass(spec: AzureDiskStorageClassSpec): ApiObject;
420
- /**
421
- * Creates an Azure File StorageClass
422
- * @param spec - Azure File StorageClass specification
423
- * @returns Created StorageClass ApiObject
424
- *
425
- * @since 2.4.0
426
- */
427
- addAzureFileStorageClass(spec: AzureFileStorageClassSpec): ApiObject;
428
- /**
429
- * Creates an Azure Application Gateway Ingress
430
- * @param spec - AGIC Ingress specification
431
- * @returns Created Ingress ApiObject
432
- *
433
- * @since 2.4.0
434
- */
435
- addAzureApplicationGatewayIngress(spec: AzureAGICIngressSpec): ApiObject;
436
- /**
437
- * Creates an Azure Key Vault SecretProviderClass
438
- * @param spec - Azure Key Vault SecretProviderClass specification
439
- * @returns Created SecretProviderClass ApiObject
440
- *
441
- * @since 2.4.0
442
- */
443
- addAzureKeyVaultSecretProviderClass(spec: AzureKeyVaultSecretProviderClassSpec): ApiObject;
444
- /**
445
- * Creates an Azure Container Registry ServiceAccount
446
- * @param spec - Azure ACR ServiceAccount specification
447
- * @returns Created ServiceAccount ApiObject
448
- *
449
- * @since 2.4.0
450
- */
451
- addAzureACRServiceAccount(spec: AzureACRServiceAccountSpec): ApiObject;
452
- /**
453
- * Creates a GCP Persistent Disk StorageClass
454
- * @param spec - GCP PD StorageClass specification
455
- * @returns Created StorageClass ApiObject
456
- *
457
- * @since 2.4.0
458
- */
459
- addGCPPersistentDiskStorageClass(spec: GCPPersistentDiskStorageClassSpec): ApiObject;
460
- /**
461
- * Creates a GCP Filestore StorageClass
462
- * @param spec - GCP Filestore StorageClass specification
463
- * @returns Created StorageClass ApiObject
464
- *
465
- * @since 2.4.0
466
- */
467
- addGCPFilestoreStorageClass(spec: GCPFilestoreStorageClassSpec): ApiObject;
468
- /**
469
- * Creates a GCE Ingress with Google Cloud Load Balancer
470
- * @param spec - GCE Ingress specification
471
- * @returns Created Ingress ApiObject
472
- *
473
- * @since 2.4.0
474
- */
475
- addGCPGCEIngress(spec: GCPGCEIngressSpec): ApiObject;
476
- /**
477
- * Creates a ServiceAccount with Workload Identity annotations
478
- * @param spec - Workload Identity ServiceAccount specification
479
- * @returns Created ServiceAccount ApiObject
480
- *
481
- * @since 2.4.0
482
- */
483
- addGCPWorkloadIdentityServiceAccount(spec: GCPWorkloadIdentityServiceAccountSpec): ApiObject;
484
- /**
485
- * Creates a ServiceAccount with GCP Artifact Registry access
486
- * @param spec - Artifact Registry ServiceAccount specification
487
- * @returns Created ServiceAccount ApiObject
488
- *
489
- * @example
490
- * ```typescript
491
- * rutter.addGCPArtifactRegistryServiceAccount({
492
- * name: 'artifact-registry-sa',
493
- * googleServiceAccount: 'my-gsa@project.iam.gserviceaccount.com'
494
- * });
495
- * ```
496
- *
497
- * @since 2.7.0
498
- */
499
- addGCPArtifactRegistryServiceAccount(spec: GCPArtifactRegistryServiceAccountSpec): ApiObject;
500
- /**
501
- * Creates a Karpenter NodePool resource
502
- * @param spec - NodePool specification
503
- * @returns Created NodePool ApiObject
504
- *
505
- * @example
506
- * ```typescript
507
- * rutter.addKarpenterNodePool({
508
- * name: 'default-nodepool',
509
- * template: {
510
- * spec: {
511
- * nodeClassRef: {
512
- * apiVersion: 'karpenter.k8s.aws/v1beta1',
513
- * kind: 'EC2NodeClass',
514
- * name: 'default'
515
- * }
516
- * }
517
- * }
518
- * });
519
- * ```
520
- *
521
- * @since 2.7.0
522
- */
523
- addKarpenterNodePool(spec: KarpenterNodePoolSpec): ApiObject;
524
- /**
525
- * Creates a Karpenter NodeClaim resource
526
- * @param spec - NodeClaim specification
527
- * @returns Created NodeClaim ApiObject
528
- *
529
- * @example
530
- * ```typescript
531
- * rutter.addKarpenterNodeClaim({
532
- * name: 'my-node-claim',
533
- * nodeClassRef: {
534
- * apiVersion: 'karpenter.k8s.aws/v1beta1',
535
- * kind: 'EC2NodeClass',
536
- * name: 'default'
537
- * }
538
- * });
539
- * ```
540
- *
541
- * @since 2.7.0
542
- */
543
- addKarpenterNodeClaim(spec: KarpenterNodeClaimSpec): ApiObject;
544
- /**
545
- * Creates a Karpenter EC2NodeClass resource
546
- * @param spec - EC2NodeClass specification
547
- * @returns Created EC2NodeClass ApiObject
548
- *
549
- * @example
550
- * ```typescript
551
- * rutter.addKarpenterEC2NodeClass({
552
- * name: 'default',
553
- * amiFamily: 'AL2',
554
- * subnetSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
555
- * securityGroupSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }]
556
- * });
557
- * ```
558
- *
559
- * @since 2.7.0
560
- */
561
- addKarpenterEC2NodeClass(spec: KarpenterEC2NodeClassSpec): ApiObject;
562
- /**
563
- * Creates a Karpenter NodePool with optimized disruption settings for cost efficiency
564
- * @param spec - NodePool specification with disruption optimization
565
- * @returns Created NodePool ApiObject
566
- *
567
- * @example
568
- * ```typescript
569
- * rutter.addKarpenterNodePoolWithDisruption({
570
- * name: 'cost-optimized',
571
- * nodeClassRef: {
572
- * apiVersion: 'karpenter.k8s.aws/v1beta1',
573
- * kind: 'EC2NodeClass',
574
- * name: 'default'
575
- * },
576
- * consolidationPolicy: 'WhenEmptyOrUnderutilized',
577
- * consolidateAfter: '30s',
578
- * expireAfter: '24h',
579
- * disruptionBudgets: [
580
- * { nodes: '20%' },
581
- * { nodes: '0', schedule: '0 9 * * 1-5', duration: '8h' }
582
- * ]
583
- * });
584
- * ```
585
- *
586
- * @since 2.7.1
587
- */
588
- addKarpenterNodePoolWithDisruption(spec: {
589
- name: string;
590
- nodeClassRef: {
591
- apiVersion: string;
592
- kind: string;
593
- name: string;
594
- };
595
- requirements?: Array<{
596
- key: string;
597
- operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist' | 'Gt' | 'Lt';
598
- values?: string[];
599
- }>;
600
- consolidationPolicy?: 'WhenEmpty' | 'WhenEmptyOrUnderutilized';
601
- consolidateAfter?: string;
602
- expireAfter?: string;
603
- disruptionBudgets?: Array<{
604
- nodes: string;
605
- schedule?: string;
606
- duration?: string;
607
- }>;
608
- limits?: Record<string, string>;
609
- weight?: number;
610
- labels?: Record<string, string>;
611
- annotations?: Record<string, string>;
612
- }): ApiObject;
613
- /**
614
- * Creates a Karpenter NodePool with scheduling constraints and priorities
615
- * @param spec - NodePool specification with scheduling optimization
616
- * @returns Created NodePool ApiObject
617
- *
618
- * @example
619
- * ```typescript
620
- * rutter.addKarpenterNodePoolWithScheduling({
621
- * name: 'gpu-workloads',
622
- * nodeClassRef: {
623
- * apiVersion: 'karpenter.k8s.aws/v1beta1',
624
- * kind: 'EC2NodeClass',
625
- * name: 'gpu-nodeclass'
626
- * },
627
- * requirements: [
628
- * { key: 'node.kubernetes.io/instance-type', operator: 'In', values: ['g4dn.xlarge', 'g4dn.2xlarge'] }
629
- * ],
630
- * taints: [
631
- * { key: 'nvidia.com/gpu', effect: 'NoSchedule' }
632
- * ],
633
- * terminationGracePeriod: '60s',
634
- * weight: 100
635
- * });
636
- * ```
637
- *
638
- * @since 2.7.1
639
- */
640
- addKarpenterNodePoolWithScheduling(spec: {
641
- name: string;
642
- nodeClassRef: {
643
- apiVersion: string;
644
- kind: string;
645
- name: string;
646
- };
647
- requirements?: Array<{
648
- key: string;
649
- operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist' | 'Gt' | 'Lt';
650
- values?: string[];
651
- }>;
652
- taints?: Array<{
653
- key: string;
654
- value?: string;
655
- effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
656
- }>;
657
- startupTaints?: Array<{
658
- key: string;
659
- value?: string;
660
- effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
661
- }>;
662
- terminationGracePeriod?: string;
663
- weight?: number;
664
- limits?: Record<string, string>;
665
- labels?: Record<string, string>;
666
- annotations?: Record<string, string>;
667
- }): ApiObject;
668
- /**
669
- * Creates a NetworkPolicy resource
670
- * @param spec - NetworkPolicy specification
671
- * @returns Created NetworkPolicy ApiObject
672
- *
673
- * @example
674
- * ```typescript
675
- * rutter.addNetworkPolicy({
676
- * name: 'deny-all',
677
- * podSelector: {},
678
- * policyTypes: ['Ingress', 'Egress']
679
- * });
680
- * ```
681
- *
682
- * @since 2.7.0
683
- */
684
- addNetworkPolicy(spec: NetworkPolicySpec): ApiObject;
685
- /**
686
- * Creates a NetworkPolicy from a predefined template
687
- * @param templateName - Name of the predefined template
688
- * @param name - Policy name
689
- * @param podSelector - Pod selector to apply policy to
690
- * @param labels - Optional labels
691
- * @param annotations - Optional annotations
692
- * @returns Created NetworkPolicy ApiObject
693
- * @example
694
- * ```typescript
695
- * // Create a deny-all policy
696
- * rutter.addNetworkPolicyFromTemplate(
697
- * 'deny-all',
698
- * 'default-deny',
699
- * { matchLabels: { app: 'web' } }
700
- * );
701
- * ```
702
- * @since 2.9.0
703
- */
704
- addNetworkPolicyFromTemplate(templateName: string, name: string, podSelector: NetworkPolicySpec['podSelector'], labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
705
- /**
706
- * Gets predefined NetworkPolicy templates for common security patterns
707
- * @returns Array of predefined NetworkPolicy templates
708
- * @since 2.9.0
709
- */
710
- static getNetworkPolicyTemplates(): import("./resources/network/networkResources.js").NetworkPolicyTemplate[];
711
- /**
712
- * Creates a deny-all NetworkPolicy that blocks all traffic
713
- * @param name - Policy name
714
- * @param podSelector - Pod selector to apply policy to
715
- * @param labels - Optional labels
716
- * @param annotations - Optional annotations
717
- * @returns Created NetworkPolicy ApiObject
718
- *
719
- * @example
720
- * ```typescript
721
- * rutter.addDenyAllNetworkPolicy('deny-all', { matchLabels: { app: 'web' } });
722
- * ```
723
- *
724
- * @since 2.7.0
725
- */
726
- addDenyAllNetworkPolicy(name: string, podSelector?: NetworkPolicySpec['podSelector'], labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
727
- /**
728
- * Creates a NetworkPolicy that allows traffic from specific pods
729
- * @param name - Policy name
730
- * @param podSelector - Pod selector to apply policy to
731
- * @param fromPodSelector - Pod selector for allowed source pods
732
- * @param ports - Optional ports to allow
733
- * @param labels - Optional labels
734
- * @param annotations - Optional annotations
735
- * @returns Created NetworkPolicy ApiObject
736
- *
737
- * @example
738
- * ```typescript
739
- * rutter.addAllowFromPodsNetworkPolicy(
740
- * 'allow-from-frontend',
741
- * { matchLabels: { app: 'backend' } },
742
- * { matchLabels: { app: 'frontend' } },
743
- * [{ port: 8080, protocol: 'TCP' }]
744
- * );
745
- * ```
746
- *
747
- * @since 2.7.0
748
- */
749
- addAllowFromPodsNetworkPolicy(name: string, podSelector: NetworkPolicySpec['podSelector'], fromPodSelector: NetworkPolicySpec['podSelector'], ports?: Array<{
750
- port?: number | string;
751
- protocol?: 'TCP' | 'UDP' | 'SCTP';
752
- }>, labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
753
- /**
754
- * Creates a NetworkPolicy that allows traffic from specific namespaces
755
- * @param name - Policy name
756
- * @param podSelector - Pod selector to apply policy to
757
- * @param fromNamespaceSelector - Namespace selector for allowed source namespaces
758
- * @param ports - Optional ports to allow
759
- * @param labels - Optional labels
760
- * @param annotations - Optional annotations
761
- * @returns Created NetworkPolicy ApiObject
762
- *
763
- * @example
764
- * ```typescript
765
- * rutter.addAllowFromNamespaceNetworkPolicy(
766
- * 'allow-from-monitoring',
767
- * { matchLabels: { app: 'web' } },
768
- * { matchLabels: { name: 'monitoring' } },
769
- * [{ port: 9090, protocol: 'TCP' }]
770
- * );
771
- * ```
772
- *
773
- * @since 2.7.0
774
- */
775
- addAllowFromNamespaceNetworkPolicy(name: string, podSelector: NetworkPolicySpec['podSelector'], fromNamespaceSelector: NetworkPolicySpec['podSelector'], ports?: Array<{
776
- port?: number | string;
777
- protocol?: 'TCP' | 'UDP' | 'SCTP';
778
- }>, labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
779
- /**
780
- * Creates an Ingress resource with optional TLS validation
781
- * @param spec - Ingress specification
782
- * @returns Created Ingress ApiObject
783
- *
784
- * @example
785
- * ```typescript
786
- * rutter.addIngress({
787
- * name: 'web-ingress',
788
- * rules: [{
789
- * host: 'example.com',
790
- * http: {
791
- * paths: [{
792
- * path: '/',
793
- * pathType: 'Prefix',
794
- * backend: {
795
- * service: { name: 'web-service', port: { number: 80 } }
796
- * }
797
- * }]
798
- * }
799
- * }]
800
- * });
801
- * ```
802
- *
803
- * @deprecated Use addSecureIngress for enhanced security validation
804
- * @since 2.7.0
805
- */
806
- /**
807
- * Creates an Ingress resource for external access to services
808
- * @param spec - Ingress specification
809
- * @returns Created Ingress ApiObject
810
- * @deprecated Use addSecureIngress for enhanced security validation
811
- * @since 2.7.0
812
- */
813
- addIngress(spec: IngressSpec): ApiObject;
814
- /**
815
- * Creates a simple Ingress resource with optional TLS
816
- * @param name - Resource name
817
- * @param host - Domain host
818
- * @param serviceName - Backend service name
819
- * @param servicePort - Backend service port
820
- * @param options - Optional configuration
821
- * @returns Created Ingress ApiObject
822
- * @since 2.8.1
823
- */
824
- addIngress(name: string, host: string, serviceName: string, servicePort: number, options?: {
825
- tls?: boolean | string;
826
- className?: string;
827
- annotations?: Record<string, string>;
828
- path?: string;
829
- pathType?: 'Exact' | 'Prefix' | 'ImplementationSpecific';
830
- sslRedirect?: boolean;
831
- certManager?: string;
832
- }): ApiObject;
833
- /**
834
- * Creates a simple Ingress with enhanced options
835
- * @private
836
- */
837
- private createSimpleIngress;
838
- /**
839
- * Builds annotations for Ingress based on options
840
- * @private
841
- */
842
- private buildIngressAnnotations;
843
- /**
844
- * Adds SSL redirect annotation based on class and options
845
- * @private
846
- */
847
- private addSSLRedirectAnnotation;
848
- /**
849
- * Adds cert-manager annotation if specified
850
- * @private
851
- */
852
- private addCertManagerAnnotation;
853
- /**
854
- * Adds NGINX-specific annotations
855
- * @private
856
- */
857
- private addNginxAnnotations;
858
- /**
859
- * Creates a secure Ingress resource with TLS validation and environment-aware security defaults
860
- * @param spec - Enhanced Ingress specification with security options
861
- * @returns Created Ingress ApiObject
862
- *
863
- * @example
864
- * ```typescript
865
- * // Production Ingress with mandatory TLS
866
- * rutter.addSecureIngress({
867
- * name: 'secure-web-ingress',
868
- * environment: 'production',
869
- * tls: [{
870
- * hosts: ['secure.example.com'],
871
- * secretName: 'secure-example-tls'
872
- * }],
873
- * forceSSLRedirect: true,
874
- * rules: [{
875
- * host: 'secure.example.com',
876
- * http: {
877
- * paths: [{
878
- * path: '/',
879
- * pathType: 'Prefix',
880
- * backend: {
881
- * service: { name: 'web-service', port: { number: 80 } }
882
- * }
883
- * }]
884
- * }
885
- * }]
886
- * });
887
- * ```
888
- *
889
- * @since 2.8.0
890
- */
891
- addSecureIngress(spec: IngressSpec): ApiObject;
892
- /**
893
- * Creates a ServiceAccount with ECR access annotations
894
- * @param spec - ECR ServiceAccount specification
895
- * @returns Created ServiceAccount ApiObject
896
- *
897
- * @example
898
- * ```typescript
899
- * rutter.addAWSECRServiceAccount({
900
- * name: 'ecr-service-account',
901
- * roleArn: 'arn:aws:iam::123456789012:role/ECRAccessRole'
902
- * });
903
- * ```
904
- *
905
- * @since 2.7.0
906
- */
907
- addAWSECRServiceAccount(spec: AWSECRServiceAccountSpec): ApiObject;
908
- /**
909
- * Creates a Horizontal Pod Autoscaler (HPA) resource
910
- * @param spec - HPA specification
911
- * @returns Created HPA ApiObject
912
- *
913
- * @example
914
- * ```typescript
915
- * rutter.addHorizontalPodAutoscaler({
916
- * name: 'web-hpa',
917
- * scaleTargetRef: {
918
- * apiVersion: 'apps/v1',
919
- * kind: 'Deployment',
920
- * name: 'web-app'
921
- * },
922
- * minReplicas: 2,
923
- * maxReplicas: 10,
924
- * metrics: [{
925
- * type: 'Resource',
926
- * resource: {
927
- * name: 'cpu',
928
- * target: { type: 'Utilization', averageUtilization: 70 }
929
- * }
930
- * }]
931
- * });
932
- * ```
933
- *
934
- * @since 2.7.0
935
- */
936
- addHorizontalPodAutoscaler(spec: HorizontalPodAutoscalerSpec): ApiObject;
937
- /**
938
- * Creates a Vertical Pod Autoscaler (VPA) resource
939
- * @param spec - VPA specification
940
- * @returns Created VPA ApiObject
941
- *
942
- * @example
943
- * ```typescript
944
- * rutter.addVerticalPodAutoscaler({
945
- * name: 'web-vpa',
946
- * targetRef: {
947
- * apiVersion: 'apps/v1',
948
- * kind: 'Deployment',
949
- * name: 'web-app'
950
- * },
951
- * updatePolicy: { updateMode: 'Auto' }
952
- * });
953
- * ```
954
- *
955
- * @since 2.7.0
956
- */
957
- addVerticalPodAutoscaler(spec: VerticalPodAutoscalerSpec): ApiObject;
958
- /**
959
- * Creates a CronJob resource
960
- * @param spec - CronJob specification
961
- * @returns Created CronJob ApiObject
962
- *
963
- * @example
964
- * ```typescript
965
- * rutter.addCronJob({
966
- * name: 'backup-job',
967
- * schedule: '0 2 * * *',
968
- * jobTemplate: {
969
- * spec: {
970
- * template: {
971
- * spec: {
972
- * containers: [{
973
- * name: 'backup',
974
- * image: 'backup:latest',
975
- * command: ['backup.sh']
976
- * }],
977
- * restartPolicy: 'OnFailure'
978
- * }
979
- * }
980
- * }
981
- * }
982
- * });
983
- * ```
984
- *
985
- * @since 2.7.0
986
- */
987
- addCronJob(spec: CronJobSpec): ApiObject;
988
- /**
989
- * Adds a custom resource definition (CRD) YAML or object
990
- * @param yamlOrObject - CRD YAML content string or object
991
- * @param id - Unique identifier for the CRD
992
- *
993
- * @example
994
- * ```typescript
995
- * // Using YAML string
996
- * rutter.addCrd(`
997
- * apiVersion: apiextensions.k8s.io/v1
998
- * kind: CustomResourceDefinition
999
- * metadata:
1000
- * name: example.com
1001
- * spec:
1002
- * group: example.com
1003
- * versions: []
1004
- * `);
1005
- *
1006
- * // Using object
1007
- * rutter.addCrd({
1008
- * apiVersion: 'apiextensions.k8s.io/v1',
1009
- * kind: 'CustomResourceDefinition',
1010
- * metadata: { name: 'example.com' },
1011
- * spec: { group: 'example.com', versions: [] }
1012
- * });
1013
- * ```
1014
- *
1015
- * @since 1.0.0
1016
- */
1017
- addCrd(yamlOrObject: string | Record<string, unknown>, id?: string): void;
1018
- /**
1019
- * Validates CRD structure according to Kubernetes specification
1020
- * @param crd - CRD object to validate
1021
- * @private
1022
- * @since 2.5.0
1023
- */
1024
- private validateCrdStructure;
1025
- /**
1026
- * Gets chart metadata
1027
- * @returns Chart metadata
1028
- *
1029
- * @since 1.0.0
1030
- */
1031
- getMeta(): ChartMetadata;
1032
- /**
1033
- * Gets default values
1034
- * @returns Default values object
1035
- *
1036
- * @since 1.0.0
1037
- */
1038
- getDefaultValues(): Record<string, unknown>;
1039
- /**
1040
- * Gets environment-specific values
1041
- * @returns Environment values object
1042
- *
1043
- * @since 1.0.0
1044
- */
1045
- getEnvValues(): Record<string, Record<string, unknown>>;
1046
- /**
1047
- * Gets all assets (CRDs, etc.)
1048
- * @returns Array of assets
1049
- *
1050
- * @since 1.0.0
1051
- */
1052
- getAssets(): Array<{
1053
- id: string;
1054
- yaml: string;
1055
- target: string;
1056
- }>;
1057
- /**
1058
- * Converts the chart to SynthAsset array for HelmChartWriter
1059
- * @returns Array of synthesized assets
1060
- *
1061
- * @since 2.4.0
1062
- */
1063
- private toSynthArray;
1064
- /**
1065
- * Writes the Helm chart to the specified output directory
1066
- * @param outDir - Output directory path
1067
- *
1068
- * @since 1.0.0
1069
- */
1070
- write(outDir: string): void;
1071
- }
1072
- export interface ChartMetadata {
1073
- name: string;
1074
- version: string;
1075
- description?: string;
1076
- keywords?: string[];
1077
- home?: string;
1078
- sources?: string[];
1079
- maintainers?: Array<{
1080
- name: string;
1081
- email?: string;
1082
- url?: string;
1083
- }>;
1084
- }
1085
- export interface RutterProps {
1086
- scope?: Construct;
1087
- meta: ChartMetadata;
1088
- defaultValues?: Record<string, unknown>;
1089
- envValues?: Record<string, Record<string, unknown>>;
1090
- namespace?: string;
1091
- chartProps?: ChartProps;
1092
- /** Custom Helm helpers content or definitions */
1093
- helpersTpl?: string | HelperDefinition[];
1094
- /** Cloud provider for default helpers */
1095
- cloudProvider?: 'aws' | 'azure' | 'gcp';
1096
- /** Manifest file naming strategy */
1097
- namingStrategy?: NamingStrategy;
1098
- /** Custom prefix for manifest files */
1099
- manifestPrefix?: string;
1100
- /** Combine all resources into single manifest file */
1101
- singleManifestFile?: boolean;
1102
- }
1103
- export type { DeploymentSpec, ServiceSpec, ConfigMapSpec, SecretSpec, ServiceAccountSpec, } from './resources/core/coreResources.js';
1104
- export type { PersistentVolumeSpec, PersistentVolumeClaimSpec, StorageClassSpec, } from './resources/core/storageResources.js';
1105
- export type { AWSEBSStorageClassSpec, AWSEFSStorageClassSpec, AWSIRSAServiceAccountSpec, AWSALBIngressSpec, } from './resources/cloud/aws/awsResources.js';
1106
- //# sourceMappingURL=rutter.d.ts.map