- 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.
97 lines
3.2 KiB
Bash
Executable File
97 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Create Terraform Backend Storage Account
|
|
# This script creates the storage account for Terraform state if it doesn't exist
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../lib/init.sh"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
|
|
log_info "=== Creating Terraform Backend Storage Account ==="
|
|
|
|
if ! command -v az &> /dev/null; then
|
|
log_warn "⚠️ Azure CLI not found"
|
|
echo "Install Azure CLI: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli"
|
|
exit 1
|
|
fi
|
|
|
|
# Check authentication
|
|
if ! az account show &> /dev/null; then
|
|
log_warn "⚠️ Not authenticated with Azure"
|
|
echo "Run: az login"
|
|
exit 1
|
|
fi
|
|
|
|
# Get subscription and location
|
|
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
|
|
LOCATION="westeurope"
|
|
RESOURCE_GROUP="az-p-we-rg-tfstate-001"
|
|
STORAGE_ACCOUNT="azpwetfstate$(echo $SUBSCRIPTION_ID | cut -c1-8 | tr '[:upper:]' '[:lower:]')"
|
|
CONTAINER="tfstate"
|
|
|
|
echo "Configuration:"
|
|
echo " Resource Group: $RESOURCE_GROUP"
|
|
echo " Storage Account: $STORAGE_ACCOUNT"
|
|
echo " Container: $CONTAINER"
|
|
echo " Location: $LOCATION"
|
|
|
|
# Create resource group if it doesn't exist
|
|
if ! az group show --name "$RESOURCE_GROUP" &> /dev/null; then
|
|
echo "Creating resource group..."
|
|
az group create --name "$RESOURCE_GROUP" --location "$LOCATION" --output none
|
|
log_success "✅ Resource group created"
|
|
else
|
|
log_success "✅ Resource group exists"
|
|
fi
|
|
|
|
# Create storage account if it doesn't exist
|
|
if ! az storage account show --name "$STORAGE_ACCOUNT" --resource-group "$RESOURCE_GROUP" &> /dev/null; then
|
|
echo "Creating storage account..."
|
|
az storage account create \
|
|
--name "$STORAGE_ACCOUNT" \
|
|
--resource-group "$RESOURCE_GROUP" \
|
|
--location "$LOCATION" \
|
|
--sku Standard_LRS \
|
|
--kind StorageV2 \
|
|
--output none
|
|
log_success "✅ Storage account created"
|
|
else
|
|
log_success "✅ Storage account exists"
|
|
fi
|
|
|
|
# Get storage account key
|
|
STORAGE_KEY=$(az storage account keys list \
|
|
--resource-group "$RESOURCE_GROUP" \
|
|
--account-name "$STORAGE_ACCOUNT" \
|
|
--query "[0].value" -o tsv)
|
|
|
|
# Create container if it doesn't exist
|
|
if ! az storage container show --name "$CONTAINER" --account-name "$STORAGE_ACCOUNT" --account-key "$STORAGE_KEY" &> /dev/null; then
|
|
echo "Creating container..."
|
|
az storage container create \
|
|
--name "$CONTAINER" \
|
|
--account-name "$STORAGE_ACCOUNT" \
|
|
--account-key "$STORAGE_KEY" \
|
|
--output none
|
|
log_success "✅ Container created"
|
|
else
|
|
log_success "✅ Container exists"
|
|
fi
|
|
|
|
# Update backend.tf or create .env entry
|
|
log_info "=== Backend Configuration ==="
|
|
echo "Add to .env file:"
|
|
echo " ARM_STORAGE_ACCOUNT_NAME=$STORAGE_ACCOUNT"
|
|
echo " ARM_CONTAINER_NAME=$CONTAINER"
|
|
echo " ARM_RESOURCE_GROUP_NAME=$RESOURCE_GROUP"
|
|
echo " ARM_ACCESS_KEY=$STORAGE_KEY"
|
|
echo "Or update terraform/backend.tf with:"
|
|
echo " resource_group_name = \"$RESOURCE_GROUP\"
|
|
echo " storage_account_name = \"$STORAGE_ACCOUNT\"
|
|
echo " container_name = \"$CONTAINER\"
|
|
echo " key = \"defi-oracle-mainnet.terraform.tfstate\"
|
|
log_success "✅ Backend storage account ready"
|