Merge pull request #10480 from subhamkrai/modify-v1beta1
core: delete v1beta1 cronjob only when v1 not found
This commit is contained in:
2 files changed
+19
-9
No files matched your search
@@ -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")
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in new issue
Block a user