Homelab cluster (GitOps)
A GitOps-managed homelab Kubernetes configuration repo with Flux reconciliation, Kustomize structure, and Helm-based infra add-ons.

Highlights
- •Flux bootstrap + reconciliation (flux-system + kustomizations)
- •Infra add-ons: cert-manager, MetalLB, Kata, ARC
- •Apps and infra kept modular under clusters/homelab
This repository is the source of truth for my homelab Kubernetes cluster configuration. It uses Flux to reconcile changes from Git, with manifests organised under a single environment directory (clusters/homelab).
What it demonstrates
- A GitOps-first structure where cluster state is driven by repo layout
- Separation of concerns: flux-system, flux-kustomizations, infra, and apps
- HelmRelease-based add-ons alongside standard YAML resources
How the repo is structured
The repo is organised so Flux can target clear paths for reconciliation. Infrastructure add-ons sit alongside application manifests, but are applied through dedicated Flux Kustomizations.
- flux-system: Flux controllers and sync configuration
- flux-kustomizations: what gets applied, from where, and how often
- infra: cluster add-ons (cert-manager, MetalLB, Kata, ARC)
- apps: example application manifests (deploy/service/ingress/cert)
Key components
- Flux system: bootstraps reconciliation and watches the repo for changes
- Kustomizations: define apply boundaries, intervals, and dependencies
- Infra add-ons: Helm-based releases and supporting resources per component
- Apps: regular K8s manifests tied into ingress and certificate flow
GitHub runners note
The cluster includes ARC-related configuration and is paired with a GitHub App installation for org-level self-hosted runners. This keeps runner provisioning declarative and cluster-owned, rather than manual per-host setup.