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  }