#!/usr/bin/env bash set -euo pipefail # Synthetic probe for orchestrator infra (postgres, valkey). # Runs lightweight checks and writes a status file under out/orchestrator-probe/. COMPOSE_FILE=${COMPOSE_FILE:-devops/compose/docker-compose.stella-ops.yml} STATE_DIR=${STATE_DIR:-out/orchestrator-probe} mkdir -p "$STATE_DIR" log() { printf "[probe] %s\n" "$*"; } require() { command -v "$1" >/dev/null 2>&1 || { echo "missing $1" >&2; exit 1; }; } require docker timestamp() { date -u +%Y-%m-%dT%H:%M:%SZ; } log "compose file: $COMPOSE_FILE" PG_OK=0 VALKEY_OK=0 if docker compose -f "$COMPOSE_FILE" ps stellaops-postgres >/dev/null 2>&1; then if docker compose -f "$COMPOSE_FILE" exec -T stellaops-postgres psql -U stellaops -tAc "select 1" | grep -q 1; then PG_OK=1 fi fi if docker compose -f "$COMPOSE_FILE" ps stellaops-valkey >/dev/null 2>&1; then if docker compose -f "$COMPOSE_FILE" exec -T stellaops-valkey valkey-cli ping | grep -qi pong; then # publish & subscribe quick check docker compose -f "$COMPOSE_FILE" exec -T stellaops-valkey valkey-cli publish probe.ping "ok" >/dev/null 2>&1 || true VALKEY_OK=1 fi fi cat > "$STATE_DIR/status.txt" <