# 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 ```