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.
- package/CHANGELOG.md +13 -0
- package/README.md +5 -1
- package/SECURITY.md +3 -3
- package/dist/cli.js +33 -38
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/{HelmChartWriter.d.ts → helmChartWriter.d.ts} +1 -1
- package/dist/lib/{HelmChartWriter.d.ts.map → helmChartWriter.d.ts.map} +1 -1
- package/dist/lib/{HelmChartWriter.js → helmChartWriter.js} +1 -1
- package/dist/lib/{HelmChartWriter.js.map → helmChartWriter.js.map} +1 -1
- 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 +766 -0
- package/dist/lib/resources/core/coreResources.d.ts.map +1 -0
- package/dist/lib/resources/core/coreResources.js +1043 -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 +567 -0
- package/dist/lib/rutter.d.ts.map +1 -0
- package/dist/lib/rutter.js +694 -0
- package/dist/lib/rutter.js.map +1 -0
- package/dist/lib/security.d.ts +21 -0
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +21 -0
- package/dist/lib/security.js.map +1 -1
- 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} +44 -1
- package/dist/lib/umbrellaRutter.js.map +1 -0
- package/dist/lib/utils/helmHelpers.d.ts +58 -0
- package/dist/lib/utils/helmHelpers.d.ts.map +1 -0
- package/dist/lib/utils/helmHelpers.js +155 -0
- package/dist/lib/utils/helmHelpers.js.map +1 -0
- package/dist/lib/utils/podTemplates.d.ts +192 -0
- package/dist/lib/utils/podTemplates.d.ts.map +1 -0
- package/dist/lib/utils/podTemplates.js +331 -0
- package/dist/lib/utils/podTemplates.js.map +1 -0
- package/dist/lib/utils/resourceNaming.d.ts +57 -0
- package/dist/lib/utils/resourceNaming.d.ts.map +1 -0
- package/dist/lib/utils/resourceNaming.js +82 -0
- package/dist/lib/utils/resourceNaming.js.map +1 -0
- package/package.json +2 -1
- package/dist/lib/Rutter.d.ts +0 -2688
- package/dist/lib/Rutter.d.ts.map +0 -1
- package/dist/lib/Rutter.js +0 -2863
- 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
|
@@ -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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"}
|