From 5c74aa22e6272062ffb9b2bcd0de4fcbe2e81bdd Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Thu, 31 Mar 2022 16:58:00 +0800 Subject: [PATCH] Avoid duplicated snapshotting, when CSI is enabled Fix #4758 Do not take snapshot for PV to avoid duplicated snapshotting, when CSI feature is enabled. Signed-off-by: Xun Jiang --- changelogs/unreleased/4797-jxun | 1 + pkg/backup/item_backupper.go | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 changelogs/unreleased/4797-jxun diff --git a/changelogs/unreleased/4797-jxun b/changelogs/unreleased/4797-jxun new file mode 100644 index 000000000..795842678 --- /dev/null +++ b/changelogs/unreleased/4797-jxun @@ -0,0 +1 @@ +Do not take snapshot for PV to avoid duplicated snapshotting, when CSI feature is enabled. \ No newline at end of file diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index 32a9f5504..fd4b16028 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -39,6 +39,7 @@ import ( velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" "github.com/vmware-tanzu/velero/pkg/client" "github.com/vmware-tanzu/velero/pkg/discovery" + "github.com/vmware-tanzu/velero/pkg/features" "github.com/vmware-tanzu/velero/pkg/kuberesource" "github.com/vmware-tanzu/velero/pkg/plugin/velero" "github.com/vmware-tanzu/velero/pkg/restic" @@ -415,6 +416,12 @@ func (ib *itemBackupper) takePVSnapshot(obj runtime.Unstructured, log logrus.Fie } } + // #4758 Do not take snapshot for CSI PV to avoid duplicated snapshotting, when CSI feature is enabled. + if features.IsEnabled(velerov1api.CSIFeatureFlag) && pv.Spec.CSI != nil { + log.Infof("Skipping snapshot of persistent volume %s, because it's handled by CSI plugin.", pv.Name) + return nil + } + // TODO: -- once failure-domain.beta.kubernetes.io/zone is no longer // supported in any velero-supported version of Kubernetes, remove fallback checking of it pvFailureDomainZone, labelFound := pv.Labels[zoneLabel]