Aller au contenu principal

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

OptionDescription
-n, --namespaceNamespace
--waitAttendre la fin du rollback
--timeoutTimeout d'attente
--dry-runPrévisualiser sans appliquer

Flux de rollback

  1. Obtenir la révision cible depuis le stockage
  2. Stocker la nouvelle release comme "pending-rollback"
  3. Exécuter les hooks pre-rollback
  4. Appliquer les ressources depuis la révision cible
  5. Attendre la santé (si --wait)
  6. Exécuter les hooks post-rollback
  7. 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

OptionDescription
-n, --namespaceNamespace
--keep-historyConserver les enregistrements de release
--waitAttendre la suppression
--timeoutTimeout d'attente
--dry-runPrévisualiser sans supprimer

Flux de désinstallation

  1. Obtenir la release actuelle
  2. Mettre à jour l'état vers "uninstalling"
  3. Exécuter les hooks pre-delete
  4. Supprimer toutes les ressources de la release
  5. Attendre la suppression (si --wait)
  6. Exécuter les hooks post-delete
  7. 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