Merge pull request #7059 from derekwaynecarr/fixup

Improve container resource requirements validation
This commit is contained in:
Brian Grant
2015-04-22 07:13:34 -07:00
2 changed files with 21 additions and 4 deletions

View File

@@ -740,7 +740,7 @@ func validateContainers(containers []api.Container, volumes util.StringSet) errs
cErrs = append(cErrs, validateEnv(ctr.Env).Prefix("env")...)
cErrs = append(cErrs, validateVolumeMounts(ctr.VolumeMounts, volumes).Prefix("volumeMounts")...)
cErrs = append(cErrs, validatePullPolicy(&ctr).Prefix("pullPolicy")...)
cErrs = append(cErrs, validateResourceRequirements(&ctr).Prefix("resources")...)
cErrs = append(cErrs, ValidateResourceRequirements(&ctr.Resources).Prefix("resources")...)
allErrs = append(allErrs, cErrs.PrefixIndex(i)...)
}
// Check for colliding ports across all containers.
@@ -1167,9 +1167,9 @@ func validateBasicResource(quantity resource.Quantity) errs.ValidationErrorList
}
// Validates resource requirement spec.
func validateResourceRequirements(container *api.Container) errs.ValidationErrorList {
func ValidateResourceRequirements(requirements *api.ResourceRequirements) errs.ValidationErrorList {
allErrs := errs.ValidationErrorList{}
for resourceName, quantity := range container.Resources.Limits {
for resourceName, quantity := range requirements.Limits {
// Validate resource name.
errs := validateResourceName(resourceName.String(), fmt.Sprintf("resources.limits[%s]", resourceName))
if api.IsStandardResourceName(resourceName.String()) {
@@ -1177,7 +1177,14 @@ func validateResourceRequirements(container *api.Container) errs.ValidationError
}
allErrs = append(allErrs, errs...)
}
for resourceName, quantity := range requirements.Requests {
// Validate resource name.
errs := validateResourceName(resourceName.String(), fmt.Sprintf("resources.requests[%s]", resourceName))
if api.IsStandardResourceName(resourceName.String()) {
errs = append(errs, validateBasicResource(quantity).Prefix(fmt.Sprintf("Resource %s: ", resourceName))...)
}
allErrs = append(allErrs, errs...)
}
return allErrs
}