aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/keepalived
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/keepalived')
-rw-r--r--kolla/docker/keepalived/Dockerfile.j234
-rw-r--r--kolla/docker/keepalived/check_alive.sh33
-rw-r--r--kolla/docker/keepalived/extend_start.sh6
3 files changed, 73 insertions, 0 deletions
diff --git a/kolla/docker/keepalived/Dockerfile.j2 b/kolla/docker/keepalived/Dockerfile.j2
new file mode 100644
index 000000000..2dcdeccd7
--- /dev/null
+++ b/kolla/docker/keepalived/Dockerfile.j2
@@ -0,0 +1,34 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block keepalived_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.enable_extra_repos(['mariadb']) }}
+
+{% if base_package_type == 'rpm' %}
+ {% set keepalived_packages = [
+ 'keepalived',
+ 'MariaDB-client'
+ ] %}
+{% elif base_package_type == 'deb' %}
+ {% set keepalived_packages = [
+ 'keepalived',
+ 'mariadb-client'
+ ] %}
+{% endif %}
+{{ macros.install_packages(keepalived_packages | customizable("packages")) }}
+
+COPY check_alive.sh /
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 644 /usr/local/bin/kolla_extend_start \
+ && chmod 755 /check_alive.sh
+
+{{ macros.kolla_patch_sources() }}
+
+{% block keepalived_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/kolla/docker/keepalived/check_alive.sh b/kolla/docker/keepalived/check_alive.sh
new file mode 100644
index 000000000..857131123
--- /dev/null
+++ b/kolla/docker/keepalived/check_alive.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# This will return 0 when it successfully passes all checks for all daemons
+# Failures return 1
+
+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}
+fi
diff --git a/kolla/docker/keepalived/extend_start.sh b/kolla/docker/keepalived/extend_start.sh
new file mode 100644
index 000000000..889da64fd
--- /dev/null
+++ b/kolla/docker/keepalived/extend_start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# Workaround for bug #1485079
+if [ -f /run/keepalived.pid ]; then
+ rm /run/keepalived.pid
+fi