func validateIngressRules(IngressRules []extensions.IngressRule) validation.ErrorList { allErrs := validation.ErrorList{} if len(IngressRules) == 0 { return append(allErrs, validation.NewRequiredError("IngressRules")) } for _, ih := range IngressRules { if len(ih.Host) > 0 { // TODO: Ports and ips are allowed in the host part of a url // according to RFC 3986, consider allowing them. if valid, errMsg := apivalidation.NameIsDNSSubdomain(ih.Host, false); !valid { allErrs = append(allErrs, validation.NewInvalidError("host", ih.Host, errMsg)) } if isIP := (net.ParseIP(ih.Host) != nil); isIP { allErrs = append(allErrs, validation.NewInvalidError("host", ih.Host, "Host must be a DNS name, not ip address")) } } allErrs = append(allErrs, validateIngressRuleValue(&ih.IngressRuleValue).Prefix("ingressRule")...) } return allErrs }
// Validates that the given name can be used as a deployment name. func ValidateDeploymentName(name string, prefix bool) (bool, string) { return apivalidation.NameIsDNSSubdomain(name, prefix) }
// ValidateIngressName validates that the given name can be used as an Ingress name. func ValidateIngressName(name string, prefix bool) (bool, string) { return apivalidation.NameIsDNSSubdomain(name, prefix) }
func ValidateThirdPartyResourceName(name string, prefix bool) (bool, string) { return apivalidation.NameIsDNSSubdomain(name, prefix) }