Building a production-grade Internal Developer Platform on EKS from scratch. Every component deployed via ArgoCD GitOps after Phase 2.
This repo serves three purposes:
- Live demo platform for KubeAuto Day Europe 2026 talk
- Open-source reference IDP (Apache 2.0)
- Evidence for the AI Platform Building Scorecard
Stack: EKS 1.34+, ArgoCD 3.2+, Kyverno 1.17+, Backstage 1.46+, Falco, OTel Collector 0.140+, Grafana 12.x, cert-manager 1.19+, Terraform EKS module ~>21.0, Python (uv, pytest)
- Read
spec/BUILD-SPEC.mdfor the full build plan - Check current phase via
spec/SCORECARD.md - Write tests first (
tests/test_phase_0X_*.py), then implement until they pass - Update scorecard after each component with honest scores
- Commit after each working component, not after each file
uv run pytest tests/ -v # Full test suite
# Pre-push verification
git branch --show-current # Must show "staging"
git pull origin staging
uv run pytest tests/ -v
git push origin staging- Everything after Phase 2 must be an ArgoCD Application
- No secrets in Git — use External Secrets Operator
- No kubectl apply in production namespaces after ArgoCD is running
- Every Helm install needs a
values.yamlingitops/apps/ - All tests hit real infrastructure — no mocked Kubernetes clients, no stubbed AWS calls. If cluster isn't available, test fails.
- Commits on
stagingbranch only (verify withgit branch --show-current) - Each commit must pass full test suite, not just current phase
- When stuck on IAM, re-read the AWS docs — don't guess trust policies
Update spec/SCORECARD.md after EACH individual component (not in batch). Include the scorecard update in that component's commit. Record what went wrong in the notes column.
Write ADRs in docs/adr/ (MADR format) for significant technology or pattern choices. Commit alongside the component they document.
Output <promise>PHASEX_DONE</promise> (X = phase number) ONLY when ALL test criteria pass. Output <promise>ALL_PHASES_COMPLETE</promise> only when all 7 phases are done.
See .claude/skills/ for component-specific patterns. Read the relevant skill file BEFORE generating config for that component.
These are the versions deployed on the demo cluster. Latest available noted where drifted.
- EKS: 1.34
- ArgoCD: 3.2.6 deployed (3.3.6 available; Helm chart 9.x)
- Kyverno: 1.17.1 (current; Helm chart 3.7.0)
- Backstage: 1.46+ (Helm chart 2.6.3, image 1.9.1; 1.49.3 available)
- Falco: CNCF Graduated, eBPF driver (Helm chart 7.x deployed; 8.0.1 available — major version)
- OTel Collector: 0.145.0 deployed (0.149.0 available; 0.x, no GA)
- Grafana: 12.x via kube-prometheus-stack 82.1.0 (82.18.0 available)
- cert-manager: 1.19+ (1.20.1 available)
- Terraform EKS module: ~>21.0 (21.17.0 latest)
- Instance type: m7i.xlarge
- Pod Identity primary, IRSA fallback for specific addons