@@ -20,11 +20,14 @@ import (
20
20
. "github.com/onsi/ginkgo"
21
21
. "github.com/onsi/gomega"
22
22
appsv1 "k8s.io/api/apps/v1"
23
+ autoscalingv1 "k8s.io/api/autoscaling/v1"
23
24
corev1 "k8s.io/api/core/v1"
25
+ "k8s.io/apimachinery/pkg/api/meta"
24
26
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25
27
"k8s.io/apimachinery/pkg/types"
26
28
"k8s.io/client-go/kubernetes/scheme"
27
29
"k8s.io/client-go/util/workqueue"
30
+ "sigs.k8s.io/controller-runtime/pkg/client/apiutil"
28
31
"sigs.k8s.io/controller-runtime/pkg/controller/controllertest"
29
32
"sigs.k8s.io/controller-runtime/pkg/event"
30
33
"sigs.k8s.io/controller-runtime/pkg/handler"
@@ -35,13 +38,19 @@ var _ = Describe("Eventhandler", func() {
35
38
var q workqueue.RateLimitingInterface
36
39
var instance handler.EnqueueRequestForObject
37
40
var pod * corev1.Pod
41
+ var mapper meta.RESTMapper
38
42
t := true
39
43
BeforeEach (func () {
40
44
q = controllertest.Queue {Interface : workqueue .New ()}
41
45
instance = handler.EnqueueRequestForObject {}
42
46
pod = & corev1.Pod {
43
47
ObjectMeta : metav1.ObjectMeta {Namespace : "biz" , Name : "baz" },
44
48
}
49
+ Expect (cfg ).NotTo (BeNil ())
50
+
51
+ var err error
52
+ mapper , err = apiutil .NewDiscoveryRESTMapper (cfg )
53
+ Expect (err ).ShouldNot (HaveOccurred ())
45
54
})
46
55
47
56
Describe ("EnqueueRequestForObject" , func () {
@@ -347,6 +356,7 @@ var _ = Describe("Eventhandler", func() {
347
356
OwnerType : & appsv1.ReplicaSet {},
348
357
}
349
358
instance .InjectScheme (scheme .Scheme )
359
+ instance .InjectMapper (mapper )
350
360
351
361
pod .OwnerReferences = []metav1.OwnerReference {
352
362
{
@@ -372,6 +382,7 @@ var _ = Describe("Eventhandler", func() {
372
382
OwnerType : & appsv1.ReplicaSet {},
373
383
}
374
384
instance .InjectScheme (scheme .Scheme )
385
+ instance .InjectMapper (mapper )
375
386
376
387
pod .OwnerReferences = []metav1.OwnerReference {
377
388
{
@@ -401,6 +412,7 @@ var _ = Describe("Eventhandler", func() {
401
412
OwnerType : & appsv1.ReplicaSet {},
402
413
}
403
414
instance .InjectScheme (scheme .Scheme )
415
+ instance .InjectMapper (mapper )
404
416
405
417
pod .OwnerReferences = []metav1.OwnerReference {
406
418
{
@@ -439,6 +451,7 @@ var _ = Describe("Eventhandler", func() {
439
451
OwnerType : & appsv1.ReplicaSet {},
440
452
}
441
453
instance .InjectScheme (scheme .Scheme )
454
+ instance .InjectMapper (mapper )
442
455
443
456
pod .OwnerReferences = []metav1.OwnerReference {
444
457
{
@@ -465,6 +478,7 @@ var _ = Describe("Eventhandler", func() {
465
478
IsController : t ,
466
479
}
467
480
instance .InjectScheme (scheme .Scheme )
481
+ instance .InjectMapper (mapper )
468
482
pod .OwnerReferences = []metav1.OwnerReference {
469
483
{ // Wrong group
470
484
Name : "foo1-parent" ,
@@ -488,14 +502,15 @@ var _ = Describe("Eventhandler", func() {
488
502
It ("should enqueue a Request if there are owners matching Group " +
489
503
"and Kind with a different version." , func () {
490
504
instance := handler.EnqueueRequestForOwner {
491
- OwnerType : & appsv1. ReplicaSet {},
505
+ OwnerType : & autoscalingv1. HorizontalPodAutoscaler {},
492
506
}
493
507
instance .InjectScheme (scheme .Scheme )
508
+ instance .InjectMapper (mapper )
494
509
pod .OwnerReferences = []metav1.OwnerReference {
495
510
{
496
511
Name : "foo-parent" ,
497
- Kind : "ReplicaSet " ,
498
- APIVersion : "apps/v2 " ,
512
+ Kind : "HorizontalPodAutoscaler " ,
513
+ APIVersion : "autoscaling/v2beta1 " ,
499
514
},
500
515
}
501
516
evt := event.CreateEvent {
@@ -510,11 +525,38 @@ var _ = Describe("Eventhandler", func() {
510
525
NamespacedName : types.NamespacedName {Namespace : pod .GetNamespace (), Name : "foo-parent" }}))
511
526
})
512
527
528
+ It ("should enqueue a Request for a owner that is cluster scoped" , func () {
529
+ instance := handler.EnqueueRequestForOwner {
530
+ OwnerType : & corev1.Node {},
531
+ }
532
+ instance .InjectScheme (scheme .Scheme )
533
+ instance .InjectMapper (mapper )
534
+ pod .OwnerReferences = []metav1.OwnerReference {
535
+ {
536
+ Name : "node-1" ,
537
+ Kind : "Node" ,
538
+ APIVersion : "v1" ,
539
+ },
540
+ }
541
+ evt := event.CreateEvent {
542
+ Object : pod ,
543
+ Meta : pod .GetObjectMeta (),
544
+ }
545
+ instance .Create (evt , q )
546
+ Expect (q .Len ()).To (Equal (1 ))
547
+
548
+ i , _ := q .Get ()
549
+ Expect (i ).To (Equal (reconcile.Request {
550
+ NamespacedName : types.NamespacedName {Namespace : "" , Name : "node-1" }}))
551
+
552
+ })
553
+
513
554
It ("should not enqueue a Request if there are no owners." , func () {
514
555
instance := handler.EnqueueRequestForOwner {
515
556
OwnerType : & appsv1.ReplicaSet {},
516
557
}
517
558
instance .InjectScheme (scheme .Scheme )
559
+ instance .InjectMapper (mapper )
518
560
evt := event.CreateEvent {
519
561
Object : pod ,
520
562
Meta : pod .GetObjectMeta (),
@@ -531,6 +573,7 @@ var _ = Describe("Eventhandler", func() {
531
573
IsController : t ,
532
574
}
533
575
instance .InjectScheme (scheme .Scheme )
576
+ instance .InjectMapper (mapper )
534
577
pod .OwnerReferences = []metav1.OwnerReference {
535
578
{
536
579
Name : "foo1-parent" ,
@@ -577,6 +620,7 @@ var _ = Describe("Eventhandler", func() {
577
620
IsController : t ,
578
621
}
579
622
instance .InjectScheme (scheme .Scheme )
623
+ instance .InjectMapper (mapper )
580
624
pod .OwnerReferences = []metav1.OwnerReference {
581
625
{
582
626
Name : "foo1-parent" ,
@@ -608,6 +652,7 @@ var _ = Describe("Eventhandler", func() {
608
652
IsController : t ,
609
653
}
610
654
instance .InjectScheme (scheme .Scheme )
655
+ instance .InjectMapper (mapper )
611
656
evt := event.CreateEvent {
612
657
Object : pod ,
613
658
Meta : pod .GetObjectMeta (),
@@ -623,6 +668,7 @@ var _ = Describe("Eventhandler", func() {
623
668
OwnerType : & appsv1.ReplicaSet {},
624
669
}
625
670
instance .InjectScheme (scheme .Scheme )
671
+ instance .InjectMapper (mapper )
626
672
pod .OwnerReferences = []metav1.OwnerReference {
627
673
{
628
674
Name : "foo1-parent" ,
@@ -665,6 +711,7 @@ var _ = Describe("Eventhandler", func() {
665
711
OwnerType : & appsv1.ReplicaSet {},
666
712
}
667
713
instance .InjectScheme (scheme .Scheme )
714
+ instance .InjectMapper (mapper )
668
715
pod .OwnerReferences = []metav1.OwnerReference {
669
716
{
670
717
Name : "foo1-parent" ,
@@ -686,6 +733,7 @@ var _ = Describe("Eventhandler", func() {
686
733
OwnerType : & metav1.ListOptions {},
687
734
}
688
735
instance .InjectScheme (scheme .Scheme )
736
+ instance .InjectMapper (mapper )
689
737
pod .OwnerReferences = []metav1.OwnerReference {
690
738
{
691
739
Name : "foo1-parent" ,
@@ -707,6 +755,7 @@ var _ = Describe("Eventhandler", func() {
707
755
OwnerType : & controllertest.ErrorType {},
708
756
}
709
757
instance .InjectScheme (scheme .Scheme )
758
+ instance .InjectMapper (mapper )
710
759
pod .OwnerReferences = []metav1.OwnerReference {
711
760
{
712
761
Name : "foo1-parent" ,
@@ -727,6 +776,7 @@ var _ = Describe("Eventhandler", func() {
727
776
It ("should do nothing." , func () {
728
777
instance := handler.EnqueueRequestForOwner {}
729
778
instance .InjectScheme (scheme .Scheme )
779
+ instance .InjectMapper (mapper )
730
780
pod .OwnerReferences = []metav1.OwnerReference {
731
781
{
732
782
Name : "foo1-parent" ,
@@ -749,6 +799,7 @@ var _ = Describe("Eventhandler", func() {
749
799
OwnerType : & appsv1.ReplicaSet {},
750
800
}
751
801
instance .InjectScheme (scheme .Scheme )
802
+ instance .InjectMapper (mapper )
752
803
pod .OwnerReferences = []metav1.OwnerReference {
753
804
{
754
805
Name : "foo1-parent" ,
0 commit comments