This commit is contained in:
Executable
+89
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
SRC="${ROOT}/stacks/haproxy"
|
||||
LIVE="/srv/nfs/infra/haproxy"
|
||||
ENV_FILE="${LIVE}/.env"
|
||||
|
||||
echo "=== HAProxy validation ==="
|
||||
|
||||
if [[ ! -f "${ENV_FILE}" ]]; then
|
||||
echo "ERROR: ${ENV_FILE} not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "${SRC}/docker-compose.yml" ]]; then
|
||||
echo "ERROR: docker-compose.yml not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "${SRC}/conf/haproxy.cfg" ]]; then
|
||||
echo "ERROR: haproxy.cfg not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
echo "--- Validate docker-compose.yml ---"
|
||||
|
||||
docker compose \
|
||||
--env-file "${ENV_FILE}" \
|
||||
-f "${SRC}/docker-compose.yml" \
|
||||
config >/dev/null
|
||||
|
||||
|
||||
echo
|
||||
echo "--- Detect HAProxy image ---"
|
||||
|
||||
HAPROXY_IMAGE="$(
|
||||
docker compose \
|
||||
--env-file "${ENV_FILE}" \
|
||||
-f "${SRC}/docker-compose.yml" \
|
||||
config --images |
|
||||
grep -m1 -E '(^|/)haproxy:'
|
||||
)"
|
||||
|
||||
if [[ -z "${HAPROXY_IMAGE}" ]]; then
|
||||
echo "ERROR: HAProxy image not found in compose"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "HAProxy image: ${HAPROXY_IMAGE}"
|
||||
|
||||
|
||||
echo
|
||||
echo "--- Validate haproxy.cfg ---"
|
||||
|
||||
TMP_DIR="$(mktemp -d)"
|
||||
|
||||
cleanup()
|
||||
{
|
||||
rm -rf "${TMP_DIR}"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
mkdir -p "${TMP_DIR}/conf"
|
||||
|
||||
rsync -a \
|
||||
"${SRC}/conf/" \
|
||||
"${TMP_DIR}/conf/"
|
||||
|
||||
|
||||
docker run \
|
||||
--rm \
|
||||
-v "${TMP_DIR}/conf:/usr/local/etc/haproxy:ro" \
|
||||
-v "${LIVE}/certs:/etc/haproxy/certs:ro" \
|
||||
-v "${LIVE}/crowdsec/lua:/usr/lib/crowdsec-haproxy-spoa-bouncer/lua:ro" \
|
||||
-v "${LIVE}/crowdsec/templates:/var/lib/crowdsec-haproxy-spoa-bouncer/html:ro" \
|
||||
"${HAPROXY_IMAGE}" \
|
||||
haproxy \
|
||||
-c \
|
||||
-f /usr/local/etc/haproxy/haproxy.cfg
|
||||
|
||||
|
||||
echo
|
||||
echo "=== Validation successful ==="
|
||||
Reference in New Issue
Block a user