From 0daedee0de03c27b8cb23fddb3f17574e871ab2b Mon Sep 17 00:00:00 2001 From: "Bobby (Babak) Salamat" Date: Thu, 28 Jun 2018 17:42:45 -0700 Subject: [PATCH] Change our tests to ensure that critical system pods are created in the system namespace --- test/e2e/scheduling/predicates.go | 18 +++++++++++++----- test/e2e/scheduling/preemption.go | 8 ++++++++ test/kubemark/resources/kube_dns_template.yaml | 1 - 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/test/e2e/scheduling/predicates.go b/test/e2e/scheduling/predicates.go index 761460f9f27..8d789dfb4e6 100644 --- a/test/e2e/scheduling/predicates.go +++ b/test/e2e/scheduling/predicates.go @@ -47,6 +47,7 @@ var masterNodes sets.String type pausePodConfig struct { Name string + Namespace string Affinity *v1.Affinity Annotations, Labels, NodeSelector map[string]string Resources *v1.ResourceRequirements @@ -602,9 +603,11 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { }) func initPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { + var gracePeriod = int64(1) pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: conf.Name, + Namespace: conf.Namespace, Labels: conf.Labels, Annotations: conf.Annotations, OwnerReferences: conf.OwnerReferences, @@ -619,9 +622,10 @@ func initPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { Ports: conf.Ports, }, }, - Tolerations: conf.Tolerations, - NodeName: conf.NodeName, - PriorityClassName: conf.PriorityClassName, + Tolerations: conf.Tolerations, + NodeName: conf.NodeName, + PriorityClassName: conf.PriorityClassName, + TerminationGracePeriodSeconds: &gracePeriod, }, } if conf.Resources != nil { @@ -631,7 +635,11 @@ func initPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { } func createPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { - pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(initPausePod(f, conf)) + namespace := conf.Namespace + if len(namespace) == 0 { + namespace = f.Namespace.Name + } + pod, err := f.ClientSet.CoreV1().Pods(namespace).Create(initPausePod(f, conf)) framework.ExpectNoError(err) return pod } @@ -639,7 +647,7 @@ func createPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { func runPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { pod := createPausePod(f, conf) framework.ExpectNoError(framework.WaitForPodRunningInNamespace(f.ClientSet, pod)) - pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(conf.Name, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(pod.Namespace).Get(conf.Name, metav1.GetOptions{}) framework.ExpectNoError(err) return pod } diff --git a/test/e2e/scheduling/preemption.go b/test/e2e/scheduling/preemption.go index d545493bc59..1ee85ede306 100644 --- a/test/e2e/scheduling/preemption.go +++ b/test/e2e/scheduling/preemption.go @@ -167,6 +167,7 @@ var _ = SIGDescribe("SchedulerPreemption [Serial] [Feature:PodPreemption]", func // Create a critical pod and make sure it is scheduled. runPausePod(f, pausePodConfig{ Name: "critical-pod", + Namespace: metav1.NamespaceSystem, PriorityClassName: scheduling.SystemClusterCritical, Resources: &v1.ResourceRequirements{ Requests: podRes, @@ -183,6 +184,9 @@ var _ = SIGDescribe("SchedulerPreemption [Serial] [Feature:PodPreemption]", func framework.ExpectNoError(err) Expect(livePod.DeletionTimestamp).To(BeNil()) } + // Clean-up the critical pod + err = f.ClientSet.CoreV1().Pods(metav1.NamespaceSystem).Delete("critical-pod", metav1.NewDeleteOptions(0)) + framework.ExpectNoError(err) }) // This test verifies that when a high priority pod is pending and its @@ -334,10 +338,14 @@ var _ = SIGDescribe("PodPriorityResolution [Serial] [Feature:PodPreemption]", fu for i, spc := range systemPriorityClasses { pod := createPausePod(f, pausePodConfig{ Name: fmt.Sprintf("pod%d-%v", i, spc), + Namespace: metav1.NamespaceSystem, PriorityClassName: spc, }) Expect(pod.Spec.Priority).NotTo(BeNil()) framework.Logf("Created pod: %v", pod.Name) + // Clean-up the pod. + err := f.ClientSet.CoreV1().Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) + framework.ExpectNoError(err) } }) }) diff --git a/test/kubemark/resources/kube_dns_template.yaml b/test/kubemark/resources/kube_dns_template.yaml index 480eff46627..19a16d7d6cc 100644 --- a/test/kubemark/resources/kube_dns_template.yaml +++ b/test/kubemark/resources/kube_dns_template.yaml @@ -60,7 +60,6 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: - priorityClassName: system-cluster-critical tolerations: - key: "CriticalAddonsOnly" operator: "Exists"