Use haproxy-systemd-wrapper as pid1 in containerized Haproxy
authorDamien Ciabrini <dciabrin@redhat.com>
Fri, 15 Sep 2017 11:00:12 +0000 (13:00 +0200)
committerJuan Antonio Osorio Robles <jaosorior@redhat.com>
Wed, 20 Sep 2017 14:29:25 +0000 (14:29 +0000)
This wrapper binary spawns the HAproxy daemon and implements a
coordinated HAproxy restart on SIGHUP.

From a service's perspective, this allows reloading the HAProxy
configuration with minimal service disruption, i.e. without stopping
and restarting the HAProxy container.

Closes-Bug: #1717521

Change-Id: Ib3ef0c0bcf1a8151e179ff4d7509cf0d6b3ac5a1
(cherry picked from commit 91cd44cd7266c15ce07fafbee9d2e33f226096ba)

docker/services/haproxy.yaml
docker/services/pacemaker/haproxy.yaml

index f0e2f71..70e1f89 100644 (file)
@@ -96,8 +96,7 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [HAProxyBase, role_data, config_settings]
-          - tripleo::haproxy::haproxy_daemon: false
-            tripleo::haproxy::haproxy_service_manage: false
+          - tripleo::haproxy::haproxy_service_manage: false
             # NOTE(jaosorior): We disable the CRL since we have no way to restart haproxy
             # when this is updated
             tripleo::haproxy::crl_file: null
@@ -130,7 +129,7 @@ outputs:
             - null
       kolla_config:
         /var/lib/kolla/config_files/haproxy.json:
-          command: haproxy -f /etc/haproxy/haproxy.cfg
+          command: /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg
           config_files:
             - source: "/var/lib/kolla/config_files/src/*"
               dest: "/"
index a325f28..2cc04e9 100644 (file)
@@ -78,8 +78,7 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [HAProxyBase, role_data, config_settings]
-          - tripleo::haproxy::haproxy_daemon: false
-            haproxy_docker: true
+          - haproxy_docker: true
             tripleo::profile::pacemaker::haproxy_bundle::haproxy_docker_image: &haproxy_image {get_param: DockerHAProxyImage}
             # the list of directories that contain the certs to bind mount in the countainer
             # bind-mounting the directories rather than all the cert, key and pem files ensures
@@ -120,7 +119,7 @@ outputs:
             data: *tls_mapping
       kolla_config:
         /var/lib/kolla/config_files/haproxy.json:
-          command: haproxy -f /etc/haproxy/haproxy.cfg
+          command: /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg
           config_files:
             - source: "/var/lib/kolla/config_files/src/*"
               dest: "/"