Commit bddc308b authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #44114 from copejon/remove-flaky-from-pv-tests

Automatic merge from submit-queue Remove [Flaky] from presistent volume NFS tests. **What this PR does / why we need it**: PV e2e test flaked because of a lack of isolation of test objects (PVs, claims). The common symptoms being volume-mounting pods timing out or an unexpected number of unbound claims being detected. PR #43645 Introduced the selector labels to test objects that restricted binds to within each "testspace". To accomplish this the test namespace was set as a label for all PVs and selector for all Claims. This allows each test to act as if it's isolated while still creating and binding PVs in parallel w/ other tests. This has been tested in parallel on both 3-node gci and debian clusters as `--ginkgo.focus="\[Volume\]" --ginkgo.skip="\[Disruptive\]|\[Feature.*\]|\[Serial\]"` with out signs of flakiness. cc @jeffvance ```release-note NONE ```
parents ebf1439d db259b41
...@@ -111,7 +111,7 @@ var _ = framework.KubeDescribe("PersistentVolumes [Volume]", func() { ...@@ -111,7 +111,7 @@ var _ = framework.KubeDescribe("PersistentVolumes [Volume]", func() {
// Testing configurations of a single a PV/PVC pair, multiple evenly paired PVs/PVCs, // Testing configurations of a single a PV/PVC pair, multiple evenly paired PVs/PVCs,
// and multiple unevenly paired PV/PVCs // and multiple unevenly paired PV/PVCs
framework.KubeDescribe("PersistentVolumes:NFS[Flaky]", func() { framework.KubeDescribe("PersistentVolumes:NFS", func() {
var ( var (
nfsServerPod *v1.Pod nfsServerPod *v1.Pod
...@@ -260,7 +260,7 @@ var _ = framework.KubeDescribe("PersistentVolumes [Volume]", func() { ...@@ -260,7 +260,7 @@ var _ = framework.KubeDescribe("PersistentVolumes [Volume]", func() {
// This It() tests a scenario where a PV is written to by a Pod, recycled, then the volume checked // This It() tests a scenario where a PV is written to by a Pod, recycled, then the volume checked
// for files. If files are found, the checking Pod fails, failing the test. Otherwise, the pod // for files. If files are found, the checking Pod fails, failing the test. Otherwise, the pod
// (and test) succeed. // (and test) succeed.
It("should test that a PV becomes Available and is clean after the PVC is deleted. [Volume] [Flaky]", func() { It("should test that a PV becomes Available and is clean after the PVC is deleted. [Volume]", func() {
By("Writing to the volume.") By("Writing to the volume.")
pod := framework.MakeWritePod(ns, pvc) pod := framework.MakeWritePod(ns, pvc)
pod, err := c.CoreV1().Pods(ns).Create(pod) pod, err := c.CoreV1().Pods(ns).Create(pod)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment