@@ -1918,11 +1918,23 @@ func (r *MantleBackupReconciler) reconcileZeroOutJob(
19181918 return ctrl.Result {}, nil
19191919 }
19201920
1921- if err := r .createOrUpdateZeroOutPV (ctx , backup , snapshotTarget .pv ); err != nil {
1921+ if err := r .createOrUpdateStaticPV (
1922+ ctx ,
1923+ snapshotTarget .pv ,
1924+ snapshotTarget .pv .Spec .CSI .VolumeAttributes ["imageName" ],
1925+ snapshotTarget .pv .Spec .Capacity ,
1926+ MakeZeroOutPVName (backup ),
1927+ labelComponentZeroOutVolume ,
1928+ ); err != nil {
19221929 return ctrl.Result {}, err
19231930 }
19241931
1925- if err := r .createOrUpdateZeroOutPVC (ctx , backup , snapshotTarget .pvc ); err != nil {
1932+ if err := r .createOrUpdateStaticPVC (
1933+ ctx ,
1934+ MakeZeroOutPVCName (backup ),
1935+ MakeZeroOutPVName (backup ),
1936+ snapshotTarget .pvc .Spec .Resources ,
1937+ ); err != nil {
19261938 return ctrl.Result {}, err
19271939 }
19281940
@@ -1940,24 +1952,26 @@ func (r *MantleBackupReconciler) reconcileZeroOutJob(
19401952 return requeueReconciliation (), nil
19411953}
19421954
1943- func (r * MantleBackupReconciler ) createOrUpdateZeroOutPV (
1955+ func (r * MantleBackupReconciler ) createOrUpdateStaticPV (
19441956 ctx context.Context ,
1945- backup * mantlev1.MantleBackup ,
1946- targetPV * corev1.PersistentVolume ,
1957+ basePV * corev1.PersistentVolume ,
1958+ volume string ,
1959+ capacity corev1.ResourceList ,
1960+ newPvName , componentName string ,
19471961) error {
19481962 var pv corev1.PersistentVolume
1949- pv .SetName (MakeZeroOutPVName ( backup ) )
1963+ pv .SetName (newPvName )
19501964 _ , err := ctrl .CreateOrUpdate (ctx , r .Client , & pv , func () error {
19511965 labels := pv .GetLabels ()
19521966 if labels == nil {
19531967 labels = map [string ]string {}
19541968 }
19551969 labels ["app.kubernetes.io/name" ] = labelAppNameValue
1956- labels ["app.kubernetes.io/component" ] = labelComponentZeroOutVolume
1970+ labels ["app.kubernetes.io/component" ] = componentName
19571971 pv .SetLabels (labels )
19581972
19591973 pv .Spec .AccessModes = []corev1.PersistentVolumeAccessMode {corev1 .ReadWriteOnce }
1960- pv .Spec .Capacity = targetPV . Spec . Capacity
1974+ pv .Spec .Capacity = capacity
19611975 pv .Spec .PersistentVolumeReclaimPolicy = corev1 .PersistentVolumeReclaimRetain
19621976 pv .Spec .StorageClassName = ""
19631977
@@ -1967,32 +1981,32 @@ func (r *MantleBackupReconciler) createOrUpdateZeroOutPV(
19671981 if pv .Spec .CSI == nil {
19681982 pv .Spec .CSI = & corev1.CSIPersistentVolumeSource {}
19691983 }
1970- pv .Spec .CSI .Driver = targetPV .Spec .CSI .Driver
1971- pv .Spec .CSI .ControllerExpandSecretRef = targetPV .Spec .CSI .ControllerExpandSecretRef
1972- pv .Spec .CSI .NodeStageSecretRef = targetPV .Spec .CSI .NodeStageSecretRef
1973- pv .Spec .CSI .VolumeHandle = targetPV . Spec . CSI . VolumeAttributes [ "imageName" ]
1984+ pv .Spec .CSI .Driver = basePV .Spec .CSI .Driver
1985+ pv .Spec .CSI .ControllerExpandSecretRef = basePV .Spec .CSI .ControllerExpandSecretRef
1986+ pv .Spec .CSI .NodeStageSecretRef = basePV .Spec .CSI .NodeStageSecretRef
1987+ pv .Spec .CSI .VolumeHandle = volume
19741988
19751989 if pv .Spec .CSI .VolumeAttributes == nil {
19761990 pv .Spec .CSI .VolumeAttributes = map [string ]string {}
19771991 }
1978- pv .Spec .CSI .VolumeAttributes ["clusterID" ] = targetPV .Spec .CSI .VolumeAttributes ["clusterID" ]
1979- pv .Spec .CSI .VolumeAttributes ["imageFeatures" ] = targetPV .Spec .CSI .VolumeAttributes ["imageFeatures" ]
1980- pv .Spec .CSI .VolumeAttributes ["imageFormat" ] = targetPV .Spec .CSI .VolumeAttributes ["imageFormat" ]
1981- pv .Spec .CSI .VolumeAttributes ["pool" ] = targetPV .Spec .CSI .VolumeAttributes ["pool" ]
1992+ pv .Spec .CSI .VolumeAttributes ["clusterID" ] = basePV .Spec .CSI .VolumeAttributes ["clusterID" ]
1993+ pv .Spec .CSI .VolumeAttributes ["imageFeatures" ] = basePV .Spec .CSI .VolumeAttributes ["imageFeatures" ]
1994+ pv .Spec .CSI .VolumeAttributes ["imageFormat" ] = basePV .Spec .CSI .VolumeAttributes ["imageFormat" ]
1995+ pv .Spec .CSI .VolumeAttributes ["pool" ] = basePV .Spec .CSI .VolumeAttributes ["pool" ]
19821996 pv .Spec .CSI .VolumeAttributes ["staticVolume" ] = "true"
19831997
19841998 return nil
19851999 })
19862000 return err
19872001}
19882002
1989- func (r * MantleBackupReconciler ) createOrUpdateZeroOutPVC (
2003+ func (r * MantleBackupReconciler ) createOrUpdateStaticPVC (
19902004 ctx context.Context ,
1991- backup * mantlev1. MantleBackup ,
1992- targetPVC * corev1.PersistentVolumeClaim ,
2005+ pvcName , pvName string ,
2006+ resources corev1.VolumeResourceRequirements ,
19932007) error {
19942008 var pvc corev1.PersistentVolumeClaim
1995- pvc .SetName (MakeZeroOutPVCName ( backup ) )
2009+ pvc .SetName (pvcName )
19962010 pvc .SetNamespace (r .managedCephClusterID )
19972011 _ , err := ctrl .CreateOrUpdate (ctx , r .Client , & pvc , func () error {
19982012 labels := pvc .GetLabels ()
@@ -2006,8 +2020,8 @@ func (r *MantleBackupReconciler) createOrUpdateZeroOutPVC(
20062020 storageClassName := ""
20072021 pvc .Spec .StorageClassName = & storageClassName
20082022 pvc .Spec .AccessModes = []corev1.PersistentVolumeAccessMode {corev1 .ReadWriteOnce }
2009- pvc .Spec .Resources = targetPVC . Spec . Resources
2010- pvc .Spec .VolumeName = MakeZeroOutPVName ( backup )
2023+ pvc .Spec .Resources = resources
2024+ pvc .Spec .VolumeName = pvName
20112025
20122026 volumeMode := corev1 .PersistentVolumeBlock
20132027 pvc .Spec .VolumeMode = & volumeMode
0 commit comments