From 2850c47c55872c29768e365d524b57852ab22733 Mon Sep 17 00:00:00 2001 From: bobzetian Date: Sat, 6 Dec 2025 01:44:08 +0000 Subject: [PATCH] fix config load error when picker is set before the scoerer w/o weight. --- pkg/epp/config/loader/configloader_test.go | 23 +++++++++++++++++++++- pkg/epp/config/loader/defaults.go | 1 - 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/pkg/epp/config/loader/configloader_test.go b/pkg/epp/config/loader/configloader_test.go index a23f22316..f925e7180 100644 --- a/pkg/epp/config/loader/configloader_test.go +++ b/pkg/epp/config/loader/configloader_test.go @@ -419,6 +419,11 @@ func TestLoadConfig(t *testing.T) { configText: successWithNoProfileHandlersText, wantErr: false, }, + { + name: "successPickerWeightUnsetScorerText", + configText: successPickerWeightUnsetScorerText, + wantErr: false, + }, { name: "errorBadYaml", configText: errorBadYamlText, @@ -472,7 +477,7 @@ func TestLoadConfig(t *testing.T) { t.Errorf("LoadConfigPhaseOne returned an unexpected error. error %v", err) } t.Logf("error was %s", err) - } else if test.wantErr { + } else { handle := utils.NewTestHandle(context.Background()) _, err = LoadConfigPhaseTwo(rawConfig, handle, logger) if err != nil { @@ -945,6 +950,22 @@ schedulingProfiles: - pluginRef: maxScore ` +// success with picker and unset weight scorer +// +//nolint:dupword +const successPickerWeightUnsetScorerText = ` +apiVersion: inference.networking.x-k8s.io/v1alpha1 +kind: EndpointPickerConfig +plugins: +- type: random-picker +- type: prefix-cache-scorer +schedulingProfiles: +- name: default + plugins: + - pluginRef: random-picker + - pluginRef: prefix-cache-scorer +` + // invalid parameter configuration for plugin (string passed, in expected) // //nolint:dupword diff --git a/pkg/epp/config/loader/defaults.go b/pkg/epp/config/loader/defaults.go index 17075dd05..224ffc557 100644 --- a/pkg/epp/config/loader/defaults.go +++ b/pkg/epp/config/loader/defaults.go @@ -145,7 +145,6 @@ func setDefaultsPhaseTwo(cfg *configapi.EndpointPickerConfig, handle plugins.Han cfg.SchedulingProfiles[idx] = theProfile } else if _, ok := referencedPlugin.(framework.Picker); ok { hasPicker = true - break } } if !hasPicker {