@@ -29,7 +29,6 @@ import (
29
29
resourcev1alpha2 "k8s.io/api/resource/v1alpha2"
30
30
storagev1 "k8s.io/api/storage/v1"
31
31
"k8s.io/apimachinery/pkg/api/resource"
32
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
33
32
utilfeature "k8s.io/apiserver/pkg/util/feature"
34
33
featuregatetesting "k8s.io/component-base/featuregate/testing"
35
34
"k8s.io/klog/v2/ktesting"
@@ -53,157 +52,6 @@ import (
53
52
"k8s.io/kubernetes/pkg/scheduler/util/assumecache"
54
53
)
55
54
56
- func TestNodeAllocatableChanged (t * testing.T ) {
57
- newQuantity := func (value int64 ) resource.Quantity {
58
- return * resource .NewQuantity (value , resource .BinarySI )
59
- }
60
- for _ , test := range []struct {
61
- Name string
62
- Changed bool
63
- OldAllocatable v1.ResourceList
64
- NewAllocatable v1.ResourceList
65
- }{
66
- {
67
- Name : "no allocatable resources changed" ,
68
- Changed : false ,
69
- OldAllocatable : v1.ResourceList {v1 .ResourceMemory : newQuantity (1024 )},
70
- NewAllocatable : v1.ResourceList {v1 .ResourceMemory : newQuantity (1024 )},
71
- },
72
- {
73
- Name : "new node has more allocatable resources" ,
74
- Changed : true ,
75
- OldAllocatable : v1.ResourceList {v1 .ResourceMemory : newQuantity (1024 )},
76
- NewAllocatable : v1.ResourceList {v1 .ResourceMemory : newQuantity (1024 ), v1 .ResourceStorage : newQuantity (1024 )},
77
- },
78
- } {
79
- t .Run (test .Name , func (t * testing.T ) {
80
- oldNode := & v1.Node {Status : v1.NodeStatus {Allocatable : test .OldAllocatable }}
81
- newNode := & v1.Node {Status : v1.NodeStatus {Allocatable : test .NewAllocatable }}
82
- changed := nodeAllocatableChanged (newNode , oldNode )
83
- if changed != test .Changed {
84
- t .Errorf ("nodeAllocatableChanged should be %t, got %t" , test .Changed , changed )
85
- }
86
- })
87
- }
88
- }
89
-
90
- func TestNodeLabelsChanged (t * testing.T ) {
91
- for _ , test := range []struct {
92
- Name string
93
- Changed bool
94
- OldLabels map [string ]string
95
- NewLabels map [string ]string
96
- }{
97
- {
98
- Name : "no labels changed" ,
99
- Changed : false ,
100
- OldLabels : map [string ]string {"foo" : "bar" },
101
- NewLabels : map [string ]string {"foo" : "bar" },
102
- },
103
- // Labels changed.
104
- {
105
- Name : "new node has more labels" ,
106
- Changed : true ,
107
- OldLabels : map [string ]string {"foo" : "bar" },
108
- NewLabels : map [string ]string {"foo" : "bar" , "test" : "value" },
109
- },
110
- } {
111
- t .Run (test .Name , func (t * testing.T ) {
112
- oldNode := & v1.Node {ObjectMeta : metav1.ObjectMeta {Labels : test .OldLabels }}
113
- newNode := & v1.Node {ObjectMeta : metav1.ObjectMeta {Labels : test .NewLabels }}
114
- changed := nodeLabelsChanged (newNode , oldNode )
115
- if changed != test .Changed {
116
- t .Errorf ("Test case %q failed: should be %t, got %t" , test .Name , test .Changed , changed )
117
- }
118
- })
119
- }
120
- }
121
-
122
- func TestNodeTaintsChanged (t * testing.T ) {
123
- for _ , test := range []struct {
124
- Name string
125
- Changed bool
126
- OldTaints []v1.Taint
127
- NewTaints []v1.Taint
128
- }{
129
- {
130
- Name : "no taint changed" ,
131
- Changed : false ,
132
- OldTaints : []v1.Taint {{Key : "key" , Value : "value" }},
133
- NewTaints : []v1.Taint {{Key : "key" , Value : "value" }},
134
- },
135
- {
136
- Name : "taint value changed" ,
137
- Changed : true ,
138
- OldTaints : []v1.Taint {{Key : "key" , Value : "value1" }},
139
- NewTaints : []v1.Taint {{Key : "key" , Value : "value2" }},
140
- },
141
- } {
142
- t .Run (test .Name , func (t * testing.T ) {
143
- oldNode := & v1.Node {Spec : v1.NodeSpec {Taints : test .OldTaints }}
144
- newNode := & v1.Node {Spec : v1.NodeSpec {Taints : test .NewTaints }}
145
- changed := nodeTaintsChanged (newNode , oldNode )
146
- if changed != test .Changed {
147
- t .Errorf ("Test case %q failed: should be %t, not %t" , test .Name , test .Changed , changed )
148
- }
149
- })
150
- }
151
- }
152
-
153
- func TestNodeConditionsChanged (t * testing.T ) {
154
- nodeConditionType := reflect .TypeOf (v1.NodeCondition {})
155
- if nodeConditionType .NumField () != 6 {
156
- t .Errorf ("NodeCondition type has changed. The nodeConditionsChanged() function must be reevaluated." )
157
- }
158
-
159
- for _ , test := range []struct {
160
- Name string
161
- Changed bool
162
- OldConditions []v1.NodeCondition
163
- NewConditions []v1.NodeCondition
164
- }{
165
- {
166
- Name : "no condition changed" ,
167
- Changed : false ,
168
- OldConditions : []v1.NodeCondition {{Type : v1 .NodeDiskPressure , Status : v1 .ConditionTrue }},
169
- NewConditions : []v1.NodeCondition {{Type : v1 .NodeDiskPressure , Status : v1 .ConditionTrue }},
170
- },
171
- {
172
- Name : "only LastHeartbeatTime changed" ,
173
- Changed : false ,
174
- OldConditions : []v1.NodeCondition {{Type : v1 .NodeDiskPressure , Status : v1 .ConditionTrue , LastHeartbeatTime : metav1 .Unix (1 , 0 )}},
175
- NewConditions : []v1.NodeCondition {{Type : v1 .NodeDiskPressure , Status : v1 .ConditionTrue , LastHeartbeatTime : metav1 .Unix (2 , 0 )}},
176
- },
177
- {
178
- Name : "new node has more healthy conditions" ,
179
- Changed : true ,
180
- OldConditions : []v1.NodeCondition {},
181
- NewConditions : []v1.NodeCondition {{Type : v1 .NodeReady , Status : v1 .ConditionTrue }},
182
- },
183
- {
184
- Name : "new node has less unhealthy conditions" ,
185
- Changed : true ,
186
- OldConditions : []v1.NodeCondition {{Type : v1 .NodeDiskPressure , Status : v1 .ConditionTrue }},
187
- NewConditions : []v1.NodeCondition {},
188
- },
189
- {
190
- Name : "condition status changed" ,
191
- Changed : true ,
192
- OldConditions : []v1.NodeCondition {{Type : v1 .NodeReady , Status : v1 .ConditionFalse }},
193
- NewConditions : []v1.NodeCondition {{Type : v1 .NodeReady , Status : v1 .ConditionTrue }},
194
- },
195
- } {
196
- t .Run (test .Name , func (t * testing.T ) {
197
- oldNode := & v1.Node {Status : v1.NodeStatus {Conditions : test .OldConditions }}
198
- newNode := & v1.Node {Status : v1.NodeStatus {Conditions : test .NewConditions }}
199
- changed := nodeConditionsChanged (newNode , oldNode )
200
- if changed != test .Changed {
201
- t .Errorf ("Test case %q failed: should be %t, got %t" , test .Name , test .Changed , changed )
202
- }
203
- })
204
- }
205
- }
206
-
207
55
func TestUpdatePodInCache (t * testing.T ) {
208
56
ttl := 10 * time .Second
209
57
nodeName := "node"
@@ -574,91 +422,3 @@ func TestAdmissionCheck(t *testing.T) {
574
422
})
575
423
}
576
424
}
577
-
578
- func TestNodeSchedulingPropertiesChange (t * testing.T ) {
579
- testCases := []struct {
580
- name string
581
- newNode * v1.Node
582
- oldNode * v1.Node
583
- wantEvents []framework.ClusterEvent
584
- }{
585
- {
586
- name : "no specific changed applied" ,
587
- newNode : st .MakeNode ().Unschedulable (false ).Obj (),
588
- oldNode : st .MakeNode ().Unschedulable (false ).Obj (),
589
- wantEvents : nil ,
590
- },
591
- {
592
- name : "only node spec unavailable changed" ,
593
- newNode : st .MakeNode ().Unschedulable (false ).Obj (),
594
- oldNode : st .MakeNode ().Unschedulable (true ).Obj (),
595
- wantEvents : []framework.ClusterEvent {queue .NodeSpecUnschedulableChange },
596
- },
597
- {
598
- name : "only node allocatable changed" ,
599
- newNode : st .MakeNode ().Capacity (map [v1.ResourceName ]string {
600
- v1 .ResourceCPU : "1000m" ,
601
- v1 .ResourceMemory : "100m" ,
602
- v1 .ResourceName ("example.com/foo" ): "1" },
603
- ).Obj (),
604
- oldNode : st .MakeNode ().Capacity (map [v1.ResourceName ]string {
605
- v1 .ResourceCPU : "1000m" ,
606
- v1 .ResourceMemory : "100m" ,
607
- v1 .ResourceName ("example.com/foo" ): "2" },
608
- ).Obj (),
609
- wantEvents : []framework.ClusterEvent {queue .NodeAllocatableChange },
610
- },
611
- {
612
- name : "only node label changed" ,
613
- newNode : st .MakeNode ().Label ("foo" , "bar" ).Obj (),
614
- oldNode : st .MakeNode ().Label ("foo" , "fuz" ).Obj (),
615
- wantEvents : []framework.ClusterEvent {queue .NodeLabelChange },
616
- },
617
- {
618
- name : "only node taint changed" ,
619
- newNode : st .MakeNode ().Taints ([]v1.Taint {
620
- {Key : v1 .TaintNodeUnschedulable , Value : "" , Effect : v1 .TaintEffectNoSchedule },
621
- }).Obj (),
622
- oldNode : st .MakeNode ().Taints ([]v1.Taint {
623
- {Key : v1 .TaintNodeUnschedulable , Value : "foo" , Effect : v1 .TaintEffectNoSchedule },
624
- }).Obj (),
625
- wantEvents : []framework.ClusterEvent {queue .NodeTaintChange },
626
- },
627
- {
628
- name : "only node annotation changed" ,
629
- newNode : st .MakeNode ().Annotation ("foo" , "bar" ).Obj (),
630
- oldNode : st .MakeNode ().Annotation ("foo" , "fuz" ).Obj (),
631
- wantEvents : []framework.ClusterEvent {queue .NodeAnnotationChange },
632
- },
633
- {
634
- name : "only node condition changed" ,
635
- newNode : st .MakeNode ().Obj (),
636
- oldNode : st .MakeNode ().Condition (
637
- v1 .NodeReady ,
638
- v1 .ConditionTrue ,
639
- "Ready" ,
640
- "Ready" ,
641
- ).Obj (),
642
- wantEvents : []framework.ClusterEvent {queue .NodeConditionChange },
643
- },
644
- {
645
- name : "both node label and node taint changed" ,
646
- newNode : st .MakeNode ().
647
- Label ("foo" , "bar" ).
648
- Taints ([]v1.Taint {
649
- {Key : v1 .TaintNodeUnschedulable , Value : "" , Effect : v1 .TaintEffectNoSchedule },
650
- }).Obj (),
651
- oldNode : st .MakeNode ().Taints ([]v1.Taint {
652
- {Key : v1 .TaintNodeUnschedulable , Value : "foo" , Effect : v1 .TaintEffectNoSchedule },
653
- }).Obj (),
654
- wantEvents : []framework.ClusterEvent {queue .NodeLabelChange , queue .NodeTaintChange },
655
- },
656
- }
657
-
658
- for _ , tc := range testCases {
659
- gotEvents := nodeSchedulingPropertiesChange (tc .newNode , tc .oldNode )
660
- if diff := cmp .Diff (tc .wantEvents , gotEvents ); diff != "" {
661
- t .Errorf ("unexpected event (-want, +got):\n %s" , diff )
662
- }
663
- }
664
- }
0 commit comments