#!/usr/bin/env bash # Validate that key IPs and gateway match config/ip-addresses.conf (single source of truth). # Usage: bash scripts/validation/validate-ips-and-gateways.sh set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true EXPECTED_GW="192.168.11.1" FAIL=0 ok() { echo "[✓] $1"; } fail() { echo "[✗] $1"; FAIL=1; } warn() { echo "[⚠] $1"; } echo "" echo "Validate IPs and gateway (source: config/ip-addresses.conf)" echo "Expected gateway: $EXPECTED_GW" echo "" # Gateway GW="${NETWORK_GATEWAY:-}" if [[ "$GW" == "$EXPECTED_GW" ]]; then ok "NETWORK_GATEWAY=$GW" else [[ -z "$GW" ]] && fail "NETWORK_GATEWAY not set (should be $EXPECTED_GW)" || fail "NETWORK_GATEWAY=$GW (expected $EXPECTED_GW)" fi # Proxmox hosts for name in PROXMOX_HOST_ML110 PROXMOX_HOST_R630_01 PROXMOX_HOST_R630_02; do v="${!name:-}" case "$name" in *ML110) exp="192.168.11.10" ;; *R630_01) exp="192.168.11.11" ;; *R630_02) exp="192.168.11.12" ;; *) exp="" ;; esac [[ -n "$exp" ]] && { [[ "$v" == "$exp" ]] && ok "$name=$v" || fail "$name=$v (expected $exp)"; } done # NPMplus v="${IP_NPMPLUS:-}"; [[ "$v" == "192.168.11.167" ]] && ok "IP_NPMPLUS=$v" || fail "IP_NPMPLUS=$v (expected 192.168.11.167)" v="${IP_NPMPLUS_ETH0:-}"; [[ "$v" == "192.168.11.166" ]] && ok "IP_NPMPLUS_ETH0=$v" || warn "IP_NPMPLUS_ETH0=$v (expected 192.168.11.166)" # Key RPC/Blockscout v="${RPC_PUBLIC_1:-}"; [[ "$v" == "192.168.11.221" ]] && ok "RPC_PUBLIC_1=$v" || fail "RPC_PUBLIC_1=$v (expected 192.168.11.221)" v="${RPC_CORE_1:-}"; [[ "$v" == "192.168.11.211" ]] && ok "RPC_CORE_1=$v" || fail "RPC_CORE_1=$v (expected 192.168.11.211)" v="${IP_BLOCKSCOUT:-}"; [[ "$v" == "192.168.11.140" ]] && ok "IP_BLOCKSCOUT=$v" || fail "IP_BLOCKSCOUT=$v (expected 192.168.11.140)" v="${IP_DBIS_FRONTEND:-}"; [[ "$v" == "192.168.11.130" ]] && ok "IP_DBIS_FRONTEND=$v" || fail "IP_DBIS_FRONTEND=$v (expected 192.168.11.130)" # smom-dbis-138-proxmox network.conf gateway if present NC="${PROJECT_ROOT}/smom-dbis-138-proxmox/config/network.conf" if [[ -f "$NC" ]]; then g=$(grep -E '^GATEWAY=' "$NC" 2>/dev/null | cut -d= -f2 | tr -d '"' || true) if [[ "$g" == "$EXPECTED_GW" ]]; then ok "smom-dbis-138-proxmox/config/network.conf GATEWAY=$g" else warn "smom-dbis-138-proxmox/config/network.conf GATEWAY=$g (expected $EXPECTED_GW)" fi fi echo "" [[ $FAIL -eq 0 ]] && exit 0 || exit 1