Repo for my Homek8s lab . Bare metal and cloud nodes bootstrapped with kubeadm. Repo synced with FluxCD .
- Makefile 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
alex3305/forgejo-runner-dind ships an amd64 binary in its arm64 manifest, so the Pi failed with 'exec /usr/local/bin/forgejo-runner: exec format error'. That took pi-runner (the only runner declaring the bare 'docker' label) offline and stalled every runs-on: docker job. |
||
| apps | ||
| clusters | ||
| infographic/home-k8s-mesh | ||
| infrastructure | ||
| monitoring/controllers/home | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
HomeK8s
Home Kubernetes cluster (kubeadm), same GitOps layout as lab/.
Flux CD will take over once Forgejo is back. Until then apply with kustomize:
kubectl apply -k infrastructure/home
Cluster
| Node | WG IP | Roles | Notes |
|---|---|---|---|
| siriussec | 10.10.0.2 | control-plane, worker | default scheduling |
| rpi | 10.10.0.1 | traffic, worker | dedicated=network:PreferNoSchedule |
- CNI: Cilium 1.18.13, kube-proxy replacement, Gateway API hostNetwork on
dedicated=network - Overlay: WireGuard
10.10.0.0/24(API only on WG) - Ingress: Cloudflare tunnel →
127.0.0.1:8080on rpi → Gatewaygateway-system/public - Storage: local-path on siriussec (
/opt/local-path-provisioner)
Pin traffic / light workloads to the Pi:
nodeSelector:
dedicated: network
Layout
homek8s/
├── apps/
│ ├── base/ # app definitions
│ └── home/ # overlay applied to this cluster
├── clusters/
│ └── home/ # Flux Kustomizations (bootstrap later)
│ ├── flux-system/ # flux bootstrap (after Forgejo)
│ ├── apps.yaml
│ ├── infrastructure.yaml
│ └── monitoring.yaml
├── infrastructure/
│ ├── home/ # kubectl apply -k target (no HelmRelease)
│ ├── networking/
│ │ ├── cilium/ # HelmRelease for Flux
│ │ └── gateway/ # Cilium Gateway API
│ ├── storage/ # local-path provisioner
│ ├── controllers/
│ └── databases/
└── monitoring/
Apply (now)
kubectl apply -k infrastructure/home
That installs storage + the public Gateway. Cilium is already running; its HelmRelease is only for Flux.
Flux (later)
When Forgejo is up:
flux bootstrap git \
--url=ssh://[email protected]:222/sirius/homek8s.git \
--branch=master \
--path=clusters/home
clusters/home/*.yaml already point at ./apps/home, ./infrastructure/home, and ./monitoring/controllers/home.