63 lines
No EOL
1.2 KiB
Markdown
63 lines
No EOL
1.2 KiB
Markdown
# 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
|
|
|
|
``` |