Files
smom-dbis-138/scripts/deployment/create-terraform-backend.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

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"