func deepCopy_api_ResourceRequirements(in api.ResourceRequirements, out *api.ResourceRequirements, c *conversion.Cloner) error { if in.Limits != nil { out.Limits = make(api.ResourceList) for key, val := range in.Limits { newVal := new(resource.Quantity) if err := deepCopy_resource_Quantity(val, newVal, c); err != nil { return err } out.Limits[key] = *newVal } } else { out.Limits = nil } if in.Requests != nil { out.Requests = make(api.ResourceList) for key, val := range in.Requests { newVal := new(resource.Quantity) if err := deepCopy_resource_Quantity(val, newVal, c); err != nil { return err } out.Requests[key] = *newVal } } else { out.Requests = nil } return nil }
// HandleResourceRequirements parses the limits and requests parameters if specified func HandleResourceRequirements(params map[string]string) (api.ResourceRequirements, error) { result := api.ResourceRequirements{} limits, err := populateResourceList(params["limits"]) if err != nil { return result, err } result.Limits = limits requests, err := populateResourceList(params["requests"]) if err != nil { return result, err } result.Requests = requests return result, nil }
// defaultContainerResourceRequirements returns the default requirements for a container // the requirement.Limits are taken from the LimitRange defaults (if specified) // the requirement.Requests are taken from the LimitRange min (if specified) func defaultContainerResourceRequirements(limitRange *api.LimitRange) api.ResourceRequirements { requirements := api.ResourceRequirements{} requirements.Limits = api.ResourceList{} requirements.Requests = api.ResourceList{} for i := range limitRange.Spec.Limits { limit := limitRange.Spec.Limits[i] if limit.Type == api.LimitTypeContainer { for k, v := range limit.Default { value := v.Copy() requirements.Limits[k] = *value } } } return requirements }
func getResourceRequirements(requests, limits api.ResourceList) api.ResourceRequirements { res := api.ResourceRequirements{} res.Requests = requests res.Limits = limits return res }