diff --git a/pkg/scheduler/framework/v1alpha1/framework.go b/pkg/scheduler/framework/v1alpha1/framework.go index 7dce3761a13..a4d3d787c5e 100644 --- a/pkg/scheduler/framework/v1alpha1/framework.go +++ b/pkg/scheduler/framework/v1alpha1/framework.go @@ -93,9 +93,8 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi // A weight of zero is not permitted, plugins can be disabled explicitly // when configured. - f.pluginNameToWeightMap[name] = int(pg[name].Weight) - if f.pluginNameToWeightMap[name] == 0 { - f.pluginNameToWeightMap[name] = 1 + if pg[name].Weight != 0 { + f.pluginNameToWeightMap[name] = int(pg[name].Weight) } } @@ -121,6 +120,9 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi return nil, fmt.Errorf("plugin %v does not extend score plugin", sc.Name) } f.scorePlugins = append(f.scorePlugins, p) + if _, exists := f.pluginNameToWeightMap[p.Name()]; !exists { + return nil, fmt.Errorf("score plugin %v is not configured with weight", sc.Name) + } } else { return nil, fmt.Errorf("score plugin %v does not exist", sc.Name) } @@ -276,12 +278,8 @@ func (f *framework) RunScorePlugins(pc *PluginContext, pod *v1.Pod, nodes []*v1. errCh := schedutil.NewErrorChannel() workqueue.ParallelizeUntil(ctx, 16, len(nodes), func(index int) { for _, pl := range f.scorePlugins { - weight, weightExists := f.pluginNameToWeightMap[pl.Name()] - if !weightExists { - err := fmt.Errorf("weight does not exist for plugin %v", pl.Name()) - errCh.SendErrorWithCancel(err, cancel) - return - } + // Score plugins' weight has been checked when they are initialized. + weight, _ := f.pluginNameToWeightMap[pl.Name()] score, status := pl.Score(pc, pod, nodes[index].Name) if !status.IsSuccess() { errCh.SendErrorWithCancel(fmt.Errorf(status.Message()), cancel) diff --git a/test/integration/scheduler/framework_test.go b/test/integration/scheduler/framework_test.go index 910efafccb3..1050b6b5166 100644 --- a/test/integration/scheduler/framework_test.go +++ b/test/integration/scheduler/framework_test.go @@ -456,6 +456,7 @@ func TestScorePlugin(t *testing.T) { Enabled: []schedulerconfig.Plugin{ { Name: scorePluginName, + Weight: 1, }, }, },