Harden backup and posture checks
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../../.." && pwd)}"
|
||||
POSTURE_CHECK="${POSTURE_CHECK:-$REPO_ROOT/services/posture-check/posture-check.sh}"
|
||||
FRESHNESS_CHECK="${FRESHNESS_CHECK:-$REPO_ROOT/ops/restore-tests/check-restore-freshness.sh}"
|
||||
PRE_BACKUP_DUMPS="${PRE_BACKUP_DUMPS:-$SCRIPT_DIR/pre-backup-dumps.sh}"
|
||||
NTFY_SCRIPT="${NTFY_SCRIPT:-$REPO_ROOT/ops/restore-tests/send-ntfy.sh}"
|
||||
NTFY_TOPIC="${NTFY_TOPIC:-kallilab-critical}"
|
||||
|
||||
notify_failure() {
|
||||
local step="$1"
|
||||
local message="$2"
|
||||
if [ -x "$NTFY_SCRIPT" ]; then
|
||||
"$NTFY_SCRIPT" "$NTFY_TOPIC" "Borg pre-hook failed: $step" "$message" high || true
|
||||
fi
|
||||
}
|
||||
|
||||
run_step() {
|
||||
local step="$1"
|
||||
shift
|
||||
|
||||
echo "[pre-borg] Running $step"
|
||||
if "$@"; then
|
||||
echo "[pre-borg] OK: $step"
|
||||
else
|
||||
rc=$?
|
||||
notify_failure "$step" "Command failed with exit code $rc: $*"
|
||||
exit "$rc"
|
||||
fi
|
||||
}
|
||||
|
||||
run_step "posture-check" "$POSTURE_CHECK"
|
||||
run_step "pre-backup-dumps" "$PRE_BACKUP_DUMPS"
|
||||
run_step "restore-freshness" "$FRESHNESS_CHECK"
|
||||
|
||||
echo "[pre-borg] All pre-flight checks passed"
|
||||
Reference in New Issue
Block a user