Skip to content

Flux CD

Flux CD is the control loop that turns this Git repository into Kubernetes state. It is installed through the Flux Operator and watches the main branch.

Current implementation

Property Value
Distribution Flux 2.x
Source https://github.com/HYP3R00T/homelab.git
Branch main
Sync path gitops/clusters/lab
Reconciliation interval 1 minute for cluster Kustomizations
Network policy Enabled
Web UI http://flux.homelab.internal

Enabled controllers include source, Kustomize, Helm, notification, image reflection, image automation, and source watcher.

Web UI

Flux Operator embeds its Web UI in the operator process and exposes it through the flux-operator Service on the http-web port. The lab Ingress routes flux.homelab.internal to that service through Traefik; no additional UI deployment or persistent storage is required.

The current local-only endpoint uses the default anonymous, read-only access. It can inspect Flux resources and workloads but cannot perform reconciliation, suspend, resume, or restart actions. Do not add this hostname to the public Cloudflare Tunnel without first configuring OIDC authentication and explicit Kubernetes RBAC.

Reconciliation order

flowchart TB
    Source[GitRepository] --> Controllers[infrastructure-controllers]
    Controllers --> Configs[infrastructure-configs]
    Configs --> Apps[apps]
    Configs --> Monitoring[monitoring]

The monitoring-controllers Kustomization installs kube-prometheus-stack after infrastructure configuration is healthy. A separate monitoring-configs Kustomization then applies ecosystem monitors after the Prometheus CRDs exist.

Repository locations

  • Flux instance: gitops/clusters/lab/flux-system/flux-instance.yaml
  • Web UI Ingress: gitops/infrastructure/configs/lab/flux-web
  • Cluster entrypoints: gitops/clusters/lab
  • Controller overlays: gitops/infrastructure/controllers/lab
  • Configuration overlays: gitops/infrastructure/configs/lab

See Reconciliation for the change workflow and drift behavior.

References