reconciler/managed: simplify conflict suppression with helper
Signed-off-by: Dr. Stefan Schimanski <stefan.schimanski@upbound.io>
This commit is contained in:
parent
712d0dbc69
commit
8333c5c0bd
|
|
@ -1,5 +1,18 @@
|
||||||
// Copyright 2023 Upbound Inc.
|
/*
|
||||||
// All rights reserved
|
Copyright 2023 The Crossplane Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package errors
|
package errors
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
kerrors "k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
|
|
@ -714,19 +713,9 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
|
||||||
// NOTE(negz): This method is a well over our cyclomatic complexity goal.
|
// NOTE(negz): This method is a well over our cyclomatic complexity goal.
|
||||||
// Be wary of adding additional complexity.
|
// Be wary of adding additional complexity.
|
||||||
|
|
||||||
|
defer func() { result, err = errors.SilentlyRequeueOnConflict(result, err) }()
|
||||||
|
|
||||||
log := r.log.WithValues("request", req)
|
log := r.log.WithValues("request", req)
|
||||||
|
|
||||||
defer func() {
|
|
||||||
if kerrors.IsConflict(errors.Cause(err)) {
|
|
||||||
// conflict errors are transient in Kubernetes and completely normal.
|
|
||||||
// The right reaction is to requeue, but not record the object as error'ing
|
|
||||||
// or creating events.
|
|
||||||
log.Debug("Transient conflict error", "error", err)
|
|
||||||
result.Requeue = true
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
log.Debug("Reconciling")
|
log.Debug("Reconciling")
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(ctx, r.timeout+reconcileGracePeriod)
|
ctx, cancel := context.WithTimeout(ctx, r.timeout+reconcileGracePeriod)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue