M48: harden demo operations and offsite recovery
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
root="${MOBILITYOPS_DEPLOY_ROOT:-/mnt/user/appdata/mobilityops}"
|
||||
project="${COMPOSE_PROJECT_NAME:-mobilityops}"
|
||||
revision="$(cat "$root/.deploy/source-revision")"
|
||||
release_dir="$root/.deploy/releases/$revision"
|
||||
[ -d "$release_dir" ] || { echo "Active release directory is missing" >&2; exit 1; }
|
||||
|
||||
history="$(tail -n 1 "$root/.deploy/release-history.log")"
|
||||
# shellcheck disable=SC2086
|
||||
set -- $history
|
||||
[ "$1" = "$revision" ] || { echo "Release history does not match active revision" >&2; exit 1; }
|
||||
export MOBILITYOPS_API_IMAGE="$2" MOBILITYOPS_WEB_IMAGE="$3"
|
||||
compose="docker compose --env-file $root/.env -p $project -f $release_dir/compose.yaml -f $release_dir/compose.unraid.yaml -f $release_dir/compose.observability.yaml -f $release_dir/compose.release.yaml --profile observability"
|
||||
|
||||
$compose up --no-build -d db backup prometheus alertmanager grafana
|
||||
for service in db backup prometheus alertmanager grafana; do
|
||||
attempt=0
|
||||
until status="$(docker inspect --format '{{if .State.Health}}{{.State.Health.Status}}{{else}}{{.State.Status}}{{end}}' "$project-$service-1" 2>/dev/null)" \
|
||||
&& [ "$status" = "healthy" ]; do
|
||||
attempt=$((attempt + 1))
|
||||
[ "$attempt" -lt 60 ] || { echo "$service did not become healthy" >&2; exit 1; }
|
||||
sleep 5
|
||||
done
|
||||
done
|
||||
echo "Refreshed Fleet Ops infrastructure for $revision"
|
||||
Reference in New Issue
Block a user