mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-05 13:05:17 +00:00
restic backupper: ignore volumes of non-running pods (#4584)
This commit is contained in:
1
changelogs/unreleased/4584-bynare
Normal file
1
changelogs/unreleased/4584-bynare
Normal file
@@ -0,0 +1 @@
|
||||
Skip volumes of non-running pods when backing up
|
||||
@@ -153,6 +153,11 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api.
|
||||
}
|
||||
}
|
||||
|
||||
// ignore non-running pods
|
||||
if pod.Status.Phase != corev1api.PodRunning {
|
||||
log.Warnf("Skipping volume %s in pod %s/%s - pod not running", volumeName, pod.Namespace, pod.Name)
|
||||
continue
|
||||
}
|
||||
// hostPath volumes are not supported because they're not mounted into /var/lib/kubelet/pods, so our
|
||||
// daemonset pod has no way to access their data.
|
||||
isHostPath, err := isHostPathVolume(&volume, pvc, b.pvClient.PersistentVolumes())
|
||||
@@ -165,11 +170,6 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api.
|
||||
continue
|
||||
}
|
||||
|
||||
// emptyDir volumes on finished pods are not supported because the volume is already gone and would result in an error
|
||||
if (pod.Status.Phase == corev1api.PodSucceeded || pod.Status.Phase == corev1api.PodFailed) && volume.EmptyDir != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// volumes that are not mounted by any container should not be backed up, because
|
||||
// its directory is not created
|
||||
if !mountedPodVolumes.Has(volumeName) {
|
||||
|
||||
Reference in New Issue
Block a user