From 40e7689f0e9dcff6f45bb5eea423500cd4fcafd2 Mon Sep 17 00:00:00 2001 From: Lee Verberne Date: Tue, 19 Oct 2021 16:41:39 -0400 Subject: [PATCH] Move ephemeral container e2e to common --- .../common/node/ephemeral_containers.go} | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) rename test/{e2e_node/ephemeral_containers_test.go => e2e/common/node/ephemeral_containers.go} (64%) diff --git a/test/e2e_node/ephemeral_containers_test.go b/test/e2e/common/node/ephemeral_containers.go similarity index 64% rename from test/e2e_node/ephemeral_containers_test.go rename to test/e2e/common/node/ephemeral_containers.go index 17c5d03ce54..106b85f690a 100644 --- a/test/e2e_node/ephemeral_containers_test.go +++ b/test/e2e/common/node/ephemeral_containers.go @@ -14,15 +14,18 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2enode +package node import ( "time" v1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/test/e2e/framework" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" + e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" imageutils "k8s.io/kubernetes/test/utils/image" "github.com/onsi/ginkgo" @@ -52,20 +55,28 @@ var _ = SIGDescribe("Ephemeral Containers", func() { }) ginkgo.By("adding an ephemeral container") + ecName := "debugger" ec := &v1.EphemeralContainer{ EphemeralContainerCommon: v1.EphemeralContainerCommon{ - Name: "debugger", + Name: ecName, Image: imageutils.GetE2EImage(imageutils.BusyBox), - Command: []string{"/bin/sh"}, + Command: e2epod.GenerateScriptCmd("while true; do sleep 2; echo polo; done"), Stdin: true, TTY: true, }, } err := podClient.AddEphemeralContainerSync(pod, ec, time.Minute) + // BEGIN TODO: Remove when EphemeralContainers feature gate is retired. + if apierrors.IsNotFound(err) { + e2eskipper.Skipf("Skipping test because EphemeralContainers feature disabled (error: %q)", err) + } + // END TODO: Remove when EphemeralContainers feature gate is retired. framework.ExpectNoError(err, "Failed to patch ephemeral containers in pod %q", format.Pod(pod)) - ginkgo.By("confirm that the container is really running") - marco := f.ExecCommandInContainer(pod.Name, "debugger", "/bin/echo", "polo") - framework.ExpectEqual(marco, "polo") + ginkgo.By("checking pod container endpoints") + _, err = framework.LookForStringInPodExecToContainer(pod.Namespace, pod.Name, ecName, []string{"/bin/echo", "marco"}, "marco", time.Minute) + framework.ExpectNoError(err, "Failed to exec in pod %q ephemeral container %q", format.Pod(pod), ecName) + _, err = framework.LookForStringInLog(pod.Namespace, pod.Name, ecName, "polo", time.Minute) + framework.ExpectNoError(err, "Failed to find logs in pod %q ephemeral container %q", format.Pod(pod), ecName) }) })