# a general pool for everything but mqtt and public IP facing ingress controller apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: default-pool namespace: metallb-system spec: addresses: # exclude 10.0.64.5, its in nfs-pool - 10.0.64.6 # exclude 10.0.64.7, its in dmz-pool # exclude 10.0.64.8, its in mqtt-pool - 10.0.64.9-10.0.64.19 autoAssign: true serviceAllocation: serviceSelectors: - matchLabels: loadBalancerPool: default --- # NFS ip apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: nfs-pool namespace: metallb-system spec: addresses: - 10.0.64.5/32 autoAssign: true serviceAllocation: serviceSelectors: - matchLabels: loadBalancerPool: nfs --- # DMZ (not really, just for clarity) ip, will have ports forwarded from WAN router apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: dmz-pool namespace: metallb-system spec: addresses: - 10.0.64.7/32 autoAssign: true serviceAllocation: serviceSelectors: - matchLabels: loadBalancerPool: dmz --- # reserve 10.0.64.8 (for historical reasons) for mqtt # ! do not forget to label the mqtt service with "loadBalancerPool: mqtt" ! apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: mqtt-pool namespace: metallb-system spec: addresses: - 10.0.64.8/32 serviceAllocation: serviceSelectors: - matchLabels: loadBalancerPool: mqtt --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: default namespace: metallb-system spec: ipAddressPools: - default-pool - dmz-pool - mqtt-pool - nfs-pool