Add local storage support in Quota

pull/6/head
NickrenREN 2017-07-25 23:15:51 +08:00
parent b65d665b99
commit a3c180e549
2 changed files with 46 additions and 0 deletions

View File

@ -42,10 +42,13 @@ import (
var podResources = []api.ResourceName{ var podResources = []api.ResourceName{
api.ResourceCPU, api.ResourceCPU,
api.ResourceMemory, api.ResourceMemory,
api.ResourceEphemeralStorage,
api.ResourceRequestsCPU, api.ResourceRequestsCPU,
api.ResourceRequestsMemory, api.ResourceRequestsMemory,
api.ResourceRequestsEphemeralStorage,
api.ResourceLimitsCPU, api.ResourceLimitsCPU,
api.ResourceLimitsMemory, api.ResourceLimitsMemory,
api.ResourceLimitsEphemeralStorage,
api.ResourcePods, api.ResourcePods,
} }
@ -191,6 +194,13 @@ func podUsageHelper(requests api.ResourceList, limits api.ResourceList) api.Reso
if limit, found := limits[api.ResourceMemory]; found { if limit, found := limits[api.ResourceMemory]; found {
result[api.ResourceLimitsMemory] = limit result[api.ResourceLimitsMemory] = limit
} }
if request, found := requests[api.ResourceEphemeralStorage]; found {
result[api.ResourceEphemeralStorage] = request
result[api.ResourceRequestsEphemeralStorage] = request
}
if limit, found := limits[api.ResourceEphemeralStorage]; found {
result[api.ResourceLimitsEphemeralStorage] = limit
}
return result return result
} }

View File

@ -142,6 +142,24 @@ func TestPodEvaluatorUsage(t *testing.T) {
api.ResourceMemory: resource.MustParse("1m"), api.ResourceMemory: resource.MustParse("1m"),
}, },
}, },
"init container local ephemeral storage": {
pod: &api.Pod{
Spec: api.PodSpec{
InitContainers: []api.Container{{
Resources: api.ResourceRequirements{
Requests: api.ResourceList{api.ResourceEphemeralStorage: resource.MustParse("32Mi")},
Limits: api.ResourceList{api.ResourceEphemeralStorage: resource.MustParse("64Mi")},
},
}},
},
},
usage: api.ResourceList{
api.ResourceEphemeralStorage: resource.MustParse("32Mi"),
api.ResourceRequestsEphemeralStorage: resource.MustParse("32Mi"),
api.ResourceLimitsEphemeralStorage: resource.MustParse("64Mi"),
api.ResourcePods: resource.MustParse("1"),
},
},
"container CPU": { "container CPU": {
pod: &api.Pod{ pod: &api.Pod{
Spec: api.PodSpec{ Spec: api.PodSpec{
@ -178,6 +196,24 @@ func TestPodEvaluatorUsage(t *testing.T) {
api.ResourceMemory: resource.MustParse("1m"), api.ResourceMemory: resource.MustParse("1m"),
}, },
}, },
"container local ephemeral storage": {
pod: &api.Pod{
Spec: api.PodSpec{
Containers: []api.Container{{
Resources: api.ResourceRequirements{
Requests: api.ResourceList{api.ResourceEphemeralStorage: resource.MustParse("32Mi")},
Limits: api.ResourceList{api.ResourceEphemeralStorage: resource.MustParse("64Mi")},
},
}},
},
},
usage: api.ResourceList{
api.ResourceEphemeralStorage: resource.MustParse("32Mi"),
api.ResourceRequestsEphemeralStorage: resource.MustParse("32Mi"),
api.ResourceLimitsEphemeralStorage: resource.MustParse("64Mi"),
api.ResourcePods: resource.MustParse("1"),
},
},
"init container maximums override sum of containers": { "init container maximums override sum of containers": {
pod: &api.Pod{ pod: &api.Pod{
Spec: api.PodSpec{ Spec: api.PodSpec{