HomeKube¶
A local CNCF-compatible Kubernetes sandbox running on macOS — designed for hands-on learning of the Kubernetes and cloud-native ecosystem.
What Is This?¶
HomeKube is a GitOps-managed Kubernetes cluster that runs entirely on your MacBook. Every component is open source and CNCF-aligned. Changes are made by committing to Git — FluxCD continuously reconciles the cluster to match.
graph LR
Dev["👨💻 Developer\n(you)"] -->|git push| GitHub["GitHub\n(source of truth)"]
GitHub -->|pull every 1h\nor on-demand| Flux["FluxCD\n(in cluster)"]
Flux -->|applies| K8s["Kubernetes\n(Minikube)"]
K8s --> Apps["Apps &\nInfrastructure"]
Current Stack¶
| Component | Tool | CNCF Status |
|---|---|---|
| Local K8s | Minikube | CNCF Project |
| GitOps | FluxCD v2 | Graduated |
| CNI | Cilium | Graduated |
| Ingress | ingress-nginx | CNCF Project |
| TLS | cert-manager | Incubating |
| Metrics | Prometheus | Graduated |
| Dashboards | Grafana | Foundation |
| Network observability | Hubble (Cilium) | Graduated |
| Identity / SSO | Keycloak | Foundation |
| Secrets | SOPS + GPG | — |
| Notifications | Flux notification-controller | Graduated |
| Image Automation | Flux image-reflector + image-automation | Graduated |
Phases¶
| Phase | Status | Focus |
|---|---|---|
| 1 — Basics | ✅ Done | Minikube, Flux, ingress, TLS, Prometheus, Grafana |
| 2 — Networking | ✅ Done | Cilium CNI, Hubble UI, NetworkPolicies |
| 3 — Identity | ✅ Done | Keycloak SSO, Grafana OIDC, SOPS secrets |
| 3.5 — GitOps++ | ✅ Done | GitHub commit status notifications, image automation controllers |
| 4 — Workloads | Planned | Sample apps, HPA, PVCs |
| 5 — Policy & Observability | Planned | Kyverno, OpenTelemetry, image automation resources |
| 6 — CI/CD | Planned | Tekton, multi-env promotion |
Quick Start¶
# Install tools
brew install minikube kubectl flux helm kustomize cilium-cli
# Start cluster + install Cilium
minikube start --driver=docker --network-plugin=cni --addons=metrics-server
cilium install && cilium status --wait
# Bootstrap Flux
export GITHUB_TOKEN=<your-pat>
flux bootstrap github --token-auth \
--owner=MarcSpeckmann --repository=HomeKube \
--branch=main --path=clusters/local --personal
See Getting Started → Bootstrap for the full walkthrough.