open-cluster-management.io/governance-policy-propagator@v0.13.0/controllers/automation/policyPredicate.go (about) 1 // Copyright Contributors to the Open Cluster Management project 2 3 package automation 4 5 import ( 6 "github.com/google/go-cmp/cmp" 7 "sigs.k8s.io/controller-runtime/pkg/event" 8 "sigs.k8s.io/controller-runtime/pkg/predicate" 9 10 policiesv1 "open-cluster-management.io/governance-policy-propagator/api/v1" 11 ) 12 13 // we only want to watch for pb contains policy as subjects 14 var policyPredicateFuncs = predicate.Funcs{ 15 UpdateFunc: func(e event.UpdateEvent) bool { 16 //nolint:forcetypeassert 17 plcObjNew := e.ObjectNew.(*policiesv1.Policy) 18 if _, ok := plcObjNew.Labels["policy.open-cluster-management.io/root-policy"]; ok { 19 return false 20 } 21 22 //nolint:forcetypeassert 23 plcObjOld := e.ObjectOld.(*policiesv1.Policy) 24 25 return !cmp.Equal(plcObjNew.Status.Status, plcObjOld.Status.Status) 26 }, 27 CreateFunc: func(e event.CreateEvent) bool { 28 return false 29 }, 30 DeleteFunc: func(e event.DeleteEvent) bool { 31 return false 32 }, 33 }