99 lines
3.3 KiB
Bash
99 lines
3.3 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Check Infrastructure Deployment Status
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
cd "$(dirname "$0")/../.."
|
||
|
|
|
||
|
|
# Color codes
|
||
|
|
|
||
|
|
echo "==================================================================="
|
||
|
|
echo " CHAIN-138 INFRASTRUCTURE DEPLOYMENT STATUS"
|
||
|
|
echo "==================================================================="
|
||
|
|
|
||
|
|
# Check Azure
|
||
|
|
log_info "Azure Resources:"
|
||
|
|
RG_NAME=$(cd terraform && terraform output -raw resource_group_name 2>/dev/null || echo "az-p-we-rg-comp-001")
|
||
|
|
CLUSTER_NAME=$(cd terraform && terraform output -raw cluster_name 2>/dev/null || echo "az-p-we-aks-main")
|
||
|
|
|
||
|
|
if az group show --name "$RG_NAME" &> /dev/null; then
|
||
|
|
log_success "✅ Resource Group: $RG_NAME"
|
||
|
|
else
|
||
|
|
log_error "❌ Resource Group not found: $RG_NAME"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if az aks show --resource-group "$RG_NAME" --name "$CLUSTER_NAME" &> /dev/null; then
|
||
|
|
log_success "✅ AKS Cluster: $CLUSTER_NAME"
|
||
|
|
STATUS=$(az aks show --resource-group "$RG_NAME" --name "$CLUSTER_NAME" --query powerState.code -o tsv 2>/dev/null || echo "Unknown")
|
||
|
|
echo " Power State: $STATUS"
|
||
|
|
else
|
||
|
|
log_error "❌ AKS Cluster not found: $CLUSTER_NAME"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check Kubernetes
|
||
|
|
log_info "Kubernetes:"
|
||
|
|
if kubectl cluster-info &> /dev/null 2>&1; then
|
||
|
|
log_success "✅ Cluster accessible"
|
||
|
|
NODES=$(kubectl get nodes --no-headers 2>/dev/null | wc -l)
|
||
|
|
echo " Nodes: $NODES"
|
||
|
|
else
|
||
|
|
log_error "❌ Cluster not accessible"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check Namespaces
|
||
|
|
log_info "Namespaces:"
|
||
|
|
if kubectl get namespace besu-network &> /dev/null 2>&1; then
|
||
|
|
log_success "✅ besu-network"
|
||
|
|
PODS=$(kubectl get pods -n besu-network --no-headers 2>/dev/null | wc -l)
|
||
|
|
READY=$(kubectl get pods -n besu-network --no-headers 2>/dev/null | grep -c "Running\|Completed" || echo "0")
|
||
|
|
echo " Pods: $READY/$PODS ready"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ besu-network not found"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if kubectl get namespace monitoring &> /dev/null 2>&1; then
|
||
|
|
log_success "✅ monitoring"
|
||
|
|
PODS=$(kubectl get pods -n monitoring --no-headers 2>/dev/null | wc -l)
|
||
|
|
READY=$(kubectl get pods -n monitoring --no-headers 2>/dev/null | grep -c "Running\|Completed" || echo "0")
|
||
|
|
echo " Pods: $READY/$PODS ready"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ monitoring not found"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check Helm Releases
|
||
|
|
log_info "Helm Releases:"
|
||
|
|
if helm list -n besu-network 2>/dev/null | grep -q besu-validators; then
|
||
|
|
log_success "✅ besu-validators"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ besu-validators not deployed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if helm list -n besu-network 2>/dev/null | grep -q besu-sentries; then
|
||
|
|
log_success "✅ besu-sentries"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ besu-sentries not deployed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if helm list -n besu-network 2>/dev/null | grep -q besu-rpc; then
|
||
|
|
log_success "✅ besu-rpc"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ besu-rpc not deployed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check RPC Endpoint
|
||
|
|
log_info "RPC Endpoint:"
|
||
|
|
RPC_SVC=$(kubectl get svc -n besu-network -l app=besu-rpc -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "")
|
||
|
|
if [ -n "$RPC_SVC" ]; then
|
||
|
|
RPC_IP=$(kubectl get svc -n besu-network "$RPC_SVC" -o jsonpath='{.status.loadBalancer.ingress[0].ip}' 2>/dev/null || echo "")
|
||
|
|
if [ -n "$RPC_IP" ]; then
|
||
|
|
log_success "✅ RPC Service: $RPC_SVC"
|
||
|
|
echo " Endpoint: http://$RPC_IP:8545"
|
||
|
|
else
|
||
|
|
log_warn "⚠️ RPC Service exists but IP not assigned"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
log_warn "⚠️ RPC Service not found"
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "==================================================================="
|