# ------------------------------------------------------------------------------ # Platform: Cilium — Helm upgrade + LB IPAM + Gateway API # Wave 4 — no dependencies, Cilium is pre-installed via Talos bootstrap # # This Application does two things: # 1. Manages Cilium itself via Helm (enables Gateway API, keeps config in git) # 2. Applies LB pool and L2 announcement manifests # # On first sync, ArgoCD will upgrade Cilium in-place with --reuse-values # plus our additions (gatewayAPI.enabled, l2announcements, etc.). # Cilium operator and daemonset will rolling-restart automatically. # # IP Allocation: # 10.1.71.80 — ingress-nginx (reserved, not from pool) # 10.1.71.81 — Cilium Gateway (reserved, not from pool) # 10.1.71.82-.89 — ingress-nginx LB pool (future additional controllers) # 10.1.71.90-.99 — Cilium Gateway LB pool # ------------------------------------------------------------------------------ apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: cilium-config namespace: argocd annotations: argocd.argoproj.io/sync-wave: "4" spec: project: default sources: # Source 1: Cilium Helm chart — manages Cilium itself - repoURL: https://helm.cilium.io chart: cilium targetRevision: 1.17.4 helm: valuesFiles: - $values/cluster/platform/cilium-config/values.yaml # Source 2: Our repo — provides the values file and manifests - repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git targetRevision: main ref: values destination: server: https://kubernetes.default.svc namespace: kube-system syncPolicy: automated: prune: true selfHeal: true syncOptions: - ServerSideApply=true