feedc0de 092de68915
Validate and deploy MetalLB configuration / Validate manifests (push) Successful in 14s
Validate and deploy MetalLB configuration / Deploy site configuration (push) Successful in 25s
Strip sha256 hash
2026-10-14 20:19:44 +02:00
2026-10-14 20:19:44 +02:00
2026-09-04 16:04:52 +02:00
2026-10-14 20:19:44 +02:00
2026-08-24 11:46:18 +02:00
2026-10-14 20:19:44 +02:00
2026-10-14 20:19:44 +02:00

MetalLB configuration

This folder installs MetalLB v0.16.0 from its pinned upstream native manifest and configures the L2 address pool. MetalLB, not Cilium, announces load-balancer addresses from 192.168.0.10-192.168.0.49.

./install.sh

The files contain no credentials. The private LAN address range is infrastructure information, so decide whether that disclosure is acceptable before publishing the repository.

The installer downloads the manifest for its pinned upstream version, applies it, waits for the controller and all speakers, and then applies metallb.yaml.

Gitea Actions CI/CD

Every push and pull request validates the scripts, the site-specific resources, and the downloaded upstream manifest. A successful push to main applies metallb.yaml and verifies that both the controller and all speaker pods are ready.

The upstream MetalLB installation remains an administrator bootstrap. CI owns only the existing IPAddressPool/default and L2Advertisement/l2; it cannot change MetalLB's workloads, CRDs, RBAC, webhook certificate, or Secrets. After changing METALLB_VERSION, run ./install.sh once as an administrator before merging the matching CI constants.

Create the restricted deployment identity once:

./create-ci-kubeconfig.sh

For remote cluster access:

KUBECTL_SSH_HOST=arschrock ./create-ci-kubeconfig.sh

Store only the final output line as the Gitea Actions repository secret KUBE_CONFIG_BASE64. Revoke it by deleting metallb-system/metallb-config-deployer-token and the repository secret.

Run ./test.sh for local shell and Kubernetes schema validation.

S
Description
My metallb kubernetes configuration used to make kubernetes services accessible from the internet via port-forwarding from mikrotik internet gateway (to l2 advertisements)
Readme GPL-3.0
60 KiB
Languages
Shell 100%