timonel 2.3.0 → 2.5.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 (81) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +5 -1
  3. package/SECURITY.md +3 -3
  4. package/dist/cli.js +33 -38
  5. package/dist/cli.js.map +1 -1
  6. package/dist/index.d.ts +9 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +10 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/lib/{HelmChartWriter.d.ts → helmChartWriter.d.ts} +1 -1
  11. package/dist/lib/{HelmChartWriter.d.ts.map → helmChartWriter.d.ts.map} +1 -1
  12. package/dist/lib/{HelmChartWriter.js → helmChartWriter.js} +1 -1
  13. package/dist/lib/{HelmChartWriter.js.map → helmChartWriter.js.map} +1 -1
  14. package/dist/lib/resources/autoscaling/autoscalingResources.d.ts +26 -0
  15. package/dist/lib/resources/autoscaling/autoscalingResources.d.ts.map +1 -0
  16. package/dist/lib/resources/autoscaling/autoscalingResources.js +35 -0
  17. package/dist/lib/resources/autoscaling/autoscalingResources.js.map +1 -0
  18. package/dist/lib/resources/baseResourceProvider.d.ts +47 -0
  19. package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -0
  20. package/dist/lib/resources/baseResourceProvider.js +83 -0
  21. package/dist/lib/resources/baseResourceProvider.js.map +1 -0
  22. package/dist/lib/resources/cloud/aws/awsResources.d.ts +165 -0
  23. package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -0
  24. package/dist/lib/resources/cloud/aws/awsResources.js +187 -0
  25. package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -0
  26. package/dist/lib/resources/cloud/azure/azureResources.d.ts +169 -0
  27. package/dist/lib/resources/cloud/azure/azureResources.d.ts.map +1 -0
  28. package/dist/lib/resources/cloud/azure/azureResources.js +218 -0
  29. package/dist/lib/resources/cloud/azure/azureResources.js.map +1 -0
  30. package/dist/lib/resources/cloud/gcp/gcpResources.d.ts +133 -0
  31. package/dist/lib/resources/cloud/gcp/gcpResources.d.ts.map +1 -0
  32. package/dist/lib/resources/cloud/gcp/gcpResources.js +162 -0
  33. package/dist/lib/resources/cloud/gcp/gcpResources.js.map +1 -0
  34. package/dist/lib/resources/core/coreResources.d.ts +766 -0
  35. package/dist/lib/resources/core/coreResources.d.ts.map +1 -0
  36. package/dist/lib/resources/core/coreResources.js +1043 -0
  37. package/dist/lib/resources/core/coreResources.js.map +1 -0
  38. package/dist/lib/resources/core/storageResources.d.ts +133 -0
  39. package/dist/lib/resources/core/storageResources.d.ts.map +1 -0
  40. package/dist/lib/resources/core/storageResources.js +120 -0
  41. package/dist/lib/resources/core/storageResources.js.map +1 -0
  42. package/dist/lib/resources/validation/validationResources.d.ts +26 -0
  43. package/dist/lib/resources/validation/validationResources.d.ts.map +1 -0
  44. package/dist/lib/resources/validation/validationResources.js +33 -0
  45. package/dist/lib/resources/validation/validationResources.js.map +1 -0
  46. package/dist/lib/rutter.d.ts +567 -0
  47. package/dist/lib/rutter.d.ts.map +1 -0
  48. package/dist/lib/rutter.js +694 -0
  49. package/dist/lib/rutter.js.map +1 -0
  50. package/dist/lib/security.d.ts +21 -0
  51. package/dist/lib/security.d.ts.map +1 -1
  52. package/dist/lib/security.js +21 -0
  53. package/dist/lib/security.js.map +1 -1
  54. package/dist/lib/umbrella.d.ts +22 -2
  55. package/dist/lib/umbrella.d.ts.map +1 -1
  56. package/dist/lib/umbrella.js +21 -1
  57. package/dist/lib/umbrella.js.map +1 -1
  58. package/dist/lib/umbrellaRutter.d.ts +97 -0
  59. package/dist/lib/umbrellaRutter.d.ts.map +1 -0
  60. package/dist/lib/{UmbrellaRutter.js → umbrellaRutter.js} +44 -1
  61. package/dist/lib/umbrellaRutter.js.map +1 -0
  62. package/dist/lib/utils/helmHelpers.d.ts +58 -0
  63. package/dist/lib/utils/helmHelpers.d.ts.map +1 -0
  64. package/dist/lib/utils/helmHelpers.js +155 -0
  65. package/dist/lib/utils/helmHelpers.js.map +1 -0
  66. package/dist/lib/utils/podTemplates.d.ts +192 -0
  67. package/dist/lib/utils/podTemplates.d.ts.map +1 -0
  68. package/dist/lib/utils/podTemplates.js +331 -0
  69. package/dist/lib/utils/podTemplates.js.map +1 -0
  70. package/dist/lib/utils/resourceNaming.d.ts +57 -0
  71. package/dist/lib/utils/resourceNaming.d.ts.map +1 -0
  72. package/dist/lib/utils/resourceNaming.js +82 -0
  73. package/dist/lib/utils/resourceNaming.js.map +1 -0
  74. package/package.json +2 -1
  75. package/dist/lib/Rutter.d.ts +0 -2688
  76. package/dist/lib/Rutter.d.ts.map +0 -1
  77. package/dist/lib/Rutter.js +0 -2863
  78. package/dist/lib/Rutter.js.map +0 -1
  79. package/dist/lib/UmbrellaRutter.d.ts +0 -34
  80. package/dist/lib/UmbrellaRutter.d.ts.map +0 -1
  81. package/dist/lib/UmbrellaRutter.js.map +0 -1
