open-cluster-management.io/governance-policy-propagator@v0.13.0/controllers/policyset/policySetPredicate.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 policiesv1beta1 "open-cluster-management.io/governance-policy-propagator/api/v1beta1" 12 ) 13 14 var policySetPredicateFuncs = predicate.Funcs{ 15 UpdateFunc: func(e event.UpdateEvent) bool { 16 //nolint:forcetypeassert 17 policySetObjNew := e.ObjectNew.(*policiesv1beta1.PolicySet) 18 //nolint:forcetypeassert 19 policySetObjOld := e.ObjectOld.(*policiesv1beta1.PolicySet) 20 21 return !equality.Semantic.DeepEqual( 22 policySetObjNew.Spec.Policies, 23 policySetObjOld.Spec.Policies, 24 ) 25 }, 26 CreateFunc: func(e event.CreateEvent) bool { 27 return true 28 }, 29 DeleteFunc: func(e event.DeleteEvent) bool { 30 return true 31 }, 32 }