Skip to content

Commit 94f0005

Browse files
tas50claude
andcommitted
⭐ Expand EKS resources with typed references, insights, and addon versions
Add typed resource references to EKS cluster (vpc, subnets, security groups), Fargate profiles (subnets, pod execution role), and pod identity associations (IAM role). Add new resources for cluster insights, addon versions, and access policies. Expand nodegroup and addon fields for health, taints, and config. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6ec616d commit 94f0005

File tree

5 files changed

+1651
-5
lines changed

5 files changed

+1651
-5
lines changed

providers/aws/resources/aws.lr

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8475,6 +8475,18 @@ private aws.eks.nodegroup @defaults("name scalingConfig.DesiredSize diskSize sta
84758475
autoscalingGroups() []aws.autoscaling.group
84768476
// Warm pool configuration for the node group
84778477
warmPoolConfig() dict
8478+
// Health status of the node group (contains issues list)
8479+
health() dict
8480+
// Kubernetes taints applied to nodes in the group
8481+
taints() []dict
8482+
// AMI release version
8483+
releaseVersion() string
8484+
// Remote access configuration for the node group (SSH key, source security groups)
8485+
remoteAccess() dict
8486+
// Update configuration for the node group (maxUnavailable settings)
8487+
updateConfig() dict
8488+
// Kubernetes version of the node group
8489+
nodeVersion() string
84788490
}
84798491

84808492
// Amazon EKS add-on
@@ -8501,6 +8513,8 @@ private aws.eks.addon @defaults("name addonVersion status") {
85018513
configurationValues() string
85028514
// Region where the add-on exists
85038515
region string
8516+
// Health status of the add-on (contains issues list)
8517+
health() dict
85048518
}
85058519

