Add check_script for haproxy in keepalived

This patch checks that haproxy is alive and running. It does this by
using socat to talk to the haproxy socket. That socket will only
respond successfully when haproxy is active and functional.

Change-Id: I528588d5742071103c28109a69842a6f935232c2
Closes-Bug: #1478570
This commit is contained in:
Sam Yaple 2015-08-05 11:10:53 +00:00
parent 12b70241ba
commit 8ede380f1d
4 changed files with 8 additions and 6 deletions

View File

@ -6,6 +6,7 @@
container_privileged: "True" container_privileged: "True"
container_volumes: container_volumes:
- "{{ node_config_directory }}/keepalived/:/opt/kolla/keepalived/:ro" - "{{ node_config_directory }}/keepalived/:/opt/kolla/keepalived/:ro"
- "/run:/run"
container_environment: container_environment:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
@ -15,6 +16,7 @@
container_name: "haproxy" container_name: "haproxy"
container_volumes: container_volumes:
- "{{ node_config_directory }}/haproxy/:/opt/kolla/haproxy/:ro" - "{{ node_config_directory }}/haproxy/:/opt/kolla/haproxy/:ro"
- "/run:/run"
container_environment: container_environment:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"

View File

@ -1,10 +1,10 @@
global global
daemon daemon
maxconn 4000 maxconn 4000
stats socket /run/haproxy.sock
defaults defaults
mode http mode http
maxconn 4000
option redispatch option redispatch
retries 3 retries 3
timeout http-request 10s timeout http-request 10s

View File

@ -1,7 +1,8 @@
vrrp_script check_alive { vrrp_script check_alive {
script "/check_alive.sh" script "/check_alive.sh"
interval 2 interval 2
weight -10 fall 2
rise 10
} }
vrrp_instance Floating { vrrp_instance Floating {

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
# This is noop check script. Change it to something meaningful. # This will return 0 when it successfully talks to the haproxy daemon via the socket
# TODO (inc0): When HAProxy is implemented, this should be changed to HAProxy check # Failures return 1
# https://github.com/stackforge/kolla/blob/master/specs/high-availability.rst
exit 0 echo "show info" | socat unix-connect:/run/haproxy.sock stdio