From 1c63c9565840b526c41c0cf20bcc8b8f60a771e3 Mon Sep 17 00:00:00 2001 From: Michal Arbet Date: Mon, 7 Dec 2020 11:44:00 +0100 Subject: Add support for checking more daemons This patch is changing the way how keepalived checks daemons liveness. Check_alive.sh will find checks for daemons which are copied by kolla-ansible and return 0/1 if alive/down. This patch is required for proxysql HA. Needed-By: https://review.opendev.org/c/openstack/kolla-ansible/+/770215 Change-Id: I68836918466beb572e42ffedce127747290ad481 --- docker/keepalived/check_alive.sh | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'docker/keepalived') diff --git a/docker/keepalived/check_alive.sh b/docker/keepalived/check_alive.sh index 929bb221a..060884c7c 100644 --- a/docker/keepalived/check_alive.sh +++ b/docker/keepalived/check_alive.sh @@ -1,6 +1,38 @@ #!/bin/bash -# This will return 0 when it successfully talks to the haproxy daemon via the socket +# This will return 0 when it successfully passes all checks for all daemons # Failures return 1 -echo "show info" | socat unix-connect:/var/lib/kolla/haproxy/haproxy.sock stdio > /dev/null +declare -A check_results +final_result=0 + +if [ -d "/checks" ]; then + CHECKS=$(find /checks -type f) +fi + +if [ "${CHECKS}" ]; then + # Store results + for check in ${CHECKS}; do + # Run check but do not print stderr + # as single check can be executed manually to see the result + ${check} 2>/dev/null + check_results[${check}]=$? + done + + # Print results and save the final result + for i in "${!check_results[@]}"; do + if [ "${check_results[$i]}" == "0" ]; then + echo "Keepalived check script ${i} succeeded." + else + final_result=1 + echo "Keepalived check script ${i} failed." + fi + done + + exit ${final_result} +else + # Legacy single check of haproxy liveness + # TODO(kevko): This can be removed after k-a part merges + # https://review.opendev.org/c/openstack/kolla-ansible/+/770215 + echo "show info" | socat unix-connect:/var/lib/kolla/haproxy/haproxy.sock stdio > /dev/null +fi -- cgit v1.2.3