@@ -991,10 +991,10 @@ func (n *NodeLabelChecker) CheckNodeLabelPresence(pod *v1.Pod, meta PredicateMet
991
991
992
992
// ServiceAffinity defines a struct used for creating service affinity predicates.
993
993
type ServiceAffinity struct {
994
- nodeLister schedulerlisters.NodeLister
995
- podLister schedulerlisters.PodLister
996
- serviceLister corelisters.ServiceLister
997
- labels []string
994
+ nodeInfoLister schedulerlisters.NodeInfoLister
995
+ podLister schedulerlisters.PodLister
996
+ serviceLister corelisters.ServiceLister
997
+ labels []string
998
998
}
999
999
1000
1000
// serviceAffinityMetadataProducer should be run once by the scheduler before looping through the Predicate. It is a helper function that
@@ -1024,12 +1024,12 @@ func (s *ServiceAffinity) serviceAffinityMetadataProducer(pm *predicateMetadata)
1024
1024
}
1025
1025
1026
1026
// NewServiceAffinityPredicate creates a ServiceAffinity.
1027
- func NewServiceAffinityPredicate (nodeLister schedulerlisters.NodeLister , podLister schedulerlisters.PodLister , serviceLister corelisters.ServiceLister , labels []string ) (FitPredicate , predicateMetadataProducer ) {
1027
+ func NewServiceAffinityPredicate (nodeInfoLister schedulerlisters.NodeInfoLister , podLister schedulerlisters.PodLister , serviceLister corelisters.ServiceLister , labels []string ) (FitPredicate , predicateMetadataProducer ) {
1028
1028
affinity := & ServiceAffinity {
1029
- nodeLister : nodeLister ,
1030
- podLister : podLister ,
1031
- serviceLister : serviceLister ,
1032
- labels : labels ,
1029
+ nodeInfoLister : nodeInfoLister ,
1030
+ podLister : podLister ,
1031
+ serviceLister : serviceLister ,
1032
+ labels : labels ,
1033
1033
}
1034
1034
return affinity .checkServiceAffinity , affinity .serviceAffinityMetadataProducer
1035
1035
}
@@ -1084,11 +1084,11 @@ func (s *ServiceAffinity) checkServiceAffinity(pod *v1.Pod, meta PredicateMetada
1084
1084
if len (s .labels ) > len (affinityLabels ) {
1085
1085
if len (services ) > 0 {
1086
1086
if len (filteredPods ) > 0 {
1087
- nodeWithAffinityLabels , err := s .nodeLister . GetNodeInfo (filteredPods [0 ].Spec .NodeName )
1087
+ nodeWithAffinityLabels , err := s .nodeInfoLister . Get (filteredPods [0 ].Spec .NodeName )
1088
1088
if err != nil {
1089
1089
return false , nil , err
1090
1090
}
1091
- AddUnsetLabelsToMap (affinityLabels , s .labels , labels .Set (nodeWithAffinityLabels .Labels ))
1091
+ AddUnsetLabelsToMap (affinityLabels , s .labels , labels .Set (nodeWithAffinityLabels .Node (). Labels ))
1092
1092
}
1093
1093
}
1094
1094
}
@@ -1192,15 +1192,15 @@ func EssentialPredicates(pod *v1.Pod, meta PredicateMetadata, nodeInfo *schedule
1192
1192
1193
1193
// PodAffinityChecker contains information to check pod affinity.
1194
1194
type PodAffinityChecker struct {
1195
- nodeLister schedulerlisters.NodeLister
1196
- podLister schedulerlisters.PodLister
1195
+ nodeInfoLister schedulerlisters.NodeInfoLister
1196
+ podLister schedulerlisters.PodLister
1197
1197
}
1198
1198
1199
1199
// NewPodAffinityPredicate creates a PodAffinityChecker.
1200
- func NewPodAffinityPredicate (nodeLister schedulerlisters.NodeLister , podLister schedulerlisters.PodLister ) FitPredicate {
1200
+ func NewPodAffinityPredicate (nodeInfoLister schedulerlisters.NodeInfoLister , podLister schedulerlisters.PodLister ) FitPredicate {
1201
1201
checker := & PodAffinityChecker {
1202
- nodeLister : nodeLister ,
1203
- podLister : podLister ,
1202
+ nodeInfoLister : nodeInfoLister ,
1203
+ podLister : podLister ,
1204
1204
}
1205
1205
return checker .InterPodAffinityMatches
1206
1206
}
@@ -1254,15 +1254,15 @@ func (c *PodAffinityChecker) podMatchesPodAffinityTerms(pod, targetPod *v1.Pod,
1254
1254
return false , false , nil
1255
1255
}
1256
1256
// Namespace and selector of the terms have matched. Now we check topology of the terms.
1257
- targetPodNodeInfo , err := c .nodeLister . GetNodeInfo (targetPod .Spec .NodeName )
1257
+ targetPodNodeInfo , err := c .nodeInfoLister . Get (targetPod .Spec .NodeName )
1258
1258
if err != nil {
1259
1259
return false , false , err
1260
1260
}
1261
1261
for _ , term := range terms {
1262
1262
if len (term .TopologyKey ) == 0 {
1263
1263
return false , false , fmt .Errorf ("empty topologyKey is not allowed except for PreferredDuringScheduling pod anti-affinity" )
1264
1264
}
1265
- if ! priorityutil .NodesHaveSameTopologyKey (nodeInfo .Node (), targetPodNodeInfo , term .TopologyKey ) {
1265
+ if ! priorityutil .NodesHaveSameTopologyKey (nodeInfo .Node (), targetPodNodeInfo . Node () , term .TopologyKey ) {
1266
1266
return false , true , nil
1267
1267
}
1268
1268
}
@@ -1327,12 +1327,12 @@ func (c *PodAffinityChecker) getMatchingAntiAffinityTopologyPairsOfPods(pod *v1.
1327
1327
topologyMaps := newTopologyPairsMaps ()
1328
1328
1329
1329
for _ , existingPod := range existingPods {
1330
- existingPodNode , err := c .nodeLister . GetNodeInfo (existingPod .Spec .NodeName )
1330
+ existingPodNodeInfo , err := c .nodeInfoLister . Get (existingPod .Spec .NodeName )
1331
1331
if err != nil {
1332
1332
klog .Errorf ("Pod %s has NodeName %q but node is not found" , podName (existingPod ), existingPod .Spec .NodeName )
1333
1333
continue
1334
1334
}
1335
- existingPodTopologyMaps , err := getMatchingAntiAffinityTopologyPairsOfPod (pod , existingPod , existingPodNode )
1335
+ existingPodTopologyMaps , err := getMatchingAntiAffinityTopologyPairsOfPod (pod , existingPod , existingPodNodeInfo . Node () )
1336
1336
if err != nil {
1337
1337
return nil , err
1338
1338
}
0 commit comments