timeout check 5s
{% endif %}
{% if mode == 'tcp' %}
+ option tcplog
timeout queue 1m
timeout connect 10s
timeout client 1m
mode tcp
balance roundrobin
{% if backend_spec.service_type == 'nfs' %}
- stick-table type ip size 200k expire 30m peers haproxy_peers
- stick on src
+ stick-table type ip size 1m expire 2h store server_id peers haproxy_peers
+ stick match src
+ stick store-request src
+ option tcp-check
+ retries 3
+ retry-on all-retryable-errors
+ timeout connect 2s
{% endif %}
hash-type consistent
{% if spec.use_tcp_mode_over_rgw %}
{% endif %}
{% endif %}
{% if default_server_opts %}
- default-server {{ default_server_opts|join(" ") }}
+ default-server {{ default_server_opts|join(" ") }} fall 2 inter 5000 rise 1 on-marked-down shutdown-sessions
{% endif %}
{% endif %}
{% if backend_spec.service_type == 'rgw' %}
{% endfor %}
{% else %}
{% for server in servers %}
- server {{ server.name }} {{ server.ip }}:{{ server.port }} check inter {{ health_check_interval }}
+ server {{ server.name }} {{ server.ip }}:{{ server.port }} id {{ server.name.split('.')[-1] | int + 1 }} check inter {{ health_check_interval }} rise 2 fall 3
{% endfor %}
{% endif %}
'defaults\n'
' mode tcp\n'
' log global\n'
+ ' option tcplog\n'
' timeout queue 1m\n'
' timeout connect 10s\n'
' timeout client 1m\n'
'backend backend\n'
' mode tcp\n'
' balance roundrobin\n'
- ' stick-table type ip size 200k expire 30m peers haproxy_peers\n'
- ' stick on src\n'
+ ' stick-table type ip size 1m expire 2h store server_id peers haproxy_peers\n'
+ ' stick match src\n'
+ ' stick store-request src\n'
+ ' option tcp-check\n'
+ ' retries 3\n'
+ ' retry-on all-retryable-errors\n'
+ ' timeout connect 2s\n'
' hash-type consistent\n'
)
if enable_haproxy_protocol:
- haproxy_txt += ' default-server send-proxy-v2\n'
- haproxy_txt += ' server nfs.foo.0 192.168.122.111:12049 check inter 30s\n'
+ haproxy_txt += ' default-server send-proxy-v2 fall 2 inter 5000 rise 1 on-marked-down shutdown-sessions\n'
+ haproxy_txt += ' server nfs.foo.0 192.168.122.111:12049 id 1 check inter 30s rise 2 fall 3\n'
haproxy_expected_conf = {
'files': {'haproxy.cfg': haproxy_txt}
}
'defaults\n'
' mode tcp\n'
' log global\n'
+ ' option tcplog\n'
' timeout queue 1m\n'
' timeout connect 10s\n'
' timeout client 1m\n'
'backend backend\n'
' mode tcp\n'
' balance roundrobin\n'
- ' stick-table type ip size 200k expire 30m peers haproxy_peers\n'
- ' stick on src\n'
+ ' stick-table type ip size 1m store server_id peers haproxy_peers\n'
+ ' stick match src\n'
+ ' stick store-request src\n'
+ ' option tcp-check\n'
+ ' retries 3\n'
+ ' retry-on all-retryable-errors\n'
+ ' timeout connect 2s\n'
' hash-type consistent\n'
- ' server nfs.foo.0 192.168.122.111:12049 check inter 30s\n'
+ ' server nfs.foo.0 192.168.122.111:12049 id 1 check inter 30s rise 2 fall 3\n'
)
haproxy_expected_conf = {
'files': {'haproxy.cfg': haproxy_txt}
'\ndefaults\n '
'mode tcp\n '
'log global\n '
+ 'option tcplog\n '
'timeout queue 1m\n '
'timeout connect 10s\n '
'timeout client 1m\n '
'defaults\n'
' mode tcp\n'
' log global\n'
+ ' option tcplog\n'
' timeout queue 1m\n'
' timeout connect 10s\n'
' timeout client 1m\n'
'backend backend\n'
' mode tcp\n'
' balance roundrobin\n'
- ' stick-table type ip size 200k expire 30m peers haproxy_peers\n'
- ' stick on src\n'
+ ' stick-table type ip size 1m expire 2h store server_id peers haproxy_peers\n'
+ ' stick match src\n'
+ ' stick store-request src\n'
+ ' option tcp-check\n'
+ ' retries 3\n'
+ ' retry-on all-retryable-errors\n'
+ ' timeout connect 2s\n'
' hash-type consistent\n'
- ' default-server send-proxy-v2\n'
- ' server nfs.foo.0 192.168.122.111:12049 check inter 30s\n'
+ ' default-server send-proxy-v2 fall 2 inter 5000 rise 1 on-marked-down shutdown-sessions\n'
+ ' server nfs.foo.0 192.168.122.111:12049 id 1 check inter 30s rise 2 fall 3\n'
)
haproxy_expected_conf = {
'files': {'haproxy.cfg': haproxy_txt}
),
)
gen_config_lines = haproxy_generated_conf['files']['haproxy.cfg']
- assert 'server nfs.foo.0 10.10.2.20:12049 check inter 30s' in gen_config_lines
+ assert 'server nfs.foo.0 10.10.2.20:12049 id 1 check inter 30s rise 2 fall 3' in gen_config_lines
nfs_generated_conf, _ = nfs_svc.generate_config(
CephadmDaemonDeploySpec(