net/haproxy: add close-spread-time option, refs #3026

This commit is contained in:
Frank Wall 2023-01-05 00:19:56 +01:00
parent 605a3f4b9c
commit 9bd79cff45
4 changed files with 17 additions and 0 deletions

View file

@ -6,6 +6,9 @@ very high loads while needing persistence or Layer7 processing.
Plugin Changelog
================
Added:
* add new option "Gradual connection close time" (close-spread-time) (#3026)
Changed:
* rename frontend option "Type" to "Connection Mode" (#3026)
* update URLs to HAProxy 2.6 documentation (#3026)

View file

@ -21,6 +21,12 @@
<type>text</type>
<help><![CDATA[Set the maximum time allowed to perform a clean graceful stop. HAProxy will terminate all open connections when the timeout is reached. This may be used to ensure that the instance will quit even if connections remain opened. Defaults to milliseconds. Optionally the unit may be specified as either "d", "h", "m", "s", "ms" or "us".]]></help>
</field>
<field>
<id>haproxy.general.closeSpreadTime</id>
<label>Gradual connection close time</label>
<type>text</type>
<help><![CDATA[Specifies a time window during which connection closing will be spread during a soft-stop operation. Idle connections will all be closed at once if this option is not set, which may cause reconnecting clients to rush against the process. For best results, it should set lower than the "Graceful stop timout" option. Defaults to milliseconds. Optionally the unit may be specified as either "d", "h", "m", "s", "ms" or "us".]]></help>
</field>
<field>
<id>haproxy.general.seamlessReload</id>
<label>Seamless reload</label>

View file

@ -18,6 +18,11 @@
<ValidationMessage>Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".</ValidationMessage>
<Required>N</Required>
</hardStopAfter>
<closeSpreadTime type="TextField">
<mask>/^([0-9]{1,8}(?:us|ms|s|m|h|d)?)/u</mask>
<ValidationMessage>Should be a number between 1 and 8 characters, optionally followed by either "d", "h", "m", "s", "ms" or "us".</ValidationMessage>
<Required>N</Required>
</closeSpreadTime>
<seamlessReload type="BooleanField">
<default>0</default>
<Required>Y</Required>

View file

@ -973,6 +973,9 @@ global
{% if OPNsense.HAProxy.general.hardStopAfter|default('') != '' %}
hard-stop-after {{OPNsense.HAProxy.general.hardStopAfter}}
{% endif %}
{% if OPNsense.HAProxy.general.closeSpreadTime|default('') != '' %}
close-spread-time {{OPNsense.HAProxy.general.closeSpreadTime}}
{% endif %}
{# # Disable strict-limits because a syntax check will not reveal #}
{# # whether kern.maxfilesperproc or kern.maxfiles are too low. #}
no strict-limits