From 599bcfcec4723ae4ec5f56b2d553d27dbf750ea2 Mon Sep 17 00:00:00 2001 From: Pierre Delpy <75260699+PierreDelpy@users.noreply.github.com> Date: Wed, 2 Oct 2024 07:53:20 +0200 Subject: [PATCH] Feature/send branch to healthchecks (#232) feature: log git branches to healthchecks and code refactoring --- lib/prerequisites.sh | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/prerequisites.sh b/lib/prerequisites.sh index 235826a..2c1e186 100755 --- a/lib/prerequisites.sh +++ b/lib/prerequisites.sh @@ -3,14 +3,16 @@ source lib/functions.sh detectCompose +CONFIG_DIR="/etc/bridgehead/" +COMPONENT_DIR="/srv/docker/bridgehead/" if ! id "bridgehead" &>/dev/null; then log ERROR "User bridgehead does not exist. Please run bridgehead install $PROJECT" exit 1 fi -checkOwner /srv/docker/bridgehead bridgehead || exit 1 -checkOwner /etc/bridgehead bridgehead || exit 1 +checkOwner "${CONFIG_DIR}" bridgehead || exit 1 +checkOwner "${COMPONENT_DIR}" bridgehead || exit 1 ## Check if user is a su log INFO "Checking if all prerequisites are met ..." @@ -32,31 +34,31 @@ fi log INFO "Checking configuration ..." ## Download submodule -if [ ! -d "/etc/bridgehead/" ]; then - fail_and_report 1 "Please set up the config folder at /etc/bridgehead. Instruction are in the readme." +if [ ! -d "${CONFIG_DIR}" ]; then + fail_and_report 1 "Please set up the config folder at ${CONFIG_DIR}. Instruction are in the readme." fi # TODO: Check all required variables here in a generic loop #check if project env is present -if [ -d "/etc/bridgehead/${PROJECT}.conf" ]; then - fail_and_report 1 "Project config not found. Please copy the template from ${PROJECT} and put it under /etc/bridgehead-config/${PROJECT}.conf." +if [ -d "${CONFIG_DIR}${PROJECT}.conf" ]; then + fail_and_report 1 "Project config not found. Please copy the template from ${PROJECT} and put it under ${CONFIG_DIR}${PROJECT}.conf." fi # TODO: Make sure you're in the right directory, or, even better, be independent from the working directory. log INFO "Checking ssl cert for accessing bridgehead via https" -if [ ! -d "/etc/bridgehead/traefik-tls" ]; then +if [ ! -d "${CONFIG_DIR}traefik-tls" ]; then log WARN "TLS certs for accessing bridgehead via https missing, we'll now create a self-signed one. Please consider getting an officially signed one (e.g. via Let's Encrypt ...) and put into /etc/bridgehead/traefik-tls" mkdir -p /etc/bridgehead/traefik-tls fi -if [ ! -e "/etc/bridgehead/traefik-tls/fullchain.pem" ]; then +if [ ! -e "${CONFIG_DIR}traefik-tls/fullchain.pem" ]; then openssl req -x509 -newkey rsa:4096 -nodes -keyout /etc/bridgehead/traefik-tls/privkey.pem -out /etc/bridgehead/traefik-tls/fullchain.pem -days 3650 -subj "/CN=$HOST" fi -if [ -e /etc/bridgehead/vault.conf ]; then +if [ -e "${CONFIG_DIR}"vault.conf ]; then if [ "$(stat -c "%a %U" /etc/bridgehead/vault.conf)" != "600 bridgehead" ]; then fail_and_report 1 "/etc/bridgehead/vault.conf has wrong owner/permissions. To correct this issue, run chmod 600 /etc/bridgehead/vault.conf && chown bridgehead /etc/bridgehead/vault.conf." fi @@ -64,7 +66,7 @@ fi log INFO "Checking network access ($BROKER_URL_FOR_PREREQ) ..." -source /etc/bridgehead/${PROJECT}.conf +source "${CONFIG_DIR}${PROJECT}".conf source ${PROJECT}/vars if [ "${PROJECT}" != "minimal" ]; then @@ -92,10 +94,10 @@ if [ "${PROJECT}" != "minimal" ]; then fi fi checkPrivKey() { - if [ -e /etc/bridgehead/pki/${SITE_ID}.priv.pem ]; then + if [ -e "${CONFIG_DIR}pki/${SITE_ID}.priv.pem" ]; then log INFO "Success - private key found." else - log ERROR "Unable to find private key at /etc/bridgehead/pki/${SITE_ID}.priv.pem. To fix, please run\n bridgehead enroll ${PROJECT}\nand follow the instructions." + log ERROR "Unable to find private key at ${CONFIG_DIR}pki/${SITE_ID}.priv.pem. To fix, please run\n bridgehead enroll ${PROJECT}\nand follow the instructions." return 1 fi return 0 @@ -107,6 +109,11 @@ else checkPrivKey || exit 1 fi +for dir in "${CONFIG_DIR}" "${COMPONENT_DIR}"; do + log INFO "Checking branch: $(cd $dir && echo "$dir $(git branch --show-current)")" + hc_send log "Checking branch: $(cd $dir && echo "$dir $(git branch --show-current)")" +done + log INFO "Success - all prerequisites are met!" hc_send log "Success - all prerequisites are met!"