m/test/e2e: stop downloading container images

Having tests rely on The Internet isn't great, having tests rely on the
Dockercorp registry is even worse. Instead, let's test everything using
the preseed_test image.

Change-Id: Ib82ce266592e9c6d2f0d4597abcc114c12746b1f
Reviewed-on: https://review.monogon.dev/c/monogon/+/1338
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/test/e2e/kubernetes_helpers.go b/metropolis/test/e2e/kubernetes_helpers.go
index 2e53970..dec7363 100644
--- a/metropolis/test/e2e/kubernetes_helpers.go
+++ b/metropolis/test/e2e/kubernetes_helpers.go
@@ -75,9 +75,9 @@
 				Spec: corev1.PodSpec{
 					Containers: []corev1.Container{
 						{
-							Name: "test",
-							// TODO(phab/T793): Build and preseed our own container images
-							Image: "nginx:alpine",
+							Name:            "test",
+							ImagePullPolicy: corev1.PullNever,
+							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest_image",
 							ReadinessProbe: &corev1.Probe{
 								ProbeHandler: corev1.ProbeHandler{
 									HTTPGet: &corev1.HTTPGetAction{Port: intstr.FromInt(80)},
@@ -120,8 +120,9 @@
 				Spec: corev1.PodSpec{
 					Containers: []corev1.Container{
 						{
-							Name:  "test",
-							Image: "nginx:alpine",
+							Name:            "test",
+							ImagePullPolicy: corev1.PullNever,
+							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest_image",
 							ReadinessProbe: &corev1.Probe{
 								ProbeHandler: corev1.ProbeHandler{
 									HTTPGet: &corev1.HTTPGetAction{Port: intstr.FromInt(80)},
diff --git a/metropolis/test/e2e/main_test.go b/metropolis/test/e2e/main_test.go
index 32cf2bd..7ee63d0 100644
--- a/metropolis/test/e2e/main_test.go
+++ b/metropolis/test/e2e/main_test.go
@@ -312,37 +312,6 @@
 					return fmt.Errorf("pod is not ready: %v", events.Items[0].Message)
 				}
 			})
-			util.TestEventual(t, "Pod with preseeded image", ctx, smallTestTimeout, func(ctx context.Context) error {
-				_, err := clientSet.CoreV1().Pods("default").Create(ctx, &corev1.Pod{
-					ObjectMeta: metav1.ObjectMeta{
-						Name: "preseed-test-1",
-					},
-					Spec: corev1.PodSpec{
-						Containers: []corev1.Container{{
-							Name:            "preseed-test-1",
-							ImagePullPolicy: corev1.PullNever,
-							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest_image",
-						}},
-						RestartPolicy: corev1.RestartPolicyNever,
-					},
-				}, metav1.CreateOptions{})
-				return err
-			})
-			util.TestEventual(t, "Pod with preseeded image is completed", ctx, largeTestTimeout, func(ctx context.Context) error {
-				pod, err := clientSet.CoreV1().Pods("default").Get(ctx, "preseed-test-1", metav1.GetOptions{})
-				if err != nil {
-					return fmt.Errorf("failed to get pod: %w", err)
-				}
-				if pod.Status.Phase == corev1.PodSucceeded {
-					return nil
-				}
-				events, err := clientSet.CoreV1().Events("default").List(ctx, metav1.ListOptions{FieldSelector: fmt.Sprintf("involvedObject.name=%s,involvedObject.namespace=default", pod.Name)})
-				if err != nil || len(events.Items) == 0 {
-					return fmt.Errorf("pod is not ready: %v", pod.Status.Phase)
-				} else {
-					return fmt.Errorf("pod is not ready: %v", events.Items[len(events.Items)-1].Message)
-				}
-			})
 			if os.Getenv("HAVE_NESTED_KVM") != "" {
 				util.TestEventual(t, "Pod for KVM/QEMU smoke test", ctx, smallTestTimeout, func(ctx context.Context) error {
 					runcRuntimeClass := "runc"
diff --git a/metropolis/test/e2e/preseedtest/main.go b/metropolis/test/e2e/preseedtest/main.go
index ceb3898..a44377f 100644
--- a/metropolis/test/e2e/preseedtest/main.go
+++ b/metropolis/test/e2e/preseedtest/main.go
@@ -16,8 +16,18 @@
 
 package main
 
-import "fmt"
+import (
+	"fmt"
+	"net/http"
+)
 
 func main() {
 	fmt.Println("Hello world from preseeded image")
+	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+		fmt.Fprintf(w, "Hello world from preseeded image\n")
+	})
+	err := http.ListenAndServe(":80", nil)
+	if err != nil {
+		fmt.Printf("Serve failed: %v\n", err)
+	}
 }