Local Kubernetes development with EKS parity using Kind, LocalStack for AWS services, and local Keycloak for authentication testing
View on GitHubLobbi-Docs/claude
aws-eks-helm-keycloak
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/Lobbi-Docs/claude/blob/main/plugins/aws-eks-helm-keycloak/skills/local-eks-development/SKILL.md -a claude-code --skill local-eks-developmentInstallation paths:
.claude/skills/local-eks-development/# Local EKS Development Skill
Set up local Kubernetes environment with EKS parity for fast development.
## Use For
- Local K8s with Kind matching EKS, LocalStack for AWS services
- Local Keycloak instance, hot-reload development with Skaffold
## Kind Cluster Configuration (EKS Parity)
```yaml
# kind-config.yaml - Matches EKS 1.28 behavior
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: eks-local
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
- containerPort: 8080 # Keycloak
hostPort: 8080
protocol: TCP
- role: worker
- role: worker
networking:
apiServerAddress: "127.0.0.1"
apiServerPort: 6443
featureGates:
# Match EKS feature gates
EphemeralContainers: true
ServerSideApply: true
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5000"]
endpoint = ["http://kind-registry:5000"]
```
## Docker Compose for Local Stack
```yaml
# docker-compose.yaml
version: '3.8'
services:
# LocalStack for AWS services
localstack:
image: localstack/localstack:3.0
container_name: localstack
ports:
- "4566:4566" # LocalStack gateway
- "4510-4559:4510-4559" # External services
environment:
- SERVICES=secretsmanager,ecr,iam,sts,ssm
- DEBUG=1
- DATA_DIR=/var/lib/localstack/data
- DOCKER_HOST=unix:///var/run/docker.sock
- AWS_DEFAULT_REGION=us-west-2
volumes:
- localstack_data:/var/lib/localstack
- /var/run/docker.sock:/var/run/docker.sock
networks:
- eks-local
# Local Keycloak
keycloak:
image: quay.io/keycloak/keycloak:24.0.1
container_name: keycloak-local
ports: