mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	Merge pull request #9736 from sdminonne/bug_fix2
To add validation for service ports when defined as string
This commit is contained in:
		@@ -49,6 +49,7 @@ var dns1123LabelErrorMsg string = fmt.Sprintf(`must be a DNS label (at most %d c
 | 
			
		||||
var dns952LabelErrorMsg string = fmt.Sprintf(`must be a DNS 952 label (at most %d characters, matching regex %s): e.g. "my-name"`, util.DNS952LabelMaxLength, util.DNS952LabelFmt)
 | 
			
		||||
var pdPartitionErrorMsg string = intervalErrorMsg(0, 255)
 | 
			
		||||
var portRangeErrorMsg string = intervalErrorMsg(0, 65536)
 | 
			
		||||
var portNameErrorMsg string = fmt.Sprintf(`must be a IANA_SVC_NAME (at most 15 characters, matching regex %s and it must containts at least one letter [a-z], hypens cannot be adjacent to other hyphens): e.g. "http"`, util.IdentifierNoHyphensBeginEndFmt)
 | 
			
		||||
 | 
			
		||||
const totalAnnotationSizeLimitB int = 64 * (1 << 10) // 64 kB
 | 
			
		||||
 | 
			
		||||
@@ -594,8 +595,8 @@ func validatePorts(ports []api.ContainerPort) errs.ValidationErrorList {
 | 
			
		||||
	for i, port := range ports {
 | 
			
		||||
		pErrs := errs.ValidationErrorList{}
 | 
			
		||||
		if len(port.Name) > 0 {
 | 
			
		||||
			if len(port.Name) > util.DNS1123LabelMaxLength || !util.IsDNS1123Label(port.Name) {
 | 
			
		||||
				pErrs = append(pErrs, errs.NewFieldInvalid("name", port.Name, dns1123LabelErrorMsg))
 | 
			
		||||
			if !util.IsValidPortName(port.Name) {
 | 
			
		||||
				pErrs = append(pErrs, errs.NewFieldInvalid("name", port.Name, portNameErrorMsg))
 | 
			
		||||
			} else if allNames.Has(port.Name) {
 | 
			
		||||
				pErrs = append(pErrs, errs.NewFieldDuplicate("name", port.Name))
 | 
			
		||||
			} else {
 | 
			
		||||
@@ -759,8 +760,8 @@ func validateHTTPGetAction(http *api.HTTPGetAction) errs.ValidationErrorList {
 | 
			
		||||
	}
 | 
			
		||||
	if http.Port.Kind == util.IntstrInt && !util.IsValidPortNum(http.Port.IntVal) {
 | 
			
		||||
		allErrors = append(allErrors, errs.NewFieldInvalid("port", http.Port, portRangeErrorMsg))
 | 
			
		||||
	} else if http.Port.Kind == util.IntstrString && len(http.Port.StrVal) == 0 {
 | 
			
		||||
		allErrors = append(allErrors, errs.NewFieldRequired("port"))
 | 
			
		||||
	} else if http.Port.Kind == util.IntstrString && !util.IsValidPortName(http.Port.StrVal) {
 | 
			
		||||
		allErrors = append(allErrors, errs.NewFieldInvalid("port", http.Port.StrVal, portNameErrorMsg))
 | 
			
		||||
	}
 | 
			
		||||
	return allErrors
 | 
			
		||||
}
 | 
			
		||||
@@ -769,8 +770,8 @@ func validateTCPSocketAction(tcp *api.TCPSocketAction) errs.ValidationErrorList
 | 
			
		||||
	allErrors := errs.ValidationErrorList{}
 | 
			
		||||
	if tcp.Port.Kind == util.IntstrInt && !util.IsValidPortNum(tcp.Port.IntVal) {
 | 
			
		||||
		allErrors = append(allErrors, errs.NewFieldInvalid("port", tcp.Port, portRangeErrorMsg))
 | 
			
		||||
	} else if tcp.Port.Kind == util.IntstrString && len(tcp.Port.StrVal) == 0 {
 | 
			
		||||
		allErrors = append(allErrors, errs.NewFieldRequired("port"))
 | 
			
		||||
	} else if tcp.Port.Kind == util.IntstrString && !util.IsValidPortName(tcp.Port.StrVal) {
 | 
			
		||||
		allErrors = append(allErrors, errs.NewFieldInvalid("port", tcp.Port.StrVal, portNameErrorMsg))
 | 
			
		||||
	}
 | 
			
		||||
	return allErrors
 | 
			
		||||
}
 | 
			
		||||
@@ -1127,10 +1128,11 @@ func validateServicePort(sp *api.ServicePort, requireName bool, allNames *util.S
 | 
			
		||||
		allErrs = append(allErrs, errs.NewFieldNotSupported("protocol", sp.Protocol))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if sp.TargetPort != util.NewIntOrStringFromInt(0) && sp.TargetPort != util.NewIntOrStringFromString("") {
 | 
			
		||||
		if sp.TargetPort.Kind == util.IntstrInt && !util.IsValidPortNum(sp.TargetPort.IntVal) {
 | 
			
		||||
			allErrs = append(allErrs, errs.NewFieldInvalid("targetPort", sp.TargetPort, portRangeErrorMsg))
 | 
			
		||||
		}
 | 
			
		||||
	if sp.TargetPort.Kind == util.IntstrInt && !util.IsValidPortNum(sp.TargetPort.IntVal) {
 | 
			
		||||
		allErrs = append(allErrs, errs.NewFieldInvalid("targetPort", sp.TargetPort, portRangeErrorMsg))
 | 
			
		||||
	}
 | 
			
		||||
	if sp.TargetPort.Kind == util.IntstrString && !util.IsValidPortName(sp.TargetPort.StrVal) {
 | 
			
		||||
		allErrs = append(allErrs, errs.NewFieldInvalid("targetPort", sp.TargetPort, portNameErrorMsg))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return allErrs
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user