42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
#!/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
|