From ee2c382c7c740bc61d4eee184d7fddb1a6a8bbdc Mon Sep 17 00:00:00 2001
From: Viacheslav <v.gletenko@vyos.io>
Date: Tue, 21 Dec 2021 14:26:16 +0000
Subject: keepalived: T4081: Fix health-checking when syn-group is used If
 health-check scripts are used in vrrp group and vrrp group is membmer of
 sync-group, then health-check scripts should be part of the section
 "vrrp_sync_group". In other case the health-scripts won't work anymore.

---
 data/templates/vrrp/keepalived.conf.tmpl | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/data/templates/vrrp/keepalived.conf.tmpl b/data/templates/vrrp/keepalived.conf.tmpl
index b93aa4bc9..6585fc60b 100644
--- a/data/templates/vrrp/keepalived.conf.tmpl
+++ b/data/templates/vrrp/keepalived.conf.tmpl
@@ -83,15 +83,24 @@ vrrp_instance {{ name }} {
 {% endif %}
 
 {% if sync_group is defined and sync_group is not none %}
-{%   for name, group_config in sync_group.items() if group_config.disable is not defined %}
+{%   for name, sync_group_config in sync_group.items() if sync_group_config.disable is not defined %}
 vrrp_sync_group {{ name }} {
     group {
-{%     if group_config.member is defined and group_config.member is not none %}
-{%       for member in group_config.member %}
+{%     if sync_group_config.member is defined and sync_group_config.member is not none %}
+{%       for member in sync_group_config.member %}
         {{ member }}
 {%       endfor %}
 {%     endif %}
     }
+
+{# Health-check scripts should be in section sync-group if member is part of the sync-group T4081 #}
+{%   for name, group_config in group.items() if group_config.disable is not defined %}
+{%     if group_config.health_check is defined and group_config.health_check.script is defined and group_config.health_check.script is not none and name in sync_group_config.member %}
+    track_script {
+        healthcheck_{{ name }}
+    }
+{%     endif %}
+{%   endfor %}
 {%     if conntrack_sync_group is defined and conntrack_sync_group == name %}
 {%     set vyos_helper = "/usr/libexec/vyos/vyos-vrrp-conntracksync.sh" %}
     notify_master "{{ vyos_helper }} master {{ name }}"
-- 
cgit v1.2.3