timonel 2.3.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 +6 -0
- package/README.md +5 -1
- package/SECURITY.md +3 -3
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -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 +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 +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/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
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
# [2.4.0](https://github.com/KenkoGeek/timonel/compare/v2.3.0...v2.4.0) (2025-09-11)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- **core:** add GKE Workload Identity ServiceAccount, AWS ECR ServiceAccount helpers. implement modular architecture. add Role resource support for RBAC. with resource providers. add DaemonSet resource support. add StatefulSet resource support. add ClusterRole resource support for cluster-wide RBAC. add RoleBinding resource support for RBAC ([#33](https://github.com/KenkoGeek/timonel/issues/33)) ([eabe972](https://github.com/KenkoGeek/timonel/commit/eabe9729865ea56ce45480a60510704f28704367))
|
|
6
|
+
|
|
1
7
|
# [2.3.0](https://github.com/KenkoGeek/timonel/compare/v2.2.0...v2.3.0) (2025-09-10)
|
|
2
8
|
|
|
3
9
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -19,9 +19,13 @@ using cdk8s. Define Kubernetes resources with classes and synthesize a full Helm
|
|
|
19
19
|
- **Type-safe API** with strict TypeScript and cdk8s constructs
|
|
20
20
|
- **Multi-environment support** with automatic values files generation
|
|
21
21
|
- **Umbrella Charts** for managing multiple subcharts as a single unit
|
|
22
|
-
- **
|
|
22
|
+
- **Complete multi-cloud integrations** for AWS, Azure, and GCP
|
|
23
|
+
- **Azure**: Disk/Files StorageClass, AGIC Ingress, Key Vault, ACR ServiceAccount
|
|
24
|
+
- **GCP**: Filestore StorageClass, GCE Ingress, Artifact Registry ServiceAccount
|
|
25
|
+
- **AWS**: EBS/EFS StorageClass, ALB Ingress, IRSA ServiceAccount
|
|
23
26
|
- **Security-first approach** with NetworkPolicies and best practices
|
|
24
27
|
- **Minimal CLI** (`tl`) for scaffolding and chart generation
|
|
28
|
+
- **100% backward compatibility** with all existing methods
|
|
25
29
|
|
|
26
30
|
## 🚀 Quick Start
|
|
27
31
|
|
package/SECURITY.md
CHANGED
|
@@ -27,9 +27,9 @@ We provide security updates for the following versions:
|
|
|
27
27
|
|
|
28
28
|
| Version | Supported | Notes |
|
|
29
29
|
| ------- | -------------- | ---------------------------- |
|
|
30
|
-
| 2.
|
|
31
|
-
| 2.
|
|
32
|
-
| 2.0-2.
|
|
30
|
+
| 2.4.0+ | ✅ Current | Enhanced security features |
|
|
31
|
+
| 2.3.x | ✅ Supported | Enhanced security features |
|
|
32
|
+
| 2.0-2.2 | ⚠️ Limited | Critical security fixes only |
|
|
33
33
|
| 1.x.x | ❌ End of life | No security updates |
|
|
34
34
|
| < 1.0 | ❌ End of life | No security updates |
|
|
35
35
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main entry point for Timonel - TypeScript library for programmatic Helm chart generation
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
export * from './lib/rutter.js';
|
|
6
|
+
export * from './lib/helmChartWriter.js';
|
|
3
7
|
export * from './lib/helm.js';
|
|
4
8
|
export * from './lib/umbrella.js';
|
|
5
9
|
export * from './lib/security.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main entry point for Timonel - TypeScript library for programmatic Helm chart generation
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
export * from './lib/rutter.js';
|
|
6
|
+
export * from './lib/helmChartWriter.js';
|
|
3
7
|
export * from './lib/helm.js';
|
|
4
8
|
export * from './lib/umbrella.js';
|
|
5
9
|
export * from './lib/security.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"helmChartWriter.d.ts","sourceRoot":"","sources":["../../src/lib/helmChartWriter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,wBAAwB;IACxB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACpD,sEAAsE;IACtE,SAAS,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACrC,qDAAqD;IACrD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IACzC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB;IA4BxC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAe/B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAe3B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CA8B/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"helmChartWriter.js","sourceRoot":"","sources":["../../src/lib/helmChartWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Autoscaling resources for Kubernetes workloads
|
|
3
|
+
* @since 2.3.0
|
|
4
|
+
*/
|
|
5
|
+
import { BaseResourceProvider } from '../baseResourceProvider.js';
|
|
6
|
+
/**
|
|
7
|
+
* Autoscaling resources provider for HPA, VPA, and PodDisruptionBudget
|
|
8
|
+
*
|
|
9
|
+
* @extends BaseResourceProvider
|
|
10
|
+
* @since 2.3.0
|
|
11
|
+
*/
|
|
12
|
+
export declare class AutoscalingResources extends BaseResourceProvider {
|
|
13
|
+
/**
|
|
14
|
+
* Add Horizontal Pod Autoscaler (HPA)
|
|
15
|
+
*/
|
|
16
|
+
addHPA(_spec: unknown): void;
|
|
17
|
+
/**
|
|
18
|
+
* Add Vertical Pod Autoscaler (VPA)
|
|
19
|
+
*/
|
|
20
|
+
addVPA(_spec: unknown): void;
|
|
21
|
+
/**
|
|
22
|
+
* Add Pod Disruption Budget (PDB)
|
|
23
|
+
*/
|
|
24
|
+
addPodDisruptionBudget(_spec: unknown): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=autoscalingResources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoscalingResources.d.ts","sourceRoot":"","sources":["../../../../src/lib/resources/autoscaling/autoscalingResources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO;IAKrB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO;IAKrB;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,OAAO;CAItC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Autoscaling resources for Kubernetes workloads
|
|
3
|
+
* @since 2.3.0
|
|
4
|
+
*/
|
|
5
|
+
import { BaseResourceProvider } from '../baseResourceProvider.js';
|
|
6
|
+
/**
|
|
7
|
+
* Autoscaling resources provider for HPA, VPA, and PodDisruptionBudget
|
|
8
|
+
*
|
|
9
|
+
* @extends BaseResourceProvider
|
|
10
|
+
* @since 2.3.0
|
|
11
|
+
*/
|
|
12
|
+
export class AutoscalingResources extends BaseResourceProvider {
|
|
13
|
+
/**
|
|
14
|
+
* Add Horizontal Pod Autoscaler (HPA)
|
|
15
|
+
*/
|
|
16
|
+
addHPA(_spec) {
|
|
17
|
+
// Implementation moved from CoreResources
|
|
18
|
+
// TODO: Move HPA implementation here
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Add Vertical Pod Autoscaler (VPA)
|
|
22
|
+
*/
|
|
23
|
+
addVPA(_spec) {
|
|
24
|
+
// Implementation moved from CoreResources
|
|
25
|
+
// TODO: Move VPA implementation here
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Add Pod Disruption Budget (PDB)
|
|
29
|
+
*/
|
|
30
|
+
addPodDisruptionBudget(_spec) {
|
|
31
|
+
// Implementation moved from CoreResources
|
|
32
|
+
// TODO: Move PDB implementation here
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=autoscalingResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoscalingResources.js","sourceRoot":"","sources":["../../../../src/lib/resources/autoscaling/autoscalingResources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,OAAO,oBAAqB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,MAAM,CAAC,KAAc;QACnB,0CAA0C;QAC1C,qCAAqC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAc;QACnB,0CAA0C;QAC1C,qCAAqC;IACvC,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAc;QACnC,0CAA0C;QAC1C,qCAAqC;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Chart } from 'cdk8s';
|
|
2
|
+
import { ApiObject } from 'cdk8s';
|
|
3
|
+
/**
|
|
4
|
+
* Base interface for all resource providers
|
|
5
|
+
* Provides common functionality and ensures consistent patterns across providers
|
|
6
|
+
*
|
|
7
|
+
* @since 2.4.0
|
|
8
|
+
*/
|
|
9
|
+
export interface IResourceProvider {
|
|
10
|
+
/** Reference to the CDK8s chart */
|
|
11
|
+
readonly chart: Chart;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for resource providers
|
|
15
|
+
* Implements common functionality and validation patterns
|
|
16
|
+
*
|
|
17
|
+
* @since 2.4.0
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class BaseResourceProvider implements IResourceProvider {
|
|
20
|
+
readonly chart: Chart;
|
|
21
|
+
constructor(chart: Chart);
|
|
22
|
+
/**
|
|
23
|
+
* Validates that a name follows Kubernetes naming conventions
|
|
24
|
+
* @param name - Resource name to validate
|
|
25
|
+
* @param resourceType - Type of resource for error messages
|
|
26
|
+
* @throws Error if name is invalid
|
|
27
|
+
*/
|
|
28
|
+
protected validateKubernetesName(name: string, resourceType: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Validates that labels follow Kubernetes conventions
|
|
31
|
+
* @param labels - Labels to validate
|
|
32
|
+
* @param resourceType - Type of resource for error messages
|
|
33
|
+
*/
|
|
34
|
+
protected validateLabels(labels: Record<string, string> | undefined, resourceType: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a standardized ApiObject with common metadata
|
|
37
|
+
* @param name - Resource name
|
|
38
|
+
* @param apiVersion - Kubernetes API version
|
|
39
|
+
* @param kind - Kubernetes resource kind
|
|
40
|
+
* @param spec - Resource specification
|
|
41
|
+
* @param labels - Optional labels
|
|
42
|
+
* @param annotations - Optional annotations
|
|
43
|
+
* @returns Created ApiObject
|
|
44
|
+
*/
|
|
45
|
+
protected createApiObject(name: string, apiVersion: string, kind: string, spec: Record<string, unknown>, labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=baseResourceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseResourceProvider.d.ts","sourceRoot":"","sources":["../../../src/lib/resources/baseResourceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;;;;GAKG;AACH,8BAAsB,oBAAqB,YAAW,iBAAiB;aACzC,KAAK,EAAE,KAAK;gBAAZ,KAAK,EAAE,KAAK;IAExC;;;;;OAKG;IACH,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAe1E;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IA4BhG;;;;;;;;;OASG;IACH,SAAS,CAAC,eAAe,CACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,SAAS;CAeb"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ApiObject } from 'cdk8s';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base class for resource providers
|
|
4
|
+
* Implements common functionality and validation patterns
|
|
5
|
+
*
|
|
6
|
+
* @since 2.4.0
|
|
7
|
+
*/
|
|
8
|
+
export class BaseResourceProvider {
|
|
9
|
+
constructor(chart) {
|
|
10
|
+
this.chart = chart;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Validates that a name follows Kubernetes naming conventions
|
|
14
|
+
* @param name - Resource name to validate
|
|
15
|
+
* @param resourceType - Type of resource for error messages
|
|
16
|
+
* @throws Error if name is invalid
|
|
17
|
+
*/
|
|
18
|
+
validateKubernetesName(name, resourceType) {
|
|
19
|
+
if (!name || typeof name !== 'string') {
|
|
20
|
+
throw new Error(`${resourceType} name must be a non-empty string`);
|
|
21
|
+
}
|
|
22
|
+
// Kubernetes name validation (RFC 1123 subdomain)
|
|
23
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- Simple character class regex is safe
|
|
24
|
+
const nameRegex = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;
|
|
25
|
+
if (!nameRegex.test(name) || name.length > 63) {
|
|
26
|
+
throw new Error(`${resourceType} name '${name}' must be a valid Kubernetes name (lowercase alphanumeric and hyphens, max 63 chars)`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validates that labels follow Kubernetes conventions
|
|
31
|
+
* @param labels - Labels to validate
|
|
32
|
+
* @param resourceType - Type of resource for error messages
|
|
33
|
+
*/
|
|
34
|
+
validateLabels(labels, resourceType) {
|
|
35
|
+
if (!labels)
|
|
36
|
+
return;
|
|
37
|
+
Object.entries(labels).forEach(([key, value]) => {
|
|
38
|
+
// Validate label key
|
|
39
|
+
if (key.length > 253) {
|
|
40
|
+
throw new Error(`${resourceType} label key '${key}' exceeds 253 characters`);
|
|
41
|
+
}
|
|
42
|
+
// Validate label value
|
|
43
|
+
if (value.length > 63) {
|
|
44
|
+
throw new Error(`${resourceType} label value '${value}' exceeds 63 characters`);
|
|
45
|
+
}
|
|
46
|
+
// Skip validation for Helm template values
|
|
47
|
+
if (value.includes('{{') && value.includes('}}')) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Basic character validation
|
|
51
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- Simple character class regex is safe
|
|
52
|
+
const labelRegex = /^[a-zA-Z0-9]([-a-zA-Z0-9_.]*[a-zA-Z0-9])?$/;
|
|
53
|
+
if (!labelRegex.test(value)) {
|
|
54
|
+
throw new Error(`${resourceType} label value '${value}' contains invalid characters`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates a standardized ApiObject with common metadata
|
|
60
|
+
* @param name - Resource name
|
|
61
|
+
* @param apiVersion - Kubernetes API version
|
|
62
|
+
* @param kind - Kubernetes resource kind
|
|
63
|
+
* @param spec - Resource specification
|
|
64
|
+
* @param labels - Optional labels
|
|
65
|
+
* @param annotations - Optional annotations
|
|
66
|
+
* @returns Created ApiObject
|
|
67
|
+
*/
|
|
68
|
+
createApiObject(name, apiVersion, kind, spec, labels, annotations) {
|
|
69
|
+
this.validateKubernetesName(name, kind);
|
|
70
|
+
this.validateLabels(labels, kind);
|
|
71
|
+
return new ApiObject(this.chart, name, {
|
|
72
|
+
apiVersion,
|
|
73
|
+
kind,
|
|
74
|
+
metadata: {
|
|
75
|
+
name,
|
|
76
|
+
...(labels && Object.keys(labels).length > 0 ? { labels } : {}),
|
|
77
|
+
...(annotations && Object.keys(annotations).length > 0 ? { annotations } : {}),
|
|
78
|
+
},
|
|
79
|
+
spec,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=baseResourceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseResourceProvider.js","sourceRoot":"","sources":["../../../src/lib/resources/baseResourceProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAalC;;;;;GAKG;AACH,MAAM,OAAgB,oBAAoB;IACxC,YAA4B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE5C;;;;;OAKG;IACO,sBAAsB,CAAC,IAAY,EAAE,YAAoB;QACjE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,kCAAkC,CAAC,CAAC;QACrE,CAAC;QAED,kDAAkD;QAClD,gGAAgG;QAChG,MAAM,SAAS,GAAG,iCAAiC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,UAAU,IAAI,sFAAsF,CACpH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,MAA0C,EAAE,YAAoB;QACvF,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9C,qBAAqB;YACrB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,eAAe,GAAG,0BAA0B,CAAC,CAAC;YAC/E,CAAC;YAED,uBAAuB;YACvB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,iBAAiB,KAAK,yBAAyB,CAAC,CAAC;YAClF,CAAC;YAED,2CAA2C;YAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,6BAA6B;YAC7B,gGAAgG;YAChG,MAAM,UAAU,GAAG,4CAA4C,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,iBAAiB,KAAK,+BAA+B,CAAC,CAAC;YACxF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACO,eAAe,CACvB,IAAY,EACZ,UAAkB,EAClB,IAAY,EACZ,IAA6B,EAC7B,MAA+B,EAC/B,WAAoC;QAEpC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAElC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;YACrC,UAAU;YACV,IAAI;YACJ,QAAQ,EAAE;gBACR,IAAI;gBACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/E;YACD,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -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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"}
|