Merge pull request #106169 from kerthcet/bug/shape-can-be-empty-in-scoring-stragety

ScoringStrategy RequestedToCapacityRatio's shape should not be empty
This commit is contained in:
Kubernetes Prow Robot 2021-11-10 21:33:49 -08:00 committed by GitHub
commit d9f06f9e18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 10 deletions

View File

@ -306,7 +306,7 @@ func ValidateNodeResourcesFitArgs(path *field.Path, args *config.NodeResourcesFi
if args.ScoringStrategy != nil {
allErrs = append(allErrs, validateResources(args.ScoringStrategy.Resources, path.Child("resources"))...)
if args.ScoringStrategy.RequestedToCapacityRatio != nil && len(args.ScoringStrategy.RequestedToCapacityRatio.Shape) > 0 {
if args.ScoringStrategy.RequestedToCapacityRatio != nil {
allErrs = append(allErrs, validateFunctionShape(args.ScoringStrategy.RequestedToCapacityRatio.Shape, path.Child("shape"))...)
}
}

View File

@ -947,14 +947,31 @@ func TestValidateMostAllocatedScoringStrategy(t *testing.T) {
}
func TestValidateRequestedToCapacityRatioScoringStrategy(t *testing.T) {
defaultShape := []config.UtilizationShapePoint{
{
Utilization: 30,
Score: 3,
},
}
tests := []struct {
name string
resources []config.ResourceSpec
shapes []config.UtilizationShapePoint
wantErrs field.ErrorList
}{
{
name: "no shapes",
shapes: nil,
wantErrs: field.ErrorList{
{
Type: field.ErrorTypeRequired,
Field: "shape",
},
},
},
{
name: "weight greater than max",
shapes: defaultShape,
resources: []config.ResourceSpec{
{
Name: "cpu",
@ -970,6 +987,7 @@ func TestValidateRequestedToCapacityRatioScoringStrategy(t *testing.T) {
},
{
name: "weight less than min",
shapes: defaultShape,
resources: []config.ResourceSpec{
{
Name: "cpu",
@ -985,12 +1003,7 @@ func TestValidateRequestedToCapacityRatioScoringStrategy(t *testing.T) {
},
{
name: "valid shapes",
shapes: []config.UtilizationShapePoint{
{
Utilization: 30,
Score: 3,
},
},
shapes: defaultShape,
wantErrs: nil,
},
{