Merge pull request #27900 from derekwaynecarr/test_defaults_qos

Automatic merge from submit-queue

Add additional testing scenarios for compute resource requests=0

I was asked about the qos tier of a pod that specified 

`--requests=cpu=0,memory=0 --limits=cpu=100m,memory=1Gi`

and in just investigating current behavior, realized we should have an explicit test case to ensure that 0 values are preserved in defaulting passes, and that this is still a burstable pod (but the lowest for that tier as it related to eviction)

/cc @vishh
This commit is contained in:
k8s-merge-robot 2016-07-01 16:16:23 -07:00 committed by GitHub
commit 793b4fea9e
2 changed files with 17 additions and 6 deletions

View File

@ -509,13 +509,17 @@ func TestSetDefaultObjectFieldSelectorAPIVersion(t *testing.T) {
}
func TestSetDefaultRequestsPod(t *testing.T) {
// verify we default if limits are specified
// verify we default if limits are specified (and that request=0 is preserved)
s := versioned.PodSpec{}
s.Containers = []versioned.Container{
{
Resources: versioned.ResourceRequirements{
Requests: versioned.ResourceList{
versioned.ResourceMemory: resource.MustParse("0"),
},
Limits: versioned.ResourceList{
versioned.ResourceCPU: resource.MustParse("100m"),
versioned.ResourceCPU: resource.MustParse("100m"),
versioned.ResourceMemory: resource.MustParse("1Gi"),
},
},
},
@ -526,10 +530,12 @@ func TestSetDefaultRequestsPod(t *testing.T) {
output := roundTrip(t, runtime.Object(pod))
pod2 := output.(*versioned.Pod)
defaultRequest := pod2.Spec.Containers[0].Resources.Requests
requestValue := defaultRequest[versioned.ResourceCPU]
if requestValue.String() != "100m" {
if requestValue := defaultRequest[versioned.ResourceCPU]; requestValue.String() != "100m" {
t.Errorf("Expected request cpu: %s, got: %s", "100m", requestValue.String())
}
if requestValue := defaultRequest[versioned.ResourceMemory]; requestValue.String() != "0" {
t.Errorf("Expected request memory: %s, got: %s", "0", requestValue.String())
}
// verify we do nothing if no limits are specified
s = versioned.PodSpec{}
@ -540,8 +546,7 @@ func TestSetDefaultRequestsPod(t *testing.T) {
output = roundTrip(t, runtime.Object(pod))
pod2 = output.(*versioned.Pod)
defaultRequest = pod2.Spec.Containers[0].Resources.Requests
requestValue = defaultRequest[versioned.ResourceCPU]
if requestValue.String() != "0" {
if requestValue := defaultRequest[versioned.ResourceCPU]; requestValue.String() != "0" {
t.Errorf("Expected 0 request value, got: %s", requestValue.String())
}
}

View File

@ -123,6 +123,12 @@ func TestGetPodQOS(t *testing.T) {
}),
expected: Burstable,
},
{
pod: newPod("burstable", []api.Container{
newContainer("burstable", getResourceList("0", "0"), getResourceList("100m", "200Mi")),
}),
expected: Burstable,
},
}
for _, testCase := range testCases {
if actual := GetPodQOS(testCase.pod); testCase.expected != actual {