#!/usr/bin/env bash NAMESPACE="lapodb-postgres" echo "=====================================================" echo "StackGres PostgreSQL klaszter állapot" echo "Dátum: $(date)" echo "=====================================================" echo -e "\n=== Kubernetes node-ok ===\n" kubectl get nodes -o wide echo -e "\n=== PostgreSQL pod-ok ===\n" kubectl get pods -n "$NAMESPACE" -o wide echo -e "\n=== Patroni klaszter állapot ===\n" LEADER_POD=$(kubectl get pods -n "$NAMESPACE" -o name | grep pg-cluster | head -1 | sed 's#pod/##') kubectl exec -n "$NAMESPACE" "$LEADER_POD" -c patroni -- patronictl list 2>/dev/null || "ERROR: patronictl nem található" echo -e "\n=== PostgreSQL pod-ok elhelyezkedése ===\n" printf "%-20s %-10s %-15s %-8s %-8s\n" "POD" "ROLE" "NODE" "READY" "RESTARTS" for POD in $(kubectl get pods -n "$NAMESPACE" -o name | grep pg-cluster | sed 's#pod/##') ; do NODE=$(kubectl get pod "$POD" -n "$NAMESPACE" -o jsonpath='{.spec.nodeName}') READY=$(kubectl get pod "$POD" -n "$NAMESPACE" -o jsonpath='{.status.containerStatuses[*].ready}' | awk '{c=0;for(i=1;i<=NF;i++) if($i=="true") c++; print c"/"NF}') RESTARTS=$(kubectl get pod "$POD" -n "$NAMESPACE" -o jsonpath='{.status.containerStatuses[*].restartCount}' | awk '{s=0;for(i=1;i<=NF;i++) s+=$i; print s}') ROLE=$(kubectl exec -n "$NAMESPACE" "$LEADER_POD" -c patroni -- patronictl list 2>/dev/null | awk -F'|' -v pod="$POD" '$2 ~ pod { gsub(/^[ \t]+|[ \t]+$/, "", $4) ; print tolower($4) }') printf "%-20s %-10s %-15s %-8s %-8s\n" "$POD" "${ROLE:-unknown}" "$NODE" "$READY" "$RESTARTS" done echo -e "\n=== Leader(ek) ===\n" LEADERS=$(kubectl exec -n "$NAMESPACE" "$LEADER_POD" -c patroni -- patronictl list 2>/dev/null | awk -F'|' 'tolower($4) ~ /leader/ { gsub(/^[ \t]+|[ \t]+$/, "", $2) ; print $2 }') echo "$LEADERS" echo -e "\n====================================================="