From f09eeaf104fe65a911dbd01a0e004b18663d9cee Mon Sep 17 00:00:00 2001 From: lianghao208 Date: Thu, 16 Feb 2023 14:56:04 +0800 Subject: [PATCH] Validating the scheduling gate naming format --- pkg/apis/core/validation/validation.go | 4 +--- pkg/apis/core/validation/validation_test.go | 13 ++++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 254709af6baac..74655ce7cbce8 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -3365,9 +3365,7 @@ func validateSchedulingGates(schedulingGates []core.PodSchedulingGate, fldPath * // There should be no duplicates in the list of scheduling gates. seen := sets.String{} for i, schedulingGate := range schedulingGates { - if schedulingGate.Name == "" { - allErrs = append(allErrs, field.Required(fldPath.Index(i), "must not be empty")) - } + allErrs = append(allErrs, ValidateQualifiedName(schedulingGate.Name, fldPath.Index(i))...) if seen.Has(schedulingGate.Name) { allErrs = append(allErrs, field.Duplicate(fldPath.Index(i), schedulingGate.Name)) } diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index 46d81ac27adcc..1ccdaa20901d1 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -18696,7 +18696,10 @@ func TestValidateSchedulingGates(t *testing.T) { {Name: "foo"}, {Name: ""}, }, - wantFieldErrors: []*field.Error{field.Required(fieldPath.Index(1), "must not be empty")}, + wantFieldErrors: field.ErrorList{ + field.Invalid(fieldPath.Index(1), "", "name part must be non-empty"), + field.Invalid(fieldPath.Index(1), "", "name part must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]')"), + }, }, { name: "legal gates", @@ -18706,6 +18709,14 @@ func TestValidateSchedulingGates(t *testing.T) { }, wantFieldErrors: field.ErrorList{}, }, + { + name: "illegal gates", + schedulingGates: []core.PodSchedulingGate{ + {Name: "foo"}, + {Name: "\nbar"}, + }, + wantFieldErrors: []*field.Error{field.Invalid(fieldPath.Index(1), "\nbar", "name part must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]')")}, + }, { name: "duplicated gates (single duplication)", schedulingGates: []core.PodSchedulingGate{