homelab/MetalLB.md
Alvin Wang 4301877f33 Update docs to match live cluster state
Audited the running cluster and fixed all .md files:
- Node info: Fedora 43, Lima (not OrbStack), worker IP 10.0.1.58
- Networking: fixed public/internal hostname tables, all *.dog internals
- Storage: removed Longhorn refs (not deployed), documented hostPath/local-path
- Services: moved Seerr to media chart, utils is Zerobyte only
- Bootstrap: reordered steps, MetalLB/traefik-internal as manual pre-deploy
- Headlamp.md/MetalLB.md: added context and explanations

Made-with: Cursor
2026-04-22 14:59:34 -07:00

18 lines
702 B
Markdown

# MetalLB — Manual Setup
MetalLB is **not** included in `bootstrap.sh deploy`. It must be installed
manually before deploying `traefik-internal` (which depends on the MetalLB
`loadBalancerClass`).
```bash
helm repo add metallb https://metallb.github.io/metallb
helm repo update
helm dependency build charts/metallb
helm upgrade --install metallb charts/metallb -n kube-system --wait
```
The chart wraps the upstream MetalLB subchart and adds a custom
`IPAddressPool` + `L2Advertisement` (defined in `charts/metallb/templates/pool.yaml`).
The pool assigns a single IP (`10.0.1.250`) with `autoAssign: false`, so only
services that explicitly request the `internal` pool via annotation get that IP.