Files
smom-dbis-138/scripts/azure/check-and-continue.sh

68 lines
2.7 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Continuously check status and continue with next steps
set -e
SUBSCRIPTION_ID="fc08d829-4f14-413d-ab27-ce024425db0b"
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
TERRAFORM_DIR="$PROJECT_ROOT/terraform/well-architected/cloud-sovereignty"
echo "=== Continuous Status Check & Continue ==="
echo ""
while true; do
# Check status
FAILED=$(az aks list --subscription "$SUBSCRIPTION_ID" \
--query "[?contains(name, 'az-p-') && provisioningState == 'Failed'].name" -o tsv 2>/dev/null | wc -l)
CANCELED=$(az aks list --subscription "$SUBSCRIPTION_ID" \
--query "[?contains(name, 'az-p-') && provisioningState == 'Canceled'].name" -o tsv 2>/dev/null | wc -l)
DELETING=$(az aks list --subscription "$SUBSCRIPTION_ID" \
--query "[?contains(name, 'az-p-') && provisioningState == 'Deleting'].name" -o tsv 2>/dev/null | wc -l)
READY=$(az aks list --subscription "$SUBSCRIPTION_ID" \
--query "[?contains(name, 'az-p-') && provisioningState == 'Succeeded'].name" -o tsv 2>/dev/null | wc -l)
CREATING=$(az aks list --subscription "$SUBSCRIPTION_ID" \
--query "[?contains(name, 'az-p-') && provisioningState == 'Creating'].name" -o tsv 2>/dev/null | wc -l)
echo "$(date '+%Y-%m-%d %H:%M:%S') - Status: Ready=$READY, Failed=$FAILED, Canceled=$CANCELED, Deleting=$DELETING, Creating=$CREATING"
# If deletions complete and Terraform not started, start it
if [ "$DELETING" -eq 0 ] && [ "$FAILED" -eq 0 ] && [ "$CANCELED" -eq 0 ]; then
if [ ! -f /tmp/terraform-apply-redeploy.log ] || ! ps aux | grep -q "[t]erraform apply"; then
echo "✅ All deletions complete! Starting Terraform deployment..."
cd "$TERRAFORM_DIR"
terraform init -upgrade >/dev/null 2>&1 || true
terraform apply -parallelism=128 -auto-approve 2>&1 | tee /tmp/terraform-apply-redeploy.log &
echo "✅ Terraform deployment started"
break
fi
fi
# If Terraform complete and clusters ready, run next steps
if [ -f /tmp/terraform-apply-redeploy.log ] && tail -10 /tmp/terraform-apply-redeploy.log | grep -q "Apply complete"; then
if [ "$READY" -ge 20 ]; then
echo "✅ Terraform deployment complete with $READY ready clusters!"
echo "Starting next steps..."
cd "$PROJECT_ROOT"
./scripts/deployment/wait-and-run-all-next-steps.sh 2>&1 | tee /tmp/next-steps-after-fix.log &
echo "✅ Next steps started"
break
fi
fi
# Check if still processing
if [ "$DELETING" -gt 0 ] || [ "$CREATING" -gt 0 ]; then
echo " ⏳ Still processing... (checking again in 30 seconds)"
sleep 30
else
echo " ⏸️ Waiting... (checking again in 60 seconds)"
sleep 60
fi
done
echo ""
echo "✅ Monitoring complete"