summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNataliia S. <81954790+natali-rs1985@users.noreply.github.com>2026-05-19 13:59:57 +0300
committerGitHub <noreply@github.com>2026-05-19 13:59:57 +0300
commit2430dd1db9c81f4f61d7629a1d9d9dbcd798a4b2 (patch)
treef48ad5e1eb8bede65c1457ec2f2d5bf7ffb63217
parent51ab39e51bb925307c0f9ad1d905d450ceecc0f5 (diff)
downloadvyos-1x-2430dd1db9c81f4f61d7629a1d9d9dbcd798a4b2.tar.gz
vyos-1x-2430dd1db9c81f4f61d7629a1d9d9dbcd798a4b2.zip
high-availability: T7059: Allow disabling persistent connections for virtual-server (#5205)
-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'