diff --git a/pkg/scheduler/apis/config/validation/validation_pluginargs.go b/pkg/scheduler/apis/config/validation/validation_pluginargs.go index e3797dc8734b9..49f1b866a212d 100644 --- a/pkg/scheduler/apis/config/validation/validation_pluginargs.go +++ b/pkg/scheduler/apis/config/validation/validation_pluginargs.go @@ -317,8 +317,12 @@ func ValidateNodeResourcesFitArgs(path *field.Path, args *config.NodeResourcesFi allErrs = append(allErrs, field.NotSupported(strategyPath.Child("type"), args.ScoringStrategy.Type, sets.List(supportedScoringStrategyTypes))) } allErrs = append(allErrs, validateResources(args.ScoringStrategy.Resources, strategyPath.Child("resources"))...) - if args.ScoringStrategy.RequestedToCapacityRatio != nil { - allErrs = append(allErrs, validateFunctionShape(args.ScoringStrategy.RequestedToCapacityRatio.Shape, strategyPath.Child("shape"))...) + if args.ScoringStrategy.Type == config.RequestedToCapacityRatio { + if args.ScoringStrategy.RequestedToCapacityRatio == nil { + allErrs = append(allErrs, field.Required(strategyPath.Child("requestedToCapacityRatio"), "must be specified when type is RequestedToCapacityRatio")) + } else { + allErrs = append(allErrs, validateFunctionShape(args.ScoringStrategy.RequestedToCapacityRatio.Shape, strategyPath.Child("shape"))...) + } } } diff --git a/pkg/scheduler/apis/config/validation/validation_pluginargs_test.go b/pkg/scheduler/apis/config/validation/validation_pluginargs_test.go index e452575fa8e31..1022eeb6ace8f 100644 --- a/pkg/scheduler/apis/config/validation/validation_pluginargs_test.go +++ b/pkg/scheduler/apis/config/validation/validation_pluginargs_test.go @@ -754,6 +754,15 @@ func TestValidateFitArgs(t *testing.T) { }, expect: `Unsupported value: "Invalid"`, }, + { + name: "ScoringStrategy: requestedToCapacityRatio field is missing", + args: config.NodeResourcesFitArgs{ + ScoringStrategy: &config.ScoringStrategy{ + Type: config.RequestedToCapacityRatio, + }, + }, + expect: "must be specified when type is RequestedToCapacityRatio", + }, } for _, test := range argsTest {