#!/usr/bin/env bash # Phase 3: CCIP fleet deploy checklist - validate env and print steps. # Usage: ./scripts/ccip/ccip-deploy-checklist.sh [--dry-run] # Does not deploy nodes; validates prerequisites and prints deployment order from CCIP_DEPLOYMENT_SPEC. 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 echo "[Phase 3] CCIP fleet deploy checklist" echo " Spec: docs/07-ccip/CCIP_DEPLOYMENT_SPEC.md" echo "" FAILED=0 # VMID ranges (from spec) echo "VMID ranges:" echo " 5400-5401 Ops/Admin" echo " 5402-5403 Monitoring" echo " 5410-5425 Commit (16)" echo " 5440-5455 Execute (16)" echo " 5470-5476 RMN (5-7)" echo "" # Optional env checks (CCIP often uses Chainlink node env) for v in CCIP_ETH_ROUTER CCIP_ETH_LINK_TOKEN ETH_MAINNET_SELECTOR; do if [[ -z "${!v:-}" ]]; then echo "[WARN] $v not set (required for mainnet CCIP)" ((FAILED++)) || true else echo "[OK] $v set" fi done echo "" echo "Deployment order (from spec):" echo " 1. Deploy Ops/Admin nodes (5400-5401)" echo " 2. Deploy Monitoring nodes (5402-5403)" echo " 3. Deploy Commit nodes (5410-5425)" echo " 4. Deploy Execute nodes (5440-5455)" echo " 5. Deploy RMN nodes (5470-5476)" echo " 6. Configure NAT pools (blocks #2-#4 per NETWORK_ARCHITECTURE)" echo "" echo "Run: see docs/07-ccip/CCIP_DEPLOYMENT_SPEC.md, docs/03-deployment/OPERATIONAL_RUNBOOKS.md ยง CCIP Operations" # Exit 0 so checklist is informational; fix env and re-run if deploying exit 0