mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 01:06:27 +00:00
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:
commit
793b4fea9e
@ -509,13 +509,17 @@ func TestSetDefaultObjectFieldSelectorAPIVersion(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSetDefaultRequestsPod(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 := versioned.PodSpec{}
|
||||||
s.Containers = []versioned.Container{
|
s.Containers = []versioned.Container{
|
||||||
{
|
{
|
||||||
Resources: versioned.ResourceRequirements{
|
Resources: versioned.ResourceRequirements{
|
||||||
|
Requests: versioned.ResourceList{
|
||||||
|
versioned.ResourceMemory: resource.MustParse("0"),
|
||||||
|
},
|
||||||
Limits: versioned.ResourceList{
|
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))
|
output := roundTrip(t, runtime.Object(pod))
|
||||||
pod2 := output.(*versioned.Pod)
|
pod2 := output.(*versioned.Pod)
|
||||||
defaultRequest := pod2.Spec.Containers[0].Resources.Requests
|
defaultRequest := pod2.Spec.Containers[0].Resources.Requests
|
||||||
requestValue := defaultRequest[versioned.ResourceCPU]
|
if requestValue := defaultRequest[versioned.ResourceCPU]; requestValue.String() != "100m" {
|
||||||
if requestValue.String() != "100m" {
|
|
||||||
t.Errorf("Expected request cpu: %s, got: %s", "100m", requestValue.String())
|
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
|
// verify we do nothing if no limits are specified
|
||||||
s = versioned.PodSpec{}
|
s = versioned.PodSpec{}
|
||||||
@ -540,8 +546,7 @@ func TestSetDefaultRequestsPod(t *testing.T) {
|
|||||||
output = roundTrip(t, runtime.Object(pod))
|
output = roundTrip(t, runtime.Object(pod))
|
||||||
pod2 = output.(*versioned.Pod)
|
pod2 = output.(*versioned.Pod)
|
||||||
defaultRequest = pod2.Spec.Containers[0].Resources.Requests
|
defaultRequest = pod2.Spec.Containers[0].Resources.Requests
|
||||||
requestValue = defaultRequest[versioned.ResourceCPU]
|
if requestValue := defaultRequest[versioned.ResourceCPU]; requestValue.String() != "0" {
|
||||||
if requestValue.String() != "0" {
|
|
||||||
t.Errorf("Expected 0 request value, got: %s", requestValue.String())
|
t.Errorf("Expected 0 request value, got: %s", requestValue.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,6 +123,12 @@ func TestGetPodQOS(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
expected: Burstable,
|
expected: Burstable,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
pod: newPod("burstable", []api.Container{
|
||||||
|
newContainer("burstable", getResourceList("0", "0"), getResourceList("100m", "200Mi")),
|
||||||
|
}),
|
||||||
|
expected: Burstable,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
if actual := GetPodQOS(testCase.pod); testCase.expected != actual {
|
if actual := GetPodQOS(testCase.pod); testCase.expected != actual {
|
||||||
|
Loading…
Reference in New Issue
Block a user