Files
smom-dbis-138/scripts/deployment/prepare-all-phases.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

197 lines
5.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Prepare All Deployment Phases
# This script prepares configuration files and scripts for all deployment phases
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
log() {
log_success "[✓] $1"
}
error() {
log_error "[✗] $1"
exit 1
}
warn() {
log_warn "[!] $1"
}
info() {
log_info "[i] $1"
}
section() {
echo
log_info "=== $1 ==="
}
section "Preparing All Deployment Phases"
# Check prerequisites
info "Checking prerequisites..."
# Check tools
TOOLS=("az" "kubectl" "helm" "jq")
MISSING_TOOLS=()
for tool in "${TOOLS[@]}"; do
if command -v "$tool" &> /dev/null; then
log "$tool is installed"
else
warn "$tool is not installed"
MISSING_TOOLS+=("$tool")
fi
done
if [ ${#MISSING_TOOLS[@]} -gt 0 ]; then
warn "Missing tools: ${MISSING_TOOLS[*]}"
info "Install missing tools before proceeding"
fi
# Check Terraform
if command -v terraform &> /dev/null; then
log "Terraform is installed: $(terraform version | head -n 1)"
else
warn "Terraform is not installed"
info "Install with: ./scripts/setup/install-terraform.sh"
fi
# Verify environment
section "Environment Verification"
if [ -f "$PROJECT_ROOT/.env" ]; then
log ".env file exists"
source "$PROJECT_ROOT/.env"
# Check critical variables
CRITICAL_VARS=("AZURE_SUBSCRIPTION_ID" "AZURE_LOCATION" "CLOUDFLARE_ZONE_ID" "CLOUDFLARE_API_TOKEN")
for var in "${CRITICAL_VARS[@]}"; do
if [ -n "${!var:-}" ]; then
log "$var is set"
else
error "$var is not set. Run: ./scripts/deployment/populate-env.sh"
fi
done
else
error ".env file not found. Run: ./scripts/deployment/populate-env.sh"
fi
# Verify keys
section "Key Verification"
KEYS_DIR="$PROJECT_ROOT/keys"
if [ -d "$KEYS_DIR/validators" ] && [ "$(ls -A $KEYS_DIR/validators 2>/dev/null)" ]; then
VALIDATOR_COUNT=$(find "$KEYS_DIR/validators" -name "key.priv" | wc -l)
log "Validator keys found: $VALIDATOR_COUNT"
else
warn "Validator keys not found. Run: ./scripts/key-management/generate-validator-keys.sh 4"
fi
if [ -d "$KEYS_DIR/oracle" ] && [ "$(ls -A $KEYS_DIR/oracle 2>/dev/null)" ]; then
log "Oracle keys found"
else
warn "Oracle keys not found. Run: ./scripts/key-management/generate-oracle-keys.sh"
fi
if [ -f "$PROJECT_ROOT/config/genesis.json" ]; then
log "Genesis file exists"
else
warn "Genesis file not found. Run: ./scripts/generate-genesis.sh"
fi
# Verify Terraform configuration
section "Terraform Configuration"
TERRAFORM_DIR="$PROJECT_ROOT/terraform"
if [ -f "$TERRAFORM_DIR/terraform.tfvars" ]; then
log "terraform.tfvars exists"
# Check key settings
if grep -q 'location = "westeurope"' "$TERRAFORM_DIR/terraform.tfvars"; then
log "Region set to westeurope"
else
warn "Region may not be set to westeurope"
fi
if grep -q 'environment = "prod"' "$TERRAFORM_DIR/terraform.tfvars"; then
log "Environment set to prod"
else
warn "Environment may not be set to prod"
fi
else
warn "terraform.tfvars not found"
fi
if [ -f "$TERRAFORM_DIR/locals.tf" ]; then
log "Naming convention (locals.tf) exists"
else
warn "locals.tf not found - naming convention may not be implemented"
fi
# Check Kubernetes manifests
section "Kubernetes Manifests"
K8S_DIR="$PROJECT_ROOT/k8s"
if [ -d "$K8S_DIR" ]; then
log "Kubernetes manifests directory exists"
# Check for key manifests
KEY_MANIFESTS=("base/namespace.yaml" "base/rpc/statefulset.yaml")
for manifest in "${KEY_MANIFESTS[@]}"; do
if [ -f "$K8S_DIR/$manifest" ]; then
log "Found: $manifest"
else
warn "Missing: $manifest"
fi
done
else
warn "Kubernetes manifests directory not found"
fi
# Check Helm charts
section "Helm Charts"
HELM_DIR="$PROJECT_ROOT/helm"
if [ -d "$HELM_DIR/besu-network" ]; then
log "Helm charts exist"
if [ -f "$HELM_DIR/besu-network/values-validators.yaml" ]; then
log "Validator values file exists"
fi
if [ -f "$HELM_DIR/besu-network/values-sentries.yaml" ]; then
log "Sentry values file exists"
fi
if [ -f "$HELM_DIR/besu-network/values-rpc.yaml" ]; then
log "RPC values file exists"
fi
else
warn "Helm charts not found"
fi
# Summary
section "Preparation Summary"
log "Environment configuration: ✅"
log "Keys generated: ✅"
log "Terraform configuration: ✅"
log "Naming convention: ✅"
if [ ${#MISSING_TOOLS[@]} -eq 0 ] && command -v terraform &> /dev/null; then
log "All tools installed: ✅"
info "Ready to proceed with: cd terraform && terraform init"
else
warn "Some tools are missing"
info "Install missing tools before proceeding"
fi
section "Next Steps"
info "1. Install missing tools (if any)"
info "2. Review terraform/terraform.tfvars"
info "3. Initialize Terraform: cd terraform && terraform init"
info "4. Plan deployment: terraform plan"
info "5. Apply when ready: terraform apply"