Skip to content

Commit

Permalink
[oadp-1.2] OADP-1821: Add storageClass mapping for volumeOptions (#225)
Browse files Browse the repository at this point in the history
Co-authored-by: Emily McMullan <emcmulla@redhat.com>
  • Loading branch information
openshift-cherrypick-robot and eemcmullan committed May 19, 2023
1 parent e8e117f commit 3b2cddc
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 14 deletions.
6 changes: 2 additions & 4 deletions controllers/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,6 @@ const (
DatamoverSourcePVCName = "datamover.io/source-pvc-name"
DatamoverSourcePVCSize = "datamover.io/source-pvc-size"

DataMoverConfMapName = "datamover-config"

// Providers
AWSProvider = "aws"
AzureProvider = "azure"
Expand Down Expand Up @@ -550,10 +548,10 @@ func updateVSBStatusPhase(vsb *volsnapmoverv1alpha1.VolumeSnapshotBackup, phase
return nil
}

func GetDataMoverConfigMap(namespace string, log logr.Logger, client client.Client) (*corev1.ConfigMap, error) {
func GetDataMoverConfigMap(namespace string, sc string, log logr.Logger, client client.Client) (*corev1.ConfigMap, error) {

cm := corev1.ConfigMap{}
err := client.Get(context.Background(), types.NamespacedName{Namespace: namespace, Name: DataMoverConfMapName}, &cm)
err := client.Get(context.Background(), types.NamespacedName{Namespace: namespace, Name: fmt.Sprintf("%v-config", sc)}, &cm)
// configmap will not exist if config values were not set
if k8serrors.IsNotFound(err) {
return nil, nil
Expand Down
22 changes: 14 additions & 8 deletions controllers/pvc.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,6 @@ func (r *VolumeSnapshotBackupReconciler) MirrorPVC(log logr.Logger) (bool, error
return false, nil
}

cm, err := GetDataMoverConfigMap(vsb.Spec.ProtectedNamespace, r.Log, r.Client)
if err != nil {
return false, err
}

// Create a PVC with the above volumesnapshot clone as the source

pvcClone := &corev1.PersistentVolumeClaim{
Expand All @@ -75,7 +70,7 @@ func (r *VolumeSnapshotBackupReconciler) MirrorPVC(log logr.Logger) (bool, error

op, err := controllerutil.CreateOrUpdate(r.Context, r.Client, pvcClone, func() error {

return r.buildPVCClone(pvcClone, &vsClone, cm)
return r.buildPVCClone(pvcClone, &vsClone)
})
if err != nil {
r.Log.Info(fmt.Sprintf("err building pvc clone: %v", err))
Expand All @@ -93,12 +88,23 @@ func (r *VolumeSnapshotBackupReconciler) MirrorPVC(log logr.Logger) (bool, error
return true, nil
}

func (r *VolumeSnapshotBackupReconciler) buildPVCClone(pvcClone *corev1.PersistentVolumeClaim, vsClone *snapv1.VolumeSnapshot, cm *corev1.ConfigMap) error {
func (r *VolumeSnapshotBackupReconciler) buildPVCClone(pvcClone *corev1.PersistentVolumeClaim, vsClone *snapv1.VolumeSnapshot) error {
sourcePVC, err := r.getSourcePVC()
if err != nil {
return err
}

// fetch VSB again from cluster as status was updated in getSourcePVC()
vsb := volsnapmoverv1alpha1.VolumeSnapshotBackup{}
if err := r.Get(r.Context, r.req.NamespacedName, &vsb); err != nil {
return err
}

cm, err := GetDataMoverConfigMap(vsb.Spec.ProtectedNamespace, vsb.Status.SourcePVCData.StorageClassName, r.Log, r.Client)
if err != nil {
return err
}

if pvcClone.CreationTimestamp.IsZero() {
apiGroup := "snapshot.storage.k8s.io"
pvcClone.Spec.DataSource = &corev1.TypedLocalObjectReference{
Expand Down Expand Up @@ -210,7 +216,7 @@ func (r *VolumeSnapshotBackupReconciler) BindPVCToDummyPod(log logr.Logger) (boo
},
}

cm, err := GetDataMoverConfigMap(vsb.Spec.ProtectedNamespace, r.Log, r.Client)
cm, err := GetDataMoverConfigMap(vsb.Spec.ProtectedNamespace, vsb.Status.SourcePVCData.StorageClassName, r.Log, r.Client)
if err != nil {
return false, err
}
Expand Down
2 changes: 1 addition & 1 deletion controllers/replicationdestination.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (r *VolumeSnapshotRestoreReconciler) CreateReplicationDestination(log logr.
return false, err
}

cm, err := GetDataMoverConfigMap(vsr.Spec.ProtectedNamespace, r.Log, r.Client)
cm, err := GetDataMoverConfigMap(vsr.Spec.ProtectedNamespace, vsr.Spec.VolumeSnapshotMoverBackupref.BackedUpPVCData.StorageClassName, r.Log, r.Client)
if err != nil {
return false, err
}
Expand Down
6 changes: 5 additions & 1 deletion controllers/replicationsource.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ func (r *VolumeSnapshotBackupReconciler) CreateReplicationSource(log logr.Logger
return false, err
}

cm, err := GetDataMoverConfigMap(vsb.Spec.ProtectedNamespace, r.Log, r.Client)
if len(vsb.Status.SourcePVCData.Name) == 0 {
return false, nil
}

cm, err := GetDataMoverConfigMap(vsb.Spec.ProtectedNamespace, vsb.Status.SourcePVCData.StorageClassName, r.Log, r.Client)
if err != nil {
return false, err
}
Expand Down

0 comments on commit 3b2cddc

Please sign in to comment.