From 068c69d743644e7efefecabc91444028828cfb27 Mon Sep 17 00:00:00 2001 From: Dave Chen Date: Thu, 18 Jun 2020 16:20:48 +0800 Subject: [PATCH] Skip `PreScore` when the `TopologySpreadConstraints` is specified `DefaultPodTopologySpread` need't score when the `TopologySpreadConstraints` is specified. `PreScore` needn't do this as well, this cut off the cost of `PreScore` if possible. Signed-off-by: Dave Chen --- .../defaultpodtopologyspread/default_pod_topology_spread.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/scheduler/framework/plugins/defaultpodtopologyspread/default_pod_topology_spread.go b/pkg/scheduler/framework/plugins/defaultpodtopologyspread/default_pod_topology_spread.go index d93264745db..089d2837a9a 100644 --- a/pkg/scheduler/framework/plugins/defaultpodtopologyspread/default_pod_topology_spread.go +++ b/pkg/scheduler/framework/plugins/defaultpodtopologyspread/default_pod_topology_spread.go @@ -171,6 +171,9 @@ func (pl *DefaultPodTopologySpread) ScoreExtensions() framework.ScoreExtensions // PreScore builds and writes cycle state used by Score and NormalizeScore. func (pl *DefaultPodTopologySpread) PreScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodes []*v1.Node) *framework.Status { + if skipDefaultPodTopologySpread(pod) { + return nil + } var selector labels.Selector informerFactory := pl.handle.SharedInformerFactory() selector = helper.DefaultSelector(