From fccd5737b62ed4105026d6c628b1e787d3910762 Mon Sep 17 00:00:00 2001 From: Viacheslav Hletenko Date: Sat, 22 Feb 2025 15:44:34 +0000 Subject: [PATCH] T7190: Add haproxy default timeout options configurable Add the ability to configurate default timeout and frontend client timeout ``` set load-balancing haproxy service web timeout client '600' set load-balancing haproxy timeout check '4' set load-balancing haproxy timeout client '600' set load-balancing haproxy timeout connect '12' set load-balancing haproxy timeout server '120' ``` --- data/templates/load-balancing/haproxy.cfg.j2 | 12 ++++-- .../include/haproxy/timeout-check.xml.i | 14 +++++++ .../include/haproxy/timeout-client.xml.i | 14 +++++++ .../include/haproxy/timeout-connect.xml.i | 14 +++++++ .../include/haproxy/timeout-server.xml.i | 14 +++++++ .../include/haproxy/timeout.xml.i | 39 ++----------------- .../load-balancing_haproxy.xml.in | 31 +++++++++++++++ 7 files changed, 99 insertions(+), 39 deletions(-) create mode 100644 interface-definitions/include/haproxy/timeout-check.xml.i create mode 100644 interface-definitions/include/haproxy/timeout-client.xml.i create mode 100644 interface-definitions/include/haproxy/timeout-connect.xml.i create mode 100644 interface-definitions/include/haproxy/timeout-server.xml.i diff --git a/data/templates/load-balancing/haproxy.cfg.j2 b/data/templates/load-balancing/haproxy.cfg.j2 index c98b739e2c..c9142de044 100644 --- a/data/templates/load-balancing/haproxy.cfg.j2 +++ b/data/templates/load-balancing/haproxy.cfg.j2 @@ -38,9 +38,10 @@ defaults log global mode http option dontlognull - timeout connect 10s - timeout client 50s - timeout server 50s + timeout check {{ timeout.check }}s + timeout connect {{ timeout.connect }}s + timeout client {{ timeout.client }}s + timeout server {{ timeout.server }}s errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http @@ -134,6 +135,11 @@ frontend {{ front }} default_backend {{ backend }} {% endfor %} {% endif %} +{% if front_config.timeout is vyos_defined %} +{% if front_config.timeout.client is vyos_defined %} + timeout client {{ front_config.timeout.client }} +{% endif %} +{% endif %} {% endfor %} {% endif %} diff --git a/interface-definitions/include/haproxy/timeout-check.xml.i b/interface-definitions/include/haproxy/timeout-check.xml.i new file mode 100644 index 0000000000..d1217fac33 --- /dev/null +++ b/interface-definitions/include/haproxy/timeout-check.xml.i @@ -0,0 +1,14 @@ + + + + Timeout in seconds for established connections + + u32:1-3600 + Check timeout in seconds + + + + + + + diff --git a/interface-definitions/include/haproxy/timeout-client.xml.i b/interface-definitions/include/haproxy/timeout-client.xml.i new file mode 100644 index 0000000000..2250ccdeff --- /dev/null +++ b/interface-definitions/include/haproxy/timeout-client.xml.i @@ -0,0 +1,14 @@ + + + + Maximum inactivity time on the client side + + u32:1-3600 + Timeout in seconds + + + + + + + diff --git a/interface-definitions/include/haproxy/timeout-connect.xml.i b/interface-definitions/include/haproxy/timeout-connect.xml.i new file mode 100644 index 0000000000..da4f983afb --- /dev/null +++ b/interface-definitions/include/haproxy/timeout-connect.xml.i @@ -0,0 +1,14 @@ + + + + Set the maximum time to wait for a connection attempt to a server to succeed + + u32:1-3600 + Connect timeout in seconds + + + + + + + diff --git a/interface-definitions/include/haproxy/timeout-server.xml.i b/interface-definitions/include/haproxy/timeout-server.xml.i new file mode 100644 index 0000000000..f27d415c1f --- /dev/null +++ b/interface-definitions/include/haproxy/timeout-server.xml.i @@ -0,0 +1,14 @@ + + + + Set the maximum inactivity time on the server side + + u32:1-3600 + Server timeout in seconds + + + + + + + diff --git a/interface-definitions/include/haproxy/timeout.xml.i b/interface-definitions/include/haproxy/timeout.xml.i index 79e7303b11..a3a5a8a3e2 100644 --- a/interface-definitions/include/haproxy/timeout.xml.i +++ b/interface-definitions/include/haproxy/timeout.xml.i @@ -4,42 +4,9 @@ Timeout options - - - Timeout in seconds for established connections - - u32:1-3600 - Check timeout in seconds - - - - - - - - - Set the maximum time to wait for a connection attempt to a server to succeed - - u32:1-3600 - Connect timeout in seconds - - - - - - - - - Set the maximum inactivity time on the server side - - u32:1-3600 - Server timeout in seconds - - - - - - + #include + #include + #include diff --git a/interface-definitions/load-balancing_haproxy.xml.in b/interface-definitions/load-balancing_haproxy.xml.in index ca089d3f04..b95e023379 100644 --- a/interface-definitions/load-balancing_haproxy.xml.in +++ b/interface-definitions/load-balancing_haproxy.xml.in @@ -48,6 +48,14 @@ + + + Timeout options + + + #include + + Compress HTTP responses @@ -368,6 +376,29 @@ + + + Timeout options + + + #include + + 5 + + #include + + 10 + + #include + + 50 + + #include + + 50 + + + #include