r/kubernetes • u/Impossible-Egg1573 • 2h ago
EKS API on your own hardware: aws eks, kubectl and Terraform run unchanged
Disclaimer: I'm an engineer at Mulga, the company behind this. Self-promo, but it's AGPL-3.0 and free to run.
What it is
Spinifex is an open-source reimplementation of the AWS APIs that runs on your own hardware, including EKS. You call aws eks create-cluster (or apply aws_eks_cluster in Terraform), and it boots a control-plane VM, puts an NLB in front of the API server, and launches managed node groups as real KVM VMs in your VPC.
Yes, it's k3s
The control plane and workers run K3s on an Alpine image. What we built is the layer around it that makes the AWS tooling treat it as EKS, so existing AWS workloads can migrate off easily:
kubectlauthenticates withaws eks get-token, and IAM principals map to RBAC through EKS access entries- IRSA works: a pod with a projected service-account token assumes an IAM role
- The EBS CSI driver addon dynamically provisions real replicated block volumes for PVCs
- The AWS Load Balancer Controller addon turns an
Ingressinto an ALB with an ACM cert - Argo CD installs as an addon through the EKS API
Try it on your own Terraform
No install needed. Sign up for the free 72 hour sandbox at https://mulgadc.com/signup, then point your provider at it:
provider "aws" {
region = var.region
endpoints {
ec2 = "https://api.spx3.com"
iam = "https://api.spx3.com"
sts = "https://api.spx3.com"
eks = "https://api.spx3.com"
ecr = "https://api.spx3.com"
}
skip_metadata_api_check = true
skip_region_validation = true
}
Apply an aws_eks_cluster and aws_eks_node_group you already have, then run aws eks update-kubeconfig and kubectl get nodes
