open-cluster-management.io/governance-policy-propagator@v0.13.0/controllers/policyset/policyPredicate.go (about) 1 // Copyright (c) 2022 Red Hat, Inc. 2 // Copyright Contributors to the Open Cluster Management project 3 4 package controllers 5 6 import ( 7 "k8s.io/apimachinery/pkg/api/equality" 8 "sigs.k8s.io/controller-runtime/pkg/event" 9 "sigs.k8s.io/controller-runtime/pkg/predicate" 10 11 policiesv1 "open-cluster-management.io/governance-policy-propagator/api/v1" 12 ) 13 14 var policyPredicateFuncs = predicate.Funcs{ 15 UpdateFunc: func(e event.UpdateEvent) bool { 16 //nolint:forcetypeassert 17 policyObjNew := e.ObjectNew.(*policiesv1.Policy) 18 //nolint:forcetypeassert 19 policyObjOld := e.ObjectOld.(*policiesv1.Policy) 20 21 return !equality.Semantic.DeepEqual(policyObjNew.Status, policyObjOld.Status) 22 }, 23 CreateFunc: func(e event.CreateEvent) bool { 24 return true 25 }, 26 DeleteFunc: func(e event.DeleteEvent) bool { 27 return true 28 }, 29 }