@@ -23,7 +23,9 @@ import (
23
23
"time"
24
24
25
25
"k8s.io/api/core/v1"
26
+ "k8s.io/apimachinery/pkg/api/resource"
26
27
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28
+ "k8s.io/apimachinery/pkg/util/sets"
27
29
"k8s.io/apimachinery/pkg/util/wait"
28
30
"k8s.io/kubernetes/pkg/scheduler/algorithm"
29
31
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
@@ -575,3 +577,87 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
575
577
func createNode (name string ) * v1.Node {
576
578
return & v1.Node {ObjectMeta : metav1.ObjectMeta {Name : name }}
577
579
}
580
+
581
+ func TestIsInterested (t * testing.T ) {
582
+ mem := & HTTPExtender {
583
+ managedResources : sets .NewString (),
584
+ }
585
+ mem .managedResources .Insert ("memory" )
586
+
587
+ for _ , tc := range []struct {
588
+ label string
589
+ extender * HTTPExtender
590
+ pod * v1.Pod
591
+ want bool
592
+ }{
593
+ {
594
+ label : "Empty managed resources" ,
595
+ extender : & HTTPExtender {
596
+ managedResources : sets .NewString (),
597
+ },
598
+ pod : & v1.Pod {},
599
+ want : true ,
600
+ },
601
+ {
602
+ label : "Managed memory, empty resources" ,
603
+ extender : mem ,
604
+ pod : & v1.Pod {
605
+ Spec : v1.PodSpec {
606
+ Containers : []v1.Container {
607
+ {
608
+ Name : "app" ,
609
+ },
610
+ },
611
+ },
612
+ },
613
+ want : false ,
614
+ },
615
+ {
616
+ label : "Managed memory, container memory" ,
617
+ extender : mem ,
618
+ pod : & v1.Pod {
619
+ Spec : v1.PodSpec {
620
+ Containers : []v1.Container {
621
+ {
622
+ Name : "app" ,
623
+ Resources : v1.ResourceRequirements {
624
+ Requests : v1.ResourceList {"memory" : resource.Quantity {}},
625
+ Limits : v1.ResourceList {"memory" : resource.Quantity {}},
626
+ },
627
+ },
628
+ },
629
+ },
630
+ },
631
+ want : true ,
632
+ },
633
+ {
634
+ label : "Managed memory, init container memory" ,
635
+ extender : mem ,
636
+ pod : & v1.Pod {
637
+ Spec : v1.PodSpec {
638
+ Containers : []v1.Container {
639
+ {
640
+ Name : "app" ,
641
+ },
642
+ },
643
+ InitContainers : []v1.Container {
644
+ {
645
+ Name : "init" ,
646
+ Resources : v1.ResourceRequirements {
647
+ Requests : v1.ResourceList {"memory" : resource.Quantity {}},
648
+ Limits : v1.ResourceList {"memory" : resource.Quantity {}},
649
+ },
650
+ },
651
+ },
652
+ },
653
+ },
654
+ want : true ,
655
+ },
656
+ } {
657
+ t .Run (tc .label , func (t * testing.T ) {
658
+ if got := tc .extender .IsInterested (tc .pod ); got != tc .want {
659
+ t .Fatalf ("IsInterested(%v) = %v, wanted %v" , tc .pod , got , tc .want )
660
+ }
661
+ })
662
+ }
663
+ }
0 commit comments