Files
smom-dbis-138/scripts/azure/get-all-region-quotas.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

163 lines
5.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Get vCPU quotas for all non-US commercial Azure regions
set -e
echo "=== Azure vCPU Quota Report - Non-US Commercial Regions ==="
echo ""
echo "Querying quotas for all non-US commercial regions..."
echo ""
# Output file
OUTPUT_FILE="docs/AZURE_VCPU_QUOTAS_ALL_REGIONS.md"
echo "# Azure vCPU Quota Report - All Non-US Commercial Regions" > "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "Generated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "## Summary" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "| Region | Display Name | Total vCPUs | Used | Available | Status |" >> "$OUTPUT_FILE"
echo "|--------|--------------|-------------|------|-----------|--------|" >> "$OUTPUT_FILE"
# Track totals
TOTAL_REGIONS=0
TOTAL_QUOTA=0
TOTAL_USED=0
TOTAL_AVAILABLE=0
# Define all non-US commercial regions
REGIONS=(
"westeurope"
"northeurope"
"uksouth"
"ukwest"
"francecentral"
"francesouth"
"germanynorth"
"germanywestcentral"
"switzerlandnorth"
"switzerlandwest"
"italynorth"
"norwayeast"
"norwaywest"
"polandcentral"
"spaincentral"
"swedencentral"
"belgiumcentral"
"australiaeast"
"australiasoutheast"
"eastasia"
"southeastasia"
"centralindia"
"southindia"
"westindia"
"japaneast"
"japanwest"
"koreacentral"
"koreasouth"
"newzealandnorth"
"malaysiawest"
"indonesiacentral"
"uaenorth"
"uaecentral"
"qatarcentral"
"israelcentral"
"southafricanorth"
"southafricawest"
"brazilsouth"
"brazilsoutheast"
"canadacentral"
"canadaeast"
"mexicocentral"
"chilecentral"
)
# Query each region
for region in "${REGIONS[@]}"; do
TOTAL_REGIONS=$((TOTAL_REGIONS + 1))
echo -n "Querying $region... "
# Get quota information - use JSON output for better parsing
QUOTA_JSON=$(az vm list-usage --location "$region" --query "[?name.value=='cores']" -o json 2>/dev/null || echo "[]")
if [ "$QUOTA_JSON" == "[]" ] || [ -z "$QUOTA_JSON" ]; then
echo "❌ Not available or error"
echo "| $region | N/A | N/A | N/A | N/A | ❌ Error/Not Available |" >> "$OUTPUT_FILE"
continue
fi
# Parse JSON using jq if available, otherwise use awk
if command -v jq &> /dev/null; then
CURRENT=$(echo "$QUOTA_JSON" | jq -r '.[0].currentValue // 0')
LIMIT=$(echo "$QUOTA_JSON" | jq -r '.[0].limit // 0')
else
# Fallback to awk parsing
CURRENT=$(echo "$QUOTA_JSON" | grep -o '"currentValue":[0-9]*' | grep -o '[0-9]*' || echo "0")
LIMIT=$(echo "$QUOTA_JSON" | grep -o '"limit":[0-9]*' | grep -o '[0-9]*' || echo "0")
fi
# Validate numbers
if ! [[ "$CURRENT" =~ ^[0-9]+$ ]] || ! [[ "$LIMIT" =~ ^[0-9]+$ ]]; then
echo "❌ Invalid data"
echo "| $region | N/A | N/A | N/A | N/A | ❌ Invalid Data |" >> "$OUTPUT_FILE"
continue
fi
AVAILABLE=$((LIMIT - CURRENT))
# Calculate totals
TOTAL_QUOTA=$((TOTAL_QUOTA + LIMIT))
TOTAL_USED=$((TOTAL_USED + CURRENT))
TOTAL_AVAILABLE=$((TOTAL_AVAILABLE + AVAILABLE))
# Determine status
if [ "$AVAILABLE" -ge 8 ]; then
STATUS="✅ Sufficient (8+ available)"
elif [ "$AVAILABLE" -ge 2 ]; then
STATUS="⚠️ Limited (2-7 available)"
else
STATUS="❌ Insufficient (<2 available)"
fi
# Get region display name
DISPLAY_NAME=$(az account list-locations --query "[?name=='$region'].displayName" -o tsv 2>/dev/null || echo "$region")
echo "$CURRENT/$LIMIT (Available: $AVAILABLE)"
echo "| $region | $DISPLAY_NAME | $LIMIT | $CURRENT | $AVAILABLE | $STATUS |" >> "$OUTPUT_FILE"
done
echo "" >> "$OUTPUT_FILE"
echo "## Totals" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "- **Total Regions Queried**: $TOTAL_REGIONS" >> "$OUTPUT_FILE"
echo "- **Total vCPU Quota**: $TOTAL_QUOTA" >> "$OUTPUT_FILE"
echo "- **Total vCPUs Used**: $TOTAL_USED" >> "$OUTPUT_FILE"
echo "- **Total vCPUs Available**: $TOTAL_AVAILABLE" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "## Deployment Requirements" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "### Per-Region Requirements" >> "$OUTPUT_FILE"
echo "- **System Nodes**: 3 × Standard_D2s_v3 = 6 vCPUs" >> "$OUTPUT_FILE"
echo "- **Validator Nodes**: 1 × Standard_B2s = 2 vCPUs" >> "$OUTPUT_FILE"
echo "- **Total per Region**: 8 vCPUs" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "### Selected Regions for Deployment" >> "$OUTPUT_FILE"
echo "1. West Europe (westeurope)" >> "$OUTPUT_FILE"
echo "2. North Europe (northeurope)" >> "$OUTPUT_FILE"
echo "3. UK South (uksouth)" >> "$OUTPUT_FILE"
echo "4. France Central (francecentral)" >> "$OUTPUT_FILE"
echo "5. Germany West Central (germanywestcentral)" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "## Notes" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "- Quota is per-region and per-subscription" >> "$OUTPUT_FILE"
echo "- Some regions may not be available in all subscriptions" >> "$OUTPUT_FILE"
echo "- Quota can be increased via Azure Portal or support request" >> "$OUTPUT_FILE"
echo "- Standard_B2s requires 2 vCPUs per validator node" >> "$OUTPUT_FILE"
echo "- Standard_D2s_v3 requires 2 vCPUs per system node" >> "$OUTPUT_FILE"
echo ""
echo "✅ Quota report generated: $OUTPUT_FILE"