summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/high-availability/keepalived.conf.j22
-rw-r--r--interface-definitions/high-availability.xml.in6
-rwxr-xr-xsmoketest/scripts/cli/test_high-availability_virtual-server.py7
3 files changed, 14 insertions, 1 deletions
diff --git a/data/templates/high-availability/keepalived.conf.j2 b/data/templates/high-availability/keepalived.conf.j2
index a45befdb6..f69230f8b 100644
--- a/data/templates/high-availability/keepalived.conf.j2
+++ b/data/templates/high-availability/keepalived.conf.j2
@@ -228,7 +228,9 @@ virtual_server fwmark {{ vserver_config.fwmark }} {
{% elif vserver_config.forward_method is vyos_defined('tunnel') %}
lb_kind TUN
{% endif %}
+{% if vserver_config.persistence_timeout | int > 0 %}
persistence_timeout {{ vserver_config.persistence_timeout }}
+{% endif %}
protocol {{ vserver_config.protocol | upper }}
{% if vserver_config.real_server is vyos_defined %}
{% for rserver, rserver_config in vserver_config.real_server.items() %}
diff --git a/interface-definitions/high-availability.xml.in b/interface-definitions/high-availability.xml.in
index 70ac308a3..11ea91309 100644
--- a/interface-definitions/high-availability.xml.in
+++ b/interface-definitions/high-availability.xml.in
@@ -513,11 +513,15 @@
<properties>
<help>Timeout for persistent connections</help>
<valueHelp>
+ <format>u32:0</format>
+ <description>Disable persistent connections</description>
+ </valueHelp>
+ <valueHelp>
<format>u32:1-86400</format>
<description>Timeout for persistent connections</description>
</valueHelp>
<constraint>
- <validator name="numeric" argument="--range 1-86400"/>
+ <validator name="numeric" argument="--range 0-86400"/>
</constraint>
</properties>
<defaultValue>300</defaultValue>
diff --git a/smoketest/scripts/cli/test_high-availability_virtual-server.py b/smoketest/scripts/cli/test_high-availability_virtual-server.py
index 1e243278e..7939f139e 100755
--- a/smoketest/scripts/cli/test_high-availability_virtual-server.py
+++ b/smoketest/scripts/cli/test_high-availability_virtual-server.py
@@ -83,6 +83,13 @@ class TestHAVirtualServer(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'{proto.upper()}_CHECK', config)
self.assertIn(f'connect_timeout {connection_timeout}', config)
+ # Verify persistence_timeout is not set when value is 0
+ self.cli_set(vserver_base + [vs, 'persistence-timeout', '0'])
+ self.cli_commit()
+
+ config = read_file(KEEPALIVED_CONF)
+ self.assertNotIn('persistence_timeout', config)
+
def test_02_ha_virtual_server_and_vrrp(self):
algo = 'least-connection'
delay = '15'