Don't reconcile non-spec changes

Previously status updates, and metadata updates (labels, annotations)
would trigger unnecessary reconciles. This change makes it so that
we only trigger reconciliation on spec changes, which is equivalent
to generation changes.

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I8dd651de38d4c069f559680b65aaae138c97e6c5
This commit is contained in:
Sean Eagan
2021-01-26 09:39:31 -06:00
parent 9207b6364c
commit 640f7e27a4

View File

@@ -31,8 +31,10 @@ import (
"k8s.io/apimachinery/pkg/types"
kerror "k8s.io/apimachinery/pkg/util/errors"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/builder"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/yaml"
vinov1 "vino/pkg/api/v1"
@@ -433,7 +435,9 @@ func (r *VinoReconciler) daemonSet(ctx context.Context, vino *vinov1.Vino) (*app
func (r *VinoReconciler) SetupWithManager(mgr ctrl.Manager) error {
return ctrl.NewControllerManagedBy(mgr).
For(&vinov1.Vino{}).
For(&vinov1.Vino{}, builder.WithPredicates(
predicate.GenerationChangedPredicate{},
)).
Complete(r)
}