85068520
// Amazon EKS cluster
@@ -8528,6 +8542,7 @@ aws.eks.cluster @defaults("arn version status") {
85288542
// Kubernetes network configuration
85298543
networkConfig() dict
85308544
// VPC configuration
8545+
// Deprecated: use vpc(), clusterSubnets(), clusterSecurityGroups(), and clusterSecurityGroup() instead
85318546
resourcesVpcConfig() dict
85328547
// Cluster creation timestamp
85338548
createdAt() time
@@ -8557,6 +8572,22 @@ aws.eks.cluster @defaults("arn version status") {
85578572
podIdentityAssociations() []aws.eks.podIdentityAssociation
85588573
// List of OIDC identity provider configurations
85598574
identityProviderConfigs() []aws.eks.identityProviderConfig
8575+
// VPC the cluster is deployed in
8576+
vpc() aws.vpc
8577+
// Subnets associated with the cluster
8578+
clusterSubnets() []aws.vpc.subnet
8579+
// Additional security groups associated with the cluster control plane
8580+
clusterSecurityGroups() []aws.ec2.securitygroup
8581+
// Cluster security group created by Amazon EKS for control-plane-to-data-plane communication
8582+
clusterSecurityGroup() aws.ec2.securitygroup
8583+
// Cluster health status (contains issues list)
8584+
health() dict
8585+
// Base64-encoded certificate authority data for the cluster
8586+
certificateAuthority() string
8587+
// List of EKS cluster insights (upgrade readiness, best practices)
8588+
insights() []aws.eks.insight
8589+
// Available add-on versions compatible with this cluster's Kubernetes version
8590+
availableAddonVersions() []aws.eks.addonVersion
85608591
}
85618592

85628593
// AWS EKS access entry for cluster RBAC
@@ -8577,6 +8608,28 @@ private aws.eks.accessEntry @defaults("principalArn type") {
85778608
tags() map[string]string
85788609
// When the access entry was created
85798610
createdAt() time
8611+
// Access policies associated with the access entry
8612+
accessPolicies() []aws.eks.accessPolicy
8613+
}
8614+
8615+
// AWS EKS access policy associated with an access entry
8616+
private aws.eks.accessPolicy @defaults("policyArn scopeType") {
8617+
// ARN of the access policy
8618+
policyArn string
8619+
// Scope type of the access policy: cluster or namespace
8620+
scopeType string
8621+
// Kubernetes namespaces in scope (when scopeType is namespace)
8622+
namespaces []string
8623+
// When the access policy was associated
8624+
associatedAt time
8625+
// When the access policy association was last modified
8626+
modifiedAt time
8627+
// Name of the EKS cluster
8628+
clusterName string
8629+
// ARN of the IAM principal this policy is associated with
8630+
principalArn string
8631+
// Region where the cluster exists
8632+
region string
85808633
}
85818634

85828635
// AWS EKS Fargate profile
@@ -8588,11 +8641,17 @@ private aws.eks.fargateProfile @defaults("name status") {
85888641
// Name of the EKS cluster
85898642
clusterName string
85908643
// ARN of the pod execution role
8644+
// Deprecated: use podExecutionRole() instead
85918645
podExecutionRoleArn() string
8646+
// IAM role used for Fargate pod execution
8647+
podExecutionRole() aws.iam.role
85928648
// Selectors that determine which pods run on Fargate (namespace and label matchers)
85938649
selectors() []dict
85948650
// Subnet IDs for the Fargate profile
8651+
// Deprecated: use fargateSubnets() instead
85958652
subnets() []string
8653+
// Subnets associated with the Fargate profile
8654+
fargateSubnets() []aws.vpc.subnet
85968655
// Status of the Fargate profile: CREATING, ACTIVE, DELETING, CREATE_FAILED, DELETE_FAILED
85978656
status() string
85988657
// Region where the cluster exists
@@ -8616,11 +8675,18 @@ private aws.eks.podIdentityAssociation @defaults("associationId namespace servic
86168675
// Kubernetes service account name
86178676
serviceAccount() string
86188677
// ARN of the IAM role to assume
8678+
// Deprecated: use iamRole() instead
86198679
roleArn() string
8680+
// IAM role associated with the pod identity
8681+
iamRole() aws.iam.role
86208682
// Region where the cluster exists
86218683
region string
86228684
// When the association was created
86238685
createdAt() time
8686+
// When the association was last modified
8687+
modifiedAt() time
8688+
// ARN of the owning add-on (if applicable)
8689+
ownerArn() string
86248690
}
86258691

86268692
// AWS EKS OIDC identity provider configuration
@@ -8653,6 +8719,56 @@ private aws.eks.identityProviderConfig @defaults("name type status") {
86538719
tags() map[string]string
86548720
}
86558721

8722+
// Amazon EKS cluster insight (upgrade readiness, best practices)
8723+
private aws.eks.insight @defaults("name category insightStatus") {
8724+
// Unique identifier for the insight
8725+
id string
8726+
// Name of the insight
8727+
name() string
8728+
// Category of the insight (UPGRADE_READINESS)
8729+
category() string
8730+
// Description of the insight (may contain Markdown)
8731+
description() string
8732+
// Status of the insight
8733+
insightStatus() dict
8734+
// Kubernetes version associated with the insight
8735+
kubernetesVersion() string
8736+
// Recommendation for remediation
8737+
recommendation() string
8738+
// Additional informational links
8739+
additionalInfo() map[string]string
8740+
// Category-specific summary details
8741+
categorySpecificSummary() dict
8742+
// Resources affected by the insight
8743+
resources() []dict
8744+
// Last time the insight was refreshed
8745+
lastRefreshTime() time
8746+
// Last time the insight status changed
8747+
lastTransitionTime() time
8748+
// Name of the EKS cluster
8749+
clusterName string
8750+
// Region where the cluster exists
8751+
region string
8752+
}
8753+
8754+
// Available Amazon EKS add-on version
8755+
private aws.eks.addonVersion @defaults("addonName addonVersion") {
8756+
// Name of the add-on
8757+
addonName string
8758+
// Version string of the add-on
8759+
addonVersion string
8760+
// Architectures supported by this version
8761+
architectures []string
8762+
// Compute types supported by this version
8763+
computeTypes []string
8764+
// Kubernetes version compatibilities
8765+
compatibilities() []dict
8766+
// Whether the add-on requires configuration
8767+
requiresConfiguration bool
8768+
// Whether the add-on requires IAM permissions
8769+
requiresIamPermissions bool
8770+
}
8771+
86568772
// Amazon Neptune
86578773
aws.neptune @defaults("clusters") {
86588774
// List of database clusters

0 commit comments

Comments
 (0)