From de6650874da1470f10d4561fd1e33829eaef3414 Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang Date: Sat, 19 Mar 2016 00:24:44 +0800 Subject: [PATCH] Start the haproxy by using haproxy-system-wrapper haproxy-system-wrapper is a solution for systemd from upstream. it can handle the reload graceful. Change-Id: I6a3d141af065e429bd1be1b7252f5c6df1fda3bb Closes-Bug: #1559238 --- .../roles/haproxy/templates/haproxy.json.j2 | 2 +- docker/haproxy/Dockerfile.j2 | 3 +-- docker/haproxy/ensure_latest_config.sh | 4 +++- docker/haproxy/extend_start.sh | 19 ------------------- 4 files changed, 5 insertions(+), 23 deletions(-) delete mode 100644 docker/haproxy/extend_start.sh diff --git a/ansible/roles/haproxy/templates/haproxy.json.j2 b/ansible/roles/haproxy/templates/haproxy.json.j2 index d838dad832..c95dd77031 100644 --- a/ansible/roles/haproxy/templates/haproxy.json.j2 +++ b/ansible/roles/haproxy/templates/haproxy.json.j2 @@ -1,5 +1,5 @@ { - "command": "/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid", + "command": "/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid", "config_files": [ { "source": "{{ container_config_directory }}/haproxy.cfg", diff --git a/docker/haproxy/Dockerfile.j2 b/docker/haproxy/Dockerfile.j2 index e4ee3664df..38f5dc5c14 100644 --- a/docker/haproxy/Dockerfile.j2 +++ b/docker/haproxy/Dockerfile.j2 @@ -14,7 +14,6 @@ RUN apt-get install -y --no-install-recommends haproxy \ {% endif %} COPY ensure_latest_config.sh /usr/local/bin/kolla_ensure_haproxy_latest_config -COPY extend_start.sh /usr/local/bin/kolla_extend_start -RUN chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_ensure_haproxy_latest_config +RUN chmod 755 /usr/local/bin/kolla_ensure_haproxy_latest_config {{ include_footer }} diff --git a/docker/haproxy/ensure_latest_config.sh b/docker/haproxy/ensure_latest_config.sh index 9a34f17587..4b84f3aedb 100644 --- a/docker/haproxy/ensure_latest_config.sh +++ b/docker/haproxy/ensure_latest_config.sh @@ -1,12 +1,14 @@ #!/bin/bash +set -o errexit + CURRENT_CONFIG_HASH=$(sha1sum /etc/haproxy/haproxy.cfg | cut -f1 -d' ') NEW_CONFIG_HASH=$(sha1sum /var/lib/kolla/config_files/haproxy.cfg | cut -f1 -d' ') if [[ $CURRENT_CONFIG_HASH != $NEW_CONFIG_HASH ]]; then changed=changed python /usr/local/bin/kolla_set_configs - /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -sf $(cat /run/haproxy.pid) + kill -USR2 $(pgrep -f /usr/sbin/haproxy-systemd-wrapper) fi echo $changed diff --git a/docker/haproxy/extend_start.sh b/docker/haproxy/extend_start.sh deleted file mode 100644 index e2d13f4840..0000000000 --- a/docker/haproxy/extend_start.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# We are intentionally not using exec so we can reload the haproxy config later -echo "Running command: '${CMD}'" -$CMD - -retry=0 -# The loop breaks only when haproxy.pid get missing even after 3 re-try. -while [[ $retry -lt 3 ]]; do - if [[ ! -e /run/haproxy.pid || ! -d /proc/$(cat /run/haproxy.pid) ]]; then - retry=$((retry+1)) - sleep 2 - continue - fi - retry=0 - sleep 5 -done - -exit 1