Files
spinifex/docs/compatibility/eks-api-coverage/README.md
T
2026-09-14 11:49:46 +10:00

102 lines
4.4 KiB
Markdown

---
title: "EKS API Coverage"
seoTitle: "Elastic Kubernetes Service API Coverage — Spinifex Docs"
description: "Every operation in the Amazon EKS API model and whether Spinifex implements it, covering clusters, nodegroups, add-ons and access entries on each build."
category: "Coverage"
sections:
- overview
tags:
- aws
- compatibility
- coverage
- eks
- kubernetes
- containers
---
# EKS API Coverage
## Overview
Spinifex implements **34 of the 56** operations in the EKS `2017-11-01` API model, as pinned in `aws-sdk-go v1.55.8` — **60.7%**.
### Routing
EKS is REST-JSON, dispatched by HTTP method and path rather than by an action parameter, so the gateway's routing table is the authoritative list of what it serves. Clusters run K3s on control-plane VMs; nodegroups are EC2 instances joined to them.
### Internal routes
Four routes on this surface are internal, not AWS actions, and appear in the table below as registered outside the pinned model:
- `PublishInternal` — the control-plane VM broker, relaying bootstrap and state posts onto the message bus.
- `WebhookTokenReview` — the token webhook posting bearer tokens for host-side resolution.
- `ListInternalAddons` — the on-VM add-on sync agent fetching its staged manifests.
- `GetRecoveryDirective` — the on-VM recovery agent reading its per-member directive at boot.
None is callable with an ordinary tenant credential. Each names the target account in the path rather than taking it from the credential, so each requires a control-plane instance-role session bound to the named cluster; a broad `eks:*` grant does not reach them.
### Operations
| Operation | Status |
|---|---|
| `AssociateAccessPolicy` | ✅ Implemented |
| `AssociateEncryptionConfig` | ❌ Not implemented |
| `AssociateIdentityProviderConfig` | ✅ Implemented |
| `CreateAccessEntry` | ✅ Implemented |
| `CreateAddon` | ✅ Implemented |
| `CreateCluster` | ✅ Implemented |
| `CreateEksAnywhereSubscription` | ❌ Not implemented |
| `CreateFargateProfile` | ❌ Not implemented |
| `CreateNodegroup` | ✅ Implemented |
| `CreatePodIdentityAssociation` | ❌ Not implemented |
| `DeleteAccessEntry` | ✅ Implemented |
| `DeleteAddon` | ✅ Implemented |
| `DeleteCluster` | ✅ Implemented |
| `DeleteEksAnywhereSubscription` | ❌ Not implemented |
| `DeleteFargateProfile` | ❌ Not implemented |
| `DeleteNodegroup` | ✅ Implemented |
| `DeletePodIdentityAssociation` | ❌ Not implemented |
| `DeregisterCluster` | ❌ Not implemented |
| `DescribeAccessEntry` | ✅ Implemented |
| `DescribeAddon` | ✅ Implemented |
| `DescribeAddonConfiguration` | ❌ Not implemented |
| `DescribeAddonVersions` | ✅ Implemented |
| `DescribeCluster` | ✅ Implemented |
| `DescribeEksAnywhereSubscription` | ❌ Not implemented |
| `DescribeFargateProfile` | ❌ Not implemented |
| `DescribeIdentityProviderConfig` | ✅ Implemented |
| `DescribeInsight` | ❌ Not implemented |
| `DescribeNodegroup` | ✅ Implemented |
| `DescribePodIdentityAssociation` | ❌ Not implemented |
| `DescribeUpdate` | ❌ Not implemented |
| `DisassociateAccessPolicy` | ✅ Implemented |
| `DisassociateIdentityProviderConfig` | ✅ Implemented |
| `ListAccessEntries` | ✅ Implemented |
| `ListAccessPolicies` | ✅ Implemented |
| `ListAddons` | ✅ Implemented |
| `ListAssociatedAccessPolicies` | ✅ Implemented |
| `ListClusters` | ✅ Implemented |
| `ListEksAnywhereSubscriptions` | ❌ Not implemented |
| `ListFargateProfiles` | ❌ Not implemented |
| `ListIdentityProviderConfigs` | ✅ Implemented |
| `ListInsights` | ❌ Not implemented |
| `ListNodegroups` | ✅ Implemented |
| `ListPodIdentityAssociations` | ❌ Not implemented |
| `ListTagsForResource` | ✅ Implemented |
| `ListUpdates` | ❌ Not implemented |
| `RegisterCluster` | ❌ Not implemented |
| `TagResource` | ✅ Implemented |
| `UntagResource` | ✅ Implemented |
| `UpdateAccessEntry` | ✅ Implemented |
| `UpdateAddon` | ✅ Implemented |
| `UpdateClusterConfig` | ✅ Implemented |
| `UpdateClusterVersion` | ✅ Implemented |
| `UpdateEksAnywhereSubscription` | ❌ Not implemented |
| `UpdateNodegroupConfig` | ✅ Implemented |
| `UpdateNodegroupVersion` | ✅ Implemented |
| `UpdatePodIdentityAssociation` | ❌ Not implemented |
| `GetRecoveryDirective` | 🔒 Outside the pinned model |
| `ListInternalAddons` | 🔒 Outside the pinned model |
| `PublishInternal` | 🔒 Outside the pinned model |
| `WebhookTokenReview` | 🔒 Outside the pinned model |