Skip to content

Commit 89eae73

Browse files
committed
tests: Refactors agnhost image pod usage in tests
A previous commit created a few agnhost related functions that creates agnhost pods / containers for general purposes. Refactors tests to use those functions.
1 parent 131f42d commit 89eae73

File tree

8 files changed

+53
-211
lines changed

8 files changed

+53
-211
lines changed

test/e2e/apimachinery/table_conversion.go

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ import (
3535
utilversion "k8s.io/apimachinery/pkg/util/version"
3636
"k8s.io/cli-runtime/pkg/printers"
3737
"k8s.io/kubernetes/test/e2e/framework"
38+
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
3839
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
39-
imageutils "k8s.io/kubernetes/test/utils/image"
4040
)
4141

4242
var serverPrintVersion = utilversion.MustParseSemantic("v1.10.0")
@@ -55,7 +55,7 @@ var _ = SIGDescribe("Servers with support for Table transformation", func() {
5555
podName := "pod-1"
5656
framework.Logf("Creating pod %s", podName)
5757

58-
_, err := c.CoreV1().Pods(ns).Create(context.TODO(), newTablePod(podName), metav1.CreateOptions{})
58+
_, err := c.CoreV1().Pods(ns).Create(context.TODO(), newTablePod(ns, podName), metav1.CreateOptions{})
5959
framework.ExpectNoError(err, "failed to create pod %s in namespace: %s", podName, ns)
6060

6161
table := &metav1beta1.Table{}
@@ -177,25 +177,10 @@ func printTable(table *metav1beta1.Table) string {
177177
return buf.String()
178178
}
179179

180-
func newTablePod(podName string) *v1.Pod {
181-
containerName := fmt.Sprintf("%s-container", podName)
180+
func newTablePod(ns, podName string) *v1.Pod {
182181
port := 8080
183-
pod := &v1.Pod{
184-
ObjectMeta: metav1.ObjectMeta{
185-
Name: podName,
186-
},
187-
Spec: v1.PodSpec{
188-
Containers: []v1.Container{
189-
{
190-
Name: containerName,
191-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
192-
Args: []string{"porter"},
193-
Env: []v1.EnvVar{{Name: fmt.Sprintf("SERVE_PORT_%d", port), Value: "foo"}},
194-
Ports: []v1.ContainerPort{{ContainerPort: int32(port)}},
195-
},
196-
},
197-
RestartPolicy: v1.RestartPolicyNever,
198-
},
199-
}
182+
pod := e2epod.NewAgnhostPod(ns, podName, nil, nil, []v1.ContainerPort{{ContainerPort: int32(port)}}, "porter")
183+
pod.Spec.Containers[0].Env = []v1.EnvVar{{Name: fmt.Sprintf("SERVE_PORT_%d", port), Value: "foo"}}
184+
pod.Spec.RestartPolicy = v1.RestartPolicyNever
200185
return pod
201186
}

test/e2e/auth/node_authn.go

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ import (
2424
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2525
"k8s.io/kubernetes/pkg/cluster/ports"
2626
"k8s.io/kubernetes/test/e2e/framework"
27-
imageutils "k8s.io/kubernetes/test/utils/image"
2827

2928
"github.com/onsi/ginkgo"
3029
"github.com/onsi/gomega"
3130
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
31+
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
3232
)
3333

3434
var _ = SIGDescribe("[Feature:NodeAuthenticator]", func() {
@@ -93,19 +93,7 @@ var _ = SIGDescribe("[Feature:NodeAuthenticator]", func() {
9393
})
9494

9595
func createNodeAuthTestPod(f *framework.Framework) *v1.Pod {
96-
pod := &v1.Pod{
97-
ObjectMeta: metav1.ObjectMeta{
98-
GenerateName: "test-node-authn-",
99-
},
100-
Spec: v1.PodSpec{
101-
Containers: []v1.Container{{
102-
Name: "test-node-authn",
103-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
104-
Command: []string{"sleep", "3600"},
105-
}},
106-
RestartPolicy: v1.RestartPolicyNever,
107-
},
108-
}
109-
96+
pod := e2epod.NewAgnhostPod(f.Namespace.Name, "agnhost-pod", nil, nil, nil)
97+
pod.ObjectMeta.GenerateName = "test-node-authn-"
11098
return f.PodClient().CreateSync(pod)
11199
}

test/e2e/network/service.go

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3587,11 +3587,7 @@ func createPausePodDeployment(cs clientset.Interface, name, ns string, replicas
35873587
labels := map[string]string{"deployment": "agnhost-pause"}
35883588
pauseDeployment := e2edeployment.NewDeployment(name, int32(replicas), labels, "", "", appsv1.RollingUpdateDeploymentStrategyType)
35893589

3590-
pauseDeployment.Spec.Template.Spec.Containers[0] = v1.Container{
3591-
Name: "agnhost-pause",
3592-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
3593-
Args: []string{"pause"},
3594-
}
3590+
pauseDeployment.Spec.Template.Spec.Containers[0] = e2epod.NewAgnhostContainer("agnhost-pause", nil, nil, "pause")
35953591
pauseDeployment.Spec.Template.Spec.Affinity = &v1.Affinity{
35963592
PodAntiAffinity: &v1.PodAntiAffinity{
35973593
RequiredDuringSchedulingIgnoredDuringExecution: []v1.PodAffinityTerm{
@@ -3612,25 +3608,12 @@ func createPausePodDeployment(cs clientset.Interface, name, ns string, replicas
36123608
// createPodOrFail creates a pod with the specified containerPorts.
36133609
func createPodOrFail(c clientset.Interface, ns, name string, labels map[string]string, containerPorts []v1.ContainerPort) {
36143610
ginkgo.By(fmt.Sprintf("Creating pod %s in namespace %s", name, ns))
3615-
pod := &v1.Pod{
3616-
ObjectMeta: metav1.ObjectMeta{
3617-
Name: name,
3618-
Labels: labels,
3619-
},
3620-
Spec: v1.PodSpec{
3621-
Containers: []v1.Container{
3622-
{
3623-
Name: "pause",
3624-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
3625-
Args: []string{"pause"},
3626-
Ports: containerPorts,
3627-
// Add a dummy environment variable to work around a docker issue.
3628-
// https://github.com/docker/docker/issues/14203
3629-
Env: []v1.EnvVar{{Name: "FOO", Value: " "}},
3630-
},
3631-
},
3632-
},
3633-
}
3611+
pod := e2epod.NewAgnhostPod(ns, name, nil, nil, containerPorts)
3612+
pod.ObjectMeta.Labels = labels
3613+
// Add a dummy environment variable to work around a docker issue.
3614+
// https://github.com/docker/docker/issues/14203
3615+
pod.Spec.Containers[0].Env = []v1.EnvVar{{Name: "FOO", Value: " "}}
3616+
36343617
_, err := c.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{})
36353618
framework.ExpectNoError(err, "failed to create pod %s in namespace %s", name, ns)
36363619
}

test/e2e/node/pods.go

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,10 @@ var _ = SIGDescribe("Pods Extended", func() {
6363
ginkgo.By("creating the pod")
6464
name := "pod-submit-remove-" + string(uuid.NewUUID())
6565
value := strconv.Itoa(time.Now().Nanosecond())
66-
pod := &v1.Pod{
67-
ObjectMeta: metav1.ObjectMeta{
68-
Name: name,
69-
Labels: map[string]string{
70-
"name": "foo",
71-
"time": value,
72-
},
73-
},
74-
Spec: v1.PodSpec{
75-
Containers: []v1.Container{
76-
{
77-
Name: "agnhost",
78-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
79-
Args: []string{"pause"},
80-
},
81-
},
82-
},
66+
pod := e2epod.NewAgnhostPod(f.Namespace.Name, name, nil, nil, nil)
67+
pod.ObjectMeta.Labels = map[string]string{
68+
"name": "foo",
69+
"time": value,
8370
}
8471

8572
ginkgo.By("setting up selector")

test/e2e/node/pre_stop.go

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,7 @@ type State struct {
4444

4545
func testPreStop(c clientset.Interface, ns string) {
4646
// This is the server that will receive the preStop notification
47-
podDescr := &v1.Pod{
48-
ObjectMeta: metav1.ObjectMeta{
49-
Name: "server",
50-
},
51-
Spec: v1.PodSpec{
52-
Containers: []v1.Container{
53-
{
54-
Name: "server",
55-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
56-
Args: []string{"nettest"},
57-
Ports: []v1.ContainerPort{{ContainerPort: 8080}},
58-
},
59-
},
60-
},
61-
}
47+
podDescr := e2epod.NewAgnhostPod(ns, "server", nil, nil, []v1.ContainerPort{{ContainerPort: 8080}}, "nettest")
6248
ginkgo.By(fmt.Sprintf("Creating server pod %s in namespace %s", podDescr.Name, ns))
6349
podDescr, err := c.CoreV1().Pods(ns).Create(context.TODO(), podDescr, metav1.CreateOptions{})
6450
framework.ExpectNoError(err, fmt.Sprintf("creating pod %s", podDescr.Name))

test/e2e/storage/empty_dir_wrapper.go

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -214,25 +214,8 @@ func createGitServer(f *framework.Framework) (gitURL string, gitRepo string, cle
214214

215215
labels := map[string]string{"name": gitServerPodName}
216216

217-
gitServerPod := &v1.Pod{
218-
ObjectMeta: metav1.ObjectMeta{
219-
Name: gitServerPodName,
220-
Labels: labels,
221-
},
222-
Spec: v1.PodSpec{
223-
Containers: []v1.Container{
224-
{
225-
Name: "git-repo",
226-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
227-
Args: []string{"fake-gitserver"},
228-
ImagePullPolicy: "IfNotPresent",
229-
Ports: []v1.ContainerPort{
230-
{ContainerPort: int32(containerPort)},
231-
},
232-
},
233-
},
234-
},
235-
}
217+
gitServerPod := e2epod.NewAgnhostPod(f.Namespace.Name, gitServerPodName, nil, nil, []v1.ContainerPort{{ContainerPort: int32(containerPort)}}, "fake-gitserver")
218+
gitServerPod.ObjectMeta.Labels = labels
236219
f.PodClient().CreateSync(gitServerPod)
237220

238221
// Portal IP and port

test/e2e/storage/testsuites/subpath.go

Lines changed: 29 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,28 @@ func SubpathTestPod(f *framework.Framework, subpath, volumeType string, source *
508508
probeVolumeName = "liveness-probe-volume"
509509
seLinuxOptions = &v1.SELinuxOptions{Level: "s0:c0,c1"}
510510
)
511+
512+
volumeMount := v1.VolumeMount{Name: volumeName, MountPath: volumePath}
513+
volumeSubpathMount := v1.VolumeMount{Name: volumeName, MountPath: volumePath, SubPath: subpath}
514+
probeMount := v1.VolumeMount{Name: probeVolumeName, MountPath: probeVolumePath}
515+
516+
initSubpathContainer := e2epod.NewAgnhostContainer(
517+
fmt.Sprintf("test-init-subpath-%s", suffix),
518+
[]v1.VolumeMount{volumeSubpathMount, probeMount}, nil, "mounttest")
519+
initSubpathContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext)
520+
initVolumeContainer := e2epod.NewAgnhostContainer(
521+
fmt.Sprintf("test-init-volume-%s", suffix),
522+
[]v1.VolumeMount{volumeMount, probeMount}, nil, "mounttest")
523+
initVolumeContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext)
524+
subpathContainer := e2epod.NewAgnhostContainer(
525+
fmt.Sprintf("test-container-subpath-%s", suffix),
526+
[]v1.VolumeMount{volumeSubpathMount, probeMount}, nil, "mounttest")
527+
subpathContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext)
528+
volumeContainer := e2epod.NewAgnhostContainer(
529+
fmt.Sprintf("test-container-volume-%s", suffix),
530+
[]v1.VolumeMount{volumeMount, probeMount}, nil, "mounttest")
531+
volumeContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext)
532+
511533
return &v1.Pod{
512534
ObjectMeta: metav1.ObjectMeta{
513535
Name: fmt.Sprintf("pod-subpath-test-%s", suffix),
@@ -516,88 +538,17 @@ func SubpathTestPod(f *framework.Framework, subpath, volumeType string, source *
516538
Spec: v1.PodSpec{
517539
InitContainers: []v1.Container{
518540
{
519-
Name: fmt.Sprintf("init-volume-%s", suffix),
520-
Image: e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)),
521-
VolumeMounts: []v1.VolumeMount{
522-
{
523-
Name: volumeName,
524-
MountPath: volumePath,
525-
},
526-
{
527-
Name: probeVolumeName,
528-
MountPath: probeVolumePath,
529-
},
530-
},
531-
SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext),
532-
},
533-
{
534-
Name: fmt.Sprintf("test-init-subpath-%s", suffix),
535-
Image: mountImage,
536-
Args: []string{"mounttest"},
537-
VolumeMounts: []v1.VolumeMount{
538-
{
539-
Name: volumeName,
540-
MountPath: volumePath,
541-
SubPath: subpath,
542-
},
543-
{
544-
Name: probeVolumeName,
545-
MountPath: probeVolumePath,
546-
},
547-
},
548-
SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext),
549-
},
550-
{
551-
Name: fmt.Sprintf("test-init-volume-%s", suffix),
552-
Image: mountImage,
553-
Args: []string{"mounttest"},
554-
VolumeMounts: []v1.VolumeMount{
555-
{
556-
Name: volumeName,
557-
MountPath: volumePath,
558-
},
559-
{
560-
Name: probeVolumeName,
561-
MountPath: probeVolumePath,
562-
},
563-
},
541+
Name: fmt.Sprintf("init-volume-%s", suffix),
542+
Image: e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)),
543+
VolumeMounts: []v1.VolumeMount{volumeMount, probeMount},
564544
SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext),
565545
},
546+
initSubpathContainer,
547+
initVolumeContainer,
566548
},
567549
Containers: []v1.Container{
568-
{
569-
Name: fmt.Sprintf("test-container-subpath-%s", suffix),
570-
Image: mountImage,
571-
Args: []string{"mounttest"},
572-
VolumeMounts: []v1.VolumeMount{
573-
{
574-
Name: volumeName,
575-
MountPath: volumePath,
576-
SubPath: subpath,
577-
},
578-
{
579-
Name: probeVolumeName,
580-
MountPath: probeVolumePath,
581-
},
582-
},
583-
SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext),
584-
},
585-
{
586-
Name: fmt.Sprintf("test-container-volume-%s", suffix),
587-
Image: mountImage,
588-
Args: []string{"mounttest"},
589-
VolumeMounts: []v1.VolumeMount{
590-
{
591-
Name: volumeName,
592-
MountPath: volumePath,
593-
},
594-
{
595-
Name: probeVolumeName,
596-
MountPath: probeVolumePath,
597-
},
598-
},
599-
SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext),
600-
},
550+
subpathContainer,
551+
volumeContainer,
601552
},
602553
RestartPolicy: v1.RestartPolicyNever,
603554
TerminationGracePeriodSeconds: &gracePeriod,

test/e2e/windows/dns.go

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"k8s.io/kubernetes/test/e2e/framework"
2727
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
2828
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
29-
imageutils "k8s.io/kubernetes/test/utils/image"
3029

3130
"github.com/onsi/ginkgo"
3231
)
@@ -45,7 +44,7 @@ var _ = SIGDescribe("DNS", func() {
4544
testSearchPath := "resolv.conf.local"
4645

4746
ginkgo.By("Creating a pod with dnsPolicy=None and customized dnsConfig...")
48-
testUtilsPod := generateDNSUtilsPod()
47+
testUtilsPod := e2epod.NewAgnhostPod(f.Namespace.Name, "e2e-dns-utils", nil, nil, nil)
4948
testUtilsPod.Spec.DNSPolicy = v1.DNSNone
5049
testUtilsPod.Spec.DNSConfig = &v1.PodDNSConfig{
5150
Nameservers: []string{testInjectedIP},
@@ -90,23 +89,3 @@ var _ = SIGDescribe("DNS", func() {
9089
// TODO: Add more test cases for other DNSPolicies.
9190
})
9291
})
93-
94-
func generateDNSUtilsPod() *v1.Pod {
95-
return &v1.Pod{
96-
TypeMeta: metav1.TypeMeta{
97-
Kind: "Pod",
98-
},
99-
ObjectMeta: metav1.ObjectMeta{
100-
GenerateName: "e2e-dns-utils-",
101-
},
102-
Spec: v1.PodSpec{
103-
Containers: []v1.Container{
104-
{
105-
Name: "util",
106-
Image: imageutils.GetE2EImage(imageutils.Agnhost),
107-
Command: []string{"sleep", "10000"},
108-
},
109-
},
110-
},
111-
}
112-
}

0 commit comments

Comments
 (0)