EKS
Amazon EKS (eks) on fakecloud: complete 65-op Elastic Kubernetes Service control plane — clusters, node groups, Fargate profiles, add-ons, access entries, identity-provider configs, pod identity, insights, capabilities, and EKS Anywhere. restJson1.
fakecloud implements Amazon EKS (eks), the managed Kubernetes service, as a restJson1 control plane. The complete 65-operation surface ships — clusters, managed node groups, Fargate profiles, add-ons, access entries, OIDC identity-provider configs, pod-identity associations, upgrade insights, capabilities, connected-cluster registration, encryption config, and EKS Anywhere subscriptions — backed by account-partitioned state that persists across restarts in persistent mode.
Supported now (all 65 operations)
- Cluster lifecycle —
CreateCluster,DescribeCluster,ListClusters,DeleteCluster. Clusters are created with the requestedroleArn,resourcesVpcConfig,version(default 1.31), and tags, and transitionCREATING->ACTIVEon describe (deterministic, no background timer). - Cluster updates —
UpdateClusterConfig,UpdateClusterVersion, each minting a trackedUpdatethat settlesInProgress->Successfulon describe;DescribeUpdateandListUpdatesreturn the update history. - Managed node groups —
CreateNodegroup,DescribeNodegroup,ListNodegroups,DeleteNodegroup, plusUpdateNodegroupConfigandUpdateNodegroupVersion(tracked updates). Node groups carrynodeRole,subnets,scalingConfig, and transitionCREATING->ACTIVEon describe. - Fargate profiles —
CreateFargateProfile,DescribeFargateProfile,ListFargateProfiles,DeleteFargateProfilewithpodExecutionRoleArnandselectors, their ownCREATING->ACTIVEtransition. - Add-ons —
CreateAddon,DescribeAddon,ListAddons,DeleteAddon,UpdateAddon(tracked version updates), plus the read-only catalogue opsDescribeAddonVersions(vpc-cni, coredns, kube-proxy, aws-ebs-csi-driver, aws-efs-csi-driver) andDescribeAddonConfiguration. - Access entries —
CreateAccessEntry,DescribeAccessEntry,ListAccessEntries,DeleteAccessEntry,UpdateAccessEntry, plusAssociateAccessPolicy,DisassociateAccessPolicy,ListAssociatedAccessPolicies(cluster/namespaceaccessScope), and the read-onlyListAccessPoliciescatalogue of theAmazonEKS*cluster-access policies. - OIDC identity-provider configs —
AssociateIdentityProviderConfigandDisassociateIdentityProviderConfig(each minting a tracked clusterUpdate),DescribeIdentityProviderConfig,ListIdentityProviderConfigs. - Pod-identity associations —
CreatePodIdentityAssociation,DescribePodIdentityAssociation,ListPodIdentityAssociations,UpdatePodIdentityAssociation,DeletePodIdentityAssociation(map anamespace/serviceAccountto aroleArn,a--prefixedassociationId). - Upgrade insights —
ListInsights,DescribeInsight(seededPASSINGUPGRADE_READINESS findings per cluster),StartInsightsRefresh,DescribeInsightsRefresh. - Capabilities —
CreateCapability,DescribeCapability,ListCapabilities,UpdateCapability(trackedUpdate),DeleteCapability. - Connected clusters —
RegisterCluster(creates aPENDINGcluster with aconnectorConfig) andDeregisterCluster. - Cluster maintenance —
AssociateEncryptionConfigandCancelUpdate(both operate on trackedUpdaterecords), plus the read-onlyDescribeClusterVersionscatalogue (Kubernetes 1.28-1.32 with platform versions and standard/extended support windows). - EKS Anywhere subscriptions —
CreateEksAnywhereSubscription,DescribeEksAnywhereSubscription,ListEksAnywhereSubscriptions,UpdateEksAnywhereSubscription,DeleteEksAnywhereSubscription(account-scoped,term/licenseQuantity/autoRenew). - Tagging —
TagResource,UntagResource,ListTagsForResource(EKS uses amap<String,String>tag shape, keyed by resource ARN).
100% conformance across the full surface: all 1,865 generated Smithy probe variants for the 65 operations pass. There is no real Kubernetes API-server endpoint; the control plane models the AWS management API, not kubectl traffic.
Example
import boto3
eks = boto3.client("eks", endpoint_url="http://localhost:4566")
eks.create_cluster(
name="app",
roleArn="arn:aws:iam::123456789012:role/eksClusterRole",
resourcesVpcConfig={"subnetIds": ["subnet-1", "subnet-2"]},
version="1.31",
)
cluster = eks.describe_cluster(name="app")["cluster"]
print(cluster["status"], cluster["version"]) # ACTIVE 1.31