tests: Replaces images used with agnhost (part 4)

Quite a few images are only used a few times in a few tests. Thus,
the images are being centralized into the agnhost image, reducing
the number of images that have to be pulled and used.

This PR replaces the usage of the following images with agnhost:

- resource-consumer-controller
- test-webserver
This commit is contained in:
Claudiu Belu 2019-05-13 21:04:14 -07:00
parent db9123e50e
commit f7942290af
11 changed files with 28 additions and 27 deletions

View File

@ -303,7 +303,8 @@ func testWebServerPodSpec(readinessProbe, livenessProbe *v1.Probe, containerName
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: containerName, Name: containerName,
Image: imageutils.GetE2EImage(imageutils.TestWebserver), Image: imageutils.GetE2EImage(imageutils.Agnhost),
Args: []string{"test-webserver"},
Ports: []v1.ContainerPort{{ContainerPort: int32(port)}}, Ports: []v1.ContainerPort{{ContainerPort: int32(port)}},
LivenessProbe: livenessProbe, LivenessProbe: livenessProbe,
ReadinessProbe: readinessProbe, ReadinessProbe: readinessProbe,

View File

@ -68,7 +68,6 @@ var CommonImageWhiteList = sets.NewString(
imageutils.GetE2EImage(imageutils.MounttestUser), imageutils.GetE2EImage(imageutils.MounttestUser),
imageutils.GetE2EImage(imageutils.Nginx), imageutils.GetE2EImage(imageutils.Nginx),
imageutils.GetE2EImage(imageutils.Httpd), imageutils.GetE2EImage(imageutils.Httpd),
imageutils.GetE2EImage(imageutils.TestWebserver),
imageutils.GetE2EImage(imageutils.VolumeNFSServer), imageutils.GetE2EImage(imageutils.VolumeNFSServer),
imageutils.GetE2EImage(imageutils.VolumeGlusterServer), imageutils.GetE2EImage(imageutils.VolumeGlusterServer),
imageutils.GetE2EImage(imageutils.NonRoot), imageutils.GetE2EImage(imageutils.NonRoot),

View File

@ -64,8 +64,7 @@ const (
) )
var ( var (
resourceConsumerImage = imageutils.GetE2EImage(imageutils.ResourceConsumer) resourceConsumerImage = imageutils.GetE2EImage(imageutils.ResourceConsumer)
resourceConsumerControllerImage = imageutils.GetE2EImage(imageutils.ResourceController)
) )
var ( var (
@ -500,12 +499,12 @@ func runServiceAndWorkloadForResourceConsumer(c clientset.Interface, ns, name st
dnsClusterFirst := v1.DNSClusterFirst dnsClusterFirst := v1.DNSClusterFirst
controllerRcConfig := testutils.RCConfig{ controllerRcConfig := testutils.RCConfig{
Client: c, Client: c,
Image: resourceConsumerControllerImage, Image: imageutils.GetE2EImage(imageutils.Agnhost),
Name: controllerName, Name: controllerName,
Namespace: ns, Namespace: ns,
Timeout: timeoutRC, Timeout: timeoutRC,
Replicas: 1, Replicas: 1,
Command: []string{"/controller", "--consumer-service-name=" + name, "--consumer-service-namespace=" + ns, "--consumer-port=80"}, Command: []string{"/agnhost", "resource-consumer-controller", "--consumer-service-name=" + name, "--consumer-service-namespace=" + ns, "--consumer-port=80"},
DNSPolicy: &dnsClusterFirst, DNSPolicy: &dnsClusterFirst,
} }
framework.ExpectNoError(e2erc.RunRC(controllerRcConfig)) framework.ExpectNoError(e2erc.RunRC(controllerRcConfig))

View File

@ -396,7 +396,8 @@ func createDNSPod(namespace, wheezyProbeCmd, jessieProbeCmd, podHostName, servic
// TODO: Consider scraping logs instead of running a webserver. // TODO: Consider scraping logs instead of running a webserver.
{ {
Name: "webserver", Name: "webserver",
Image: imageutils.GetE2EImage(imageutils.TestWebserver), Image: imageutils.GetE2EImage(imageutils.Agnhost),
Args: []string{"test-webserver"},
Ports: []v1.ContainerPort{ Ports: []v1.ContainerPort{
{ {
Name: "http", Name: "http",

View File

@ -139,8 +139,9 @@ var _ = SIGDescribe("[Feature:IPv6DualStackAlphaFeature] [LinuxOnly]", func() {
replicas, replicas,
map[string]string{"test": "dual-stack-server"}, map[string]string{"test": "dual-stack-server"},
"dualstack-test-server", "dualstack-test-server",
imageutils.GetE2EImage(imageutils.TestWebserver), imageutils.GetE2EImage(imageutils.Agnhost),
appsv1.RollingUpdateDeploymentStrategyType) appsv1.RollingUpdateDeploymentStrategyType)
serverDeploymentSpec.Spec.Template.Spec.Containers[0].Args = []string{"test-webserver"}
// to ensure all the pods land on different nodes and we can thereby // to ensure all the pods land on different nodes and we can thereby
// validate connectivity across all nodes. // validate connectivity across all nodes.

View File

@ -60,7 +60,7 @@ func NewServerTest(client clientset.Interface, namespace string, serviceName str
t.services = make(map[string]bool) t.services = make(map[string]bool)
t.Name = "webserver" t.Name = "webserver"
t.Image = imageutils.GetE2EImage(imageutils.TestWebserver) t.Image = imageutils.GetE2EImage(imageutils.Agnhost)
return t return t
} }

View File

@ -127,7 +127,8 @@ var _ = utils.SIGDescribe("EmptyDir wrapper volumes", func() {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "secret-test", Name: "secret-test",
Image: imageutils.GetE2EImage(imageutils.TestWebserver), Image: imageutils.GetE2EImage(imageutils.Agnhost),
Args: []string{"test-webserver"},
VolumeMounts: []v1.VolumeMount{ VolumeMounts: []v1.VolumeMount{
{ {
Name: volumeName, Name: volumeName,

View File

@ -36,7 +36,7 @@ const (
) )
var ( var (
windowsBusyBoximage = imageutils.GetE2EImage(imageutils.TestWebserver) windowsBusyBoximage = imageutils.GetE2EImage(imageutils.Agnhost)
linuxBusyBoxImage = "docker.io/library/nginx:1.15-alpine" linuxBusyBoxImage = "docker.io/library/nginx:1.15-alpine"
) )
@ -53,6 +53,7 @@ var _ = SIGDescribe("Hybrid cluster network", func() {
ginkgo.By("creating linux and windows pods") ginkgo.By("creating linux and windows pods")
linuxPod := createTestPod(f, linuxBusyBoxImage, linuxOS) linuxPod := createTestPod(f, linuxBusyBoxImage, linuxOS)
windowsPod := createTestPod(f, windowsBusyBoximage, windowsOS) windowsPod := createTestPod(f, windowsBusyBoximage, windowsOS)
windowsPod.Spec.Containers[0].Args = []string{"test-webserver"}
ginkgo.By("checking connectivity to 8.8.8.8 53 (google.com) from Linux") ginkgo.By("checking connectivity to 8.8.8.8 53 (google.com) from Linux")
assertConsistentConnectivity(f, linuxPod.ObjectMeta.Name, linuxOS, linuxCheck("8.8.8.8", 53)) assertConsistentConnectivity(f, linuxPod.ObjectMeta.Name, linuxOS, linuxCheck("8.8.8.8", 53))

View File

@ -220,7 +220,8 @@ var _ = framework.KubeDescribe("Container Manager Misc [Serial]", func() {
Spec: v1.PodSpec{ Spec: v1.PodSpec{
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Image: imageutils.GetE2EImage(imageutils.TestWebserver), Image: imageutils.GetE2EImage(imageutils.Agnhost),
Args: []string{"test-webserver"},
Name: podName, Name: podName,
Resources: v1.ResourceRequirements{ Resources: v1.ResourceRequirements{
Requests: v1.ResourceList{ Requests: v1.ResourceList{

View File

@ -40,7 +40,7 @@ For example, let's consider the following `pod.yaml` file:
containers: containers:
- args: - args:
- dns-suffix - dns-suffix
image: gcr.io/kubernetes-e2e-test-images/agnhost:2.10 image: us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10
name: agnhost name: agnhost
dnsConfig: dnsConfig:
nameservers: nameservers:
@ -207,7 +207,7 @@ Usage:
```console ```console
guestbook="test/e2e/testing-manifests/guestbook" guestbook="test/e2e/testing-manifests/guestbook"
sed_expr="s|{{.AgnhostImage}}|gcr.io/kubernetes-e2e-test-images/agnhost:2.8|" sed_expr="s|{{.AgnhostImage}}|us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10|"
# create the services. # create the services.
kubectl create -f ${guestbook}/frontend-service.yaml kubectl create -f ${guestbook}/frontend-service.yaml
@ -290,14 +290,14 @@ Examples:
```console ```console
docker run -i \ docker run -i \
gcr.io/kubernetes-e2e-test-images/agnhost:2.10 \ us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10 \
logs-generator --log-lines-total 10 --run-duration 1s logs-generator --log-lines-total 10 --run-duration 1s
``` ```
```console ```console
kubectl run logs-generator \ kubectl run logs-generator \
--generator=run-pod/v1 \ --generator=run-pod/v1 \
--image=gcr.io/kubernetes-e2e-test-images/agnhost:2.10 \ --image=us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10 \
--restart=Never \ --restart=Never \
-- logs-generator -t 10 -d 1s -- logs-generator -t 10 -d 1s
``` ```
@ -455,7 +455,7 @@ Usage:
```console ```console
kubectl run test-agnhost \ kubectl run test-agnhost \
--generator=run-pod/v1 \ --generator=run-pod/v1 \
--image=gcr.io/kubernetes-e2e-test-images/agnhost:2.10 \ --image=us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10 \
--restart=Never \ --restart=Never \
--env "POD_IP=<POD_IP>" \ --env "POD_IP=<POD_IP>" \
--env "NODE_IP=<NODE_IP>" \ --env "NODE_IP=<NODE_IP>" \
@ -510,7 +510,7 @@ Usage:
```console ```console
kubectl run test-agnhost \ kubectl run test-agnhost \
--generator=run-pod/v1 \ --generator=run-pod/v1 \
--image=gcr.io/kubernetes-e2e-test-images/agnhost:2.10 \ --image=us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10 \
--restart=Never \ --restart=Never \
--env "BIND_ADDRESS=localhost" \ --env "BIND_ADDRESS=localhost" \
--env "BIND_PORT=8080" \ --env "BIND_PORT=8080" \
@ -631,6 +631,6 @@ The image contains `iperf`, `curl`, `dns-tools` (including `dig`), CoreDNS.
## Image ## Image
The image can be found at `gcr.io/kubernetes-e2e-test-images/agnhost:2.10` for Linux The image can be found at `us.gcr.io/k8s-artifacts-prod/e2e-test-images/agnhost:2.10` for Linux
containers, and `e2eteam/agnhost:2.8` for Windows containers. In the future, the same containers, and `e2eteam/agnhost:2.10` for Windows containers. In the future, the same
repository can be used for both OSes. repository can be used for both OSes.

View File

@ -31,6 +31,7 @@ type RegistryList struct {
DockerLibraryRegistry string `yaml:"dockerLibraryRegistry"` DockerLibraryRegistry string `yaml:"dockerLibraryRegistry"`
DockerGluster string `yaml:"dockerGluster"` DockerGluster string `yaml:"dockerGluster"`
E2eRegistry string `yaml:"e2eRegistry"` E2eRegistry string `yaml:"e2eRegistry"`
PromoterE2eRegistry string `yaml:"promoterE2eRegistry"`
InvalidRegistry string `yaml:"invalidRegistry"` InvalidRegistry string `yaml:"invalidRegistry"`
GcRegistry string `yaml:"gcRegistry"` GcRegistry string `yaml:"gcRegistry"`
GcrReleaseRegistry string `yaml:"gcrReleaseRegistry"` GcrReleaseRegistry string `yaml:"gcrReleaseRegistry"`
@ -69,6 +70,7 @@ func initReg() RegistryList {
DockerLibraryRegistry: "docker.io/library", DockerLibraryRegistry: "docker.io/library",
DockerGluster: "docker.io/gluster", DockerGluster: "docker.io/gluster",
E2eRegistry: "gcr.io/kubernetes-e2e-test-images", E2eRegistry: "gcr.io/kubernetes-e2e-test-images",
PromoterE2eRegistry: "us.gcr.io/k8s-artifacts-prod/e2e-test-images",
InvalidRegistry: "invalid.com/invalid", InvalidRegistry: "invalid.com/invalid",
GcRegistry: "k8s.gcr.io", GcRegistry: "k8s.gcr.io",
GcrReleaseRegistry: "gcr.io/gke-release", GcrReleaseRegistry: "gcr.io/gke-release",
@ -100,6 +102,7 @@ var (
dockerLibraryRegistry = registry.DockerLibraryRegistry dockerLibraryRegistry = registry.DockerLibraryRegistry
dockerGluster = registry.DockerGluster dockerGluster = registry.DockerGluster
e2eRegistry = registry.E2eRegistry e2eRegistry = registry.E2eRegistry
promoterE2eRegistry = registry.PromoterE2eRegistry
gcAuthenticatedRegistry = registry.GcAuthenticatedRegistry gcAuthenticatedRegistry = registry.GcAuthenticatedRegistry
gcRegistry = registry.GcRegistry gcRegistry = registry.GcRegistry
gcrReleaseRegistry = registry.GcrReleaseRegistry gcrReleaseRegistry = registry.GcrReleaseRegistry
@ -187,14 +190,10 @@ const (
RegressionIssue74839 RegressionIssue74839
// ResourceConsumer image // ResourceConsumer image
ResourceConsumer ResourceConsumer
// ResourceController image
ResourceController
// SdDummyExporter image // SdDummyExporter image
SdDummyExporter SdDummyExporter
// StartupScript image // StartupScript image
StartupScript StartupScript
// TestWebserver image
TestWebserver
// VolumeNFSServer image // VolumeNFSServer image
VolumeNFSServer VolumeNFSServer
// VolumeISCSIServer image // VolumeISCSIServer image
@ -207,7 +206,7 @@ const (
func initImageConfigs() map[int]Config { func initImageConfigs() map[int]Config {
configs := map[int]Config{} configs := map[int]Config{}
configs[Agnhost] = Config{e2eRegistry, "agnhost", "2.8"} configs[Agnhost] = Config{promoterE2eRegistry, "agnhost", "2.10"}
configs[AgnhostPrivate] = Config{PrivateRegistry, "agnhost", "2.6"} configs[AgnhostPrivate] = Config{PrivateRegistry, "agnhost", "2.6"}
configs[AuthenticatedAlpine] = Config{gcAuthenticatedRegistry, "alpine", "3.7"} configs[AuthenticatedAlpine] = Config{gcAuthenticatedRegistry, "alpine", "3.7"}
configs[AuthenticatedWindowsNanoServer] = Config{gcAuthenticatedRegistry, "windows-nanoserver", "v1"} configs[AuthenticatedWindowsNanoServer] = Config{gcAuthenticatedRegistry, "windows-nanoserver", "v1"}
@ -243,10 +242,8 @@ func initImageConfigs() map[int]Config {
configs[Redis] = Config{dockerLibraryRegistry, "redis", "5.0.5-alpine"} configs[Redis] = Config{dockerLibraryRegistry, "redis", "5.0.5-alpine"}
configs[RegressionIssue74839] = Config{e2eRegistry, "regression-issue-74839-amd64", "1.0"} configs[RegressionIssue74839] = Config{e2eRegistry, "regression-issue-74839-amd64", "1.0"}
configs[ResourceConsumer] = Config{e2eRegistry, "resource-consumer", "1.5"} configs[ResourceConsumer] = Config{e2eRegistry, "resource-consumer", "1.5"}
configs[ResourceController] = Config{e2eRegistry, "resource-consumer-controller", "1.0"}
configs[SdDummyExporter] = Config{gcRegistry, "sd-dummy-exporter", "v0.2.0"} configs[SdDummyExporter] = Config{gcRegistry, "sd-dummy-exporter", "v0.2.0"}
configs[StartupScript] = Config{googleContainerRegistry, "startup-script", "v1"} configs[StartupScript] = Config{googleContainerRegistry, "startup-script", "v1"}
configs[TestWebserver] = Config{e2eRegistry, "test-webserver", "1.0"}
configs[VolumeNFSServer] = Config{e2eRegistry, "volume/nfs", "1.0"} configs[VolumeNFSServer] = Config{e2eRegistry, "volume/nfs", "1.0"}
configs[VolumeISCSIServer] = Config{e2eRegistry, "volume/iscsi", "2.0"} configs[VolumeISCSIServer] = Config{e2eRegistry, "volume/iscsi", "2.0"}
configs[VolumeGlusterServer] = Config{e2eRegistry, "volume/gluster", "1.0"} configs[VolumeGlusterServer] = Config{e2eRegistry, "volume/gluster", "1.0"}