@intentius/chant-lexicon-aws 0.41.9 → 0.41.11
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/dist/composites/eks-cluster.d.ts +42 -0
- package/dist/composites/eks-cluster.d.ts.map +1 -0
- package/dist/composites/index.d.ts +2 -0
- package/dist/composites/index.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +2 -2
- package/dist/manifest.json +1 -1
- package/package.json +2 -2
- package/src/composites/eks-cluster.test.ts +55 -0
- package/src/composites/eks-cluster.ts +121 -0
- package/src/composites/index.ts +2 -0
- package/src/index.ts +2 -2
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EKSCluster, Nodegroup, Role } from "../generated/index.js";
|
|
2
|
+
export interface EksClusterProps {
|
|
3
|
+
/** Cluster name. Required: everything downstream addresses the cluster by it. */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Subnet ids for the control plane ENIs — EKS requires at least two AZs. */
|
|
6
|
+
subnetIds: string[];
|
|
7
|
+
/** Extra security groups for the control plane (EKS always adds its own). */
|
|
8
|
+
securityGroupIds?: string[];
|
|
9
|
+
/** Kubernetes version, e.g. "1.31". Omitted takes EKS's current default. */
|
|
10
|
+
version?: string;
|
|
11
|
+
/** Node group shape. Omitted provisions no node group (control plane only). */
|
|
12
|
+
nodegroup?: {
|
|
13
|
+
instanceTypes?: string[];
|
|
14
|
+
desiredSize?: number;
|
|
15
|
+
minSize?: number;
|
|
16
|
+
maxSize?: number;
|
|
17
|
+
/** Subnets the nodes land in. Default: the cluster's own `subnetIds`. */
|
|
18
|
+
subnetIds?: string[];
|
|
19
|
+
};
|
|
20
|
+
tags?: Array<{
|
|
21
|
+
Key: string;
|
|
22
|
+
Value: string;
|
|
23
|
+
}>;
|
|
24
|
+
defaults?: {
|
|
25
|
+
cluster?: Partial<ConstructorParameters<typeof EKSCluster>[0]>;
|
|
26
|
+
nodegroup?: Partial<ConstructorParameters<typeof Nodegroup>[0]>;
|
|
27
|
+
clusterRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
28
|
+
nodeRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export declare const EksCluster: import("@intentius/chant").CompositeDefinition<EksClusterProps, {
|
|
32
|
+
clusterRole: import("@intentius/chant").Declarable & Record<string, string>;
|
|
33
|
+
cluster: import("@intentius/chant").Declarable & Record<string, string>;
|
|
34
|
+
nodeRole?: undefined;
|
|
35
|
+
nodegroup?: undefined;
|
|
36
|
+
} | {
|
|
37
|
+
clusterRole: import("@intentius/chant").Declarable & Record<string, string>;
|
|
38
|
+
cluster: import("@intentius/chant").Declarable & Record<string, string>;
|
|
39
|
+
nodeRole: import("@intentius/chant").Declarable & Record<string, string>;
|
|
40
|
+
nodegroup: import("@intentius/chant").Declarable & Record<string, string>;
|
|
41
|
+
}>;
|
|
42
|
+
//# sourceMappingURL=eks-cluster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eks-cluster.d.ts","sourceRoot":"","sources":["../../src/composites/eks-cluster.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,SAAS,CAAC,EAAE;QACV,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3D,CAAC;CACH;AAID,eAAO,MAAM,UAAU;;;;;;;;;;EA6DP,CAAC"}
|
|
@@ -32,6 +32,8 @@ export { Ec2InstanceRole } from "./ec2-instance-role.js";
|
|
|
32
32
|
export type { Ec2InstanceRoleProps } from "./ec2-instance-role.js";
|
|
33
33
|
export { MinimalVpc } from "./minimal-vpc.js";
|
|
34
34
|
export type { MinimalVpcProps } from "./minimal-vpc.js";
|
|
35
|
+
export { EksCluster } from "./eks-cluster.js";
|
|
36
|
+
export type { EksClusterProps } from "./eks-cluster.js";
|
|
35
37
|
export { MicrovmApp, MICROVM_LIMITS } from "./microvm-app.js";
|
|
36
38
|
export type { MicrovmAppProps, MicrovmAppResult, MicrovmAppBuildConnectorProps, MicrovmMemoryMiB } from "./microvm-app.js";
|
|
37
39
|
export { AgentCoreAgent } from "./agentcore-agent.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,8 +23,8 @@ export type { CFNSchema, SchemaProperty, SchemaDefinition } from "./spec/fetch.j
|
|
|
23
23
|
export { parseCFNSchema, cfnShortName, cfnServiceName } from "./spec/parse.js";
|
|
24
24
|
export type { SchemaParseResult, ParsedResource, ParsedProperty, ParsedAttribute, ParsedPropertyType, ParsedEnum, PropertyConstraints } from "./spec/parse.js";
|
|
25
25
|
export { S3Actions, LambdaActions, DynamoDBActions, SQSActions, SNSActions, IAMActions, ECRActions, LogsActions, ECSActions } from "./actions/index.js";
|
|
26
|
-
export { LambdaFunction, LambdaNode, LambdaPython, NodeLambda, PythonLambda, LambdaApi, LambdaScheduled, ScheduledLambda, LambdaSqs, LambdaEventBridge, LambdaDynamoDB, LambdaS3, LambdaSns, VpcDefault, FargateAlb, AlbShared, FargateService, RdsInstance, RdsPostgres, EfsWithAccessPoint, Ec2InstanceRole, MinimalVpc, SolrFargateService, MicrovmApp, MICROVM_LIMITS, AgentCoreAgent, } from "./composites/index.js";
|
|
27
|
-
export type { LambdaFunctionProps, LambdaApiProps, ScheduledLambdaProps, LambdaSqsProps, LambdaEventBridgeProps, LambdaDynamoDBProps, LambdaS3Props, LambdaSnsProps, VpcDefaultProps, FargateAlbProps, AlbSharedProps, FargateServiceProps, RdsInstanceProps, RdsPostgresProps, EfsWithAccessPointProps, Ec2InstanceRoleProps, MinimalVpcProps, SolrFargateServiceProps, MicrovmAppProps, MicrovmAppResult, MicrovmAppBuildConnectorProps, MicrovmMemoryMiB, AgentCoreAgentProps, AgentCoreAgentResult, } from "./composites/index.js";
|
|
26
|
+
export { LambdaFunction, LambdaNode, LambdaPython, NodeLambda, PythonLambda, LambdaApi, LambdaScheduled, ScheduledLambda, LambdaSqs, LambdaEventBridge, LambdaDynamoDB, LambdaS3, LambdaSns, VpcDefault, FargateAlb, AlbShared, FargateService, RdsInstance, RdsPostgres, EfsWithAccessPoint, Ec2InstanceRole, MinimalVpc, EksCluster, SolrFargateService, MicrovmApp, MICROVM_LIMITS, AgentCoreAgent, } from "./composites/index.js";
|
|
27
|
+
export type { LambdaFunctionProps, LambdaApiProps, ScheduledLambdaProps, LambdaSqsProps, LambdaEventBridgeProps, LambdaDynamoDBProps, LambdaS3Props, LambdaSnsProps, VpcDefaultProps, FargateAlbProps, AlbSharedProps, FargateServiceProps, RdsInstanceProps, RdsPostgresProps, EfsWithAccessPointProps, Ec2InstanceRoleProps, MinimalVpcProps, EksClusterProps, SolrFargateServiceProps, MicrovmAppProps, MicrovmAppResult, MicrovmAppBuildConnectorProps, MicrovmMemoryMiB, AgentCoreAgentProps, AgentCoreAgentResult, } from "./composites/index.js";
|
|
28
28
|
export { generate, writeGeneratedFiles } from "./codegen/generate.js";
|
|
29
29
|
export { packageLexicon } from "./codegen/package.js";
|
|
30
30
|
export type { PackageOptions, PackageResult } from "./codegen/package.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
4
|
+
"manifest.json": "eaab3a1b932cbd387d26b69caf57a0247fa005e85ea447a54f86f7b907488752",
|
|
5
5
|
"meta.json": "2e4cae67cbc2eb2962c3dd0aa57008ae96fb725dd0118af7b04b2b44eab7722a",
|
|
6
6
|
"types/index.d.ts": "6d6b37bd14a9b40fb3ff5c66e1cb49be1ae1032de47a4e167cf5f411c943b7f5",
|
|
7
7
|
"rules/hardcoded-region.ts": "5a0eaf7ab391231fe6cd51426ece29539cb4b36f31c8dd060956638fed55722a",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe",
|
|
60
60
|
"skills/chant-aws-carve-terraform.md": "f4c6fe1c702250665f90d82b3bdaba5ea50ae75e380a8ae321dad6eb1c39683e"
|
|
61
61
|
},
|
|
62
|
-
"composite": "
|
|
62
|
+
"composite": "681d59c798f87b5621cd38e258f4841d94f78268b04c71debaf203ba56d70ce2"
|
|
63
63
|
}
|
package/dist/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/chant-lexicon-aws",
|
|
3
|
-
"version": "0.41.
|
|
3
|
+
"version": "0.41.11",
|
|
4
4
|
"description": "AWS CloudFormation lexicon for chant — declarative IaC in TypeScript",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://intentius.io/chant",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"typescript": "^5.9.3"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
|
-
"@intentius/chant": "^0.41.
|
|
83
|
+
"@intentius/chant": "^0.41.11",
|
|
84
84
|
"typescript": "^5.9.3"
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { describe, test, expect } from "vitest";
|
|
2
|
+
import { AttrRef } from "@intentius/chant/attrref";
|
|
3
|
+
import { EksCluster } from "./eks-cluster";
|
|
4
|
+
|
|
5
|
+
const subnets = ["subnet-aaa", "subnet-bbb"];
|
|
6
|
+
|
|
7
|
+
describe("EksCluster", () => {
|
|
8
|
+
test("control-plane-only: cluster + its role, wired by AttrRef", () => {
|
|
9
|
+
const c = EksCluster({ name: "kmv-dev", subnetIds: subnets });
|
|
10
|
+
expect(c.cluster).toBeDefined();
|
|
11
|
+
expect(c.clusterRole).toBeDefined();
|
|
12
|
+
expect((c as unknown as Record<string, unknown>).nodegroup).toBeUndefined();
|
|
13
|
+
const clusterProps = (c.cluster as any).props;
|
|
14
|
+
expect(clusterProps.RoleArn).toBeInstanceOf(AttrRef);
|
|
15
|
+
expect(clusterProps.ResourcesVpcConfig.SubnetIds).toEqual(subnets);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test("with a nodegroup: node role carries the three worker policies, nodes default into the cluster subnets", () => {
|
|
19
|
+
const c = EksCluster({
|
|
20
|
+
name: "kmv-prod",
|
|
21
|
+
subnetIds: subnets,
|
|
22
|
+
version: "1.31",
|
|
23
|
+
nodegroup: { desiredSize: 2 },
|
|
24
|
+
});
|
|
25
|
+
expect(c.nodegroup).toBeDefined();
|
|
26
|
+
expect(c.nodeRole).toBeDefined();
|
|
27
|
+
const ngProps = (c.nodegroup as any).props;
|
|
28
|
+
expect(ngProps.ClusterName).toBe("kmv-prod");
|
|
29
|
+
expect(ngProps.Subnets).toEqual(subnets);
|
|
30
|
+
expect(ngProps.ScalingConfig.MinSize).toBe(2);
|
|
31
|
+
expect(ngProps.ScalingConfig.MaxSize).toBe(2);
|
|
32
|
+
expect((c.nodeRole as any).props.ManagedPolicyArns).toHaveLength(3);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test("nodegroup subnets override; scaling bounds honor explicit min/max", () => {
|
|
36
|
+
const c = EksCluster({
|
|
37
|
+
name: "kmv-ha",
|
|
38
|
+
subnetIds: subnets,
|
|
39
|
+
nodegroup: { subnetIds: ["subnet-nodes"], desiredSize: 2, minSize: 1, maxSize: 4 },
|
|
40
|
+
});
|
|
41
|
+
const ng2 = (c.nodegroup as any).props;
|
|
42
|
+
expect(ng2.Subnets).toEqual(["subnet-nodes"]);
|
|
43
|
+
expect(ng2.ScalingConfig.MinSize).toBe(1);
|
|
44
|
+
expect(ng2.ScalingConfig.MaxSize).toBe(4);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("defaults escape hatch reaches the cluster (e.g. deletion protection)", () => {
|
|
48
|
+
const c = EksCluster({
|
|
49
|
+
name: "kmv-guarded",
|
|
50
|
+
subnetIds: subnets,
|
|
51
|
+
defaults: { cluster: { DeletionProtection: true } },
|
|
52
|
+
});
|
|
53
|
+
expect((c.cluster as any).props.DeletionProtection).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EksCluster — a managed EKS control plane, its node group, and the two IAM
|
|
3
|
+
* roles they cannot exist without, as the one unit they are.
|
|
4
|
+
*
|
|
5
|
+
* The first consumer is kubemicrovm-ops' cluster plane (its "all infra from
|
|
6
|
+
* the tiers and targets" directive: the cluster stops being a
|
|
7
|
+
* reference-existing input and becomes provisionable), but nothing here is
|
|
8
|
+
* kubemicrovm-shaped — a cluster+nodegroup+roles bundle is what every EKS
|
|
9
|
+
* estate starts with, and cc-aws-canonical's bare cluster is the degenerate
|
|
10
|
+
* form of it.
|
|
11
|
+
*
|
|
12
|
+
* What is deliberately NOT here:
|
|
13
|
+
* - Networking. EKS requires subnets in at least two AZs, and `VpcDefault`
|
|
14
|
+
* (this directory) already provisions exactly that shape — the two
|
|
15
|
+
* composites compose rather than nest, so an adopter with their own VPC
|
|
16
|
+
* passes their own subnet ids.
|
|
17
|
+
* - Add-ons, OIDC/IRSA, access entries. Real per-estate decisions; a bundle
|
|
18
|
+
* that guessed them would fight every adopter. `defaults.cluster` /
|
|
19
|
+
* `defaults.nodegroup` are the escape hatch for the fields this surface
|
|
20
|
+
* does not name.
|
|
21
|
+
*
|
|
22
|
+
* On floci the cluster is k3s-backed and real (`aws eks update-kubeconfig`
|
|
23
|
+
* works, pods run — the cc-aws-canonical estate proved the path); the node
|
|
24
|
+
* group is accepted and tracked but backs no separate machines, which is the
|
|
25
|
+
* emulator being honest about what a laptop can host.
|
|
26
|
+
*/
|
|
27
|
+
import { Composite, mergeDefaults } from "@intentius/chant";
|
|
28
|
+
import { EKSCluster, Nodegroup, Role } from "../generated";
|
|
29
|
+
import { Sub } from "../intrinsics";
|
|
30
|
+
|
|
31
|
+
export interface EksClusterProps {
|
|
32
|
+
/** Cluster name. Required: everything downstream addresses the cluster by it. */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Subnet ids for the control plane ENIs — EKS requires at least two AZs. */
|
|
35
|
+
subnetIds: string[];
|
|
36
|
+
/** Extra security groups for the control plane (EKS always adds its own). */
|
|
37
|
+
securityGroupIds?: string[];
|
|
38
|
+
/** Kubernetes version, e.g. "1.31". Omitted takes EKS's current default. */
|
|
39
|
+
version?: string;
|
|
40
|
+
/** Node group shape. Omitted provisions no node group (control plane only). */
|
|
41
|
+
nodegroup?: {
|
|
42
|
+
instanceTypes?: string[];
|
|
43
|
+
desiredSize?: number;
|
|
44
|
+
minSize?: number;
|
|
45
|
+
maxSize?: number;
|
|
46
|
+
/** Subnets the nodes land in. Default: the cluster's own `subnetIds`. */
|
|
47
|
+
subnetIds?: string[];
|
|
48
|
+
};
|
|
49
|
+
tags?: Array<{ Key: string; Value: string }>;
|
|
50
|
+
defaults?: {
|
|
51
|
+
cluster?: Partial<ConstructorParameters<typeof EKSCluster>[0]>;
|
|
52
|
+
nodegroup?: Partial<ConstructorParameters<typeof Nodegroup>[0]>;
|
|
53
|
+
clusterRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
54
|
+
nodeRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const managedPolicy = (name: string) => Sub`arn:\${AWS::Partition}:iam::aws:policy/${name}`;
|
|
59
|
+
|
|
60
|
+
export const EksCluster = Composite((props: EksClusterProps) => {
|
|
61
|
+
const { defaults } = props;
|
|
62
|
+
|
|
63
|
+
const clusterRole = new Role(mergeDefaults({
|
|
64
|
+
AssumeRolePolicyDocument: {
|
|
65
|
+
Version: "2012-10-17",
|
|
66
|
+
Statement: [
|
|
67
|
+
{ Effect: "Allow", Principal: { Service: "eks.amazonaws.com" }, Action: "sts:AssumeRole" },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
ManagedPolicyArns: [managedPolicy("AmazonEKSClusterPolicy")],
|
|
71
|
+
Tags: props.tags,
|
|
72
|
+
}, defaults?.clusterRole));
|
|
73
|
+
|
|
74
|
+
const cluster = new EKSCluster(mergeDefaults({
|
|
75
|
+
Name: props.name,
|
|
76
|
+
RoleArn: clusterRole.Arn,
|
|
77
|
+
Version: props.version,
|
|
78
|
+
ResourcesVpcConfig: {
|
|
79
|
+
SubnetIds: props.subnetIds,
|
|
80
|
+
...(props.securityGroupIds ? { SecurityGroupIds: props.securityGroupIds } : {}),
|
|
81
|
+
},
|
|
82
|
+
Tags: props.tags,
|
|
83
|
+
}, defaults?.cluster));
|
|
84
|
+
|
|
85
|
+
if (!props.nodegroup) {
|
|
86
|
+
return { clusterRole, cluster };
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const nodeRole = new Role(mergeDefaults({
|
|
90
|
+
AssumeRolePolicyDocument: {
|
|
91
|
+
Version: "2012-10-17",
|
|
92
|
+
Statement: [
|
|
93
|
+
{ Effect: "Allow", Principal: { Service: "ec2.amazonaws.com" }, Action: "sts:AssumeRole" },
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
ManagedPolicyArns: [
|
|
97
|
+
managedPolicy("AmazonEKSWorkerNodePolicy"),
|
|
98
|
+
managedPolicy("AmazonEKS_CNI_Policy"),
|
|
99
|
+
managedPolicy("AmazonEC2ContainerRegistryReadOnly"),
|
|
100
|
+
],
|
|
101
|
+
Tags: props.tags,
|
|
102
|
+
}, defaults?.nodeRole));
|
|
103
|
+
|
|
104
|
+
const nodegroup = new Nodegroup(mergeDefaults({
|
|
105
|
+
// The literal, not an attribute reference: Name is an input the caller
|
|
106
|
+
// gave us, and the generated class exposes accessors only for GetAtt
|
|
107
|
+
// attributes. The creation-order edge is DependsOn below.
|
|
108
|
+
ClusterName: props.name,
|
|
109
|
+
NodeRole: nodeRole.Arn,
|
|
110
|
+
Subnets: props.nodegroup.subnetIds ?? props.subnetIds,
|
|
111
|
+
InstanceTypes: props.nodegroup.instanceTypes ?? ["t3.medium"],
|
|
112
|
+
ScalingConfig: {
|
|
113
|
+
DesiredSize: props.nodegroup.desiredSize ?? 2,
|
|
114
|
+
MinSize: props.nodegroup.minSize ?? props.nodegroup.desiredSize ?? 2,
|
|
115
|
+
MaxSize: props.nodegroup.maxSize ?? props.nodegroup.desiredSize ?? 2,
|
|
116
|
+
},
|
|
117
|
+
Tags: props.tags ? Object.fromEntries(props.tags.map((t) => [t.Key, t.Value])) : undefined,
|
|
118
|
+
}, defaults?.nodegroup), { DependsOn: [cluster] });
|
|
119
|
+
|
|
120
|
+
return { clusterRole, cluster, nodeRole, nodegroup };
|
|
121
|
+
}, "EksCluster");
|
package/src/composites/index.ts
CHANGED
|
@@ -32,6 +32,8 @@ export { Ec2InstanceRole } from "./ec2-instance-role";
|
|
|
32
32
|
export type { Ec2InstanceRoleProps } from "./ec2-instance-role";
|
|
33
33
|
export { MinimalVpc } from "./minimal-vpc";
|
|
34
34
|
export type { MinimalVpcProps } from "./minimal-vpc";
|
|
35
|
+
export { EksCluster } from "./eks-cluster";
|
|
36
|
+
export type { EksClusterProps } from "./eks-cluster";
|
|
35
37
|
export { MicrovmApp, MICROVM_LIMITS } from "./microvm-app";
|
|
36
38
|
export type { MicrovmAppProps, MicrovmAppResult, MicrovmAppBuildConnectorProps, MicrovmMemoryMiB } from "./microvm-app";
|
|
37
39
|
export { AgentCoreAgent } from "./agentcore-agent";
|
package/src/index.ts
CHANGED
|
@@ -110,7 +110,7 @@ export {
|
|
|
110
110
|
LambdaSqs, LambdaEventBridge, LambdaDynamoDB, LambdaS3, LambdaSns,
|
|
111
111
|
VpcDefault, FargateAlb, AlbShared, FargateService, RdsInstance, RdsPostgres,
|
|
112
112
|
EfsWithAccessPoint,
|
|
113
|
-
Ec2InstanceRole, MinimalVpc,
|
|
113
|
+
Ec2InstanceRole, MinimalVpc, EksCluster,
|
|
114
114
|
SolrFargateService,
|
|
115
115
|
MicrovmApp, MICROVM_LIMITS,
|
|
116
116
|
AgentCoreAgent,
|
|
@@ -120,7 +120,7 @@ export type {
|
|
|
120
120
|
LambdaSqsProps, LambdaEventBridgeProps, LambdaDynamoDBProps, LambdaS3Props, LambdaSnsProps,
|
|
121
121
|
VpcDefaultProps, FargateAlbProps, AlbSharedProps, FargateServiceProps, RdsInstanceProps, RdsPostgresProps,
|
|
122
122
|
EfsWithAccessPointProps,
|
|
123
|
-
Ec2InstanceRoleProps, MinimalVpcProps,
|
|
123
|
+
Ec2InstanceRoleProps, MinimalVpcProps, EksClusterProps,
|
|
124
124
|
SolrFargateServiceProps,
|
|
125
125
|
MicrovmAppProps, MicrovmAppResult, MicrovmAppBuildConnectorProps, MicrovmMemoryMiB,
|
|
126
126
|
AgentCoreAgentProps, AgentCoreAgentResult,
|