Files
the_order/infra/scripts/azure-load-env.sh
defiQUG 6a8582e54d feat: comprehensive project structure improvements and Cloud for Sovereignty landing zone
- 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
2025-11-13 09:32:55 -08:00

99 lines
3.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
#!/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."