mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
Add pre pull of e2e images after DiskPressure test
The "system_node_critical_test" causes DiskPressure on the node, resulting in eviction of some of the pre pulled images. This makes all the resulting tests to fail, since their pod spec use PullPolicy: Never The PrePullImages is now inside a defer, so it will be executed even tho the assertions inside the "AfterEach" fail.
This commit is contained in:
parent
bdfc8f62b4
commit
b9071991e3
@ -521,17 +521,19 @@ func runEvictionTest(f *framework.Framework, pressureTimeout time.Duration, expe
|
|||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.AfterEach(func() {
|
ginkgo.AfterEach(func() {
|
||||||
|
defer func() {
|
||||||
|
if expectedNodeCondition == v1.NodeDiskPressure && framework.TestContext.PrepullImages {
|
||||||
|
// The disk eviction test may cause the prepulled images to be evicted,
|
||||||
|
// prepull those images again to ensure this test not affect following tests.
|
||||||
|
PrePullAllImages()
|
||||||
|
}
|
||||||
|
}()
|
||||||
ginkgo.By("deleting pods")
|
ginkgo.By("deleting pods")
|
||||||
for _, spec := range testSpecs {
|
for _, spec := range testSpecs {
|
||||||
ginkgo.By(fmt.Sprintf("deleting pod: %s", spec.pod.Name))
|
ginkgo.By(fmt.Sprintf("deleting pod: %s", spec.pod.Name))
|
||||||
f.PodClient().DeleteSync(spec.pod.Name, &metav1.DeleteOptions{}, 10*time.Minute)
|
f.PodClient().DeleteSync(spec.pod.Name, &metav1.DeleteOptions{}, 10*time.Minute)
|
||||||
}
|
}
|
||||||
reduceAllocatableMemoryUsage()
|
reduceAllocatableMemoryUsage()
|
||||||
if expectedNodeCondition == v1.NodeDiskPressure && framework.TestContext.PrepullImages {
|
|
||||||
// The disk eviction test may cause the prepulled images to be evicted,
|
|
||||||
// prepull those images again to ensure this test not affect following tests.
|
|
||||||
PrePullAllImages()
|
|
||||||
}
|
|
||||||
ginkgo.By("making sure we can start a new pod after the test")
|
ginkgo.By("making sure we can start a new pod after the test")
|
||||||
podName := "test-admit-pod"
|
podName := "test-admit-pod"
|
||||||
f.PodClient().CreateSync(&v1.Pod{
|
f.PodClient().CreateSync(&v1.Pod{
|
||||||
|
@ -95,6 +95,13 @@ var _ = framework.KubeDescribe("SystemNodeCriticalPod [Slow] [Serial] [Disruptiv
|
|||||||
}, time.Minute*8, time.Second*4).ShouldNot(gomega.HaveOccurred())
|
}, time.Minute*8, time.Second*4).ShouldNot(gomega.HaveOccurred())
|
||||||
})
|
})
|
||||||
ginkgo.AfterEach(func() {
|
ginkgo.AfterEach(func() {
|
||||||
|
defer func() {
|
||||||
|
if framework.TestContext.PrepullImages {
|
||||||
|
// The test may cause the prepulled images to be evicted,
|
||||||
|
// prepull those images again to ensure this test not affect following tests.
|
||||||
|
PrePullAllImages()
|
||||||
|
}
|
||||||
|
}()
|
||||||
ginkgo.By("delete the static pod")
|
ginkgo.By("delete the static pod")
|
||||||
err := deleteStaticPod(podPath, staticPodName, ns)
|
err := deleteStaticPod(podPath, staticPodName, ns)
|
||||||
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
|
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
|
||||||
@ -103,6 +110,7 @@ var _ = framework.KubeDescribe("SystemNodeCriticalPod [Slow] [Serial] [Disruptiv
|
|||||||
gomega.Eventually(func() error {
|
gomega.Eventually(func() error {
|
||||||
return checkMirrorPodDisappear(f.ClientSet, mirrorPodName, ns)
|
return checkMirrorPodDisappear(f.ClientSet, mirrorPodName, ns)
|
||||||
}, time.Minute, time.Second*2).Should(gomega.BeNil())
|
}, time.Minute, time.Second*2).Should(gomega.BeNil())
|
||||||
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user