chore: build
This commit is contained in:
@@ -813,8 +813,9 @@ func (h *HelmProvisioner) deleteNamespace(name string) error {
|
||||
const veleroNamespace = "velero"
|
||||
|
||||
var (
|
||||
veleroScheduleGVR = schema.GroupVersionResource{Group: "velero.io", Version: "v1", Resource: "schedules"}
|
||||
veleroBackupGVR = schema.GroupVersionResource{Group: "velero.io", Version: "v1", Resource: "backups"}
|
||||
veleroScheduleGVR = schema.GroupVersionResource{Group: "velero.io", Version: "v1", Resource: "schedules"}
|
||||
veleroBackupGVR = schema.GroupVersionResource{Group: "velero.io", Version: "v1", Resource: "backups"}
|
||||
veleroBackupRepoGVR = schema.GroupVersionResource{Group: "velero.io", Version: "v1", Resource: "backuprepositories"}
|
||||
)
|
||||
|
||||
// demoBackupScheduleName : nom du Schedule Velero dédié à ce namespace de
|
||||
@@ -857,14 +858,24 @@ func (h *HelmProvisioner) ensureDemoBackupSchedule(namespace string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// deleteDemoBackups supprime le Schedule Velero de cette démo ainsi que
|
||||
// toutes les sauvegardes déjà prises par ce planning (la suppression d'un
|
||||
// Backup déclenche le nettoyage asynchrone des données Kopia associées côté
|
||||
// Velero — pas de suppression directe dans le bucket S3, qui risquerait de
|
||||
// casser le dépôt Kopia partagé par les autres démos). Appelée depuis
|
||||
// Teardown (expiration TTL et destruction forcée passent toutes les deux
|
||||
// par ce même chemin) et lors d'une migration premium réussie (l'ancien
|
||||
// namespace disparaît, son planning de sauvegarde n'a plus de sens).
|
||||
// deleteDemoBackups supprime le Schedule Velero de cette démo, toutes les
|
||||
// sauvegardes déjà prises par ce planning, et le BackupRepository associé
|
||||
// (la suppression d'un Backup déclenche le nettoyage asynchrone des données
|
||||
// Kopia associées côté Velero — pas de suppression directe dans le bucket
|
||||
// S3, qui risquerait de casser le dépôt Kopia partagé par les autres
|
||||
// démos). Appelée depuis Teardown (expiration TTL et destruction forcée
|
||||
// passent toutes les deux par ce même chemin) et lors d'une migration
|
||||
// premium réussie (l'ancien namespace disparaît, son planning de sauvegarde
|
||||
// n'a plus de sens).
|
||||
//
|
||||
// Le BackupRepository (l'objet qui référence le dépôt Kopia du namespace,
|
||||
// nommé "<namespace>-default-kopia") n'est PAS supprimé automatiquement par
|
||||
// Velero quand ses Backup disparaissent — sans ce nettoyage explicite, il
|
||||
// reste indéfiniment et Velero continue de lancer des jobs de maintenance
|
||||
// périodiques dessus (kopia-maintain-job) pour un dépôt qui ne sert plus à
|
||||
// rien. Supprimer l'objet ne touche pas aux données déjà écrites dans le
|
||||
// bucket S3 (même logique que pour les Backup ci-dessus), juste le
|
||||
// bookkeeping Velero.
|
||||
func (h *HelmProvisioner) deleteDemoBackups(namespace string) error {
|
||||
name := demoBackupScheduleName(namespace)
|
||||
|
||||
@@ -886,6 +897,13 @@ func (h *HelmProvisioner) deleteDemoBackups(namespace string) error {
|
||||
if err != nil && !k8sErrors.IsNotFound(err) {
|
||||
return fmt.Errorf("suppression planning %s: %w", name, err)
|
||||
}
|
||||
|
||||
repoName := namespace + "-default-kopia"
|
||||
err = h.dynamicClient.Resource(veleroBackupRepoGVR).Namespace(veleroNamespace).
|
||||
Delete(context.Background(), repoName, metav1.DeleteOptions{})
|
||||
if err != nil && !k8sErrors.IsNotFound(err) {
|
||||
return fmt.Errorf("suppression backuprepository %s: %w", repoName, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user