diff --git a/docker/centos/binary/keepalived/check_alive.sh b/docker/centos/binary/keepalived/check_alive.sh deleted file mode 100755 index ee0c5a85b6..0000000000 --- a/docker/centos/binary/keepalived/check_alive.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# This is noop check script. Change it to something meaningful. -# TODO (inc0): When HAProxy is implemented, this should be changed to HAProxy check -# https://github.com/stackforge/kolla/blob/master/specs/high-availability.rst - -exit 0 diff --git a/docker/centos/binary/keepalived/check_alive.sh b/docker/centos/binary/keepalived/check_alive.sh new file mode 120000 index 0000000000..e9bfd9d1f7 --- /dev/null +++ b/docker/centos/binary/keepalived/check_alive.sh @@ -0,0 +1 @@ +../../../common/keepalived/check_alive.sh \ No newline at end of file diff --git a/docker/centos/binary/keepalived/keepalived.conf b/docker/centos/binary/keepalived/keepalived.conf deleted file mode 100755 index 2a58fc018d..0000000000 --- a/docker/centos/binary/keepalived/keepalived.conf +++ /dev/null @@ -1,19 +0,0 @@ -vrrp_script check_alive { - script "/check_alive.sh" - interval 2 - weight -10 -} - -vrrp_instance Floating { - state MASTER - interface @PUBLIC_INTERFACE@ - virtual_router_id 51 - priority @KEEPALIVED_PRIORITY@ - advert_int 1 - virtual_ipaddress { - @PUBLIC_IP@ - } - track_script { - check_alive - } -} diff --git a/docker/centos/binary/keepalived/keepalived.conf b/docker/centos/binary/keepalived/keepalived.conf new file mode 120000 index 0000000000..d9794c9e59 --- /dev/null +++ b/docker/centos/binary/keepalived/keepalived.conf @@ -0,0 +1 @@ +../../../common/keepalived/keepalived.conf \ No newline at end of file diff --git a/docker/centos/binary/keepalived/start.sh b/docker/centos/binary/keepalived/start.sh deleted file mode 100755 index 7f582b2180..0000000000 --- a/docker/centos/binary/keepalived/start.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh - -check_required_vars KEEPALIVED_HOST_PRIORITIES PUBLIC_IP PUBLIC_INTERFACE - -MY_HOSTNAME=`hostname` - -# here we unpack KEEPALIVED_HOST_PRIORITIES hostname:priority pairs and match -# them with current hostname, if it's there -for i in ${KEEPALIVED_HOST_PRIORITIES//,/ }; do - HOST_PRIORITY=(${i//:/ }) - if [ "$MY_HOSTNAME" == "${HOST_PRIORITY[0]}" ]; then - KEEPALIVED_PRIORITY=${HOST_PRIORITY[1]} - fi -done - -if [ -z "$KEEPALIVED_PRIORITY" ]; then - echo "ERROR: missing hostname in KEEPALIVED_HOST_PRIORITIES: $MY_HOSTNAME" >&2 - exit 1 -fi - -sed -i ' - s|@PUBLIC_INTERFACE@|'$PUBLIC_INTERFACE'|g - s|@PUBLIC_IP@|'$PUBLIC_IP'|g - s|@KEEPALIVED_PRIORITY@|'$KEEPALIVED_PRIORITY'|g -' /etc/keepalived/keepalived.conf - -exec /usr/sbin/keepalived -nld -p /run/keepalived.pid diff --git a/docker/centos/binary/keepalived/start.sh b/docker/centos/binary/keepalived/start.sh new file mode 120000 index 0000000000..05b2222206 --- /dev/null +++ b/docker/centos/binary/keepalived/start.sh @@ -0,0 +1 @@ +../../../common/keepalived/start.sh \ No newline at end of file diff --git a/docker/common/keepalived/check_alive.sh b/docker/common/keepalived/check_alive.sh new file mode 100755 index 0000000000..ee0c5a85b6 --- /dev/null +++ b/docker/common/keepalived/check_alive.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# This is noop check script. Change it to something meaningful. +# TODO (inc0): When HAProxy is implemented, this should be changed to HAProxy check +# https://github.com/stackforge/kolla/blob/master/specs/high-availability.rst + +exit 0 diff --git a/docker/common/keepalived/keepalived.conf b/docker/common/keepalived/keepalived.conf new file mode 100755 index 0000000000..2a58fc018d --- /dev/null +++ b/docker/common/keepalived/keepalived.conf @@ -0,0 +1,19 @@ +vrrp_script check_alive { + script "/check_alive.sh" + interval 2 + weight -10 +} + +vrrp_instance Floating { + state MASTER + interface @PUBLIC_INTERFACE@ + virtual_router_id 51 + priority @KEEPALIVED_PRIORITY@ + advert_int 1 + virtual_ipaddress { + @PUBLIC_IP@ + } + track_script { + check_alive + } +} diff --git a/docker/common/keepalived/start.sh b/docker/common/keepalived/start.sh new file mode 100755 index 0000000000..7f582b2180 --- /dev/null +++ b/docker/common/keepalived/start.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +. /opt/kolla/kolla-common.sh + +check_required_vars KEEPALIVED_HOST_PRIORITIES PUBLIC_IP PUBLIC_INTERFACE + +MY_HOSTNAME=`hostname` + +# here we unpack KEEPALIVED_HOST_PRIORITIES hostname:priority pairs and match +# them with current hostname, if it's there +for i in ${KEEPALIVED_HOST_PRIORITIES//,/ }; do + HOST_PRIORITY=(${i//:/ }) + if [ "$MY_HOSTNAME" == "${HOST_PRIORITY[0]}" ]; then + KEEPALIVED_PRIORITY=${HOST_PRIORITY[1]} + fi +done + +if [ -z "$KEEPALIVED_PRIORITY" ]; then + echo "ERROR: missing hostname in KEEPALIVED_HOST_PRIORITIES: $MY_HOSTNAME" >&2 + exit 1 +fi + +sed -i ' + s|@PUBLIC_INTERFACE@|'$PUBLIC_INTERFACE'|g + s|@PUBLIC_IP@|'$PUBLIC_IP'|g + s|@KEEPALIVED_PRIORITY@|'$KEEPALIVED_PRIORITY'|g +' /etc/keepalived/keepalived.conf + +exec /usr/sbin/keepalived -nld -p /run/keepalived.pid