diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index f85b398cc4f..391f7fba5aa 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -71,13 +71,10 @@ func ValidateAnnotations(annotations map[string]string, field string) errs.Valid if !util.IsQualifiedName(strings.ToLower(k)) { allErrs = append(allErrs, errs.NewFieldInvalid(field, k, qualifiedNameErrorMsg)) } - if !util.IsValidAnnotationValue(v) { - allErrs = append(allErrs, errs.NewFieldInvalid(field, k, "")) - } totalSize += (int64)(len(k)) + (int64)(len(v)) } if totalSize > (int64)(totalAnnotationSizeLimitB) { - allErrs = append(allErrs, errs.NewFieldTooLong("annotations", "")) + allErrs = append(allErrs, errs.NewFieldTooLong(field, "", totalAnnotationSizeLimitB)) } return allErrs } diff --git a/pkg/util/fielderrors/fielderrors.go b/pkg/util/fielderrors/fielderrors.go index 7889636807e..3307724a707 100644 --- a/pkg/util/fielderrors/fielderrors.go +++ b/pkg/util/fielderrors/fielderrors.go @@ -92,7 +92,7 @@ var _ error = &ValidationError{} func (v *ValidationError) Error() string { var s string switch v.Type { - case ValidationErrorTypeRequired: + case ValidationErrorTypeRequired, ValidationErrorTypeTooLong: s = spew.Sprintf("%s: %s", v.Field, v.Type) default: s = spew.Sprintf("%s: %s '%+v'", v.Field, v.Type, v.BadValue) @@ -133,8 +133,8 @@ func NewFieldNotFound(field string, value interface{}) *ValidationError { return &ValidationError{ValidationErrorTypeNotFound, field, value, ""} } -func NewFieldTooLong(field string, value interface{}) *ValidationError { - return &ValidationError{ValidationErrorTypeTooLong, field, value, ""} +func NewFieldTooLong(field string, value interface{}, maxLength int) *ValidationError { + return &ValidationError{ValidationErrorTypeTooLong, field, value, fmt.Sprintf("must have at most %d characters", maxLength)} } type ValidationErrorList []error diff --git a/pkg/util/validation.go b/pkg/util/validation.go index 73a59e2bbf5..eb466be7c5b 100644 --- a/pkg/util/validation.go +++ b/pkg/util/validation.go @@ -33,11 +33,6 @@ func IsValidLabelValue(value string) bool { return (len(value) <= LabelValueMaxLength && labelValueRegexp.MatchString(value)) } -// Annotation values are opaque. -func IsValidAnnotationValue(value string) bool { - return true -} - const QualifiedNameFmt string = "(" + qnameTokenFmt + "/)?" + qnameTokenFmt const QualifiedNameMaxLength int = 253