#!/usr/bin/env bash # ============================================================================ # BLACKROAD OS, INC. - PROPRIETARY AND CONFIDENTIAL # Copyright (c) 2025-2026 BlackRoad OS, Inc. All Rights Reserved. # ============================================================================ # br-cluster — live cluster status set -eo pipefail source "$HOME/.blackroad/config/nodes.sh" 2>/dev/null || { PINK='\033[38;5;205m'; AMBER='\033[38;5;214m'; GREEN='\033[38;5;82m' RED='\033[38;5;196m'; BLUE='\033[38;5;69m'; RESET='\033[0m' } declare -A NODE_ROLE=( [alice]="Gateway/DNS" [cecilia]="AI Primary" [octavia]="Storage/Gitea" [aria]="Portainer" [lucidia]="Services" [anastasia]="Cloud Hub" [gematria]="Cloud Edge" ) case "${1:-status}" in status) printf '%b╔══════════════════════════════════════════╗%b\n' "$PINK" "$RESET" printf '%b║%b BLACKROAD CLUSTER %b║%b\n' "$PINK" "$RESET" "$PINK" "$RESET" printf '%b╚══════════════════════════════════════════╝%b\n' "$PINK" "$RESET" for node in "${ALL_NODES[@]}"; do local ip="${NODE_IP[$node]:-}" [[ -z "$ip" ]] && continue local role="${NODE_ROLE[$node]:-Node}" printf ' ' if br_ping "$node" 2>/dev/null; then printf '%b●%b %-10s %b%-14s%b %b%s%b\n' "$GREEN" "$RESET" "$node" "$BLUE" "$role" "$RESET" "$GREEN" "$ip" "$RESET" else printf '%b○%b %-10s %b%-14s%b %boffline%b\n' "$RED" "$RESET" "$node" "$BLUE" "$role" "$RESET" "$RED" "$RESET" fi done ;; nodes) printf '%-12s %-16s %-14s %s\n' "NODE" "IP" "ROLE" "STATUS" printf '%-12s %-16s %-14s %s\n' "────" "──" "────" "──────" for node in "${ALL_NODES[@]}"; do local ip="${NODE_IP[$node]:-}" [[ -z "$ip" ]] && continue local role="${NODE_ROLE[$node]:-Node}" local status="down" br_ping "$node" 2>/dev/null && status="up" printf '%-12s %-16s %-14s %s\n' "$node" "$ip" "$role" "$status" done ;; ssh) NODE="${2:-alice}" local target target=$(br_ssh_target "$NODE" 2>/dev/null) || { echo "Unknown node: $NODE"; exit 1; } ssh $BR_SSH_OPTS "$target" ;; *) echo "Usage: br-cluster [status|nodes|ssh ]" ;; esac