This repository defines the state of my single-node k3s cluster using Flux v2 and GitOps principles.
| Component | Details |
|---|---|
| Node | Single-node k3s cluster |
| OS | Ubuntu |
| Ingress | Traefik |
| Storage | Longhorn |
| Certificates | cert-manager (self-signed CA) |
| Databases | CloudNativePG |
| Secrets | SOPS |
Flux Kustomizations are chained with wait: true to enforce deployment order:
flux-system (bootstrap)
└─ infra-sources (HelmRepositories, OCIRepositories)
└─ infra-controllers (Traefik, Longhorn, CNPG, cert-manager, ...)
└─ infra-configs (StorageClass, PG Clusters, Middleware, Certificates)
└─ apps (Monitoring, Media, Networking, Productivity)
homeops/
├── clusters/homelab/ # Flux bootstrap entry point
├── infrastructure/
│ ├── sources/ # HelmRepository / OCIRepository definitions
│ ├── controllers/ # Infrastructure HelmReleases
│ └── configs/ # Post-controller config (certs, PG clusters, middleware)
└── apps/
├── monitoring/ # Observability stack
├── media/ # Media management
├── networking/ # Network services
└── productivity/ # Productivity tools