Failure in deleting resources should not prevent deleting the BackupConfiguration

This commit is contained in:
jandre 2021-03-03 21:56:35 +01:00
parent 589f8480ad
commit 906dbd7539

View File

@ -83,6 +83,9 @@ func (r *BackupConfigurationReconciler) deleteSidecarContainer(backupConf *formo
if err := r.Update(context.Background(), deployment); err != nil { if err := r.Update(context.Background(), deployment); err != nil {
return err return err
} }
if err := formolrbac.DeleteFormolRBAC(r.Client, deployment.Spec.Template.Spec.ServiceAccountName, deployment.Namespace); err != nil {
return err
}
selector, err := metav1.LabelSelectorAsMap(deployment.Spec.Selector) selector, err := metav1.LabelSelectorAsMap(deployment.Spec.Selector)
if err != nil { if err != nil {
return nil return nil
@ -334,7 +337,6 @@ func (r *BackupConfigurationReconciler) Reconcile(req ctrl.Request) (ctrl.Result
log.V(1).Info("Enter Reconcile with req", "req", req) log.V(1).Info("Enter Reconcile with req", "req", req)
// your logic here
backupConf := &formolv1alpha1.BackupConfiguration{} backupConf := &formolv1alpha1.BackupConfiguration{}
if err := r.Get(ctx, req.NamespacedName, backupConf); err != nil { if err := r.Get(ctx, req.NamespacedName, backupConf); err != nil {
return ctrl.Result{}, client.IgnoreNotFound(err) return ctrl.Result{}, client.IgnoreNotFound(err)
@ -353,9 +355,7 @@ func (r *BackupConfigurationReconciler) Reconcile(req ctrl.Request) (ctrl.Result
} else { } else {
log.V(0).Info("backupconf being deleted", "backupconf", backupConf.Name) log.V(0).Info("backupconf being deleted", "backupconf", backupConf.Name)
if formolutils.ContainsString(backupConf.ObjectMeta.Finalizers, finalizerName) { if formolutils.ContainsString(backupConf.ObjectMeta.Finalizers, finalizerName) {
if err := r.deleteExternalResources(backupConf); err != nil { _ = r.deleteExternalResources(backupConf)
return ctrl.Result{}, err
}
} }
backupConf.ObjectMeta.Finalizers = formolutils.RemoveString(backupConf.ObjectMeta.Finalizers, finalizerName) backupConf.ObjectMeta.Finalizers = formolutils.RemoveString(backupConf.ObjectMeta.Finalizers, finalizerName)
if err := r.Update(context.Background(), backupConf); err != nil { if err := r.Update(context.Background(), backupConf); err != nil {
@ -363,6 +363,7 @@ func (r *BackupConfigurationReconciler) Reconcile(req ctrl.Request) (ctrl.Result
return ctrl.Result{}, err return ctrl.Result{}, err
} }
// We have been deleted. Return here // We have been deleted. Return here
log.V(0).Info("backupconf deleted", "backupconf", backupConf.Name)
return ctrl.Result{}, nil return ctrl.Result{}, nil
} }
@ -375,7 +376,7 @@ func (r *BackupConfigurationReconciler) Reconcile(req ctrl.Request) (ctrl.Result
switch target.Kind { switch target.Kind {
case "Deployment": case "Deployment":
if err := r.addSidecarContainer(backupConf, target); err != nil { if err := r.addSidecarContainer(backupConf, target); err != nil {
return ctrl.Result{}, nil return ctrl.Result{}, client.IgnoreNotFound(err)
} }
backupConf.Status.ActiveSidecar = true backupConf.Status.ActiveSidecar = true
case "PersistentVolumeClaim": case "PersistentVolumeClaim":
@ -398,31 +399,12 @@ func (r *BackupConfigurationReconciler) deleteExternalResources(backupConf *form
for _, target := range backupConf.Spec.Targets { for _, target := range backupConf.Spec.Targets {
switch target.Kind { switch target.Kind {
case "Deployment": case "Deployment":
deployment, err := r.getDeployment(backupConf.Namespace, target.Name) _ = r.deleteSidecarContainer(backupConf, target)
if err != nil {
return err
}
if err := formolrbac.DeleteFormolRBAC(r.Client, deployment.Spec.Template.Spec.ServiceAccountName, deployment.Namespace); err != nil {
return err
}
if err := formolrbac.DeleteBackupSessionCreatorRBAC(r.Client, backupConf.Namespace); err != nil {
return err
}
if err := r.deleteSidecarContainer(backupConf, target); err != nil {
return err
}
} }
} }
// TODO: remove the hardcoded "default" // TODO: remove the hardcoded "default"
if err := formolrbac.DeleteFormolRBAC(r.Client, "default", backupConf.Namespace); err != nil { _ = formolrbac.DeleteFormolRBAC(r.Client, "default", backupConf.Namespace)
return err _ = formolrbac.DeleteBackupSessionCreatorRBAC(r.Client, backupConf.Namespace)
}
if err := formolrbac.DeleteBackupSessionStatusUpdaterRBAC(r.Client, "default", backupConf.Namespace); err != nil {
return err
}
if err := formolrbac.DeleteBackupSessionCreatorRBAC(r.Client, backupConf.Namespace); err != nil {
return err
}
return nil return nil
} }