70 lines
2.3 KiB
Bash
70 lines
2.3 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Standardize Resource Group Naming
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
cd "$(dirname "$0")/../.."
|
||
|
|
|
||
|
|
# Color codes
|
||
|
|
|
||
|
|
echo "==================================================================="
|
||
|
|
echo " STANDARDIZING RESOURCE GROUP NAMING"
|
||
|
|
echo "==================================================================="
|
||
|
|
|
||
|
|
# Load environment
|
||
|
|
if [ -f .env ]; then
|
||
|
|
source .env 2>/dev/null || true
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Set subscription
|
||
|
|
if [ -n "$AZURE_SUBSCRIPTION_ID" ]; then
|
||
|
|
az account set --subscription "$AZURE_SUBSCRIPTION_ID"
|
||
|
|
log_success "✅ Set subscription to: $AZURE_SUBSCRIPTION_ID"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ AZURE_SUBSCRIPTION_ID not set in .env"
|
||
|
|
fi
|
||
|
|
|
||
|
|
log_info "Current Resource Groups:"
|
||
|
|
|
||
|
|
# Get all resource groups
|
||
|
|
az group list --query "[].{Name:name, Location:location}" -o table
|
||
|
|
|
||
|
|
log_info "Expected Naming Convention:"
|
||
|
|
echo " Format: az-{env}-{region}-rg-{type}-{instance}"
|
||
|
|
echo " Example: az-p-we-rg-comp-001"
|
||
|
|
|
||
|
|
# Check terraform.tfvars
|
||
|
|
if [ -f terraform/terraform.tfvars ]; then
|
||
|
|
log_info "Checking terraform.tfvars..."
|
||
|
|
|
||
|
|
# Check if resource_group_name is set
|
||
|
|
RG_NAME=$(grep -E "^resource_group_name" terraform/terraform.tfvars | head -1 | sed 's/.*= *"\([^"]*\)".*/\1/' | tr -d ' ')
|
||
|
|
|
||
|
|
if [ -n "$RG_NAME" ] && [ "$RG_NAME" != "" ]; then
|
||
|
|
echo " Current: $RG_NAME"
|
||
|
|
|
||
|
|
# Check if it follows convention
|
||
|
|
if [[ "$RG_NAME" =~ ^az-[pdt]-[a-z]+-rg-(net|comp|stor|sec|mon|tfstate)-[0-9]{3}$ ]]; then
|
||
|
|
echo -e " ${GREEN}✅ Follows naming convention${NC}"
|
||
|
|
else
|
||
|
|
echo -e " ${YELLOW}⚠️ Does not follow naming convention${NC}"
|
||
|
|
echo " Recommended: Leave empty to use default (az-p-we-rg-comp-001)"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo -e " ${GREEN}✅ Using default naming (empty)${NC}"
|
||
|
|
echo " Will use: az-p-we-rg-comp-001 (from locals.tf)"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
log_info "Recommendations:"
|
||
|
|
echo "1. Ensure terraform.tfvars resource_group_name is empty (uses default)"
|
||
|
|
echo "2. Use Well-Architected Framework for multi-RG deployment:"
|
||
|
|
echo " - az-p-we-rg-net-001 (network)"
|
||
|
|
echo " - az-p-we-rg-comp-001 (compute)"
|
||
|
|
echo " - az-p-we-rg-stor-001 (storage)"
|
||
|
|
echo " - az-p-we-rg-sec-001 (security)"
|
||
|
|
echo " - az-p-we-rg-mon-001 (monitoring)"
|
||
|
|
echo "3. For existing non-standard RGs, consider:"
|
||
|
|
echo " - Migrating resources to properly named RGs"
|
||
|
|
echo " - Or updating terraform.tfvars to match existing names"
|