Commit 623e7dfa authored by Abhishek Gupta's avatar Abhishek Gupta

Considering all nodes for the scheduler cache to allow lookups

parent e79f0469
...@@ -449,6 +449,11 @@ func getNodeConditionPredicate() cache.NodeConditionPredicate { ...@@ -449,6 +449,11 @@ func getNodeConditionPredicate() cache.NodeConditionPredicate {
return false return false
} }
} }
// Ignore nodes that are marked unschedulable
if node.Spec.Unschedulable {
glog.V(4).Infof("Ignoring node %v since it is unschedulable", node.Name)
return false
}
return true return true
} }
} }
...@@ -470,9 +475,10 @@ func (factory *ConfigFactory) createAssignedNonTerminatedPodLW() *cache.ListWatc ...@@ -470,9 +475,10 @@ func (factory *ConfigFactory) createAssignedNonTerminatedPodLW() *cache.ListWatc
// createNodeLW returns a cache.ListWatch that gets all changes to nodes. // createNodeLW returns a cache.ListWatch that gets all changes to nodes.
func (factory *ConfigFactory) createNodeLW() *cache.ListWatch { func (factory *ConfigFactory) createNodeLW() *cache.ListWatch {
// TODO: Filter out nodes that doesn't have NodeReady condition. // all nodes are considered to ensure that the scheduler cache has access to all nodes for lookups
fields := fields.Set{api.NodeUnschedulableField: "false"}.AsSelector() // the NodeCondition is used to filter out the nodes that are not ready or unschedulable
return cache.NewListWatchFromClient(factory.Client, "nodes", api.NamespaceAll, fields) // the filtered list is used as the super set of nodes to consider for scheduling
return cache.NewListWatchFromClient(factory.Client, "nodes", api.NamespaceAll, fields.ParseSelectorOrDie(""))
} }
// createPersistentVolumeLW returns a cache.ListWatch that gets all changes to persistentVolumes. // createPersistentVolumeLW returns a cache.ListWatch that gets all changes to persistentVolumes.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment