Skip to content

Use controller-runtime's ObjectReconciler to simplify code in reconcilers #46

Open
@pmalek

Description

@pmalek

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions