diff --git a/pkg/common-controller/groupsnapshot_controller_helper.go b/pkg/common-controller/groupsnapshot_controller_helper.go index c4b2dec69..7a6c09073 100644 --- a/pkg/common-controller/groupsnapshot_controller_helper.go +++ b/pkg/common-controller/groupsnapshot_controller_helper.go @@ -800,6 +800,23 @@ func (ctrl *csiSnapshotCommonController) createGroupSnapshotContent(groupSnapsho ) return nil, err } + + volumeCSIDriver := pv.Spec.CSI.Driver + classCSIDriver := groupSnapshotClass.Driver + if pv.Spec.CSI.Driver != classCSIDriver { + strErr := fmt.Sprintf( + "Volume CSI driver (%s) mismatch with VolumeSnapshotClass (%s) %s: %s", + volumeCSIDriver, classCSIDriver, utils.GroupSnapshotKey(groupSnapshot), pv.Name) + klog.Error(strErr) + ctrl.eventRecorder.Event( + groupSnapshot, + v1.EventTypeWarning, + "CreateGroupSnapshotContentFailed", + strErr, + ) + return nil, newControllerUpdateError(utils.GroupSnapshotKey(groupSnapshot), strErr) + + } volumeHandles = append(volumeHandles, pv.Spec.CSI.VolumeHandle) }