mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
enable the quota e2e test
This commit is contained in:
parent
84fc3b3df8
commit
7bfffb40c5
@ -21,6 +21,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
@ -147,72 +148,72 @@ var _ = framework.KubeDescribe("ResourceQuota", func() {
|
|||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should create a ResourceQuota and capture the life of an uninitialized pod.", func() {
|
It("[Feature:Initializers] should create a ResourceQuota and capture the life of an uninitialized pod.", func() {
|
||||||
// TODO: uncomment the test when #50344 is merged.
|
By("Creating a ResourceQuota")
|
||||||
// By("Creating a ResourceQuota")
|
quotaName := "test-quota"
|
||||||
// quotaName := "test-quota"
|
resourceQuota := newTestResourceQuota(quotaName)
|
||||||
// resourceQuota := newTestResourceQuota(quotaName)
|
resourceQuota, err := createResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota)
|
||||||
// resourceQuota, err := createResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota)
|
Expect(err).NotTo(HaveOccurred())
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
// By("Ensuring resource quota status is calculated")
|
By("Ensuring resource quota status is calculated")
|
||||||
// usedResources := v1.ResourceList{}
|
usedResources := v1.ResourceList{}
|
||||||
// usedResources[v1.ResourceQuotas] = resource.MustParse("1")
|
usedResources[v1.ResourceQuotas] = resource.MustParse("1")
|
||||||
// err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
|
err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
// By("Creating an uninitialized Pod that fits quota")
|
By("Creating an uninitialized Pod that fits quota")
|
||||||
// podName := "test-pod"
|
podName := "test-pod"
|
||||||
// requests := v1.ResourceList{}
|
requests := v1.ResourceList{}
|
||||||
// requests[v1.ResourceCPU] = resource.MustParse("500m")
|
requests[v1.ResourceCPU] = resource.MustParse("500m")
|
||||||
// requests[v1.ResourceMemory] = resource.MustParse("252Mi")
|
requests[v1.ResourceMemory] = resource.MustParse("252Mi")
|
||||||
// pod := newTestPodForQuota(f, podName, requests, v1.ResourceList{})
|
pod := newTestPodForQuota(f, podName, requests, v1.ResourceList{})
|
||||||
// pod.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "unhandled"}}}
|
pod.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "unhandled"}}}
|
||||||
// _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod)
|
_, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod)
|
||||||
// // because no one is handling the initializer, server will return a 504 timeout
|
// because no one is handling the initializer, server will return a 504 timeout
|
||||||
// if err != nil && !errors.IsTimeout(err) {
|
if err != nil && !errors.IsTimeout(err) {
|
||||||
// framework.Failf("expect err to be timeout error, got %v", err)
|
framework.Failf("expect err to be timeout error, got %v", err)
|
||||||
// }
|
}
|
||||||
// podToUpdate, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{})
|
podToUpdate, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{})
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
// By("Ensuring ResourceQuota status captures the pod usage")
|
By("Ensuring ResourceQuota status captures the pod usage")
|
||||||
// usedResources[v1.ResourceQuotas] = resource.MustParse("1")
|
usedResources[v1.ResourceQuotas] = resource.MustParse("1")
|
||||||
// usedResources[v1.ResourcePods] = resource.MustParse("1")
|
usedResources[v1.ResourcePods] = resource.MustParse("1")
|
||||||
// usedResources[v1.ResourceCPU] = requests[v1.ResourceCPU]
|
usedResources[v1.ResourceCPU] = requests[v1.ResourceCPU]
|
||||||
// usedResources[v1.ResourceMemory] = requests[v1.ResourceMemory]
|
usedResources[v1.ResourceMemory] = requests[v1.ResourceMemory]
|
||||||
// err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
|
err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
// By("Not allowing an uninitialized pod to be created that exceeds remaining quota")
|
By("Not allowing an uninitialized pod to be created that exceeds remaining quota")
|
||||||
// requests = v1.ResourceList{}
|
requests = v1.ResourceList{}
|
||||||
// requests[v1.ResourceCPU] = resource.MustParse("600m")
|
requests[v1.ResourceCPU] = resource.MustParse("600m")
|
||||||
// requests[v1.ResourceMemory] = resource.MustParse("100Mi")
|
requests[v1.ResourceMemory] = resource.MustParse("100Mi")
|
||||||
// pod = newTestPodForQuota(f, "fail-pod", requests, v1.ResourceList{})
|
pod = newTestPodForQuota(f, "fail-pod", requests, v1.ResourceList{})
|
||||||
// pod.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "unhandled"}}}
|
pod.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "unhandled"}}}
|
||||||
// pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod)
|
pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod)
|
||||||
// Expect(err).To(HaveOccurred())
|
Expect(err).To(HaveOccurred())
|
||||||
// fmt.Println("CHAO: err=", err)
|
fmt.Println("CHAO: err=", err)
|
||||||
|
|
||||||
// By("Ensuring an uninitialized pod can update its resource requirements")
|
By("Ensuring an uninitialized pod can update its resource requirements")
|
||||||
// // a pod cannot dynamically update its resource requirements.
|
// a pod cannot dynamically update its resource requirements.
|
||||||
// requests = v1.ResourceList{}
|
requests = v1.ResourceList{}
|
||||||
// requests[v1.ResourceCPU] = resource.MustParse("100m")
|
requests[v1.ResourceCPU] = resource.MustParse("100m")
|
||||||
// requests[v1.ResourceMemory] = resource.MustParse("100Mi")
|
requests[v1.ResourceMemory] = resource.MustParse("100Mi")
|
||||||
// podToUpdate.Spec.Containers[0].Resources.Requests = requests
|
podToUpdate.Spec.Containers[0].Resources.Requests = requests
|
||||||
// _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(podToUpdate)
|
_, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(podToUpdate)
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
// By("Ensuring attempts to update pod resource requirements did change quota usage")
|
By("Ensuring attempts to update pod resource requirements did change quota usage")
|
||||||
// usedResources[v1.ResourceQuotas] = resource.MustParse("1")
|
usedResources[v1.ResourceQuotas] = resource.MustParse("1")
|
||||||
// usedResources[v1.ResourcePods] = resource.MustParse("1")
|
usedResources[v1.ResourcePods] = resource.MustParse("1")
|
||||||
// usedResources[v1.ResourceCPU] = requests[v1.ResourceCPU]
|
usedResources[v1.ResourceCPU] = requests[v1.ResourceCPU]
|
||||||
// usedResources[v1.ResourceMemory] = requests[v1.ResourceMemory]
|
usedResources[v1.ResourceMemory] = requests[v1.ResourceMemory]
|
||||||
// err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
|
err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
// TODO: uncomment the test when the replenishment_controller uses the
|
// TODO: uncomment the test after 51247 is merged, in which the
|
||||||
// sharedInformer that list/watches uninitialized objects.
|
// replenishment_controller uses the sharedInformer that list/watches
|
||||||
|
// uninitialized objects.
|
||||||
// By("Deleting the pod")
|
// By("Deleting the pod")
|
||||||
// err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0))
|
// err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0))
|
||||||
// Expect(err).NotTo(HaveOccurred())
|
// Expect(err).NotTo(HaveOccurred())
|
||||||
|
Loading…
Reference in New Issue
Block a user