timonel 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +5 -1
- package/SECURITY.md +15 -8
- package/dist/cli.js +29 -31
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/helm.d.ts +200 -12
- package/dist/lib/helm.d.ts.map +1 -1
- package/dist/lib/helm.js +234 -13
- package/dist/lib/helm.js.map +1 -1
- package/dist/lib/helmChartWriter.d.ts +238 -0
- package/dist/lib/helmChartWriter.d.ts.map +1 -0
- package/dist/lib/helmChartWriter.js +318 -0
- package/dist/lib/helmChartWriter.js.map +1 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts +26 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts.map +1 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.js +35 -0
- package/dist/lib/resources/autoscaling/autoscalingResources.js.map +1 -0
- package/dist/lib/resources/baseResourceProvider.d.ts +47 -0
- package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -0
- package/dist/lib/resources/baseResourceProvider.js +83 -0
- package/dist/lib/resources/baseResourceProvider.js.map +1 -0
- package/dist/lib/resources/cloud/aws/awsResources.d.ts +165 -0
- package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/aws/awsResources.js +187 -0
- package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -0
- package/dist/lib/resources/cloud/azure/azureResources.d.ts +169 -0
- package/dist/lib/resources/cloud/azure/azureResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/azure/azureResources.js +218 -0
- package/dist/lib/resources/cloud/azure/azureResources.js.map +1 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts +133 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts.map +1 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.js +162 -0
- package/dist/lib/resources/cloud/gcp/gcpResources.js.map +1 -0
- package/dist/lib/resources/core/coreResources.d.ts +584 -0
- package/dist/lib/resources/core/coreResources.d.ts.map +1 -0
- package/dist/lib/resources/core/coreResources.js +796 -0
- package/dist/lib/resources/core/coreResources.js.map +1 -0
- package/dist/lib/resources/core/storageResources.d.ts +133 -0
- package/dist/lib/resources/core/storageResources.d.ts.map +1 -0
- package/dist/lib/resources/core/storageResources.js +120 -0
- package/dist/lib/resources/core/storageResources.js.map +1 -0
- package/dist/lib/resources/validation/validationResources.d.ts +26 -0
- package/dist/lib/resources/validation/validationResources.d.ts.map +1 -0
- package/dist/lib/resources/validation/validationResources.js +33 -0
- package/dist/lib/resources/validation/validationResources.js.map +1 -0
- package/dist/lib/rutter.d.ts +554 -0
- package/dist/lib/rutter.d.ts.map +1 -0
- package/dist/lib/rutter.js +665 -0
- package/dist/lib/rutter.js.map +1 -0
- package/dist/lib/security.d.ts +73 -0
- package/dist/lib/security.d.ts.map +1 -0
- package/dist/lib/security.js +138 -0
- package/dist/lib/security.js.map +1 -0
- package/dist/lib/umbrella.d.ts +22 -2
- package/dist/lib/umbrella.d.ts.map +1 -1
- package/dist/lib/umbrella.js +21 -1
- package/dist/lib/umbrella.js.map +1 -1
- package/dist/lib/umbrellaRutter.d.ts +97 -0
- package/dist/lib/umbrellaRutter.d.ts.map +1 -0
- package/dist/lib/{UmbrellaRutter.js → umbrellaRutter.js} +72 -23
- package/dist/lib/umbrellaRutter.js.map +1 -0
- package/package.json +2 -1
- package/dist/lib/HelmChartWriter.d.ts +0 -69
- package/dist/lib/HelmChartWriter.d.ts.map +0 -1
- package/dist/lib/HelmChartWriter.js +0 -124
- package/dist/lib/HelmChartWriter.js.map +0 -1
- package/dist/lib/Rutter.d.ts +0 -1334
- package/dist/lib/Rutter.d.ts.map +0 -1
- package/dist/lib/Rutter.js +0 -2138
- package/dist/lib/Rutter.js.map +0 -1
- package/dist/lib/UmbrellaRutter.d.ts +0 -34
- package/dist/lib/UmbrellaRutter.d.ts.map +0 -1
- package/dist/lib/UmbrellaRutter.js.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { ApiObject } from 'cdk8s';
|
|
2
|
+
import { BaseResourceProvider } from '../../baseResourceProvider.js';
|
|
3
|
+
/**
|
|
4
|
+
* AWS-specific Kubernetes resources provider
|
|
5
|
+
* Handles AWS integrations like EBS, EFS, ALB, IRSA, and other AWS services
|
|
6
|
+
*
|
|
7
|
+
* @since 2.4.0
|
|
8
|
+
*/
|
|
9
|
+
export declare class AWSResources extends BaseResourceProvider {
|
|
10
|
+
private static readonly STORAGE_API_VERSION;
|
|
11
|
+
private static readonly CORE_API_VERSION;
|
|
12
|
+
private static readonly NETWORKING_API_VERSION;
|
|
13
|
+
/**
|
|
14
|
+
* Creates an AWS EBS StorageClass
|
|
15
|
+
* @param spec - EBS StorageClass specification
|
|
16
|
+
* @returns Created StorageClass ApiObject
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* awsResources.addEBSStorageClass({
|
|
21
|
+
* name: 'fast-ebs',
|
|
22
|
+
* volumeType: 'gp3',
|
|
23
|
+
* encrypted: true,
|
|
24
|
+
* allowVolumeExpansion: true
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @since 2.4.0
|
|
29
|
+
*/
|
|
30
|
+
addEBSStorageClass(spec: AWSEBSStorageClassSpec): ApiObject;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an AWS EFS StorageClass
|
|
33
|
+
* @param spec - EFS StorageClass specification
|
|
34
|
+
* @returns Created StorageClass ApiObject
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* awsResources.addEFSStorageClass({
|
|
39
|
+
* name: 'efs-storage',
|
|
40
|
+
* fileSystemId: 'fs-12345678',
|
|
41
|
+
* directoryPerms: '0755'
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @since 2.4.0
|
|
46
|
+
*/
|
|
47
|
+
addEFSStorageClass(spec: AWSEFSStorageClassSpec): ApiObject;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an AWS IRSA (IAM Roles for Service Accounts) ServiceAccount
|
|
50
|
+
* @param spec - IRSA ServiceAccount specification
|
|
51
|
+
* @returns Created ServiceAccount ApiObject
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* awsResources.addIRSAServiceAccount({
|
|
56
|
+
* name: 'aws-service-account',
|
|
57
|
+
* roleArn: 'arn:aws:iam::123456789012:role/MyRole'
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @since 2.4.0
|
|
62
|
+
*/
|
|
63
|
+
addIRSAServiceAccount(spec: AWSIRSAServiceAccountSpec): ApiObject;
|
|
64
|
+
/**
|
|
65
|
+
* Creates an AWS ALB Ingress
|
|
66
|
+
* @param spec - ALB Ingress specification
|
|
67
|
+
* @returns Created Ingress ApiObject
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* awsResources.addALBIngress({
|
|
72
|
+
* name: 'web-ingress',
|
|
73
|
+
* rules: [{
|
|
74
|
+
* paths: [{
|
|
75
|
+
* path: '/',
|
|
76
|
+
* pathType: 'Prefix',
|
|
77
|
+
* backend: { service: { name: 'web-service', port: { number: 80 } } }
|
|
78
|
+
* }]
|
|
79
|
+
* }],
|
|
80
|
+
* scheme: 'internet-facing'
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @since 2.4.0
|
|
85
|
+
*/
|
|
86
|
+
addALBIngress(spec: AWSALBIngressSpec): ApiObject;
|
|
87
|
+
/**
|
|
88
|
+
* Validates AWS IAM Role ARN format
|
|
89
|
+
* @param roleArn - Role ARN to validate
|
|
90
|
+
*/
|
|
91
|
+
private validateRoleArn;
|
|
92
|
+
/**
|
|
93
|
+
* Builds ALB-specific annotations
|
|
94
|
+
* @param spec - ALB Ingress specification
|
|
95
|
+
* @returns ALB annotations
|
|
96
|
+
*/
|
|
97
|
+
private buildALBAnnotations;
|
|
98
|
+
}
|
|
99
|
+
export interface AWSEBSStorageClassSpec {
|
|
100
|
+
name: string;
|
|
101
|
+
volumeType?: 'gp2' | 'gp3' | 'io1' | 'io2' | 'sc1' | 'st1';
|
|
102
|
+
encrypted?: boolean;
|
|
103
|
+
iops?: number;
|
|
104
|
+
throughput?: number;
|
|
105
|
+
fsType?: string;
|
|
106
|
+
reclaimPolicy?: 'Delete' | 'Retain';
|
|
107
|
+
allowVolumeExpansion?: boolean;
|
|
108
|
+
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
109
|
+
labels?: Record<string, string>;
|
|
110
|
+
annotations?: Record<string, string>;
|
|
111
|
+
}
|
|
112
|
+
export interface AWSEFSStorageClassSpec {
|
|
113
|
+
name: string;
|
|
114
|
+
fileSystemId?: string;
|
|
115
|
+
directoryPerms?: string;
|
|
116
|
+
gidRangeStart?: number;
|
|
117
|
+
gidRangeEnd?: number;
|
|
118
|
+
basePath?: string;
|
|
119
|
+
reclaimPolicy?: 'Delete' | 'Retain';
|
|
120
|
+
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
121
|
+
labels?: Record<string, string>;
|
|
122
|
+
annotations?: Record<string, string>;
|
|
123
|
+
}
|
|
124
|
+
export interface AWSIRSAServiceAccountSpec {
|
|
125
|
+
name: string;
|
|
126
|
+
roleArn: string;
|
|
127
|
+
automountServiceAccountToken?: boolean;
|
|
128
|
+
imagePullSecrets?: Array<{
|
|
129
|
+
name: string;
|
|
130
|
+
}>;
|
|
131
|
+
labels?: Record<string, string>;
|
|
132
|
+
annotations?: Record<string, string>;
|
|
133
|
+
}
|
|
134
|
+
export interface AWSALBIngressSpec {
|
|
135
|
+
name: string;
|
|
136
|
+
rules: Array<{
|
|
137
|
+
host?: string;
|
|
138
|
+
paths: Array<{
|
|
139
|
+
path: string;
|
|
140
|
+
pathType: 'Exact' | 'Prefix' | 'ImplementationSpecific';
|
|
141
|
+
backend: {
|
|
142
|
+
service: {
|
|
143
|
+
name: string;
|
|
144
|
+
port: {
|
|
145
|
+
number?: number;
|
|
146
|
+
name?: string;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
}>;
|
|
151
|
+
}>;
|
|
152
|
+
tls?: Array<{
|
|
153
|
+
hosts?: string[];
|
|
154
|
+
secretName?: string;
|
|
155
|
+
}>;
|
|
156
|
+
scheme?: 'internet-facing' | 'internal';
|
|
157
|
+
targetType?: 'ip' | 'instance';
|
|
158
|
+
certificateArn?: string;
|
|
159
|
+
sslRedirect?: boolean;
|
|
160
|
+
healthCheckPath?: string;
|
|
161
|
+
ingressClassName?: string;
|
|
162
|
+
labels?: Record<string, string>;
|
|
163
|
+
annotations?: Record<string, string>;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=awsResources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awsResources.d.ts","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/aws/awsResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { ApiObject } from 'cdk8s';
|
|
2
|
+
import { BaseResourceProvider } from '../../baseResourceProvider.js';
|
|
3
|
+
/**
|
|
4
|
+
* AWS-specific Kubernetes resources provider
|
|
5
|
+
* Handles AWS integrations like EBS, EFS, ALB, IRSA, and other AWS services
|
|
6
|
+
*
|
|
7
|
+
* @since 2.4.0
|
|
8
|
+
*/
|
|
9
|
+
export class AWSResources extends BaseResourceProvider {
|
|
10
|
+
/**
|
|
11
|
+
* Creates an AWS EBS StorageClass
|
|
12
|
+
* @param spec - EBS StorageClass specification
|
|
13
|
+
* @returns Created StorageClass ApiObject
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* awsResources.addEBSStorageClass({
|
|
18
|
+
* name: 'fast-ebs',
|
|
19
|
+
* volumeType: 'gp3',
|
|
20
|
+
* encrypted: true,
|
|
21
|
+
* allowVolumeExpansion: true
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @since 2.4.0
|
|
26
|
+
*/
|
|
27
|
+
addEBSStorageClass(spec) {
|
|
28
|
+
const parameters = {
|
|
29
|
+
type: spec.volumeType ?? 'gp3',
|
|
30
|
+
...(spec.encrypted !== undefined ? { encrypted: String(spec.encrypted) } : {}),
|
|
31
|
+
...(spec.iops ? { iops: String(spec.iops) } : {}),
|
|
32
|
+
...(spec.throughput ? { throughput: String(spec.throughput) } : {}),
|
|
33
|
+
...(spec.fsType ? { fsType: spec.fsType } : {}),
|
|
34
|
+
};
|
|
35
|
+
const storageClassSpec = {
|
|
36
|
+
provisioner: 'ebs.csi.aws.com',
|
|
37
|
+
parameters,
|
|
38
|
+
reclaimPolicy: spec.reclaimPolicy ?? 'Delete',
|
|
39
|
+
allowVolumeExpansion: spec.allowVolumeExpansion ?? true,
|
|
40
|
+
volumeBindingMode: spec.volumeBindingMode ?? 'WaitForFirstConsumer',
|
|
41
|
+
};
|
|
42
|
+
return this.createApiObject(spec.name, AWSResources.STORAGE_API_VERSION, 'StorageClass', storageClassSpec, spec.labels, spec.annotations);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates an AWS EFS StorageClass
|
|
46
|
+
* @param spec - EFS StorageClass specification
|
|
47
|
+
* @returns Created StorageClass ApiObject
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* awsResources.addEFSStorageClass({
|
|
52
|
+
* name: 'efs-storage',
|
|
53
|
+
* fileSystemId: 'fs-12345678',
|
|
54
|
+
* directoryPerms: '0755'
|
|
55
|
+
* });
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @since 2.4.0
|
|
59
|
+
*/
|
|
60
|
+
addEFSStorageClass(spec) {
|
|
61
|
+
const parameters = {
|
|
62
|
+
...(spec.fileSystemId ? { fileSystemId: spec.fileSystemId } : {}),
|
|
63
|
+
...(spec.directoryPerms ? { directoryPerms: spec.directoryPerms } : {}),
|
|
64
|
+
...(spec.gidRangeStart ? { gidRangeStart: String(spec.gidRangeStart) } : {}),
|
|
65
|
+
...(spec.gidRangeEnd ? { gidRangeEnd: String(spec.gidRangeEnd) } : {}),
|
|
66
|
+
...(spec.basePath ? { basePath: spec.basePath } : {}),
|
|
67
|
+
};
|
|
68
|
+
const storageClassSpec = {
|
|
69
|
+
provisioner: 'efs.csi.aws.com',
|
|
70
|
+
parameters,
|
|
71
|
+
reclaimPolicy: spec.reclaimPolicy ?? 'Delete',
|
|
72
|
+
volumeBindingMode: spec.volumeBindingMode ?? 'Immediate',
|
|
73
|
+
};
|
|
74
|
+
return this.createApiObject(spec.name, AWSResources.STORAGE_API_VERSION, 'StorageClass', storageClassSpec, spec.labels, spec.annotations);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Creates an AWS IRSA (IAM Roles for Service Accounts) ServiceAccount
|
|
78
|
+
* @param spec - IRSA ServiceAccount specification
|
|
79
|
+
* @returns Created ServiceAccount ApiObject
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* awsResources.addIRSAServiceAccount({
|
|
84
|
+
* name: 'aws-service-account',
|
|
85
|
+
* roleArn: 'arn:aws:iam::123456789012:role/MyRole'
|
|
86
|
+
* });
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @since 2.4.0
|
|
90
|
+
*/
|
|
91
|
+
addIRSAServiceAccount(spec) {
|
|
92
|
+
this.validateRoleArn(spec.roleArn);
|
|
93
|
+
const annotations = {
|
|
94
|
+
'eks.amazonaws.com/role-arn': spec.roleArn,
|
|
95
|
+
...(spec.annotations ?? {}),
|
|
96
|
+
};
|
|
97
|
+
return new ApiObject(this.chart, spec.name, {
|
|
98
|
+
apiVersion: AWSResources.CORE_API_VERSION,
|
|
99
|
+
kind: 'ServiceAccount',
|
|
100
|
+
metadata: {
|
|
101
|
+
name: spec.name,
|
|
102
|
+
annotations,
|
|
103
|
+
...(spec.labels ? { labels: spec.labels } : {}),
|
|
104
|
+
},
|
|
105
|
+
...(spec.automountServiceAccountToken !== undefined
|
|
106
|
+
? { automountServiceAccountToken: spec.automountServiceAccountToken }
|
|
107
|
+
: {}),
|
|
108
|
+
...(spec.imagePullSecrets ? { imagePullSecrets: spec.imagePullSecrets } : {}),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Creates an AWS ALB Ingress
|
|
113
|
+
* @param spec - ALB Ingress specification
|
|
114
|
+
* @returns Created Ingress ApiObject
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* awsResources.addALBIngress({
|
|
119
|
+
* name: 'web-ingress',
|
|
120
|
+
* rules: [{
|
|
121
|
+
* paths: [{
|
|
122
|
+
* path: '/',
|
|
123
|
+
* pathType: 'Prefix',
|
|
124
|
+
* backend: { service: { name: 'web-service', port: { number: 80 } } }
|
|
125
|
+
* }]
|
|
126
|
+
* }],
|
|
127
|
+
* scheme: 'internet-facing'
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @since 2.4.0
|
|
132
|
+
*/
|
|
133
|
+
addALBIngress(spec) {
|
|
134
|
+
const annotations = this.buildALBAnnotations(spec);
|
|
135
|
+
const ingressSpec = {
|
|
136
|
+
...(spec.ingressClassName ? { ingressClassName: spec.ingressClassName } : {}),
|
|
137
|
+
rules: spec.rules,
|
|
138
|
+
...(spec.tls ? { tls: spec.tls } : {}),
|
|
139
|
+
};
|
|
140
|
+
return this.createApiObject(spec.name, AWSResources.NETWORKING_API_VERSION, 'Ingress', ingressSpec, spec.labels, annotations);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Validates AWS IAM Role ARN format
|
|
144
|
+
* @param roleArn - Role ARN to validate
|
|
145
|
+
*/
|
|
146
|
+
validateRoleArn(roleArn) {
|
|
147
|
+
// Skip validation for Helm template values
|
|
148
|
+
if (roleArn.includes('{{') && roleArn.includes('}}')) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const arnRegex = /^arn:aws:iam::\d{12}:role\/[\w+=,.@-]+$/;
|
|
152
|
+
if (!arnRegex.test(roleArn)) {
|
|
153
|
+
throw new Error(`Invalid AWS IAM Role ARN format: ${roleArn}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Builds ALB-specific annotations
|
|
158
|
+
* @param spec - ALB Ingress specification
|
|
159
|
+
* @returns ALB annotations
|
|
160
|
+
*/
|
|
161
|
+
buildALBAnnotations(spec) {
|
|
162
|
+
const annotations = {
|
|
163
|
+
'kubernetes.io/ingress.class': 'alb',
|
|
164
|
+
...(spec.annotations ?? {}),
|
|
165
|
+
};
|
|
166
|
+
if (spec.scheme) {
|
|
167
|
+
annotations['alb.ingress.kubernetes.io/scheme'] = spec.scheme;
|
|
168
|
+
}
|
|
169
|
+
if (spec.targetType) {
|
|
170
|
+
annotations['alb.ingress.kubernetes.io/target-type'] = spec.targetType;
|
|
171
|
+
}
|
|
172
|
+
if (spec.certificateArn) {
|
|
173
|
+
annotations['alb.ingress.kubernetes.io/certificate-arn'] = spec.certificateArn;
|
|
174
|
+
}
|
|
175
|
+
if (spec.sslRedirect) {
|
|
176
|
+
annotations['alb.ingress.kubernetes.io/ssl-redirect'] = '443';
|
|
177
|
+
}
|
|
178
|
+
if (spec.healthCheckPath) {
|
|
179
|
+
annotations['alb.ingress.kubernetes.io/healthcheck-path'] = spec.healthCheckPath;
|
|
180
|
+
}
|
|
181
|
+
return annotations;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
AWSResources.STORAGE_API_VERSION = 'storage.k8s.io/v1';
|
|
185
|
+
AWSResources.CORE_API_VERSION = 'v1';
|
|
186
|
+
AWSResources.NETWORKING_API_VERSION = 'networking.k8s.io/v1';
|
|
187
|
+
//# sourceMappingURL=awsResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awsResources.js","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/aws/awsResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { ApiObject } from 'cdk8s';
|
|
2
|
+
import { BaseResourceProvider } from '../../baseResourceProvider.js';
|
|
3
|
+
/**
|
|
4
|
+
* Azure-specific Kubernetes resources provider
|
|
5
|
+
* Handles Azure integrations like Azure Disk, Azure File, Application Gateway, AGIC, and other Azure services
|
|
6
|
+
*
|
|
7
|
+
* @since 2.4.0
|
|
8
|
+
*/
|
|
9
|
+
export declare class AzureResources extends BaseResourceProvider {
|
|
10
|
+
private static readonly STORAGE_API_VERSION;
|
|
11
|
+
private static readonly NETWORKING_API_VERSION;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an Azure Disk StorageClass
|
|
14
|
+
* @param spec - Azure Disk StorageClass specification
|
|
15
|
+
* @returns Created StorageClass ApiObject
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* azureResources.addAzureDiskStorageClass({
|
|
20
|
+
* name: 'premium-disk',
|
|
21
|
+
* skuName: 'Premium_LRS',
|
|
22
|
+
* cachingMode: 'ReadOnly',
|
|
23
|
+
* allowVolumeExpansion: true
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @since 2.4.0
|
|
28
|
+
*/
|
|
29
|
+
addAzureDiskStorageClass(spec: AzureDiskStorageClassSpec): ApiObject;
|
|
30
|
+
/**
|
|
31
|
+
* Creates an Azure File StorageClass
|
|
32
|
+
* @param spec - Azure File StorageClass specification
|
|
33
|
+
* @returns Created StorageClass ApiObject
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* azureResources.addAzureFileStorageClass({
|
|
38
|
+
* name: 'azure-file-premium',
|
|
39
|
+
* skuName: 'Premium_LRS',
|
|
40
|
+
* protocol: 'nfs',
|
|
41
|
+
* allowSharedAccess: true
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @since 2.4.0
|
|
46
|
+
*/
|
|
47
|
+
addAzureFileStorageClass(spec: AzureFileStorageClassSpec): ApiObject;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an Azure Application Gateway Ingress
|
|
50
|
+
* @param spec - AGIC Ingress specification
|
|
51
|
+
* @returns Created Ingress ApiObject
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* azureResources.addApplicationGatewayIngress({
|
|
56
|
+
* name: 'app-gateway-ingress',
|
|
57
|
+
* host: 'myapp.example.com',
|
|
58
|
+
* serviceName: 'my-service',
|
|
59
|
+
* servicePort: 80,
|
|
60
|
+
* sslRedirect: true
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @since 2.4.0
|
|
65
|
+
*/
|
|
66
|
+
addApplicationGatewayIngress(spec: AzureAGICIngressSpec): ApiObject;
|
|
67
|
+
/**
|
|
68
|
+
* Creates an Azure Key Vault SecretProviderClass
|
|
69
|
+
* @param spec - Azure Key Vault SecretProviderClass specification
|
|
70
|
+
* @returns Created SecretProviderClass ApiObject
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* azureResources.addAzureKeyVaultSecretProviderClass({
|
|
75
|
+
* name: 'app-secrets',
|
|
76
|
+
* keyVaultName: 'my-keyvault',
|
|
77
|
+
* tenantId: '87654321-4321-4321-4321-210987654321',
|
|
78
|
+
* objects: [
|
|
79
|
+
* { objectName: 'database-password', objectType: 'secret' }
|
|
80
|
+
* ]
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @since 2.4.0
|
|
85
|
+
*/
|
|
86
|
+
addAzureKeyVaultSecretProviderClass(spec: AzureKeyVaultSecretProviderClassSpec): ApiObject;
|
|
87
|
+
/**
|
|
88
|
+
* Creates an Azure Container Registry ServiceAccount
|
|
89
|
+
* @param spec - Azure ACR ServiceAccount specification
|
|
90
|
+
* @returns Created ServiceAccount ApiObject
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* azureResources.addAzureACRServiceAccount({
|
|
95
|
+
* name: 'acr-service-account',
|
|
96
|
+
* acrName: 'myregistry',
|
|
97
|
+
* resourceGroup: 'my-rg'
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @since 2.4.0
|
|
102
|
+
*/
|
|
103
|
+
addAzureACRServiceAccount(spec: AzureACRServiceAccountSpec): ApiObject;
|
|
104
|
+
}
|
|
105
|
+
export interface AzureDiskStorageClassSpec {
|
|
106
|
+
name: string;
|
|
107
|
+
skuName?: 'Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'UltraSSD_LRS';
|
|
108
|
+
cachingMode?: 'None' | 'ReadOnly' | 'ReadWrite';
|
|
109
|
+
fsType?: string;
|
|
110
|
+
kind?: 'Shared' | 'Dedicated' | 'Managed';
|
|
111
|
+
reclaimPolicy?: 'Delete' | 'Retain';
|
|
112
|
+
allowVolumeExpansion?: boolean;
|
|
113
|
+
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
114
|
+
labels?: Record<string, string>;
|
|
115
|
+
annotations?: Record<string, string>;
|
|
116
|
+
}
|
|
117
|
+
export interface AzureFileStorageClassSpec {
|
|
118
|
+
name: string;
|
|
119
|
+
skuName?: 'Standard_LRS' | 'Premium_LRS';
|
|
120
|
+
protocol?: 'smb' | 'nfs';
|
|
121
|
+
allowSharedAccess?: boolean;
|
|
122
|
+
reclaimPolicy?: 'Delete' | 'Retain';
|
|
123
|
+
allowVolumeExpansion?: boolean;
|
|
124
|
+
volumeBindingMode?: 'Immediate' | 'WaitForFirstConsumer';
|
|
125
|
+
labels?: Record<string, string>;
|
|
126
|
+
annotations?: Record<string, string>;
|
|
127
|
+
}
|
|
128
|
+
export interface AzureAGICIngressSpec {
|
|
129
|
+
name: string;
|
|
130
|
+
host: string;
|
|
131
|
+
serviceName: string;
|
|
132
|
+
servicePort: number;
|
|
133
|
+
path?: string;
|
|
134
|
+
sslRedirect?: boolean;
|
|
135
|
+
cookieBasedAffinity?: boolean;
|
|
136
|
+
requestTimeout?: number;
|
|
137
|
+
connectionDraining?: boolean;
|
|
138
|
+
tls?: Array<{
|
|
139
|
+
hosts: string[];
|
|
140
|
+
secretName: string;
|
|
141
|
+
}>;
|
|
142
|
+
labels?: Record<string, string>;
|
|
143
|
+
annotations?: Record<string, string>;
|
|
144
|
+
}
|
|
145
|
+
export interface AzureKeyVaultSecretProviderClassSpec {
|
|
146
|
+
name: string;
|
|
147
|
+
keyVaultName: string;
|
|
148
|
+
tenantId: string;
|
|
149
|
+
objects: Array<{
|
|
150
|
+
objectName: string;
|
|
151
|
+
objectType: 'secret' | 'key' | 'cert';
|
|
152
|
+
objectAlias?: string;
|
|
153
|
+
objectVersion?: string;
|
|
154
|
+
}>;
|
|
155
|
+
secretName?: string;
|
|
156
|
+
userAssignedIdentityID?: string;
|
|
157
|
+
labels?: Record<string, string>;
|
|
158
|
+
annotations?: Record<string, string>;
|
|
159
|
+
}
|
|
160
|
+
export interface AzureACRServiceAccountSpec {
|
|
161
|
+
name: string;
|
|
162
|
+
acrName: string;
|
|
163
|
+
resourceGroup?: string;
|
|
164
|
+
clientId?: string;
|
|
165
|
+
tenantId?: string;
|
|
166
|
+
labels?: Record<string, string>;
|
|
167
|
+
annotations?: Record<string, string>;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=azureResources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azureResources.d.ts","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/azure/azureResources.ts"],"names":[],"mappings":"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"}
|