# Tells MetalLB which IP addresses it may assign to LoadBalancer Services. # This is a dedicated routed service range, not the nodes' 10.10.10.0/24 LAN # and not a DHCP pool. BGPAdvertisement announces only addresses actually in # use, while the MikroTik accepts those routes from the two workers. # # The first and last few addresses remain reserved for future network use. # Argo CD takes .10 and the demo app takes .11; .12-.250 remain available. # # This file lives under apps/metallb/templates/ alongside MetalLB's own # Helm-installed resources, rather than as a separate app, because it # depends on the CRD that chart installs — Kubernetes needs to know what # an IPAddressPool *is* before it can accept one. The sync-wave annotation # is what keeps that order correct: Argo CD applies wave "0" (this chart's # own resources, including the CRDs) first, waits for it to be healthy, # then applies wave "1" (this file and l2advertisement.yaml). apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: default-pool namespace: metallb-system annotations: argocd.argoproj.io/sync-wave: "1" spec: addresses: - 10.10.60.10-10.10.60.250