AWS.EKS reference
AccessEntry
Section titled “AccessEntry”Source:
src/AWS/EKS/AccessEntry.ts
An Amazon EKS access entry that grants an IAM principal access to a cluster.
AccessEntry owns both the entry itself and the exact set of associated EKS
access policies, making cluster access explicit and updatable after initial
cluster bootstrap.
AccessEntry: Managing Cluster Access
Section titled “AccessEntry: Managing Cluster Access”const viewer = yield* AccessEntry("ViewerAccess", { clusterName: cluster.clusterName, principalArn: viewerRole.roleArn, accessPolicies: [ { policyArn: "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy", accessScope: { type: "cluster", }, }, ],});Source:
src/AWS/EKS/Addon.ts
An Amazon EKS managed add-on installed on a cluster.
Addon is intended for optional managed add-ons. On Auto Mode clusters, many
core components are already provided by AWS and do not need to be modeled as
explicit add-on resources.
Addon: Managing Add-ons
Section titled “Addon: Managing Add-ons”const metricsServer = yield* Addon("MetricsServer", { clusterName: cluster.clusterName, addonName: "metrics-server",});Cluster
Section titled “Cluster”Source:
src/AWS/EKS/Cluster.ts
An Amazon EKS cluster with support for EKS Auto Mode settings.
Cluster: Creating Clusters
Section titled “Cluster: Creating Clusters”Auto Mode Cluster (managed roles)
const cluster = yield* Cluster("AppCluster", { compute: "auto", resourcesVpcConfig: { subnetIds: network.privateSubnetIds, },});Auto Mode Cluster from Existing Roles and Subnets
const cluster = yield* Cluster("AppCluster", { roleArn: clusterRole.roleArn, resourcesVpcConfig: { subnetIds: network.privateSubnetIds, endpointPublicAccess: true, endpointPrivateAccess: true, }, accessConfig: { authenticationMode: "API", }, computeConfig: { enabled: true, nodeRoleArn: nodeRole.roleArn, nodePools: ["system", "general-purpose"], }, kubernetesNetworkConfig: { elasticLoadBalancing: { enabled: true }, }, storageConfig: { blockStorage: { enabled: true }, },});Cluster: Running Workloads
Section titled “Cluster: Running Workloads”const cluster = yield* AWS.EKS.Cluster("AppCluster", { roleArn: clusterRole.roleArn, resourcesVpcConfig: { subnetIds: network.privateSubnetIds }, accessConfig: { authenticationMode: "API" },});
const nodes = yield* AWS.EKS.Nodegroup("AppNodes", { clusterName: cluster.clusterName, nodeRole: nodeRole.roleArn, subnets: network.privateSubnetIds, instanceTypes: ["t3.medium"], scalingConfig: { minSize: 1, maxSize: 2, desiredSize: 1 },});
const metricsServer = yield* AWS.EKS.Addon("MetricsServer", { clusterName: cluster.clusterName, addonName: "metrics-server",});DescribeAccessEntry
Section titled “DescribeAccessEntry”Source:
src/AWS/EKS/DescribeAccessEntry.ts
Runtime binding for eks:DescribeAccessEntry.
Reads one access entry — the Kubernetes username, groups, and type mapped to an IAM principal.
The cluster clusterName is injected from the bound Cluster and eks:DescribeAccessEntry is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeAccessEntryHttp).
DescribeAccessEntry: Inspecting Identity and Access
Section titled “DescribeAccessEntry: Inspecting Identity and Access”// initconst describeAccessEntry = yield* AWS.EKS.DescribeAccessEntry(cluster);
// runtimeconst { accessEntry } = yield* describeAccessEntry({ principalArn });DescribeAddon
Section titled “DescribeAddon”Source:
src/AWS/EKS/DescribeAddon.ts
Runtime binding for eks:DescribeAddon.
Reads one installed add-on’s state — version, status, health issues, and pod identity associations.
The cluster clusterName is injected from the bound Cluster and eks:DescribeAddon is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeAddonHttp).
DescribeAddon: Inspecting Add-ons
Section titled “DescribeAddon: Inspecting Add-ons”// initconst describeAddon = yield* AWS.EKS.DescribeAddon(cluster);
// runtimeconst { addon } = yield* describeAddon({ addonName: "vpc-cni" });DescribeAddonConfiguration
Section titled “DescribeAddonConfiguration”Source:
src/AWS/EKS/DescribeAddonConfiguration.ts
Runtime binding for eks:DescribeAddonConfiguration.
Reads an add-on version’s configuration JSON schema — the shape its configurationValues must satisfy.
eks:DescribeAddonConfiguration is granted on * — the operation is account-scoped and takes no resource.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeAddonConfigurationHttp).
DescribeAddonConfiguration: Version Catalogs
Section titled “DescribeAddonConfiguration: Version Catalogs”// initconst describeAddonConfiguration = yield* AWS.EKS.DescribeAddonConfiguration();
// runtimeconst { configurationSchema } = yield* describeAddonConfiguration({ addonName: "vpc-cni", addonVersion,});DescribeAddonVersions
Section titled “DescribeAddonVersions”Source:
src/AWS/EKS/DescribeAddonVersions.ts
Runtime binding for eks:DescribeAddonVersions.
Reads the add-on catalog — which add-ons (and versions) are available, per Kubernetes version.
eks:DescribeAddonVersions is granted on * — the operation is account-scoped and takes no resource.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeAddonVersionsHttp).
DescribeAddonVersions: Version Catalogs
Section titled “DescribeAddonVersions: Version Catalogs”// initconst describeAddonVersions = yield* AWS.EKS.DescribeAddonVersions();
// runtimeconst { addons } = yield* describeAddonVersions({ addonName: "vpc-cni", kubernetesVersion: "1.31",});DescribeCapability
Section titled “DescribeCapability”Source:
src/AWS/EKS/DescribeCapability.ts
Runtime binding for eks:DescribeCapability.
Reads one EKS capability’s full state — the managed capability (e.g. Argo CD) installed on the bound cluster, its status, version, and configuration.
The cluster clusterName is injected from the bound Cluster and eks:DescribeCapability is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeCapabilityHttp).
DescribeCapability: Cluster Capabilities
Section titled “DescribeCapability: Cluster Capabilities”// initconst describeCapability = yield* AWS.EKS.DescribeCapability(cluster);
// runtimeconst { capability } = yield* describeCapability({ capabilityName: "argocd" });const status = capability?.status;DescribeCluster
Section titled “DescribeCluster”Source:
src/AWS/EKS/DescribeCluster.ts
Runtime binding for eks:DescribeCluster.
Reads the bound cluster’s live control-plane state — status, Kubernetes API endpoint, certificateAuthority data, version, and network config. The building block for constructing a kubeconfig at runtime.
The cluster name is injected from the bound Cluster and eks:DescribeCluster is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeClusterHttp).
DescribeCluster: Reading Cluster State
Section titled “DescribeCluster: Reading Cluster State”// initconst describeCluster = yield* AWS.EKS.DescribeCluster(cluster);
// runtimeconst { cluster: live } = yield* describeCluster();const endpoint = live?.endpoint;const caData = live?.certificateAuthority?.data;DescribeClusterVersions
Section titled “DescribeClusterVersions”Source:
src/AWS/EKS/DescribeClusterVersions.ts
Runtime binding for eks:DescribeClusterVersions.
Reads the Kubernetes version catalog — which versions EKS currently offers, their support status, and end-of-support dates.
eks:DescribeClusterVersions is granted on * — the operation is account-scoped and takes no resource.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeClusterVersionsHttp).
DescribeClusterVersions: Version Catalogs
Section titled “DescribeClusterVersions: Version Catalogs”// initconst describeClusterVersions = yield* AWS.EKS.DescribeClusterVersions();
// runtimeconst { clusterVersions } = yield* describeClusterVersions({ defaultOnly: true,});DescribeFargateProfile
Section titled “DescribeFargateProfile”Source:
src/AWS/EKS/DescribeFargateProfile.ts
Runtime binding for eks:DescribeFargateProfile.
Reads one Fargate profile’s state — pod execution role, selectors, subnets, and status.
The cluster clusterName is injected from the bound Cluster and eks:DescribeFargateProfile is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeFargateProfileHttp).
DescribeFargateProfile: Inspecting Compute
Section titled “DescribeFargateProfile: Inspecting Compute”// initconst describeFargateProfile = yield* AWS.EKS.DescribeFargateProfile(cluster);
// runtimeconst { fargateProfile } = yield* describeFargateProfile({ fargateProfileName: "default",});DescribeIdentityProviderConfig
Section titled “DescribeIdentityProviderConfig”Source:
src/AWS/EKS/DescribeIdentityProviderConfig.ts
Runtime binding for eks:DescribeIdentityProviderConfig.
Reads one OIDC identity provider configuration associated with the bound cluster — issuer URL, client ID, claim mappings, and association status.
The cluster clusterName is injected from the bound Cluster and eks:DescribeIdentityProviderConfig is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeIdentityProviderConfigHttp).
DescribeIdentityProviderConfig: Identity Provider Configs
Section titled “DescribeIdentityProviderConfig: Identity Provider Configs”// initconst describeIdentityProviderConfig = yield* AWS.EKS.DescribeIdentityProviderConfig(cluster);
// runtimeconst { identityProviderConfig } = yield* describeIdentityProviderConfig({ identityProviderConfig: { type: "oidc", name: "corp-oidc" },});const issuer = identityProviderConfig?.oidc?.issuerUrl;DescribeInsight
Section titled “DescribeInsight”Source:
src/AWS/EKS/DescribeInsight.ts
Runtime binding for eks:DescribeInsight.
Reads one insight’s full detail — category, status, recommendation, and the resources it flags.
The cluster clusterName is injected from the bound Cluster and eks:DescribeInsight is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeInsightHttp).
DescribeInsight: Cluster Insights
Section titled “DescribeInsight: Cluster Insights”// initconst describeInsight = yield* AWS.EKS.DescribeInsight(cluster);
// runtimeconst { insight } = yield* describeInsight({ id: insightId });DescribeInsightsRefresh
Section titled “DescribeInsightsRefresh”Source:
src/AWS/EKS/DescribeInsightsRefresh.ts
Runtime binding for eks:DescribeInsightsRefresh.
Reads the status of the bound cluster’s insights refresh — whether an on-demand refresh (kicked off via StartInsightsRefresh) is in progress, completed, or failed.
The cluster clusterName is injected from the bound Cluster and eks:DescribeInsightsRefresh is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeInsightsRefreshHttp).
DescribeInsightsRefresh: Cluster Insights
Section titled “DescribeInsightsRefresh: Cluster Insights”// initconst describeInsightsRefresh = yield* AWS.EKS.DescribeInsightsRefresh(cluster);
// runtimeconst { status } = yield* describeInsightsRefresh();DescribeNodegroup
Section titled “DescribeNodegroup”Source:
src/AWS/EKS/DescribeNodegroup.ts
Runtime binding for eks:DescribeNodegroup.
Reads one managed node group’s full state — scaling config, instance types, AMI release version, health issues.
The cluster clusterName is injected from the bound Cluster and eks:DescribeNodegroup is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeNodegroupHttp).
DescribeNodegroup: Inspecting Compute
Section titled “DescribeNodegroup: Inspecting Compute”// initconst describeNodegroup = yield* AWS.EKS.DescribeNodegroup(cluster);
// runtimeconst { nodegroup } = yield* describeNodegroup({ nodegroupName: "general" });const issues = nodegroup?.health?.issues ?? [];DescribePodIdentityAssociation
Section titled “DescribePodIdentityAssociation”Source:
src/AWS/EKS/DescribePodIdentityAssociation.ts
Runtime binding for eks:DescribePodIdentityAssociation.
Reads one EKS Pod Identity association — the IAM role wired to a Kubernetes service account.
The cluster clusterName is injected from the bound Cluster and eks:DescribePodIdentityAssociation is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribePodIdentityAssociationHttp).
DescribePodIdentityAssociation: Inspecting Identity and Access
Section titled “DescribePodIdentityAssociation: Inspecting Identity and Access”// initconst describePodIdentityAssociation = yield* AWS.EKS.DescribePodIdentityAssociation(cluster);
// runtimeconst { association } = yield* describePodIdentityAssociation({ associationId,});DescribeUpdate
Section titled “DescribeUpdate”Source:
src/AWS/EKS/DescribeUpdate.ts
Runtime binding for eks:DescribeUpdate.
Reads one update’s status and parameters — poll it to track an in-flight version upgrade or config change.
The cluster name is injected from the bound Cluster and eks:DescribeUpdate is granted on the cluster’s ARN and sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.DescribeUpdateHttp).
DescribeUpdate: Tracking Updates
Section titled “DescribeUpdate: Tracking Updates”// initconst describeUpdate = yield* AWS.EKS.DescribeUpdate(cluster);
// runtimeconst { update } = yield* describeUpdate({ updateId });const done = update?.status === "Successful";FargateProfile
Section titled “FargateProfile”Source:
src/AWS/EKS/FargateProfile.ts
An Amazon EKS Fargate profile — declares which pods (by namespace + labels) run on AWS Fargate serverless compute instead of on EC2 nodes.
Fargate profiles are immutable except for tags: any change to selectors, the
pod execution role, or subnets forces a replacement. Create and delete are
asynchronous (CREATING → ACTIVE, DELETING → gone, ~1–2 min each) and the
provider waits for the terminal state. EKS allows only one Fargate profile per
cluster to be creating or deleting at a time, so the provider retries the
ResourceInUseException that surfaces when a peer profile operation is in
flight.
Fargate pods must run in private subnets — pass private subnet IDs only.
FargateProfile: Creating Fargate Profiles
Section titled “FargateProfile: Creating Fargate Profiles”Run the default Namespace on Fargate
const profile = yield* FargateProfile("DefaultFargate", { clusterName: cluster.clusterName, podExecutionRoleArn: podRole.roleArn, subnets: network.privateSubnetIds, selectors: [{ namespace: "default" }],});Select Pods by Namespace and Labels
const profile = yield* FargateProfile("BatchFargate", { clusterName: cluster.clusterName, podExecutionRoleArn: podRole.roleArn, subnets: network.privateSubnetIds, selectors: [ { namespace: "batch", labels: { compute: "fargate" } }, ],});ListAccessEntries
Section titled “ListAccessEntries”Source:
src/AWS/EKS/ListAccessEntries.ts
Runtime binding for eks:ListAccessEntries.
Enumerates the IAM principal ARNs granted Kubernetes access to the bound cluster via access entries.
The cluster clusterName is injected from the bound Cluster and eks:ListAccessEntries is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListAccessEntriesHttp).
ListAccessEntries: Inspecting Identity and Access
Section titled “ListAccessEntries: Inspecting Identity and Access”// initconst listAccessEntries = yield* AWS.EKS.ListAccessEntries(cluster);
// runtimeconst { accessEntries } = yield* listAccessEntries();ListAccessPolicies
Section titled “ListAccessPolicies”Source:
src/AWS/EKS/ListAccessPolicies.ts
Runtime binding for eks:ListAccessPolicies.
Enumerates the AWS-managed EKS access policies (AmazonEKSAdminPolicy, AmazonEKSViewPolicy, …) that can be associated with access entries.
eks:ListAccessPolicies is granted on * — the operation is account-scoped and takes no resource.
Provide the implementation with
Effect.provide(AWS.EKS.ListAccessPoliciesHttp).
ListAccessPolicies: Discovering Clusters
Section titled “ListAccessPolicies: Discovering Clusters”// initconst listAccessPolicies = yield* AWS.EKS.ListAccessPolicies();
// runtimeconst { accessPolicies } = yield* listAccessPolicies();ListAddons
Section titled “ListAddons”Source:
src/AWS/EKS/ListAddons.ts
Runtime binding for eks:ListAddons.
Enumerates the add-on names installed on the bound cluster.
The cluster clusterName is injected from the bound Cluster and eks:ListAddons is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListAddonsHttp).
ListAddons: Inspecting Add-ons
Section titled “ListAddons: Inspecting Add-ons”// initconst listAddons = yield* AWS.EKS.ListAddons(cluster);
// runtimeconst { addons } = yield* listAddons();ListAssociatedAccessPolicies
Section titled “ListAssociatedAccessPolicies”Source:
src/AWS/EKS/ListAssociatedAccessPolicies.ts
Runtime binding for eks:ListAssociatedAccessPolicies.
Enumerates the EKS access policies associated with one access entry’s IAM principal.
The cluster clusterName is injected from the bound Cluster and eks:ListAssociatedAccessPolicies is granted on the cluster’s sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.ListAssociatedAccessPoliciesHttp).
ListAssociatedAccessPolicies: Inspecting Identity and Access
Section titled “ListAssociatedAccessPolicies: Inspecting Identity and Access”// initconst listAssociatedAccessPolicies = yield* AWS.EKS.ListAssociatedAccessPolicies(cluster);
// runtimeconst { associatedAccessPolicies } = yield* listAssociatedAccessPolicies({ principalArn,});ListCapabilities
Section titled “ListCapabilities”Source:
src/AWS/EKS/ListCapabilities.ts
Runtime binding for eks:ListCapabilities.
Enumerates the managed capabilities (e.g. Argo CD) installed on the bound cluster.
The cluster clusterName is injected from the bound Cluster and eks:ListCapabilities is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListCapabilitiesHttp).
ListCapabilities: Cluster Capabilities
Section titled “ListCapabilities: Cluster Capabilities”// initconst listCapabilities = yield* AWS.EKS.ListCapabilities(cluster);
// runtimeconst { capabilities } = yield* listCapabilities();ListClusters
Section titled “ListClusters”Source:
src/AWS/EKS/ListClusters.ts
Runtime binding for eks:ListClusters.
Enumerates the EKS cluster names in the caller’s account and region.
eks:ListClusters is granted on * — the operation is account-scoped and takes no resource.
Provide the implementation with
Effect.provide(AWS.EKS.ListClustersHttp).
ListClusters: Discovering Clusters
Section titled “ListClusters: Discovering Clusters”// initconst listClusters = yield* AWS.EKS.ListClusters();
// runtimeconst { clusters } = yield* listClusters();ListFargateProfiles
Section titled “ListFargateProfiles”Source:
src/AWS/EKS/ListFargateProfiles.ts
Runtime binding for eks:ListFargateProfiles.
Enumerates the Fargate profile names configured on the bound cluster.
The cluster clusterName is injected from the bound Cluster and eks:ListFargateProfiles is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListFargateProfilesHttp).
ListFargateProfiles: Inspecting Compute
Section titled “ListFargateProfiles: Inspecting Compute”// initconst listFargateProfiles = yield* AWS.EKS.ListFargateProfiles(cluster);
// runtimeconst { fargateProfileNames } = yield* listFargateProfiles();ListIdentityProviderConfigs
Section titled “ListIdentityProviderConfigs”Source:
src/AWS/EKS/ListIdentityProviderConfigs.ts
Runtime binding for eks:ListIdentityProviderConfigs.
Enumerates the OIDC identity provider configurations associated with the bound cluster.
The cluster clusterName is injected from the bound Cluster and eks:ListIdentityProviderConfigs is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListIdentityProviderConfigsHttp).
ListIdentityProviderConfigs: Identity Provider Configs
Section titled “ListIdentityProviderConfigs: Identity Provider Configs”// initconst listIdentityProviderConfigs = yield* AWS.EKS.ListIdentityProviderConfigs(cluster);
// runtimeconst { identityProviderConfigs } = yield* listIdentityProviderConfigs();ListInsights
Section titled “ListInsights”Source:
src/AWS/EKS/ListInsights.ts
Runtime binding for eks:ListInsights.
Enumerates EKS upgrade/configuration insights for the bound cluster — findings that block or degrade a Kubernetes version upgrade.
The cluster clusterName is injected from the bound Cluster and eks:ListInsights is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListInsightsHttp).
ListInsights: Cluster Insights
Section titled “ListInsights: Cluster Insights”// initconst listInsights = yield* AWS.EKS.ListInsights(cluster);
// runtimeconst { insights } = yield* listInsights({ filter: { statuses: ["ERROR", "WARNING"] },});ListNodegroups
Section titled “ListNodegroups”Source:
src/AWS/EKS/ListNodegroups.ts
Runtime binding for eks:ListNodegroups.
Enumerates the managed node group names attached to the bound cluster.
The cluster clusterName is injected from the bound Cluster and eks:ListNodegroups is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListNodegroupsHttp).
ListNodegroups: Inspecting Compute
Section titled “ListNodegroups: Inspecting Compute”// initconst listNodegroups = yield* AWS.EKS.ListNodegroups(cluster);
// runtimeconst { nodegroups } = yield* listNodegroups();ListPodIdentityAssociations
Section titled “ListPodIdentityAssociations”Source:
src/AWS/EKS/ListPodIdentityAssociations.ts
Runtime binding for eks:ListPodIdentityAssociations.
Enumerates the EKS Pod Identity associations on the bound cluster, optionally filtered by namespace or service account.
The cluster clusterName is injected from the bound Cluster and eks:ListPodIdentityAssociations is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.ListPodIdentityAssociationsHttp).
ListPodIdentityAssociations: Inspecting Identity and Access
Section titled “ListPodIdentityAssociations: Inspecting Identity and Access”// initconst listPodIdentityAssociations = yield* AWS.EKS.ListPodIdentityAssociations(cluster);
// runtimeconst { associations } = yield* listPodIdentityAssociations({ namespace: "default",});ListUpdates
Section titled “ListUpdates”Source:
src/AWS/EKS/ListUpdates.ts
Runtime binding for eks:ListUpdates.
Enumerates the update IDs issued against the bound cluster (or one of its node groups / add-ons).
The cluster name is injected from the bound Cluster and eks:ListUpdates is granted on the cluster’s ARN and sub-resource ARNs.
Provide the implementation with
Effect.provide(AWS.EKS.ListUpdatesHttp).
ListUpdates: Tracking Updates
Section titled “ListUpdates: Tracking Updates”// initconst listUpdates = yield* AWS.EKS.ListUpdates(cluster);
// runtimeconst { updateIds } = yield* listUpdates();Nodegroup
Section titled “Nodegroup”Source:
src/AWS/EKS/Nodegroup.ts
An Amazon EKS managed node group — an EC2 Auto Scaling group of worker nodes managed by EKS for a cluster.
Managed node groups provide the compute capacity a non-Auto-Mode EKS cluster
needs to run pods. Creation is asynchronous (CREATING → ACTIVE, ~2–5 min)
and the provider waits for the group to become ACTIVE before returning.
Scaling, labels, taints, update config, and version are mutable in place;
subnets, instance types, AMI type, disk size, node role, capacity type, and
remote access are immutable and force a replacement.
Nodegroup: Creating Node Groups
Section titled “Nodegroup: Creating Node Groups”Managed Node Group
const nodes = yield* Nodegroup("AppNodes", { clusterName: cluster.clusterName, nodeRole: nodeRole.roleArn, subnets: network.privateSubnetIds, instanceTypes: ["t3.medium"], scalingConfig: { minSize: 1, maxSize: 3, desiredSize: 2 },});Spot Node Group with Labels and Taints
const spot = yield* Nodegroup("SpotNodes", { clusterName: cluster.clusterName, nodeRole: nodeRole.roleArn, subnets: network.privateSubnetIds, capacityType: "SPOT", instanceTypes: ["t3.large", "t3a.large"], scalingConfig: { minSize: 0, maxSize: 5, desiredSize: 1 }, labels: { workload: "batch" }, taints: [{ key: "spot", value: "true", effect: "NO_SCHEDULE" }],});PodIdentityAssociation
Section titled “PodIdentityAssociation”Source:
src/AWS/EKS/PodIdentityAssociation.ts
An Amazon EKS pod identity association that binds a service account to an IAM role.
PodIdentityAssociation is the canonical workload-identity resource for EKS
clusters that use EKS Pod Identity instead of IRSA.
PodIdentityAssociation: Managing Pod Identity
Section titled “PodIdentityAssociation: Managing Pod Identity”const association = yield* PodIdentityAssociation("ApiIdentity", { clusterName: cluster.clusterName, namespace: "default", serviceAccount: "api", roleArn: podRole.roleArn,});StartInsightsRefresh
Section titled “StartInsightsRefresh”Source:
src/AWS/EKS/StartInsightsRefresh.ts
Runtime binding for eks:StartInsightsRefresh.
Kicks off an on-demand refresh of the bound cluster’s upgrade/configuration insights instead of waiting for the periodic automatic evaluation. Track progress with DescribeInsightsRefresh.
The cluster clusterName is injected from the bound Cluster and eks:StartInsightsRefresh is granted on the cluster’s ARN.
Provide the implementation with
Effect.provide(AWS.EKS.StartInsightsRefreshHttp).
StartInsightsRefresh: Cluster Insights
Section titled “StartInsightsRefresh: Cluster Insights”// initconst startInsightsRefresh = yield* AWS.EKS.StartInsightsRefresh(cluster);
// runtimeconst { status } = yield* startInsightsRefresh();