Browse Source
blueprint container-health-check Now docker supports healthcheck directive[0] in Dockerfile, which is helpful for checking container aliveness. Base for this patch were healthcheck scripts from tripleo[1]. [0] https://docs.docker.com/engine/reference/builder/#healthcheck [1] https://github.com/openstack/tripleo-common/tree/master/healthcheck Change-Id: Ifc32713cd4d6b45c74855c0ebf5bb65784701d44changes/28/676128/19
10 changed files with 92 additions and 0 deletions
@ -0,0 +1,12 @@
|
||||
#!/bin/bash |
||||
: ${HEALTHCHECK_CURL_MAX_TIME:=10} |
||||
: ${HEALTHCHECK_CURL_USER_AGENT:=curl-healthcheck} |
||||
: ${HEALTHCHECK_CURL_WRITE_OUT:='\n%{http_code} %{remote_ip}:%{remote_port} %{time_total} seconds\n'} |
||||
: ${HEALTHCHECK_CURL_OUTPUT:='/dev/null'} |
||||
|
||||
export NSS_SDB_USE_CACHE=no |
||||
curl -g -k -q -s -S --fail -o "${HEALTHCHECK_CURL_OUTPUT}" \ |
||||
--max-time "${HEALTHCHECK_CURL_MAX_TIME}" \ |
||||
--user-agent "${HEALTHCHECK_CURL_USER_AGENT}" \ |
||||
--write-out "${HEALTHCHECK_CURL_WRITE_OUT}" \ |
||||
"$@" || exit 1 |
@ -0,0 +1,15 @@
|
||||
#!/bin/bash |
||||
file_path=$1 |
||||
limit_seconds=$2 |
||||
|
||||
# if the file doesn't exist, return 1 |
||||
if [ ! -f $file_path ]; then |
||||
echo "${file_path} does not exist for file modification check" |
||||
exit 1 |
||||
fi |
||||
curr_time=$(date +%s) |
||||
last_mod=$(stat -c '%Y' $file_path) |
||||
limit_epoch=$(( curr_time-limit_seconds )) |
||||
if [ ${limit_epoch} -gt ${last_mod} ]; then |
||||
exit 1 |
||||
fi |
@ -0,0 +1,8 @@
|
||||
#!/bin/bash |
||||
process=$1 |
||||
|
||||
shift 1 |
||||
args=$@ |
||||
ports=${args// /|} |
||||
pids=$(pgrep -d '|' -f $process) |
||||
ss -lnp | grep -qE ":($ports).*,pid=($pids)," |
@ -0,0 +1,8 @@
|
||||
#!/bin/bash |
||||
process=$1 |
||||
|
||||
shift 1 |
||||
args=$@ |
||||
ports=${args// /|} |
||||
pids=$(pgrep -d '|' -f $process) |
||||
ss -ntp | grep -qE ":($ports).*,pid=($pids)," |
@ -0,0 +1,10 @@
|
||||
#!/bin/bash |
||||
process=$1 |
||||
socket=$2 |
||||
|
||||
# lsof truncate command name to 15 characters and this behaviour |
||||
# cannot be disabled |
||||
if [ ${#process} -gt 15 ] ; then |
||||
process=${process:0:15} |
||||
fi |
||||
lsof -Fc -Ua $socket | grep -q "c$process" |
@ -0,0 +1,17 @@
|
||||
#!/bin/bash |
||||
|
||||
MYSQL_USERNAME="${MYSQL_USERNAME:=-haproxy}" |
||||
MYSQL_TIMEOUT=10 |
||||
|
||||
MYSQL_CMDLINE="mysql -nNE --connect-timeout=${MYSQL_TIMEOUT} -u ${MYSQL_USERNAME}" |
||||
|
||||
WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state_comment';") |
||||
|
||||
if [[ "${WSREP_STATUS}" == "Synced" ]] |
||||
then |
||||
echo "MariaDB Galera Cluster Node is synced." |
||||
exit 0 |
||||
else |
||||
echo "MariaDB Galera Cluster Node is NOT synced" |
||||
exit 0 |
||||
fi |
Loading…
Reference in new issue