1.2 KiB
1.2 KiB
Start Go Script to create new Config
export KUBERNETES_HOST="https://10.0.20.7:6443"
export KUBERNETES_TOKEN="eyJhbGciOi..."
export KUBERNETES_VERIFYSSL="false"
export HAPROXY_TEMPLATE="./haproxy.tmpl"
./haproxy-generator > /etc/haproxy/haproxy.cfg && sudo systemctl restart haproxy
HaProxy Template
{{- range .backends }}
backend {{ .Name }}
mode tcp
balance leastconn
cookie {{ .Name }} insert indirect nocache
{{- range .Servers }}
server {{ .Name }} {{ .Address }}:{{ .Port }} check cookie {{ .Cookie }}
{{- end }}
{{- end }}
Systemd Service and Timer
[Unit]
Description=HAProxy Config Generator
After=network.target
[Service]
Type=oneshot
Environment=KUBERNETES_HOST=https://10.0.20.7:6443
Environment=KUBERNETES_TOKEN=eyJhbGciOi...
Environment=KUBERNETES_VERIFYSSL=false
Environment=HAPROXY_TEMPLATE=/etc/haproxy/haproxy.tmpl
ExecStart=/path/to/haproxy-generator > /etc/haproxy/haproxy.cfg
ExecStartPost=/bin/systemctl restart haproxy
Timer for Systemd
[Unit]
Description=Run HAProxy Config Generator every minute
[Timer]
OnBootSec=1min
OnUnitActiveSec=1min
Unit=haproxy-generator.service
Persistent=true
[Install]
WantedBy=timers.target