Files
homelab/talos/cilium/ip-pools.yaml

46 lines
1.5 KiB
YAML

# ─── Cilium IP pools — fastpass cluster ──────────────────────────────────────
# Apply AFTER Cilium is healthy:
# kubectl apply -f talos/cilium/ip-pools.yaml
#
# NOTE: CRD API version must be cilium.io/v2 (not v1alpha1/v1beta1).
# Using the wrong version causes silent failures — pool is created but
# never activates. Verify with: kubectl get ciliumloadbalancerippool
# ─────────────────────────────────────────────────────────────────────────────
---
# Pool for ingress-nginx — primary ingress controller
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
name: ingress-nginx-pool
spec:
blocks:
- start: "10.1.71.80"
stop: "10.1.71.89"
---
# Pool for Cilium Gateway API — secondary/future ingress path
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
name: cilium-gateway-pool
spec:
blocks:
- start: "10.1.71.90"
stop: "10.1.71.99"
---
# L2 announcement policy — advertise IPs from both pools on VLAN 71
apiVersion: cilium.io/v2alpha1
kind: CiliumL2AnnouncementPolicy
metadata:
name: default-l2-policy
spec:
# Announce all LoadBalancer IPs from both pools
loadBalancerIPs: true
# Scope to all nodes (no node selector = cluster-wide)
nodeSelector:
matchLabels: {}
interfaces:
- eth0