diff --git a/internal/backup/pvc_action.go b/internal/backup/pvc_action.go index 36acbac5..403f11ef 100644 --- a/internal/backup/pvc_action.go +++ b/internal/backup/pvc_action.go @@ -193,7 +193,7 @@ func (p *PVCBackupItemAction) Execute(item runtime.Unstructured, backup *velerov dataUploadLog.Info("Starting data upload of backup") - dataUpload, err := createDataUpload(context.Background(), backup, p.CRClient, upd, &pvc, operationID) + dataUpload, err := createDataUpload(context.Background(), backup, p.CRClient, upd, &pvc, operationID, snapshotClass) if err != nil { dataUploadLog.WithError(err).Error("failed to submit DataUpload") util.DeleteVolumeSnapshotIfAny(context.Background(), p.SnapshotClient, *upd, dataUploadLog) @@ -303,7 +303,7 @@ func (p *PVCBackupItemAction) Cancel(operationID string, backup *velerov1api.Bac } func newDataUpload(backup *velerov1api.Backup, vs *snapshotv1api.VolumeSnapshot, - pvc *corev1api.PersistentVolumeClaim, operationID string) *velerov2alpha1.DataUpload { + pvc *corev1api.PersistentVolumeClaim, operationID string, vsClass *snapshotv1api.VolumeSnapshotClass) *velerov2alpha1.DataUpload { dataUpload := &velerov2alpha1.DataUpload{ TypeMeta: metav1.TypeMeta{ APIVersion: velerov2alpha1.SchemeGroupVersion.String(), @@ -333,6 +333,7 @@ func newDataUpload(backup *velerov1api.Backup, vs *snapshotv1api.VolumeSnapshot, CSISnapshot: &velerov2alpha1.CSISnapshotSpec{ VolumeSnapshot: vs.Name, StorageClass: *pvc.Spec.StorageClassName, + SnapshotClass: vsClass.Name, }, SourcePVC: pvc.Name, DataMover: backup.Spec.DataMover, @@ -346,8 +347,9 @@ func newDataUpload(backup *velerov1api.Backup, vs *snapshotv1api.VolumeSnapshot, } func createDataUpload(ctx context.Context, backup *velerov1api.Backup, crClient crclient.Client, - vs *snapshotv1api.VolumeSnapshot, pvc *corev1api.PersistentVolumeClaim, operationID string) (*velerov2alpha1.DataUpload, error) { - dataUpload := newDataUpload(backup, vs, pvc, operationID) + vs *snapshotv1api.VolumeSnapshot, pvc *corev1api.PersistentVolumeClaim, operationID string, + vsClass *snapshotv1api.VolumeSnapshotClass) (*velerov2alpha1.DataUpload, error) { + dataUpload := newDataUpload(backup, vs, pvc, operationID, vsClass) err := crClient.Create(ctx, dataUpload) if err != nil { diff --git a/internal/backup/pvc_action_test.go b/internal/backup/pvc_action_test.go index b76b8209..689b18e1 100644 --- a/internal/backup/pvc_action_test.go +++ b/internal/backup/pvc_action_test.go @@ -79,7 +79,7 @@ func TestExecute(t *testing.T) { pvc: builder.ForPersistentVolumeClaim("velero", "testPVC").VolumeName("testPV").StorageClass("testSC").Phase(corev1.ClaimBound).Result(), pv: builder.ForPersistentVolume("testPV").CSI("hostpath", "testVolume").Result(), sc: builder.ForStorageClass("testSC").Provisioner("hostpath").Result(), - vsClass: builder.ForVolumeSnapshotClass("tescVSClass").Driver("hostpath").ObjectMeta(builder.WithLabels(util.VolumeSnapshotClassSelectorLabel, "")).Result(), + vsClass: builder.ForVolumeSnapshotClass("testVSClass").Driver("hostpath").ObjectMeta(builder.WithLabels(util.VolumeSnapshotClassSelectorLabel, "")).Result(), operationID: ".", expectedErr: nil, expectedDataUpload: &velerov2alpha1.DataUpload{ @@ -111,7 +111,7 @@ func TestExecute(t *testing.T) { CSISnapshot: &velerov2alpha1.CSISnapshotSpec{ VolumeSnapshot: "", StorageClass: "testSC", - SnapshotClass: "", + SnapshotClass: "testVSClass", }, SourcePVC: "testPVC", SourceNamespace: "velero",