timonel 0.1.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.
@@ -0,0 +1,389 @@
1
+ import { ApiObject } from 'cdk8s';
2
+ import type { HelmChartMeta, HelperDefinition } from './HelmChartWriter';
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 ServiceSpec {
192
+ name: string;
193
+ ports: Array<{
194
+ port: number;
195
+ targetPort?: number;
196
+ protocol?: 'TCP' | 'UDP' | 'SCTP';
197
+ name?: string;
198
+ nodePort?: number;
199
+ }>;
200
+ type?: 'ClusterIP' | 'NodePort' | 'LoadBalancer' | 'ExternalName';
201
+ selector?: Record<string, string>;
202
+ clusterIP?: string;
203
+ externalName?: string;
204
+ sessionAffinity?: 'None' | 'ClientIP';
205
+ loadBalancerIP?: string;
206
+ loadBalancerSourceRanges?: string[];
207
+ loadBalancerClass?: string;
208
+ externalTrafficPolicy?: 'Cluster' | 'Local';
209
+ internalTrafficPolicy?: 'Cluster' | 'Local';
210
+ ipFamilyPolicy?: 'SingleStack' | 'PreferDualStack' | 'RequireDualStack';
211
+ ipFamilies?: Array<'IPv4' | 'IPv6'>;
212
+ labels?: Record<string, string>;
213
+ annotations?: Record<string, string>;
214
+ }
215
+ export interface IngressRule {
216
+ host?: string;
217
+ paths: Array<{
218
+ path: string;
219
+ pathType: 'Exact' | 'Prefix' | 'ImplementationSpecific';
220
+ backend: {
221
+ service: {
222
+ name: string;
223
+ port: {
224
+ number?: number;
225
+ name?: string;
226
+ };
227
+ };
228
+ };
229
+ }>;
230
+ }
231
+ export interface IngressTLS {
232
+ hosts?: string[];
233
+ secretName?: string;
234
+ }
235
+ export interface IngressSpec {
236
+ name: string;
237
+ rules: IngressRule[];
238
+ tls?: IngressTLS[];
239
+ ingressClassName?: string;
240
+ defaultBackend?: {
241
+ service: {
242
+ name: string;
243
+ port: {
244
+ number?: number;
245
+ name?: string;
246
+ };
247
+ };
248
+ };
249
+ labels?: Record<string, string>;
250
+ annotations?: Record<string, string>;
251
+ }
252
+ export interface ConfigMapSpec {
253
+ name: string;
254
+ data?: Record<string, string>;
255
+ binaryData?: Record<string, string>;
256
+ immutable?: boolean;
257
+ labels?: Record<string, string>;
258
+ annotations?: Record<string, string>;
259
+ }
260
+ export interface SecretSpec {
261
+ name: string;
262
+ type?: string;
263
+ stringData?: Record<string, string>;
264
+ data?: Record<string, string>;
265
+ immutable?: boolean;
266
+ labels?: Record<string, string>;
267
+ annotations?: Record<string, string>;
268
+ }
269
+ export interface PersistentVolumeClaimSpec {
270
+ name: string;
271
+ accessModes: AccessMode[];
272
+ resources: {
273
+ requests: {
274
+ storage: string;
275
+ };
276
+ limits?: {
277
+ storage: string;
278
+ };
279
+ };
280
+ storageClassName?: string;
281
+ volumeMode?: VolumeMode;
282
+ selector?: {
283
+ matchLabels?: Record<string, string>;
284
+ matchExpressions?: unknown[];
285
+ };
286
+ labels?: Record<string, string>;
287
+ annotations?: Record<string, string>;
288
+ /** Reference to specific PV for static binding */
289
+ volumeName?: string;
290
+ /** Cloud provider for optimized defaults */
291
+ cloudProvider?: 'aws' | 'azure' | 'gcp';
292
+ }
293
+ export interface ServiceAccountSpec {
294
+ name: string;
295
+ annotations?: Record<string, string>;
296
+ labels?: Record<string, string>;
297
+ automountServiceAccountToken?: boolean;
298
+ imagePullSecrets?: string[];
299
+ secrets?: string[];
300
+ /**
301
+ * EKS IRSA support: if set, adds annotation eks.amazonaws.com/role-arn
302
+ * Example: arn:aws:iam::<account-id>:role/<role-name>
303
+ */
304
+ awsRoleArn?: string;
305
+ /**
306
+ * Optional custom audience for IRSA (default is sts.amazonaws.com)
307
+ * Adds annotation eks.amazonaws.com/audience when provided.
308
+ */
309
+ awsAudience?: string;
310
+ /**
311
+ * AKS Workload Identity: Azure application client ID.
312
+ * Adds annotation azure.workload.identity/client-id when provided.
313
+ */
314
+ azureClientId?: string;
315
+ /**
316
+ * AKS Workload Identity: Azure tenant ID.
317
+ * Adds annotation azure.workload.identity/tenant-id when provided.
318
+ */
319
+ azureTenantId?: string;
320
+ /**
321
+ * AKS Workload Identity: projected SA token expiration (seconds).
322
+ * Adds annotation azure.workload.identity/service-account-token-expiration.
323
+ */
324
+ azureServiceAccountTokenExpiration?: number;
325
+ /**
326
+ * GKE Workload Identity: Google service account email.
327
+ * Adds annotation iam.gke.io/gcp-service-account when provided.
328
+ */
329
+ gcpServiceAccountEmail?: string;
330
+ }
331
+ export interface ChartFactoryProps {
332
+ meta: HelmChartMeta;
333
+ defaultValues?: Record<string, unknown>;
334
+ envValues?: Record<string, Record<string, unknown>>;
335
+ /** Optional Helm helpers content for templates/_helpers.tpl */
336
+ helpersTpl?: string | HelperDefinition[];
337
+ /** Optional NOTES.txt content */
338
+ notesTpl?: string;
339
+ /** Optional values.schema.json object */
340
+ valuesSchema?: Record<string, unknown>;
341
+ }
342
+ /**
343
+ * ChartFactory builds Kubernetes manifests using cdk8s and writes a Helm chart.
344
+ */
345
+ export declare class ChartFactory {
346
+ private readonly props;
347
+ private readonly app;
348
+ private readonly chart;
349
+ private readonly assets;
350
+ private valueOverrides;
351
+ constructor(props: ChartFactoryProps);
352
+ /**
353
+ * Set dynamic value overrides (from --set flags)
354
+ */
355
+ setValues(overrides: Record<string, string>): void;
356
+ /**
357
+ * Apply value overrides to nested object using dot notation
358
+ */
359
+ private applyOverrides;
360
+ private setNestedValue;
361
+ private parseValue;
362
+ private static readonly LABEL_NAME;
363
+ private static readonly LABEL_INSTANCE;
364
+ private static readonly HELPER_NAME;
365
+ addDeployment(spec: DeploymentSpec): ApiObject;
366
+ addService(spec: ServiceSpec): ApiObject;
367
+ addReplicaSet(spec: ReplicaSetSpec): ApiObject;
368
+ addIngress(spec: IngressSpec): ApiObject;
369
+ addPersistentVolume(spec: PersistentVolumeSpec): ApiObject;
370
+ private optimizePVForCloud;
371
+ addPersistentVolumeClaim(spec: PersistentVolumeClaimSpec): ApiObject;
372
+ private validatePVCAccessModes;
373
+ addConfigMap(spec: ConfigMapSpec): ApiObject;
374
+ addSecret(spec: SecretSpec): ApiObject;
375
+ addServiceAccount(spec: ServiceAccountSpec): ApiObject;
376
+ /**
377
+ * Capture the YAML of an ApiObject or Construct into assets.
378
+ */
379
+ private capture;
380
+ /**
381
+ * Add a raw CRD manifest to the chart (written under crds/).
382
+ */
383
+ addCrd(yaml: string, id?: string): void;
384
+ /**
385
+ * Synthesize the cdk8s app and write a Helm chart to outDir.
386
+ */
387
+ write(outDir: string): void;
388
+ }
389
+ //# sourceMappingURL=ChartFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartFactory.d.ts","sourceRoot":"","sources":["../../src/lib/ChartFactory.ts"],"names":[],"mappings":"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"}