Move ephemeral container e2e to common

This commit is contained in:
Lee Verberne 2021-10-19 16:41:39 -04:00
parent ba649b97b7
commit 40e7689f0e

View File

@ -14,15 +14,18 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package e2enode package node
import ( import (
"time" "time"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/pkg/kubelet/util/format"
"k8s.io/kubernetes/test/e2e/framework" "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" imageutils "k8s.io/kubernetes/test/utils/image"
"github.com/onsi/ginkgo" "github.com/onsi/ginkgo"
@ -52,20 +55,28 @@ var _ = SIGDescribe("Ephemeral Containers", func() {
}) })
ginkgo.By("adding an ephemeral container") ginkgo.By("adding an ephemeral container")
ecName := "debugger"
ec := &v1.EphemeralContainer{ ec := &v1.EphemeralContainer{
EphemeralContainerCommon: v1.EphemeralContainerCommon{ EphemeralContainerCommon: v1.EphemeralContainerCommon{
Name: "debugger", Name: ecName,
Image: imageutils.GetE2EImage(imageutils.BusyBox), Image: imageutils.GetE2EImage(imageutils.BusyBox),
Command: []string{"/bin/sh"}, Command: e2epod.GenerateScriptCmd("while true; do sleep 2; echo polo; done"),
Stdin: true, Stdin: true,
TTY: true, TTY: true,
}, },
} }
err := podClient.AddEphemeralContainerSync(pod, ec, time.Minute) 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)) framework.ExpectNoError(err, "Failed to patch ephemeral containers in pod %q", format.Pod(pod))
ginkgo.By("confirm that the container is really running") ginkgo.By("checking pod container endpoints")
marco := f.ExecCommandInContainer(pod.Name, "debugger", "/bin/echo", "polo") _, err = framework.LookForStringInPodExecToContainer(pod.Namespace, pod.Name, ecName, []string{"/bin/echo", "marco"}, "marco", time.Minute)
framework.ExpectEqual(marco, "polo") 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)
}) })
}) })