v2/internal/util/predicates/namespace_predicate.go (18 lines of code) (raw):
/*
Copyright (c) Microsoft Corporation.
Licensed under the MIT license.
*/
package predicates
import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/predicate"
)
// MakeNamespacePredicate creates a predicate that matches resources in a specific namespace only
func MakeNamespacePredicate(namespaces ...string) predicate.Predicate {
return makeObjectPredicate(func(_ client.Object, objectNew client.Object) bool {
if objectNew == nil {
return false
}
for _, ns := range namespaces {
if objectNew.GetNamespace() == ns {
return true
}
}
return false
})
}