Rollback & Désinstallation
Revenez aux versions précédentes ou supprimez complètement les releases.
Rollback
Revenir à une révision précédente :
sherpack rollback <nom> <révision>
Voir l'historique d'abord
# Voir les révisions disponibles
sherpack history myapp
Sortie :
REVISION STATUS UPDATED DESCRIPTION
1 superseded 2024-01-10T10:00:00Z Install complete
2 superseded 2024-01-11T14:30:00Z Upgrade complete
3 deployed 2024-01-12T09:15:00Z Upgrade complete
Rollback vers une révision
# Rollback vers la révision 1
sherpack rollback myapp 1
# Avec attente
sherpack rollback myapp 1 --wait
Options de rollback
| Option | Description |
|---|---|
-n, --namespace | Namespace |
--wait | Attendre la fin du rollback |
--timeout | Timeout d'attente |
--dry-run | Prévisualiser sans appliquer |
Flux de rollback
- Obtenir la révision cible depuis le stockage
- Stocker la nouvelle release comme "pending-rollback"
- Exécuter les hooks pre-rollback
- Appliquer les ressources depuis la révision cible
- Attendre la santé (si
--wait) - Exécuter les hooks post-rollback
- Marquer la nouvelle release comme "deployed"
Désinstallation
Supprimer une release du cluster :
sherpack uninstall <nom>
Désinstallation basique
# Désinstaller une release
sherpack uninstall myapp
# Dans un namespace spécifique
sherpack uninstall myapp -n production
Conserver l'historique
Préserver l'historique de release pour l'audit :
sherpack uninstall myapp --keep-history
Attendre la suppression
Attendre que toutes les ressources soient supprimées :
sherpack uninstall myapp --wait
Exécution à blanc
Prévisualiser ce qui sera supprimé :
sherpack uninstall myapp --dry-run
Options de désinstallation
| Option | Description |
|---|---|
-n, --namespace | Namespace |
--keep-history | Conserver les enregistrements de release |
--wait | Attendre la suppression |
--timeout | Timeout d'attente |
--dry-run | Prévisualiser sans supprimer |
Flux de désinstallation
- Obtenir la release actuelle
- Mettre à jour l'état vers "uninstalling"
- Exécuter les hooks pre-delete
- Supprimer toutes les ressources de la release
- Attendre la suppression (si
--wait) - Exécuter les hooks post-delete
- Supprimer ou marquer la release comme "uninstalled"
Politique de ressources
Les ressources avec l'annotation sherpack.io/resource-policy: keep sont préservées :
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ release.name }}-data
annotations:
sherpack.io/resource-policy: keep
Ce PVC ne sera pas supprimé pendant la désinstallation ou la mise à niveau.
Récupérer les releases bloquées
Si une release est bloquée dans un état en attente :
# Vérifier le statut
sherpack status myapp
# La sortie montre un état bloqué
# Status: pending-upgrade (stale)
# Récupérer
sherpack recover myapp
Cela réinitialise la release à son dernier état connu bon.
Lister les releases
Voir toutes les releases installées :
# Namespace actuel
sherpack list
# Tous les namespaces
sherpack list -A
# Inclure les désinstallées (avec --keep-history)
sherpack list --all
Sortie :
NAME NAMESPACE REVISION STATUS UPDATED
myapp default 3 deployed 2024-01-12T09:15:00Z
nginx production 1 deployed 2024-01-10T08:00:00Z
Statut de release
Obtenir le statut détaillé :
sherpack status myapp
Sortie :
Name: myapp
Namespace: default
Revision: 3
Status: deployed
Updated: 2024-01-12T09:15:00Z
Resources:
Deployment/myapp: Ready (3/3 replicas)
Service/myapp: Active
ConfigMap/myapp-config: Created
Avec les détails des ressources :
sherpack status myapp --show-resources