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.
This commit is contained in:
86
scripts/vm-deployment/scale-vmss.sh
Executable file
86
scripts/vm-deployment/scale-vmss.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Scale VM Scale Set
|
||||
# This script scales a VM Scale Set up or down
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
# Configuration
|
||||
RESOURCE_GROUP="${RESOURCE_GROUP:-defi-oracle-mainnet-rg}"
|
||||
VMSS_NAME="${1:-}"
|
||||
NEW_CAPACITY="${2:-}"
|
||||
|
||||
|
||||
if [ -z "$VMSS_NAME" ] || [ -z "$NEW_CAPACITY" ]; then
|
||||
log_error "Error: VMSS name and capacity required"
|
||||
echo "Usage: $0 <vmss-name> <new-capacity>"
|
||||
echo "Example:"
|
||||
echo " $0 besu-rpc-vmss 5"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validate capacity
|
||||
if ! [[ "$NEW_CAPACITY" =~ ^[0-9]+$ ]]; then
|
||||
log_error "Error: Capacity must be a number"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$NEW_CAPACITY" -lt 1 ]; then
|
||||
log_error "Error: Capacity must be at least 1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_success "Scaling VMSS: $VMSS_NAME to $NEW_CAPACITY instances"
|
||||
|
||||
# Get current capacity
|
||||
CURRENT_CAPACITY=$(az vmss show --resource-group "$RESOURCE_GROUP" --name "$VMSS_NAME" --query "sku.capacity" -o tsv 2>/dev/null || echo "0")
|
||||
|
||||
if [ "$CURRENT_CAPACITY" == "0" ]; then
|
||||
log_error "Error: VMSS not found: $VMSS_NAME"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_warn "Current capacity: $CURRENT_CAPACITY"
|
||||
log_warn "New capacity: $NEW_CAPACITY"
|
||||
|
||||
if [ "$CURRENT_CAPACITY" -eq "$NEW_CAPACITY" ]; then
|
||||
log_warn "Capacity is already $NEW_CAPACITY"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Confirm scaling
|
||||
read -p "Do you want to scale from $CURRENT_CAPACITY to $NEW_CAPACITY? (y/N) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Scaling cancelled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Scale VMSS
|
||||
log_warn "Scaling VMSS..."
|
||||
az vmss scale \
|
||||
--resource-group "$RESOURCE_GROUP" \
|
||||
--name "$VMSS_NAME" \
|
||||
--new-capacity "$NEW_CAPACITY"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
log_success "✓ VMSS scaled successfully"
|
||||
|
||||
# Wait for instances to be ready
|
||||
log_warn "Waiting for instances to be ready..."
|
||||
sleep 30
|
||||
|
||||
# Check instance status
|
||||
INSTANCES=$(az vmss list-instances --resource-group "$RESOURCE_GROUP" --name "$VMSS_NAME" --query "[].{Name:name, ProvisioningState:provisioningState}" -o json 2>/dev/null || echo "[]")
|
||||
echo "$INSTANCES" | jq -r '.[] | "\(.Name): \(.ProvisioningState)"'
|
||||
else
|
||||
log_error "✗ Failed to scale VMSS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_success "Scaling complete!"
|
||||
|
||||
Reference in New Issue
Block a user