Merge pull request #6824 from derekwaynecarr/fix_quota_bug

Fix quota bug in LimitRanger
This commit is contained in:
Dawn Chen 2015-04-14 14:56:55 -07:00
commit 9b1b5c5447
2 changed files with 11 additions and 5 deletions

View File

@ -2,7 +2,7 @@
"apiVersion": "v1beta3", "apiVersion": "v1beta3",
"kind": "ResourceQuota", "kind": "ResourceQuota",
"metadata": { "metadata": {
"name": "quota", "name": "quota"
}, },
"spec": { "spec": {
"hard": { "hard": {
@ -11,7 +11,7 @@
"pods": "10", "pods": "10",
"services": "5", "services": "5",
"replicationcontrollers":"20", "replicationcontrollers":"20",
"resourcequotas":"1", "resourcequotas":"1"
}, }
} }
} }

View File

@ -152,7 +152,13 @@ func defaultContainerResourceRequirements(limitRange *api.LimitRange) api.Resour
// mergePodResourceRequirements merges enumerated requirements with default requirements // mergePodResourceRequirements merges enumerated requirements with default requirements
func mergePodResourceRequirements(pod *api.Pod, defaultRequirements *api.ResourceRequirements) { func mergePodResourceRequirements(pod *api.Pod, defaultRequirements *api.ResourceRequirements) {
for i := range pod.Spec.Containers { for i := range pod.Spec.Containers {
container := pod.Spec.Containers[i] container := &pod.Spec.Containers[i]
if container.Resources.Limits == nil {
container.Resources.Limits = api.ResourceList{}
}
if container.Resources.Requests == nil {
container.Resources.Requests = api.ResourceList{}
}
for k, v := range defaultRequirements.Limits { for k, v := range defaultRequirements.Limits {
_, found := container.Resources.Limits[k] _, found := container.Resources.Limits[k]
if !found { if !found {
@ -185,7 +191,7 @@ func PodLimitFunc(limitRange *api.LimitRange, pod *api.Pod) error {
maxContainerMem := int64(0) maxContainerMem := int64(0)
for i := range pod.Spec.Containers { for i := range pod.Spec.Containers {
container := pod.Spec.Containers[i] container := &pod.Spec.Containers[i]
containerCPU := container.Resources.Limits.Cpu().MilliValue() containerCPU := container.Resources.Limits.Cpu().MilliValue()
containerMem := container.Resources.Limits.Memory().Value() containerMem := container.Resources.Limits.Memory().Value()