func validateEnforcedName(name string) error { // up to 63 characters is nominally possible, however "-1" gets added on the // end later for the deployment controller. Deduct 5 from 63 to at least // cover us up to -9999. if reasons := validation.ValidateServiceName(name, false); (len(reasons) != 0 || len(name) > 58) && !app.IsParameterizableValue(name) { return fmt.Errorf("invalid name: %s. Must be an a lower case alphanumeric (a-z, and 0-9) string with a maximum length of 58 characters, where the first character is a letter (a-z), and the '-' character is allowed anywhere except the first or last character.", name) } return nil }
func makeValidServiceName(name string) (string, string) { if len(validation.ValidateServiceName(name, false)) == 0 { return name, "" } name = MakeSimpleName(name) if len(name) == 0 { return "", "service-" } return name, "" }
// validateIngressBackend tests if a given backend is valid. func validateIngressBackend(backend *extensions.IngressBackend, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} // All backends must reference a single local service by name, and a single service port by name or number. if len(backend.ServiceName) == 0 { return append(allErrs, field.Required(fldPath.Child("serviceName"), "")) } else { for _, msg := range apivalidation.ValidateServiceName(backend.ServiceName, false) { allErrs = append(allErrs, field.Invalid(fldPath.Child("serviceName"), backend.ServiceName, msg)) } } allErrs = append(allErrs, apivalidation.ValidatePortNumOrName(backend.ServicePort, fldPath.Child("servicePort"))...) return allErrs }
func makeValidServiceName(name string) (string, string) { if ok, _ := validation.ValidateServiceName(name, false); ok { return name, "" } name = strings.ToLower(name) name = invalidServiceChars.ReplaceAllString(name, "") name = strings.TrimFunc(name, func(r rune) bool { return r == '-' }) switch { case len(name) == 0: return "", "service-" case len(name) > kuval.DNS952LabelMaxLength: name = name[:kuval.DNS952LabelMaxLength] } return name, "" }
// validateIngressBackend tests if a given backend is valid. func validateIngressBackend(backend *extensions.IngressBackend, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} // All backends must reference a single local service by name, and a single service port by name or number. if len(backend.ServiceName) == 0 { return append(allErrs, field.Required(fldPath.Child("serviceName"), "")) } else if ok, errMsg := apivalidation.ValidateServiceName(backend.ServiceName, false); !ok { allErrs = append(allErrs, field.Invalid(fldPath.Child("serviceName"), backend.ServiceName, errMsg)) } if backend.ServicePort.Type == intstr.String { if !validation.IsDNS1123Label(backend.ServicePort.StrVal) { allErrs = append(allErrs, field.Invalid(fldPath.Child("servicePort"), backend.ServicePort.StrVal, apivalidation.DNS1123LabelErrorMsg)) } if !validation.IsValidPortName(backend.ServicePort.StrVal) { allErrs = append(allErrs, field.Invalid(fldPath.Child("servicePort"), backend.ServicePort.StrVal, apivalidation.PortNameErrorMsg)) } } else if !validation.IsValidPortNum(backend.ServicePort.IntValue()) { allErrs = append(allErrs, field.Invalid(fldPath.Child("servicePort"), backend.ServicePort, apivalidation.PortRangeErrorMsg)) } return allErrs }
// validateIngressBackend tests if a given backend is valid. func validateIngressBackend(backend *extensions.IngressBackend) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} // All backends must reference a single local service by name, and a single service port by name or number. if len(backend.ServiceName) == 0 { return append(allErrs, errs.NewFieldRequired("serviceName")) } else if ok, errMsg := apivalidation.ValidateServiceName(backend.ServiceName, false); !ok { allErrs = append(allErrs, errs.NewFieldInvalid("serviceName", backend.ServiceName, errMsg)) } if backend.ServicePort.Kind == util.IntstrString { if !utilvalidation.IsDNS1123Label(backend.ServicePort.StrVal) { allErrs = append(allErrs, errs.NewFieldInvalid("servicePort", backend.ServicePort.StrVal, apivalidation.DNS1123LabelErrorMsg)) } if !utilvalidation.IsValidPortName(backend.ServicePort.StrVal) { allErrs = append(allErrs, errs.NewFieldInvalid("servicePort", backend.ServicePort.StrVal, portNameErrorMsg)) } } else if !utilvalidation.IsValidPortNum(backend.ServicePort.IntVal) { allErrs = append(allErrs, errs.NewFieldInvalid("servicePort", backend.ServicePort, portRangeErrorMsg)) } return allErrs }
func (c *AppConfig) validateEnforcedName() error { if ok, _ := validation.ValidateServiceName(c.Name, false); !ok { return fmt.Errorf("invalid name: %s. Must be an a lower case alphanumeric (a-z, and 0-9) string with a maximum length of 24 characters, where the first character is a letter (a-z), and the '-' character is allowed anywhere except the first or last character.", c.Name) } return nil }
func validateEnforcedName(name string) error { if reasons := validation.ValidateServiceName(name, false); len(reasons) != 0 && !app.IsParameterizableValue(name) { return fmt.Errorf("invalid name: %s. Must be an a lower case alphanumeric (a-z, and 0-9) string with a maximum length of 24 characters, where the first character is a letter (a-z), and the '-' character is allowed anywhere except the first or last character.", name) } return nil }