mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 06:54:01 +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) {
|
||||
// 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())
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user