Files
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

35 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
set -eu
METALLB_VERSION=v0.16.0
METALLB_MANIFEST_URL="https://raw.githubusercontent.com/metallb/metallb/$METALLB_VERSION/config/manifests/metallb-native.yaml"
NAMESPACE=metallb-system
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
for command in curl kubectl; do
if ! command -v "$command" >/dev/null 2>&1; then
echo "Required command not found: $command" >&2
exit 1
fi
done
UPSTREAM_MANIFEST=$(mktemp)
trap 'rm -f "$UPSTREAM_MANIFEST"' EXIT HUP INT TERM
curl --fail --silent --show-error --location \
--output "$UPSTREAM_MANIFEST" "$METALLB_MANIFEST_URL"
kubectl apply --dry-run=server --validate=false \
--filename "$UPSTREAM_MANIFEST"
kubectl apply --validate=false --filename "$UPSTREAM_MANIFEST"
kubectl wait --for=condition=Available deployment/controller \
--namespace "$NAMESPACE" --timeout=5m
kubectl rollout status daemonset/speaker \
--namespace "$NAMESPACE" --timeout=5m
kubectl apply --dry-run=server --validate=false \
--filename "$SCRIPT_DIR/metallb.yaml"
kubectl apply --validate=false --filename "$SCRIPT_DIR/metallb.yaml"