backup-scripts/unblock_velero.sh

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."