@@ -0,0 +1,567 @@
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, 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 } from './resources/cloud/gcp/gcpResources.js';
9
+ import type { HelperDefinition } from './utils/helmHelpers.js';
10
+ import type { NamingStrategy } from './utils/resourceNaming.js';
11
+ /**
12
+ * Rutter class with modular architecture
13
+ * Provides a clean API while delegating to specialized resource providers
14
+ * Maintains full backward compatibility with the original Rutter class
15
+ *
16
+ * @since 2.4.0
17
+ */
18
+ export declare class Rutter {
19
+ private static readonly HELPER_NAME;
20
+ private readonly app;
21
+ private readonly chart;
22
+ private readonly coreResources;
23
+ private readonly storageResources;
24
+ private readonly awsResources;
25
+ private readonly azureResources;
26
+ private readonly gcpResources;
27
+ private readonly meta;
28
+ private readonly defaultValues;
29
+ private readonly envValues;
30
+ private readonly props;
31
+ private readonly assets;
32
+ constructor(props: RutterProps);
33
+ /**
34
+ * Creates a Deployment resource
35
+ * @param spec - Deployment specification
36
+ * @returns Created Deployment ApiObject
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * rutter.addDeployment({
41
+ * name: 'web-app',
42
+ * image: 'nginx:1.21',
43
+ * replicas: 3,
44
+ * containerPort: 80
45
+ * });
46
+ * ```
47
+ *
48
+ * @since 1.0.0
49
+ */
50
+ addDeployment(spec: DeploymentSpec): ApiObject;
51
+ /**
52
+ * Creates a DaemonSet resource
53
+ * @param spec - DaemonSet specification
54
+ * @returns Created DaemonSet ApiObject
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * rutter.addDaemonSet({
59
+ * name: 'log-collector',
60
+ * image: 'fluentd:v1.14',
61
+ * containerPort: 24224,
62
+ * hostNetwork: true
63
+ * });
64
+ * ```
65
+ *
66
+ * @since 2.4.0
67
+ */
68
+ addDaemonSet(spec: DaemonSetSpec): ApiObject;
69
+ /**
70
+ * Creates a StatefulSet resource
71
+ * @param spec - StatefulSet specification
72
+ * @returns Created StatefulSet ApiObject
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * rutter.addStatefulSet({
77
+ * name: 'database',
78
+ * image: 'postgres:13',
79
+ * replicas: 3,
80
+ * serviceName: 'database-headless',
81
+ * containerPort: 5432
82
+ * });
83
+ * ```
84
+ *
85
+ * @since 2.4.0
86
+ */
87
+ addStatefulSet(spec: StatefulSetSpec): ApiObject;
88
+ /**
89
+ * Creates a Role resource for RBAC
90
+ * @param spec - Role specification
91
+ * @returns Created Role ApiObject
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * rutter.addRole({
96
+ * name: 'pod-reader',
97
+ * rules: [
98
+ * {
99
+ * apiGroups: [''],
100
+ * resources: ['pods'],
101
+ * verbs: ['get', 'list', 'watch']
102
+ * }
103
+ * ]
104
+ * });
105
+ * ```
106
+ *
107
+ * @since 2.4.0
108
+ */
109
+ addRole(spec: RoleSpec): ApiObject;
110
+ /**
111
+ * Creates a ClusterRole resource for cluster-wide RBAC
112
+ * @param spec - ClusterRole specification
113
+ * @returns Created ClusterRole ApiObject
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * rutter.addClusterRole({
118
+ * name: 'cluster-reader',
119
+ * rules: [
120
+ * {
121
+ * apiGroups: [''],
122
+ * resources: ['nodes', 'namespaces'],
123
+ * verbs: ['get', 'list', 'watch']
124
+ * }
125
+ * ]
126
+ * });
127
+ * ```
128
+ *
129
+ * @since 2.4.0
130
+ */
131
+ addClusterRole(spec: ClusterRoleSpec): ApiObject;
132
+ /**
133
+ * Creates a RoleBinding resource for RBAC
134
+ * @param spec - RoleBinding specification
135
+ * @returns Created RoleBinding ApiObject
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * rutter.addRoleBinding({
140
+ * name: 'pod-reader-binding',
141
+ * roleRef: {
142
+ * kind: 'Role',
143
+ * name: 'pod-reader',
144
+ * apiGroup: 'rbac.authorization.k8s.io'
145
+ * },
146
+ * subjects: [
147
+ * {
148
+ * kind: 'ServiceAccount',
149
+ * name: 'my-service-account'
150
+ * }
151
+ * ]
152
+ * });
153
+ * ```
154
+ *
155
+ * @since 2.4.0
156
+ */
157
+ addRoleBinding(spec: RoleBindingSpec): ApiObject;
158
+ /**
159
+ * Creates a ClusterRoleBinding resource for cluster-wide RBAC
160
+ * @param spec - ClusterRoleBinding specification
161
+ * @returns Created ClusterRoleBinding ApiObject
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * rutter.addClusterRoleBinding({
166
+ * name: 'cluster-reader-binding',
167
+ * roleRef: {
168
+ * kind: 'ClusterRole',
169
+ * name: 'cluster-reader',
170
+ * apiGroup: 'rbac.authorization.k8s.io'
171
+ * },
172
+ * subjects: [
173
+ * {
174
+ * kind: 'ServiceAccount',
175
+ * name: 'monitoring-agent',
176
+ * namespace: 'monitoring'
177
+ * }
178
+ * ]
179
+ * });
180
+ * ```
181
+ *
182
+ * @since 2.4.0
183
+ */
184
+ addClusterRoleBinding(spec: ClusterRoleBindingSpec): ApiObject;
185
+ /**
186
+ * Creates a Job resource for batch workloads
187
+ * @param spec - Job specification
188
+ * @returns Created Job ApiObject
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * rutter.addJob({
193
+ * name: 'data-processor',
194
+ * image: 'busybox:1.35',
195
+ * command: ['sh', '-c', 'echo "Processing..." && sleep 30'],
196
+ * completions: 1
197
+ * });
198
+ * ```
199
+ *
200
+ * @since 2.4.0
201
+ */
202
+ addJob(spec: JobSpec): ApiObject;
203
+ /**
204
+ * Creates a Service resource
205
+ * @param spec - Service specification
206
+ * @returns Created Service ApiObject
207
+ *
208
+ * @example
209
+ * ```typescript
210
+ * rutter.addService({
211
+ * name: 'web-service',
212
+ * port: 80,
213
+ * targetPort: 8080,
214
+ * type: 'ClusterIP'
215
+ * });
216
+ * ```
217
+ *
218
+ * @since 1.0.0
219
+ */
220
+ addService(spec: ServiceSpec): ApiObject;
221
+ /**
222
+ * Creates a ConfigMap resource
223
+ * @param spec - ConfigMap specification
224
+ * @returns Created ConfigMap ApiObject
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * rutter.addConfigMap({
229
+ * name: 'app-config',
230
+ * data: {
231
+ * 'config.yaml': 'key: value',
232
+ * 'app.properties': 'debug=true'
233
+ * }
234
+ * });
235
+ * ```
236
+ *
237
+ * @since 1.0.0
238
+ */
239
+ addConfigMap(spec: ConfigMapSpec): ApiObject;
240
+ /**
241
+ * Creates a Secret resource
242
+ * @param spec - Secret specification
243
+ * @returns Created Secret ApiObject
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * rutter.addSecret({
248
+ * name: 'app-secrets',
249
+ * type: 'Opaque',
250
+ * data: {
251
+ * username: 'YWRtaW4=',
252
+ * password: 'MWYyZDFlMmU2N2Rm'
253
+ * }
254
+ * });
255
+ * ```
256
+ *
257
+ * @since 1.0.0
258
+ */
259
+ addSecret(spec: SecretSpec): ApiObject;
260
+ /**
261
+ * Creates a ServiceAccount resource
262
+ * @param spec - ServiceAccount specification
263
+ * @returns Created ServiceAccount ApiObject
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * rutter.addServiceAccount({
268
+ * name: 'app-service-account',
269
+ * automountServiceAccountToken: false
270
+ * });
271
+ * ```
272
+ *
273
+ * @since 1.0.0
274
+ */
275
+ addServiceAccount(spec: ServiceAccountSpec): ApiObject;
276
+ /**
277
+ * Creates a PersistentVolume resource
278
+ * @param spec - PersistentVolume specification
279
+ * @returns Created PersistentVolume ApiObject
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * rutter.addPersistentVolume({
284
+ * name: 'data-pv',
285
+ * capacity: '10Gi',
286
+ * accessModes: ['ReadWriteOnce'],
287
+ * storageClassName: 'fast-ssd'
288
+ * });
289
+ * ```
290
+ *
291
+ * @since 1.0.0
292
+ */
293
+ addPersistentVolume(spec: PersistentVolumeSpec): ApiObject;
294
+ /**
295
+ * Creates a PersistentVolumeClaim resource
296
+ * @param spec - PersistentVolumeClaim specification
297
+ * @returns Created PersistentVolumeClaim ApiObject
298
+ *
299
+ * @example
300
+ * ```typescript
301
+ * rutter.addPersistentVolumeClaim({
302
+ * name: 'data-pvc',
303
+ * size: '10Gi',
304
+ * accessModes: ['ReadWriteOnce'],
305
+ * storageClassName: 'fast-ssd'
306
+ * });
307
+ * ```
308
+ *
309
+ * @since 1.0.0
310
+ */
311
+ addPersistentVolumeClaim(spec: PersistentVolumeClaimSpec): ApiObject;
312
+ /**
313
+ * Creates a StorageClass resource
314
+ * @param spec - StorageClass specification
315
+ * @returns Created StorageClass ApiObject
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * rutter.addStorageClass({
320
+ * name: 'fast-ssd',
321
+ * provisioner: 'kubernetes.io/aws-ebs',
322
+ * parameters: {
323
+ * type: 'gp3',
324
+ * encrypted: 'true'
325
+ * }
326
+ * });
327
+ * ```
328
+ *
329
+ * @since 1.0.0
330
+ */
331
+ addStorageClass(spec: StorageClassSpec): ApiObject;
332
+ /**
333
+ * Creates an AWS EBS StorageClass
334
+ * @param spec - EBS StorageClass specification
335
+ * @returns Created StorageClass ApiObject
336
+ *
337
+ * @example
338
+ * ```typescript
339
+ * rutter.addAWSEBSStorageClass({
340
+ * name: 'fast-ebs',
341
+ * volumeType: 'gp3',
342
+ * encrypted: true,
343
+ * allowVolumeExpansion: true
344
+ * });
345
+ * ```
346
+ *
347
+ * @since 1.0.0
348
+ */
349
+ addAWSEBSStorageClass(spec: AWSEBSStorageClassSpec): ApiObject;
350
+ /**
351
+ * Creates an AWS EFS StorageClass
352
+ * @param spec - EFS StorageClass specification
353
+ * @returns Created StorageClass ApiObject
354
+ *
355
+ * @example
356
+ * ```typescript
357
+ * rutter.addAWSEFSStorageClass({
358
+ * name: 'efs-storage',
359
+ * fileSystemId: 'fs-12345678',
360
+ * directoryPerms: '0755'
361
+ * });
362
+ * ```
363
+ *
364
+ * @since 1.0.0
365
+ */
366
+ addAWSEFSStorageClass(spec: AWSEFSStorageClassSpec): ApiObject;
367
+ /**
368
+ * Creates an AWS IRSA ServiceAccount
369
+ * @param spec - IRSA ServiceAccount specification
370
+ * @returns Created ServiceAccount ApiObject
371
+ *
372
+ * @example
373
+ * ```typescript
374
+ * rutter.addAWSIRSAServiceAccount({
375
+ * name: 'aws-service-account',
376
+ * roleArn: 'arn:aws:iam::123456789012:role/MyRole'
377
+ * });
378
+ * ```
379
+ *
380
+ * @since 1.0.0
381
+ */
382
+ addAWSIRSAServiceAccount(spec: AWSIRSAServiceAccountSpec): ApiObject;
383
+ /**
384
+ * Creates an AWS ALB Ingress
385
+ * @param spec - ALB Ingress specification
386
+ * @returns Created Ingress ApiObject
387
+ *
388
+ * @example
389
+ * ```typescript
390
+ * rutter.addAWSALBIngress({
391
+ * name: 'web-ingress',
392
+ * rules: [{
393
+ * paths: [{
394
+ * path: '/',
395
+ * pathType: 'Prefix',
396
+ * backend: { service: { name: 'web-service', port: { number: 80 } } }
397
+ * }]
398
+ * }],
399
+ * scheme: 'internet-facing'
400
+ * });
401
+ * ```
402
+ *
403
+ * @since 1.0.0
404
+ */
405
+ addAWSALBIngress(spec: AWSALBIngressSpec): ApiObject;
406
+ /**
407
+ * Creates an Azure Disk StorageClass
408
+ * @param spec - Azure Disk StorageClass specification
409
+ * @returns Created StorageClass ApiObject
410
+ *
411
+ * @since 2.4.0
412
+ */
413
+ addAzureDiskStorageClass(spec: AzureDiskStorageClassSpec): ApiObject;
414
+ /**
415
+ * Creates an Azure File StorageClass
416
+ * @param spec - Azure File StorageClass specification
417
+ * @returns Created StorageClass ApiObject
418
+ *
419
+ * @since 2.4.0
420
+ */
421
+ addAzureFileStorageClass(spec: AzureFileStorageClassSpec): ApiObject;
422
+ /**
423
+ * Creates an Azure Application Gateway Ingress
424
+ * @param spec - AGIC Ingress specification
425
+ * @returns Created Ingress ApiObject
426
+ *
427
+ * @since 2.4.0
428
+ */
429
+ addAzureApplicationGatewayIngress(spec: AzureAGICIngressSpec): ApiObject;
430
+ /**
431
+ * Creates an Azure Key Vault SecretProviderClass
432
+ * @param spec - Azure Key Vault SecretProviderClass specification
433
+ * @returns Created SecretProviderClass ApiObject
434
+ *
435
+ * @since 2.4.0
436
+ */
437
+ addAzureKeyVaultSecretProviderClass(spec: AzureKeyVaultSecretProviderClassSpec): ApiObject;
438
+ /**
439
+ * Creates an Azure Container Registry ServiceAccount
440
+ * @param spec - Azure ACR ServiceAccount specification
441
+ * @returns Created ServiceAccount ApiObject
442
+ *
443
+ * @since 2.4.0
444
+ */
445
+ addAzureACRServiceAccount(spec: AzureACRServiceAccountSpec): ApiObject;
446
+ /**
447
+ * Creates a GCP Persistent Disk StorageClass
448
+ * @param spec - GCP PD StorageClass specification
449
+ * @returns Created StorageClass ApiObject
450
+ *
451
+ * @since 2.4.0
452
+ */
453
+ addGCPPersistentDiskStorageClass(spec: GCPPersistentDiskStorageClassSpec): ApiObject;
454
+ /**
455
+ * Creates a GCP Filestore StorageClass
456
+ * @param spec - GCP Filestore StorageClass specification
457
+ * @returns Created StorageClass ApiObject
458
+ *
459
+ * @since 2.4.0
460
+ */
461
+ addGCPFilestoreStorageClass(spec: GCPFilestoreStorageClassSpec): ApiObject;
462
+ /**
463
+ * Creates a GCE Ingress with Google Cloud Load Balancer
464
+ * @param spec - GCE Ingress specification
465
+ * @returns Created Ingress ApiObject
466
+ *
467
+ * @since 2.4.0
468
+ */
469
+ addGCPGCEIngress(spec: GCPGCEIngressSpec): ApiObject;
470
+ /**
471
+ * Creates a ServiceAccount with Workload Identity annotations
472
+ * @param spec - Workload Identity ServiceAccount specification
473
+ * @returns Created ServiceAccount ApiObject
474
+ *
475
+ * @since 2.4.0
476
+ */
477
+ addGCPWorkloadIdentityServiceAccount(spec: GCPWorkloadIdentityServiceAccountSpec): ApiObject;
478
+ /**
479
+ * Adds a custom resource definition (CRD) YAML
480
+ * @param yaml - CRD YAML content
481
+ * @param id - Unique identifier for the CRD
482
+ *
483
+ * @since 1.0.0
484
+ */
485
+ addCrd(yaml: string, id?: string): void;
486
+ /**
487
+ * Gets chart metadata
488
+ * @returns Chart metadata
489
+ *
490
+ * @since 1.0.0
491
+ */
492
+ getMeta(): ChartMetadata;
493
+ /**
494
+ * Gets default values
495
+ * @returns Default values object
496
+ *
497
+ * @since 1.0.0
498
+ */
499
+ getDefaultValues(): Record<string, unknown>;
500
+ /**
501
+ * Gets environment-specific values
502
+ * @returns Environment values object
503
+ *
504
+ * @since 1.0.0
505
+ */
506
+ getEnvValues(): Record<string, Record<string, unknown>>;
507
+ /**
508
+ * Gets all assets (CRDs, etc.)
509
+ * @returns Array of assets
510
+ *
511
+ * @since 1.0.0
512
+ */
513
+ getAssets(): Array<{
514
+ id: string;
515
+ yaml: string;
516
+ target: string;
517
+ }>;
518
+ /**
519
+ * Converts the chart to SynthAsset array for HelmChartWriter
520
+ * @returns Array of synthesized assets
521
+ *
522
+ * @since 2.4.0
523
+ */
524
+ private toSynthArray;
525
+ /**
526
+ * Writes the Helm chart to the specified output directory
527
+ * @param outDir - Output directory path
528
+ *
529
+ * @since 1.0.0
530
+ */
531
+ write(outDir: string): void;
532
+ }
533
+ export interface ChartMetadata {
534
+ name: string;
535
+ version: string;
536
+ description?: string;
537
+ keywords?: string[];
538
+ home?: string;
539
+ sources?: string[];
540
+ maintainers?: Array<{
541
+ name: string;
542
+ email?: string;
543
+ url?: string;
544
+ }>;
545
+ }
546
+ export interface RutterProps {
547
+ scope?: Construct;
548
+ meta: ChartMetadata;
549
+ defaultValues?: Record<string, unknown>;
550
+ envValues?: Record<string, Record<string, unknown>>;
551
+ namespace?: string;
552
+ chartProps?: ChartProps;
553
+ /** Custom Helm helpers content or definitions */
554
+ helpersTpl?: string | HelperDefinition[];
555
+ /** Cloud provider for default helpers */
556
+ cloudProvider?: 'aws' | 'azure' | 'gcp';
557
+ /** Manifest file naming strategy */
558
+ namingStrategy?: NamingStrategy;
559
+ /** Custom prefix for manifest files */
560
+ manifestPrefix?: string;
561
+ /** Combine all resources into single manifest file */
562
+ singleManifestFile?: boolean;
563
+ }
564
+ export type { DeploymentSpec, ServiceSpec, ConfigMapSpec, SecretSpec, ServiceAccountSpec, } from './resources/core/coreResources.js';
565
+ export type { PersistentVolumeSpec, PersistentVolumeClaimSpec, StorageClassSpec, } from './resources/core/storageResources.js';
566
+ export type { AWSEBSStorageClassSpec, AWSEFSStorageClassSpec, AWSIRSAServiceAccountSpec, AWSALBIngressSpec, } from './resources/cloud/aws/awsResources.js';
567
+ //# sourceMappingURL=rutter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rutter.d.ts","sourceRoot":"","sources":["../../src/lib/rutter.ts"],"names":[],"mappings":"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"}