Merge pull request #10480 from subhamkrai/modify-v1beta1

core: delete v1beta1 cronjob only when v1 not found
This commit is contained in:
Travis Nielsen authored and GitHub committed 2022-06-23 10:07:51 -06:00
commit c8658331df
2 files changed
+19 -9

No files matched your search

+17 -5
View File
@@ -164,14 +164,12 @@ func (r *ReconcileNode) createOrUpdateCephCron(cephCluster cephv1.CephCluster, c
// minimum k8s version required for v1 cronJob is 'v1.21.0'. Apply v1 if k8s version is at least 'v1.21.0', else apply v1beta1 cronJob.
if useCronJobV1 {
// delete v1beta1 cronJob if it already exists
err := r.client.Delete(r.opManagerContext, &v1beta1.CronJob{ObjectMeta: objectMeta})
if err != nil && !apierrors.IsNotFound(err) {
return controllerutil.OperationResultNone, errors.Wrapf(err, "failed to delete CronJob v1Beta1 %q", prunerName)
if err := r.deletev1betaJob(objectMeta); err != nil {
return controllerutil.OperationResultNone, err
}
cronJob := &v1.CronJob{ObjectMeta: objectMeta}
err = controllerutil.SetControllerReference(&cephCluster, cronJob, r.scheme)
err := controllerutil.SetControllerReference(&cephCluster, cronJob, r.scheme)
if err != nil {
return controllerutil.OperationResultNone, errors.Errorf("failed to set owner reference of deployment %q", cronJob.Name)
}
@@ -204,6 +202,20 @@ func (r *ReconcileNode) createOrUpdateCephCron(cephCluster cephv1.CephCluster, c
return controllerutil.CreateOrUpdate(r.opManagerContext, r.client, cronJob, mutateFunc)
}
func (r *ReconcileNode) deletev1betaJob(objectMeta metav1.ObjectMeta) error {
// delete v1beta1 cronJob on an update to v1 job,only if v1 job is not created yet
if _, err := r.context.Clientset.BatchV1().CronJobs(objectMeta.Namespace).Get(r.opManagerContext, prunerName, metav1.GetOptions{}); err != nil {
if apierrors.IsNotFound(err) {
err = r.client.Delete(r.opManagerContext, &v1beta1.CronJob{ObjectMeta: objectMeta})
if err != nil && !apierrors.IsNotFound(err) {
return errors.Wrapf(err, "failed to delete CronJob v1Beta1 %q", prunerName)
}
}
}
return nil
}
func getCrashDirInitContainer(cephCluster cephv1.CephCluster) corev1.Container {
dataPathMap := config.NewDatalessDaemonDataPathMap(cephCluster.GetNamespace(), cephCluster.Spec.DataDirHostPath)
crashPostedDir := path.Join(dataPathMap.ContainerCrashDir(), "posted")
+2 -4
View File
@@ -299,10 +299,8 @@ func (r *ReconcileNode) reconcileCrashRetention(namespace string, cephCluster ce
var cronJob client.Object
// minimum k8s version required for v1 cronJob is 'v1.21.0'. Apply v1 if k8s version is at least 'v1.21.0', else apply v1beta1 cronJob.
if useCronJobV1 {
// delete v1beta1 cronJob if it already exists
err = r.client.Delete(r.opManagerContext, &v1beta1.CronJob{ObjectMeta: objectMeta})
if err != nil && !kerrors.IsNotFound(err) {
return errors.Wrapf(err, "failed to delete CronJob v1beta1 %q", prunerName)
if err := r.deletev1betaJob(objectMeta); err != nil {
return err
}
cronJob = &v1.CronJob{ObjectMeta: objectMeta}
} else {