```plaintext
%% GitOps Reconciliation Loop (ADR-0006)
%% Flowchart showing Flux CD GitOps workflow
flowchart TB
subgraph git["π Git Repositories"]
direction TB
homelab["homelab-k8s2
(cluster config)"]
apps["Application Repos
(argo, kubeflow, etc.)"]
end
subgraph flux["βοΈ Flux Controllers"]
direction TB
source["Source Controller
π₯ Fetches repos"]
kustomize["Kustomize Controller
π§ Applies manifests"]
helm["Helm Controller
π¦ Manages charts"]
notification["Notification Controller
π’ Alerts"]
end
subgraph k8s["βΈοΈ Kubernetes Cluster"]
direction TB
secrets["π SOPS Secrets
(Age decrypted)"]
resources["π Deployed Resources
(Pods, Services, etc.)"]
drift["π Drift Detection"]
end
subgraph notify["π± Notifications"]
ntfy["ntfy
(push alerts)"]
end
%% GitOps flow
homelab -->|"GitRepository CR"| source
apps -->|"GitRepository CR"| source
source -->|"Fetches every 5m"| kustomize
source -->|"Fetches charts"| helm
kustomize -->|"Decrypts with Age"| secrets
kustomize -->|"kubectl apply"| resources
helm -->|"helm upgrade"| resources
resources -->|"Actual state"| drift
drift -->|"Compares to Git"| kustomize
drift -->|"Auto-corrects"| resources
notification -->|"Success/failure"| ntfy
classDef repo fill:#f5a623,color:black
classDef controller fill:#4a90d9,color:white
classDef cluster fill:#50c878,color:white
classDef alert fill:#9b59b6,color:white
class homelab,apps repo
class source,kustomize,helm,notification controller
class secrets,resources,drift cluster
class ntfy alert
```