29 lines
1.1 KiB
Bash
Executable File
29 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
echo "🚀 Recherche des pods bloqués ou en Pending..."
|
|
|
|
# Récupérer tous les pods en statut Pending ou avec un InitContainer bloqué
|
|
pods=$(kubectl get pods --all-namespaces --field-selector=status.phase=Pending -o jsonpath='{range .items[*]}{.metadata.namespace}{";"}{.metadata.name}{"\n"}{end}')
|
|
|
|
# Ajouter aussi les Pods bloqués sur des InitContainers (comme restore-wait)
|
|
pods+="
|
|
$(kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{";"}{.metadata.name}{";"}{.status.initContainerStatuses[*].state.running.startTime}{"\n"}{end}' | grep -E ';[^;]*;[^;]*' | cut -d';' -f1,2 --output-delimiter=";")"
|
|
|
|
# Nettoyer doublons
|
|
pods=$(echo "$pods" | sort -u)
|
|
|
|
if [[ -z "$pods" ]]; then
|
|
echo "✅ Aucun pod bloqué ou en Pending détecté."
|
|
exit 0
|
|
fi
|
|
|
|
# Supprimer les pods trouvés
|
|
echo "$pods" | while IFS=";" read -r namespace pod; do
|
|
if [[ -n "$namespace" && -n "$pod" ]]; then
|
|
echo "🧹 Suppression du pod $pod dans le namespace $namespace..."
|
|
kubectl delete pod "$pod" -n "$namespace" --grace-period=0 --force
|
|
fi
|
|
done
|
|
|
|
echo "✅ Tous les pods bloqués/Pending ont été tués."
|