haproxy-lb/pkg/haproxy/template.go
2021-04-08 00:34:54 +02:00

53 lines
1.3 KiB
Go

package haproxy
const haproxyConfigTemplate = `global
daemon
#chroot /var/lib/haproxy
chroot /usr/share/haproxy
pidfile /run/haproxy.pid
user haproxy
group haproxy
maxconn 20000
defaults
mode tcp
log global
retries 2
timeout connect 3000ms
timeout server 5000ms
timeout client 5000ms
timeout tunnel 3600s
timeout check 10s
frontend stats
mode http
bind 127.0.0.1:8404
stats enable
stats uri /stats
stats refresh 10s
stats admin if LOCALHOST
{{ range $item := .LoadBalancers -}}
{{ range $port := $item.Ports -}}
frontend fr_{{ $item.Name }}_{{ $port.Port }}
bind {{ $item.IP }}:{{ $port.Port }}
{{- range $opt := $item.Options.Frontend }}
option {{ $opt }}
{{- end }}
# option tcplog
# option splice-request
default_backend ba_{{ $item.Name }}_{{ $port.Port }}
backend ba_{{ $item.Name }}_{{ $port.Port }}
balance roundrobin
{{- range $opt := $item.Options.Backend }}
option {{ $opt }}
{{- end }}
# option splice-response
# option httpchk GET /
default-server inter 3s downinter 10s fall 2 rise 2 on-marked-down shutdown-sessions {{ $item.Options.DefaultServer }}
# send-proxy-v2
# check-send-proxy
# port <healthCheckNodePort>
{{- range $srv := $port.Servers }}
server {{ $srv.Name }} {{ $srv.IP }}:{{ $srv.Port }} check
{{- end }}
{{ end -}}
{{ end -}}
`