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  }