@@ -26,6 +26,9 @@ import (
26
26
"k8s.io/apimachinery/pkg/api/resource"
27
27
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28
28
"k8s.io/apimachinery/pkg/types"
29
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
30
+ featuregatetesting "k8s.io/component-base/featuregate/testing"
31
+ "k8s.io/kubernetes/pkg/features"
29
32
)
30
33
31
34
func TestNewResource (t * testing.T ) {
@@ -540,6 +543,9 @@ func TestNodeInfoClone(t *testing.T) {
540
543
}
541
544
542
545
func TestNodeInfoAddPod (t * testing.T ) {
546
+
547
+ defer featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .PodOverhead , true )()
548
+
543
549
nodeName := "test-node"
544
550
pods := []* v1.Pod {
545
551
{
@@ -567,6 +573,9 @@ func TestNodeInfoAddPod(t *testing.T) {
567
573
},
568
574
},
569
575
NodeName : nodeName ,
576
+ Overhead : v1.ResourceList {
577
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
578
+ },
570
579
},
571
580
},
572
581
{
@@ -580,8 +589,7 @@ func TestNodeInfoAddPod(t *testing.T) {
580
589
{
581
590
Resources : v1.ResourceRequirements {
582
591
Requests : v1.ResourceList {
583
- v1 .ResourceCPU : resource .MustParse ("200m" ),
584
- v1 .ResourceMemory : resource .MustParse ("1Ki" ),
592
+ v1 .ResourceCPU : resource .MustParse ("200m" ),
585
593
},
586
594
},
587
595
Ports : []v1.ContainerPort {
@@ -594,6 +602,10 @@ func TestNodeInfoAddPod(t *testing.T) {
594
602
},
595
603
},
596
604
NodeName : nodeName ,
605
+ Overhead : v1.ResourceList {
606
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
607
+ v1 .ResourceMemory : resource .MustParse ("500" ),
608
+ },
597
609
},
598
610
},
599
611
}
@@ -604,15 +616,15 @@ func TestNodeInfoAddPod(t *testing.T) {
604
616
},
605
617
},
606
618
requestedResource : & Resource {
607
- MilliCPU : 300 ,
608
- Memory : 1524 ,
619
+ MilliCPU : 1300 ,
620
+ Memory : 1000 ,
609
621
EphemeralStorage : 0 ,
610
622
AllowedPodNumber : 0 ,
611
623
ScalarResources : map [v1.ResourceName ]int64 (nil ),
612
624
},
613
625
nonzeroRequest : & Resource {
614
- MilliCPU : 300 ,
615
- Memory : 1524 ,
626
+ MilliCPU : 1300 ,
627
+ Memory : 209716200 , //200MB + 1000 specified in requests/overhead
616
628
EphemeralStorage : 0 ,
617
629
AllowedPodNumber : 0 ,
618
630
ScalarResources : map [v1.ResourceName ]int64 (nil ),
@@ -653,6 +665,9 @@ func TestNodeInfoAddPod(t *testing.T) {
653
665
},
654
666
},
655
667
NodeName : nodeName ,
668
+ Overhead : v1.ResourceList {
669
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
670
+ },
656
671
},
657
672
},
658
673
{
@@ -666,8 +681,7 @@ func TestNodeInfoAddPod(t *testing.T) {
666
681
{
667
682
Resources : v1.ResourceRequirements {
668
683
Requests : v1.ResourceList {
669
- v1 .ResourceCPU : resource .MustParse ("200m" ),
670
- v1 .ResourceMemory : resource .MustParse ("1Ki" ),
684
+ v1 .ResourceCPU : resource .MustParse ("200m" ),
671
685
},
672
686
},
673
687
Ports : []v1.ContainerPort {
@@ -680,6 +694,10 @@ func TestNodeInfoAddPod(t *testing.T) {
680
694
},
681
695
},
682
696
NodeName : nodeName ,
697
+ Overhead : v1.ResourceList {
698
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
699
+ v1 .ResourceMemory : resource .MustParse ("500" ),
700
+ },
683
701
},
684
702
},
685
703
},
@@ -702,12 +720,23 @@ func TestNodeInfoAddPod(t *testing.T) {
702
720
}
703
721
704
722
func TestNodeInfoRemovePod (t * testing.T ) {
723
+
724
+ defer featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .PodOverhead , true )()
725
+
705
726
nodeName := "test-node"
706
727
pods := []* v1.Pod {
707
728
makeBasePod (t , nodeName , "test-1" , "100m" , "500" , "" , []v1.ContainerPort {{HostIP : "127.0.0.1" , HostPort : 80 , Protocol : "TCP" }}),
708
729
makeBasePod (t , nodeName , "test-2" , "200m" , "1Ki" , "" , []v1.ContainerPort {{HostIP : "127.0.0.1" , HostPort : 8080 , Protocol : "TCP" }}),
709
730
}
710
731
732
+ // add pod Overhead
733
+ for _ , pod := range pods {
734
+ pod .Spec .Overhead = v1.ResourceList {
735
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
736
+ v1 .ResourceMemory : resource .MustParse ("500" ),
737
+ }
738
+ }
739
+
711
740
tests := []struct {
712
741
pod * v1.Pod
713
742
errExpected bool
@@ -723,15 +752,15 @@ func TestNodeInfoRemovePod(t *testing.T) {
723
752
},
724
753
},
725
754
requestedResource : & Resource {
726
- MilliCPU : 300 ,
727
- Memory : 1524 ,
755
+ MilliCPU : 1300 ,
756
+ Memory : 2524 ,
728
757
EphemeralStorage : 0 ,
729
758
AllowedPodNumber : 0 ,
730
759
ScalarResources : map [v1.ResourceName ]int64 (nil ),
731
760
},
732
761
nonzeroRequest : & Resource {
733
- MilliCPU : 300 ,
734
- Memory : 1524 ,
762
+ MilliCPU : 1300 ,
763
+ Memory : 2524 ,
735
764
EphemeralStorage : 0 ,
736
765
AllowedPodNumber : 0 ,
737
766
ScalarResources : map [v1.ResourceName ]int64 (nil ),
@@ -772,6 +801,10 @@ func TestNodeInfoRemovePod(t *testing.T) {
772
801
},
773
802
},
774
803
NodeName : nodeName ,
804
+ Overhead : v1.ResourceList {
805
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
806
+ v1 .ResourceMemory : resource .MustParse ("500" ),
807
+ },
775
808
},
776
809
},
777
810
{
@@ -799,6 +832,10 @@ func TestNodeInfoRemovePod(t *testing.T) {
799
832
},
800
833
},
801
834
NodeName : nodeName ,
835
+ Overhead : v1.ResourceList {
836
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
837
+ v1 .ResourceMemory : resource .MustParse ("500" ),
838
+ },
802
839
},
803
840
},
804
841
},
@@ -830,6 +867,10 @@ func TestNodeInfoRemovePod(t *testing.T) {
830
867
},
831
868
},
832
869
NodeName : nodeName ,
870
+ Overhead : v1.ResourceList {
871
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
872
+ v1 .ResourceMemory : resource .MustParse ("500" ),
873
+ },
833
874
},
834
875
},
835
876
errExpected : false ,
@@ -840,15 +881,15 @@ func TestNodeInfoRemovePod(t *testing.T) {
840
881
},
841
882
},
842
883
requestedResource : & Resource {
843
- MilliCPU : 200 ,
844
- Memory : 1024 ,
884
+ MilliCPU : 700 ,
885
+ Memory : 1524 ,
845
886
EphemeralStorage : 0 ,
846
887
AllowedPodNumber : 0 ,
847
888
ScalarResources : map [v1.ResourceName ]int64 (nil ),
848
889
},
849
890
nonzeroRequest : & Resource {
850
- MilliCPU : 200 ,
851
- Memory : 1024 ,
891
+ MilliCPU : 700 ,
892
+ Memory : 1524 ,
852
893
EphemeralStorage : 0 ,
853
894
AllowedPodNumber : 0 ,
854
895
ScalarResources : map [v1.ResourceName ]int64 (nil ),
@@ -888,6 +929,10 @@ func TestNodeInfoRemovePod(t *testing.T) {
888
929
},
889
930
},
890
931
NodeName : nodeName ,
932
+ Overhead : v1.ResourceList {
933
+ v1 .ResourceCPU : resource .MustParse ("500m" ),
934
+ v1 .ResourceMemory : resource .MustParse ("500" ),
935
+ },
891
936
},
892
937
},
893
938
},
0 commit comments