- Add Cloud for Sovereignty landing zone architecture and deployment - Implement complete legal document management system - Reorganize documentation with improved navigation - Add infrastructure improvements (Dockerfiles, K8s, monitoring) - Add operational improvements (graceful shutdown, rate limiting, caching) - Create comprehensive project structure documentation - Add Azure deployment automation scripts - Improve repository navigation and organization
99 lines
3.0 KiB
Bash
Executable File
99 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
||
# Load Azure environment variables from .env file
|
||
# Usage: source infra/scripts/azure-load-env.sh
|
||
|
||
set -e
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||
ENV_FILE="$PROJECT_ROOT/.env"
|
||
TERRAFORM_ENV_FILE="$PROJECT_ROOT/infra/terraform/.env"
|
||
|
||
echo "🔧 Loading Azure environment variables..."
|
||
|
||
# Check for .env file in project root
|
||
if [ -f "$ENV_FILE" ]; then
|
||
echo "Loading from: $ENV_FILE"
|
||
set -a
|
||
source "$ENV_FILE"
|
||
set +a
|
||
elif [ -f "$TERRAFORM_ENV_FILE" ]; then
|
||
echo "Loading from: $TERRAFORM_ENV_FILE"
|
||
set -a
|
||
source "$TERRAFORM_ENV_FILE"
|
||
set +a
|
||
else
|
||
echo "⚠️ No .env file found. Looking for:"
|
||
echo " - $ENV_FILE"
|
||
echo " - $TERRAFORM_ENV_FILE"
|
||
echo ""
|
||
echo "Creating example file..."
|
||
cp "$PROJECT_ROOT/infra/terraform/.env.example" "$TERRAFORM_ENV_FILE"
|
||
echo "✅ Created $TERRAFORM_ENV_FILE"
|
||
echo "Please edit it with your Azure credentials and run this script again."
|
||
return 1
|
||
fi
|
||
|
||
# Map AZURE_* to ARM_* if needed (for Terraform compatibility)
|
||
if [ -n "$AZURE_SUBSCRIPTION_ID" ] && [ -z "$ARM_SUBSCRIPTION_ID" ]; then
|
||
export ARM_SUBSCRIPTION_ID="$AZURE_SUBSCRIPTION_ID"
|
||
fi
|
||
|
||
if [ -n "$AZURE_TENANT_ID" ] && [ -z "$ARM_TENANT_ID" ]; then
|
||
export ARM_TENANT_ID="$AZURE_TENANT_ID"
|
||
fi
|
||
|
||
if [ -n "$AZURE_LOCATION" ] && [ -z "$ARM_LOCATION" ]; then
|
||
export ARM_LOCATION="$AZURE_LOCATION"
|
||
fi
|
||
|
||
# Validate required variables (check both ARM_* and AZURE_*)
|
||
SUBSCRIPTION_ID="${ARM_SUBSCRIPTION_ID:-$AZURE_SUBSCRIPTION_ID}"
|
||
TENANT_ID="${ARM_TENANT_ID:-$AZURE_TENANT_ID}"
|
||
|
||
MISSING_VARS=()
|
||
|
||
if [ -z "$SUBSCRIPTION_ID" ]; then
|
||
MISSING_VARS+=("ARM_SUBSCRIPTION_ID or AZURE_SUBSCRIPTION_ID")
|
||
fi
|
||
|
||
if [ -z "$TENANT_ID" ]; then
|
||
MISSING_VARS+=("ARM_TENANT_ID or AZURE_TENANT_ID")
|
||
fi
|
||
|
||
if [ ${#MISSING_VARS[@]} -gt 0 ]; then
|
||
echo "❌ Missing required environment variables:"
|
||
for var in "${MISSING_VARS[@]}"; do
|
||
echo " - $var"
|
||
done
|
||
echo ""
|
||
echo "Please set these in your .env file."
|
||
return 1
|
||
fi
|
||
|
||
# Set Terraform variables from environment (use mapped values)
|
||
export TF_VAR_subscription_id="${SUBSCRIPTION_ID}"
|
||
export TF_VAR_tenant_id="${TENANT_ID}"
|
||
export TF_VAR_client_id="${ARM_CLIENT_ID:-$AZURE_CLIENT_ID:-}"
|
||
export TF_VAR_client_secret="${ARM_CLIENT_SECRET:-$AZURE_CLIENT_SECRET:-}"
|
||
|
||
# Set Azure CLI defaults if using CLI auth
|
||
if [ -z "$ARM_CLIENT_ID" ] && [ -z "$AZURE_CLIENT_ID" ]; then
|
||
echo "ℹ️ Using Azure CLI authentication (no service principal set)"
|
||
az account set --subscription "$SUBSCRIPTION_ID" 2>/dev/null || true
|
||
fi
|
||
|
||
echo "✅ Environment variables loaded"
|
||
echo ""
|
||
echo "Azure Configuration:"
|
||
echo " Subscription ID: ${SUBSCRIPTION_ID:0:8}...${SUBSCRIPTION_ID: -4}"
|
||
echo " Tenant ID: ${TENANT_ID:0:8}...${TENANT_ID: -4}"
|
||
echo " Location: ${ARM_LOCATION:-${AZURE_LOCATION:-westeurope}}"
|
||
echo " Environment: ${TF_VAR_environment:-dev}"
|
||
if [ -n "$AZURE_MANAGEMENT_GROUP_ID" ]; then
|
||
echo " Management Group: $AZURE_MANAGEMENT_GROUP_ID"
|
||
fi
|
||
echo ""
|
||
echo "You can now run Terraform commands."
|
||
|