# ------------------------------------------------------------------------------ # Platform: Gateway API CRDs # Wave 3.5 — must exist before cilium-config (wave 4) enables gatewayAPI # # The Gateway API CRDs are maintained separately from any implementation. # We install the standard channel CRDs from the upstream sig-network repo. # Cilium requires these CRDs to exist before gatewayAPI.enabled=true works. # # Standard channel includes: GatewayClass, Gateway, HTTPRoute, GRPCRoute, # ReferenceGrant # Experimental channel adds: TCPRoute, TLSRoute, UDPRoute (added below) # ------------------------------------------------------------------------------ apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: gateway-api-crds namespace: argocd annotations: # Wave 3.5 — after cert-manager (3), before cilium-config (4) # ArgoCD sync waves are integers, so we use 3 here and rely on # sync ordering within the wave. Add a sync-wave of 3 to cert-manager # and this will naturally sequence correctly. argocd.argoproj.io/sync-wave: "3" spec: project: default source: repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git targetRevision: main path: cluster/platform/gateway-api/manifests destination: server: https://kubernetes.default.svc namespace: gateway-api syncPolicy: automated: prune: false # Never prune CRDs — too dangerous selfHeal: true syncOptions: - CreateNamespace=true - ServerSideApply=true - Replace=true # CRDs require Replace not Patch for updates