30 lines
1.5 KiB
YAML
30 lines
1.5 KiB
YAML
# Tells MetalLB which IP addresses it's allowed to hand out to Services.
|
||||
|
|
# Pick a small range on your LAN that nothing else will ever assign —
|
|||
|
|
# especially your router's DHCP server. MetalLB doesn't coordinate with
|
|||
|
|
# your router or DHCP server at all; it just answers network requests for
|
|||
|
|
# whatever address a Service claims from this range. If it overlaps your
|
|||
|
|
# DHCP range, you'll eventually get two devices claiming the same IP.
|
|||
|
|
#
|
|||
|
|
# >> Ask Claude to help you pick this range before editing it — it needs
|
|||
|
|
# to know your LAN's subnet and DHCP range, which it can't guess.
|
|||
|
|
# A typical home LAN answer looks like "my router hands out
|
|||
|
|
# 192.168.1.100–192.168.1.199, so let's use 192.168.1.240–192.168.1.250."
|
|||
|
|
#
|
|||
|
|
# 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:
|
|||
|
|
- 192.168.1.240-192.168.1.250 # EDIT ME — replace with your chosen range
|