diff --git a/controllers/backupconfiguration_controller.go b/controllers/backupconfiguration_controller.go index 787b965..dc7bf1f 100644 --- a/controllers/backupconfiguration_controller.go +++ b/controllers/backupconfiguration_controller.go @@ -263,7 +263,12 @@ func (r *BackupConfigurationReconciler) addCronJob(backupConf *formolv1alpha1.Ba } if err := formolrbac.CreateFormolRBAC(r.Client, "default", backupConf.Namespace); err != nil { - log.Error(err, "unable to create backupsessionlistener RBAC") + log.Error(err, "unable to create formol RBAC") + return nil + } + + if err := formolrbac.CreateBackupSessionCreatorRBAC(r.Client, backupConf.Namespace); err != nil { + log.Error(err, "unable to create backupsession creattor RBAC") return nil } diff --git a/controllers/backupsession_controller.go b/controllers/backupsession_controller.go index a763b3e..0023906 100644 --- a/controllers/backupsession_controller.go +++ b/controllers/backupsession_controller.go @@ -257,6 +257,13 @@ func (r *BackupSessionReconciler) Reconcile(req ctrl.Request) (ctrl.Result, erro log.Error(err, "unable to get backupsession") return ctrl.Result{}, client.IgnoreNotFound(err) } + r.BackupConf = &formolv1alpha1.BackupConfiguration{} + if err := r.Get(ctx, client.ObjectKey{ + Namespace: r.BackupSession.Namespace, + Name: r.BackupSession.Spec.Ref.Name}, r.BackupConf); err != nil { + log.Error(err, "unable to get backupConfiguration") + return ctrl.Result{}, client.IgnoreNotFound(err) + } log.V(0).Info("backupSession", "backupSession.ObjectMeta", r.BackupSession.ObjectMeta, "backupSession.Status", r.BackupSession.Status) if r.BackupSession.Status.ObservedGeneration == r.BackupSession.ObjectMeta.Generation { // status update @@ -269,14 +276,6 @@ func (r *BackupSessionReconciler) Reconcile(req ctrl.Request) (ctrl.Result, erro reschedule := ctrl.Result{RequeueAfter: 5 * time.Second} r.BackupSession.Status.StartTime = &metav1.Time{Time: time.Now()} - r.BackupConf = &formolv1alpha1.BackupConfiguration{} - if err := r.Get(ctx, client.ObjectKey{ - Namespace: r.BackupSession.Namespace, - Name: r.BackupSession.Spec.Ref.Name}, r.BackupConf); err != nil { - log.Error(err, "unable to get backupConfiguration") - return ctrl.Result{}, client.IgnoreNotFound(err) - } - if r.IsBackupOngoing() { // There is already a backup ongoing. We don't do anything and we reschedule log.V(0).Info("there is an ongoing backup. let's reschedule this operation") diff --git a/controllers/restoresession_controller.go b/controllers/restoresession_controller.go index 807917e..88a0609 100644 --- a/controllers/restoresession_controller.go +++ b/controllers/restoresession_controller.go @@ -214,16 +214,6 @@ func (r *RestoreSessionReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err log.Error(err, "unable to get restoresession") return ctrl.Result{}, client.IgnoreNotFound(err) } - if r.RestoreSession.Status.ObservedGeneration == r.RestoreSession.ObjectMeta.Generation { - // status update - log.V(0).Info("status update") - return ctrl.Result{}, r.StatusUpdate() - } - r.RestoreSession.Status.ObservedGeneration = r.RestoreSession.ObjectMeta.Generation - r.RestoreSession.Status.SessionState = formolv1alpha1.New - r.RestoreSession.Status.StartTime = &metav1.Time{Time: time.Now()} - reschedule := ctrl.Result{RequeueAfter: 5 * time.Second} - r.BackupSession = &formolv1alpha1.BackupSession{} if err := r.Get(ctx, client.ObjectKey{ Namespace: r.RestoreSession.Spec.BackupSessionRef.Namespace, @@ -239,6 +229,16 @@ func (r *RestoreSessionReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err return ctrl.Result{}, client.IgnoreNotFound(err) } + if r.RestoreSession.Status.ObservedGeneration == r.RestoreSession.ObjectMeta.Generation { + // status update + log.V(0).Info("status update") + return ctrl.Result{}, r.StatusUpdate() + } + r.RestoreSession.Status.ObservedGeneration = r.RestoreSession.ObjectMeta.Generation + r.RestoreSession.Status.SessionState = formolv1alpha1.New + r.RestoreSession.Status.StartTime = &metav1.Time{Time: time.Now()} + reschedule := ctrl.Result{RequeueAfter: 5 * time.Second} + if err := r.Status().Update(ctx, r.RestoreSession); err != nil { log.Error(err, "unable to update restoresession") return ctrl.Result{}, err