71 lines
1.9 KiB
Bash
Executable File
71 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
OLD_NODE="kube.ia86.cc"
|
|
NEW_NODE="newkube.ia86.cc"
|
|
|
|
echo "🛑 Suppression de tous les PV existants..."
|
|
for pv in $(kubectl get pv --no-headers -o custom-columns=":metadata.name"); do
|
|
echo "🗑️ Suppression du PV : $pv"
|
|
kubectl delete pv "$pv" --wait=false
|
|
done
|
|
|
|
# Attente active stricte
|
|
echo "⏳ Vérification que tous les PV soient supprimés complètement..."
|
|
while true; do
|
|
nb=$(kubectl get pv --no-headers 2>/dev/null | wc -l)
|
|
if [ "$nb" -eq 0 ]; then
|
|
echo "✅ Tous les PV sont supprimés."
|
|
break
|
|
else
|
|
echo "⌛ $nb PV encore présents... attente 5 secondes..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
|
|
|
|
echo "📦 Début de la recréation depuis $(pwd)..."
|
|
|
|
for file in *.yaml; do
|
|
echo "🔧 Traitement du fichier $file"
|
|
|
|
cp "$file" "${file}.tmp"
|
|
|
|
# Supprimer tout à partir du bloc status: avec awk (plus sûr que sed)
|
|
awk '
|
|
BEGIN {skip=0}
|
|
/^status:/ {skip=1}
|
|
skip==0 {print}
|
|
' "${file}.tmp" > "${file}.fixed"
|
|
|
|
# Remplacer le node name proprement
|
|
sed -i "s/$OLD_NODE/$NEW_NODE/g" "${file}.fixed"
|
|
|
|
echo "🚀 Création du PV corrigé depuis $file"
|
|
kubectl apply -f "${file}.fixed"
|
|
|
|
rm -f "${file}.tmp" "${file}.fixed"
|
|
done
|
|
|
|
echo "✅ Recréation complète sans erreurs YAML."
|
|
|
|
echo "🔧 Forçage des PV en Bound (seulement ceux pas déjà Bound)..."
|
|
|
|
for pv in $(kubectl get pv --no-headers | grep -v Bound | awk '{print $1}'); do
|
|
echo "➡️ Forçage du PV $pv"
|
|
|
|
kubectl patch pv "$pv" --type='merge' -p '{"status":{"phase":"Bound"}}'
|
|
done
|
|
|
|
echo "✅ Seuls les PV non-Bound ont été corrigés."
|
|
|
|
echo "🔧 Suppression des claimRef pour libérer les PV..."
|
|
|
|
for pv in $(kubectl get pv --no-headers | grep Released | awk '{print $1}'); do
|
|
echo "➡️ Suppression du claimRef sur $pv"
|
|
kubectl patch pv "$pv" --type json -p='[{"op": "remove", "path": "/spec/claimRef"}]'
|
|
done
|
|
|
|
echo "✅ Tous les PV sont maintenant Available."
|