diff --git a/ansible/roles/haproxy/tasks/upgrade.yml b/ansible/roles/haproxy/tasks/upgrade.yml
index ed97d539c095cf1413af30cc23dea272095b97dd..c4670a5aa0ebcaefd1d511bc21f37863f039d58f 100644
--- a/ansible/roles/haproxy/tasks/upgrade.yml
+++ b/ansible/roles/haproxy/tasks/upgrade.yml
@@ -1 +1,19 @@
 ---
+- include: config.yml
+
+- set_fact: secondary_addresses={{ hostvars[inventory_hostname]['ansible_' + api_interface].get('ipv4_secondaries', []) | map(attribute='address') | list }}
+
+- name: Stopping all slave keepalived containers
+  kolla_docker:
+    action: "stop_container"
+    common_options: "{{ docker_common_options }}"
+    name: "keepalived"
+  when: kolla_internal_address not in secondary_addresses
+
+# Upgrading master keepalived and haproxy
+- include: start.yml
+  when: kolla_internal_address in secondary_addresses
+
+# Upgrading slave keepalived and haproxy
+- include: start.yml
+  when: kolla_internal_address not in secondary_addresses