From 97066a1ebc5928992b79aad6e6ed90c3bfc0a1f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Knecht?= Date: Mon, 1 Jun 2020 17:09:18 +0200 Subject: [PATCH] ceph-rgw-loadbalancer: Fix keepalived master selection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While 2ca33641 fixed a bug in the way the `keepalived.conf.j2` template matched hostnames to set the VRRP `MASTER`/`BACKUP` states, it also introduced a regression in the case where `virtual_ips` is a list of more than one IP address. The previous behavior would result in each host in the `rgwloadbalancers` group to be `MASTER` for one of the `virtual_ips`, but the new behavior caused the first host to be `MASTER` for all the IP address in `virtual_ips`. This commit restores the original behavior. Signed-off-by: BenoƮt Knecht (cherry picked from commit 2bede4762efaf566a7da689dd1021ee66c0c94eb) --- roles/ceph-rgw-loadbalancer/templates/keepalived.conf.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ceph-rgw-loadbalancer/templates/keepalived.conf.j2 b/roles/ceph-rgw-loadbalancer/templates/keepalived.conf.j2 index 8793680f8..0c9378d3b 100644 --- a/roles/ceph-rgw-loadbalancer/templates/keepalived.conf.j2 +++ b/roles/ceph-rgw-loadbalancer/templates/keepalived.conf.j2 @@ -15,8 +15,8 @@ vrrp_script check_haproxy { {% for instance in vrrp_instances %} vrrp_instance {{ instance['name'] }} { - state {{ 'MASTER' if ansible_facts['hostname'] == instance['master'] else 'BACKUP' }} - priority {{ '100' if ansible_facts['hostname'] == instance['master'] else '90' }} + state {{ 'MASTER' if inventory_hostname == instance['master'] else 'BACKUP' }} + priority {{ '100' if inventory_hostname == instance['master'] else '90' }} interface {{ virtual_ip_interface }} virtual_router_id {{ 50 + loop.index }} advert_int 1