Skip to content

Commit 654aa1d

Browse files
authored
Merge pull request kubernetes#83234 from SataQiu/scheduler-cleanup-20190927
scheduler: change PredicateMetadata.AddPod to use *v1.Node insead of rich *schedulernodeinfo.NodeInfo
2 parents 77d0ebe + bcaa991 commit 654aa1d

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

pkg/scheduler/algorithm/predicates/metadata.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import (
3737
// PredicateMetadata interface represents anything that can access a predicate metadata.
3838
type PredicateMetadata interface {
3939
ShallowCopy() PredicateMetadata
40-
AddPod(addedPod *v1.Pod, nodeInfo *schedulernodeinfo.NodeInfo) error
40+
AddPod(addedPod *v1.Pod, node *v1.Node) error
4141
RemovePod(deletedPod *v1.Pod, node *v1.Node) error
4242
}
4343

@@ -350,8 +350,10 @@ func NodeLabelsMatchSpreadConstraints(nodeLabels map[string]string, constraints
350350

351351
// returns a pointer to a new topologyPairsMaps
352352
func newTopologyPairsMaps() *topologyPairsMaps {
353-
return &topologyPairsMaps{topologyPairToPods: make(map[topologyPair]podSet),
354-
podToTopologyPairs: make(map[string]topologyPairSet)}
353+
return &topologyPairsMaps{
354+
topologyPairToPods: make(map[topologyPair]podSet),
355+
podToTopologyPairs: make(map[string]topologyPairSet),
356+
}
355357
}
356358

357359
func (m *topologyPairsMaps) addTopologyPair(pair topologyPair, pod *v1.Pod) {
@@ -480,18 +482,18 @@ func (meta *predicateMetadata) RemovePod(deletedPod *v1.Pod, node *v1.Node) erro
480482
return nil
481483
}
482484

483-
// AddPod changes predicateMetadata assuming that `newPod` is added to the
485+
// AddPod changes predicateMetadata assuming that the given `addedPod` is added to the
484486
// system.
485-
func (meta *predicateMetadata) AddPod(addedPod *v1.Pod, nodeInfo *schedulernodeinfo.NodeInfo) error {
487+
func (meta *predicateMetadata) AddPod(addedPod *v1.Pod, node *v1.Node) error {
486488
addedPodFullName := schedutil.GetPodFullName(addedPod)
487489
if addedPodFullName == schedutil.GetPodFullName(meta.pod) {
488490
return fmt.Errorf("addedPod and meta.pod must not be the same")
489491
}
490-
if nodeInfo.Node() == nil {
491-
return fmt.Errorf("invalid node in nodeInfo")
492+
if node == nil {
493+
return fmt.Errorf("node not found")
492494
}
493495
// Add matching anti-affinity terms of the addedPod to the map.
494-
topologyPairsMaps, err := getMatchingAntiAffinityTopologyPairsOfPod(meta.pod, addedPod, nodeInfo.Node())
496+
topologyPairsMaps, err := getMatchingAntiAffinityTopologyPairsOfPod(meta.pod, addedPod, node)
495497
if err != nil {
496498
return err
497499
}
@@ -500,14 +502,13 @@ func (meta *predicateMetadata) AddPod(addedPod *v1.Pod, nodeInfo *schedulernodei
500502
affinity := meta.pod.Spec.Affinity
501503
podNodeName := addedPod.Spec.NodeName
502504
if affinity != nil && len(podNodeName) > 0 {
503-
podNode := nodeInfo.Node()
504505
// It is assumed that when the added pod matches affinity of the meta.pod, all the terms must match,
505506
// this should be changed when the implementation of targetPodMatchesAffinityOfPod/podMatchesAffinityTermProperties
506507
// is changed
507508
if targetPodMatchesAffinityOfPod(meta.pod, addedPod) {
508509
affinityTerms := GetPodAffinityTerms(affinity.PodAffinity)
509510
for _, term := range affinityTerms {
510-
if topologyValue, ok := podNode.Labels[term.TopologyKey]; ok {
511+
if topologyValue, ok := node.Labels[term.TopologyKey]; ok {
511512
pair := topologyPair{key: term.TopologyKey, value: topologyValue}
512513
meta.topologyPairsPotentialAffinityPods.addTopologyPair(pair, addedPod)
513514
}
@@ -516,7 +517,7 @@ func (meta *predicateMetadata) AddPod(addedPod *v1.Pod, nodeInfo *schedulernodei
516517
if targetPodMatchesAntiAffinityOfPod(meta.pod, addedPod) {
517518
antiAffinityTerms := GetPodAntiAffinityTerms(affinity.PodAntiAffinity)
518519
for _, term := range antiAffinityTerms {
519-
if topologyValue, ok := podNode.Labels[term.TopologyKey]; ok {
520+
if topologyValue, ok := node.Labels[term.TopologyKey]; ok {
520521
pair := topologyPair{key: term.TopologyKey, value: topologyValue}
521522
meta.topologyPairsPotentialAntiAffinityPods.addTopologyPair(pair, addedPod)
522523
}
@@ -525,7 +526,7 @@ func (meta *predicateMetadata) AddPod(addedPod *v1.Pod, nodeInfo *schedulernodei
525526
}
526527
// Update meta.podSpreadCache if meta.pod has hard spread constraints
527528
// and addedPod matches that
528-
if err := meta.podSpreadCache.addPod(addedPod, meta.pod, nodeInfo.Node()); err != nil {
529+
if err := meta.podSpreadCache.addPod(addedPod, meta.pod, node); err != nil {
529530
return err
530531
}
531532

pkg/scheduler/algorithm/predicates/metadata_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
375375
existingPodsMeta1, nodeInfoMap := getMeta(st.FakePodLister(test.existingPods))
376376
// Add test.addedPod to existingPodsMeta1 and make sure meta is equal to allPodsMeta
377377
nodeInfo := nodeInfoMap[test.addedPod.Spec.NodeName]
378-
if err := existingPodsMeta1.AddPod(test.addedPod, nodeInfo); err != nil {
378+
if err := existingPodsMeta1.AddPod(test.addedPod, nodeInfo.Node()); err != nil {
379379
t.Errorf("error adding pod to meta: %v", err)
380380
}
381381
if err := predicateMetadataEquivalent(allPodsMeta, existingPodsMeta1); err != nil {

pkg/scheduler/core/generic_scheduler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ func addNominatedPods(pod *v1.Pod, meta predicates.PredicateMetadata,
597597
if podutil.GetPodPriority(p) >= podutil.GetPodPriority(pod) && p.UID != pod.UID {
598598
nodeInfoOut.AddPod(p)
599599
if metaOut != nil {
600-
if err := metaOut.AddPod(p, nodeInfoOut); err != nil {
600+
if err := metaOut.AddPod(p, nodeInfoOut.Node()); err != nil {
601601
klog.Warningf("unable to add pod, nominated pod %s, incoming pod %s: %v", p.Name, pod.Name, err)
602602
}
603603
}
@@ -1128,7 +1128,7 @@ func (g *genericScheduler) selectVictimsOnNode(
11281128
addPod := func(ap *v1.Pod) error {
11291129
nodeInfoCopy.AddPod(ap)
11301130
if meta != nil {
1131-
if err := meta.AddPod(ap, nodeInfoCopy); err != nil {
1131+
if err := meta.AddPod(ap, nodeInfoCopy.Node()); err != nil {
11321132
return err
11331133
}
11341134
}

0 commit comments

Comments
 (0)