@@ -21,6 +21,8 @@ import (
21
21
. "github.com/onsi/gomega"
22
22
corev1 "k8s.io/api/core/v1"
23
23
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24
+ "k8s.io/apimachinery/pkg/runtime"
25
+
24
26
"sigs.k8s.io/controller-runtime/pkg/event"
25
27
"sigs.k8s.io/controller-runtime/pkg/predicate"
26
28
)
@@ -491,4 +493,54 @@ var _ = Describe("Predicate", func() {
491
493
})
492
494
})
493
495
})
496
+
497
+ Describe ("NewPredicateFuncs with a namespace filter function" , func () {
498
+ byNamespaceFilter := func (namespace string ) func (m metav1.Object , object runtime.Object ) bool {
499
+ return func (m metav1.Object , object runtime.Object ) bool {
500
+ return m .GetNamespace () == namespace
501
+ }
502
+ }
503
+ byNamespaceFuncs := predicate .NewPredicateFuncs (byNamespaceFilter ("biz" ))
504
+ Context ("Where the namespace is matching" , func () {
505
+ It ("should return true" , func () {
506
+ new := & corev1.Pod {
507
+ ObjectMeta : metav1.ObjectMeta {
508
+ Name : "baz" ,
509
+ Namespace : "biz" ,
510
+ }}
511
+
512
+ old := & corev1.Pod {
513
+ ObjectMeta : metav1.ObjectMeta {
514
+ Name : "baz" ,
515
+ Namespace : "biz" ,
516
+ }}
517
+ passEvt1 := event.UpdateEvent {MetaOld : old .GetObjectMeta (), ObjectOld : old , MetaNew : new .GetObjectMeta ()}
518
+ Expect (byNamespaceFuncs .Create (event.CreateEvent {Meta : new .GetObjectMeta (), Object : new })).To (BeTrue ())
519
+ Expect (byNamespaceFuncs .Delete (event.DeleteEvent {Meta : old .GetObjectMeta (), Object : old })).To (BeTrue ())
520
+ Expect (byNamespaceFuncs .Generic (event.GenericEvent {Meta : new .GetObjectMeta (), Object : new })).To (BeTrue ())
521
+ Expect (byNamespaceFuncs .Update (passEvt1 )).To (BeTrue ())
522
+ })
523
+ })
524
+
525
+ Context ("Where the namespace is not matching" , func () {
526
+ It ("should return false" , func () {
527
+ new := & corev1.Pod {
528
+ ObjectMeta : metav1.ObjectMeta {
529
+ Name : "baz" ,
530
+ Namespace : "bizz" ,
531
+ }}
532
+
533
+ old := & corev1.Pod {
534
+ ObjectMeta : metav1.ObjectMeta {
535
+ Name : "baz" ,
536
+ Namespace : "biz" ,
537
+ }}
538
+ failEvt1 := event.UpdateEvent {MetaOld : old .GetObjectMeta (), ObjectOld : old , MetaNew : new .GetObjectMeta ()}
539
+ Expect (byNamespaceFuncs .Create (event.CreateEvent {Meta : new .GetObjectMeta (), Object : new })).To (BeFalse ())
540
+ Expect (byNamespaceFuncs .Delete (event.DeleteEvent {Meta : new .GetObjectMeta (), Object : new })).To (BeFalse ())
541
+ Expect (byNamespaceFuncs .Generic (event.GenericEvent {Meta : new .GetObjectMeta (), Object : new })).To (BeFalse ())
542
+ Expect (byNamespaceFuncs .Update (failEvt1 )).To (BeFalse ())
543
+ })
544
+ })
545
+ })
494
546
})
0 commit comments