#!/bin/bash set -euo pipefail BIN_PATH="/usr/local/bin/haproxy_generator" CONFIG_PATH="/etc/haproxy/haproxy.cfg" NEW_CONFIG="${CONFIG_PATH}.new" TEMPLATE_PATH="/etc/haproxy/haproxy.tmpl" # Setze notwendige Umgebungsvariablen export HAPROXY_TEMPLATE="$TEMPLATE_PATH" export KUBERNETES_HOST="https://10.0.20.7:6443" export KUBERNETES_TOKEN="eyJhbGciOi..." # <<< hier echten Token einfügen export KUBERNETES_VERIFYSSL="false" # Prüfe, ob Template vorhanden ist if [ ! -f "$TEMPLATE_PATH" ]; then echo "[ERROR] Template-Datei nicht gefunden: $TEMPLATE_PATH" >&2 exit 1 fi # Neue Konfiguration generieren if ! "$BIN_PATH" > "$NEW_CONFIG"; then echo "[ERROR] Fehler beim Ausführen von haproxy_generator" >&2 exit 1 fi # Syntaxprüfung der neuen Konfiguration if ! /sbin/haproxy -f "$NEW_CONFIG" -c; then echo "[ERROR] Neue Konfiguration ist syntaktisch ungültig (haproxy -c)" >&2 exit 1 fi # Unterschiede prüfen und ggf. übernehmen if ! diff -q "$CONFIG_PATH" "$NEW_CONFIG" > /dev/null; then echo "[INFO] Änderungen erkannt - Konfiguration wird übernommen" mv "$NEW_CONFIG" "$CONFIG_PATH" /usr/sbin/service haproxy reload else echo "[INFO] Keine Änderungen - kein Reload notwendig" rm -f "$NEW_CONFIG" fi