diff --git a/pkg/ansible/controller/controller.go b/pkg/ansible/controller/controller.go index d414bc001d..3aa58799f2 100644 --- a/pkg/ansible/controller/controller.go +++ b/pkg/ansible/controller/controller.go @@ -27,12 +27,13 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/manager" + crpredicate "sigs.k8s.io/controller-runtime/pkg/predicate" "sigs.k8s.io/controller-runtime/pkg/source" "github.com/operator-framework/operator-sdk/pkg/ansible/events" + "github.com/operator-framework/operator-sdk/pkg/ansible/predicate" "github.com/operator-framework/operator-sdk/pkg/ansible/runner" handler "github.com/operator-framework/operator-sdk/pkg/handler" - "github.com/operator-framework/operator-sdk/pkg/predicate" ) var log = logf.Log.WithName("ansible-controller") @@ -107,7 +108,7 @@ func Add(mgr manager.Manager, options Options) *controller.Controller { } if err := c.Watch(&source.Kind{Type: u}, &handler.InstrumentedEnqueueRequestForObject{}, - predicate.GenerationChangedPredicate{}, filterPredicate); err != nil { + crpredicate.GenerationChangedPredicate{}, filterPredicate); err != nil { log.Error(err, "") os.Exit(1) } diff --git a/pkg/predicate/predicate.go b/pkg/ansible/predicate/predicate.go similarity index 62% rename from pkg/predicate/predicate.go rename to pkg/ansible/predicate/predicate.go index ffa5211609..c053b12a6c 100644 --- a/pkg/predicate/predicate.go +++ b/pkg/ansible/predicate/predicate.go @@ -18,47 +18,14 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "sigs.k8s.io/controller-runtime/pkg/event" - logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/predicate" ) -var log = logf.Log.WithName("predicate").WithName("eventFilters") - -// GenerationChangedPredicate implements a default update predicate function on generation change -// (adapted from sigs.k8s.io/controller-runtime/pkg/predicate/predicate.ResourceVersionChangedPredicate) -type GenerationChangedPredicate struct { - predicate.Funcs -} - type ResourceFilterPredicate struct { predicate.Funcs Selector labels.Selector } -// Update implements default UpdateEvent filter for validating generation change -func (GenerationChangedPredicate) Update(e event.UpdateEvent) bool { - if e.MetaOld == nil { - log.Error(nil, "Update event has no old metadata", "event", e) - return false - } - if e.ObjectOld == nil { - log.Error(nil, "Update event has no old runtime object to update", "event", e) - return false - } - if e.ObjectNew == nil { - log.Error(nil, "Update event has no new runtime object for update", "event", e) - return false - } - if e.MetaNew == nil { - log.Error(nil, "Update event has no new metadata", "event", e) - return false - } - if e.MetaNew.GetGeneration() == e.MetaOld.GetGeneration() && e.MetaNew.GetGeneration() != 0 { - return false - } - return true -} - // Skips events that have labels matching selectors defined in watches.yaml func (r ResourceFilterPredicate) eventFilter(eventLabels map[string]string) bool { return r.Selector.Matches(labels.Set(eventLabels))