Open
Description
Problem Statement
Recent versions of controller-runtime include https://pkg.go.dev/sigs.k8s.io/[email protected]/pkg/reconcile#ObjectReconciler which allows to get rid of the ubiquitous:
func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
o := new(MyType)
if err := r.Client.Get(ctx, req.NamespacedName, o); err != nil {
if k8serrors.IsNotFound(err) {
return ctrl.Result{}, nil
}
return ctrl.Result{}, err
}
log.Trace(logger, "reconciling resource", o)
in favor of simpler:
func (r *Reconciler) Reconcile(ctx context.Context, o *MyType) (ctrl.Result, error) {
log.Trace(logger, "reconciling resource", o)
Related PR: kubernetes-sigs/controller-runtime#2592