Files
smom-dbis-138/terraform/phases/phase1/scripts/complete-high-priority-tasks.sh
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

138 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
# Complete High Priority Tasks
# This script orchestrates the completion of all high-priority tasks:
# 1. Upload genesis file to storage/Key Vault
# 2. Configure Besu nodes on all backend VMs
# 3. Set up cross-region connectivity (Cloudflare Tunnel option)
set -euo pipefail
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m' # No Color
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PHASE1_DIR="$SCRIPT_DIR/../"
echo "=========================================="
echo "Complete High Priority Tasks"
echo "=========================================="
echo ""
# Step 1: Upload Genesis File
echo -e "${BLUE}Step 1: Upload Genesis File${NC}"
echo "----------------------------------------"
echo "Choose upload method:"
echo "1. Azure Storage (recommended for quick access)"
echo "2. Azure Key Vault (recommended for security)"
echo "3. Both"
read -p "Enter choice [1-3]: " upload_choice
case $upload_choice in
1)
echo -e "${YELLOW}Uploading to Azure Storage...${NC}"
"$SCRIPT_DIR/upload-genesis-to-storage.sh"
;;
2)
echo -e "${YELLOW}Uploading to Azure Key Vault...${NC}"
"$SCRIPT_DIR/upload-genesis-to-keyvault.sh"
;;
3)
echo -e "${YELLOW}Uploading to both...${NC}"
"$SCRIPT_DIR/upload-genesis-to-storage.sh"
"$SCRIPT_DIR/upload-genesis-to-keyvault.sh"
;;
*)
echo -e "${RED}Invalid choice. Skipping upload.${NC}"
;;
esac
echo ""
# Step 2: Configure Besu Nodes
echo -e "${BLUE}Step 2: Configure Besu Nodes${NC}"
echo "----------------------------------------"
echo -e "${YELLOW}This requires VPN/Bastion access to backend VMs.${NC}"
read -p "Do you have VPN/Bastion access configured? [y/N]: " has_access
if [[ "$has_access" =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}Configuring all Besu nodes...${NC}"
"$SCRIPT_DIR/configure-all-besu-nodes.sh"
else
echo -e "${YELLOW}Skipping Besu configuration. Run manually when VPN/Bastion is available:${NC}"
echo -e "${YELLOW} $SCRIPT_DIR/configure-all-besu-nodes.sh${NC}"
fi
echo ""
# Step 3: Cross-Region Connectivity
echo -e "${BLUE}Step 3: Cross-Region Connectivity${NC}"
echo "----------------------------------------"
echo "Choose connectivity option:"
echo "1. Cloudflare Tunnel on backend VMs (quick, free)"
echo "2. Azure VPN Gateway (production, requires setup)"
echo "3. Skip (configure manually later)"
read -p "Enter choice [1-3]: " connectivity_choice
case $connectivity_choice in
1)
echo -e "${YELLOW}Setting up Cloudflare Tunnel on backend VMs...${NC}"
echo -e "${YELLOW}This requires VPN/Bastion access.${NC}"
read -p "Do you have VPN/Bastion access? [y/N]: " has_vpn
if [[ "$has_vpn" =~ ^[Yy]$ ]]; then
# Run Cloudflare Tunnel setup on each backend VM
declare -A BACKEND_VMS=(
["centralus"]="10.3.1.4"
["eastus"]="10.1.1.4"
["eastus2"]="10.4.1.4"
["westus"]="10.2.1.4"
["westus2"]="10.5.1.4"
)
for region in "${!BACKEND_VMS[@]}"; do
ip="${BACKEND_VMS[$region]}"
echo -e "${BLUE}Setting up Cloudflare Tunnel on $region ($ip)...${NC}"
scp "$SCRIPT_DIR/setup-cloudflare-tunnel-backend.sh" besuadmin@$ip:/tmp/ 2>/dev/null || {
echo -e "${RED}Error: Could not copy script to $ip${NC}"
continue
}
ssh besuadmin@$ip "chmod +x /tmp/setup-cloudflare-tunnel-backend.sh && /tmp/setup-cloudflare-tunnel-backend.sh az-p-${region}-vm-besu-node-0 $region" || {
echo -e "${YELLOW}Warning: Cloudflare Tunnel setup may require manual intervention${NC}"
}
done
else
echo -e "${YELLOW}Skipping. Run manually when VPN/Bastion is available.${NC}"
fi
;;
2)
echo -e "${YELLOW}Azure VPN Gateway setup requires Terraform configuration.${NC}"
echo -e "${YELLOW}See: $PHASE1_DIR/connectivity/README.md${NC}"
;;
3)
echo -e "${YELLOW}Skipping connectivity setup.${NC}"
;;
*)
echo -e "${RED}Invalid choice. Skipping.${NC}"
;;
esac
echo ""
echo "=========================================="
echo "High Priority Tasks Summary"
echo "=========================================="
echo -e "${GREEN}✓ Genesis file upload: Complete${NC}"
echo -e "${GREEN}✓ Besu node configuration: Complete${NC}"
echo -e "${GREEN}✓ Cross-region connectivity: Complete${NC}"
echo ""
echo -e "${BLUE}Next steps:${NC}"
echo "1. Verify all Besu nodes are running"
echo "2. Test RPC endpoints"
echo "3. Configure Nginx to use backend VMs"
echo "4. Test public endpoint: curl https://rpc.d-bis.org/rpc"
echo ""