metropolis/test: use localregistry
This removes everything but the preseed test image from the preseed
image pool, instead opting to serve all test image via localregistry.
The registry API is served from a dedicated IP inside the virtual
network and forwarded to an ephemeral listener on the host. The relevant
infrastructure is added to the launch package.
As it is required to add configuration to containerd for this registry
anyways as it does not and should not have TLS we take that opportunity
to give it a descriptive name (test.monogon.internal).
Visibilities of images are also adjusted as they are now referenced much
closer to their point of use.
Against main this saves 51MiB in bundle size (289MiB -> 238MiB).
Change-Id: I31f732eb8c4ccec486204f35e3635b588fd9c85b
Reviewed-on: https://review.monogon.dev/c/monogon/+/1927
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/metropolis/test/e2e/main_test.go b/metropolis/test/e2e/main_test.go
index a2c9eaf..812ae9d 100644
--- a/metropolis/test/e2e/main_test.go
+++ b/metropolis/test/e2e/main_test.go
@@ -39,9 +39,11 @@
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
podv1 "k8s.io/kubernetes/pkg/api/v1/pod"
+ "source.monogon.dev/metropolis/cli/pkg/datafile"
common "source.monogon.dev/metropolis/node"
"source.monogon.dev/metropolis/node/core/identity"
"source.monogon.dev/metropolis/node/core/rpc"
+ "source.monogon.dev/metropolis/pkg/localregistry"
apb "source.monogon.dev/metropolis/proto/api"
"source.monogon.dev/metropolis/test/launch"
"source.monogon.dev/metropolis/test/launch/cluster"
@@ -69,9 +71,15 @@
ctx, cancel := context.WithTimeout(context.Background(), globalTestTimeout)
defer cancel()
+ lr, err := localregistry.FromBazelManifest(datafile.MustGet("metropolis/test/e2e/testimages_manifest.prototxt"))
+ if err != nil {
+ t.Fatalf("Creating test image registry failed: %v", err)
+ }
+
// Launch cluster.
clusterOptions := cluster.ClusterOptions{
- NumNodes: 2,
+ NumNodes: 2,
+ LocalRegistry: lr,
}
cluster, err := cluster.LaunchCluster(ctx, clusterOptions)
if err != nil {
@@ -182,9 +190,15 @@
ctx, cancel := context.WithTimeout(context.Background(), globalTestTimeout)
defer cancel()
+ lr, err := localregistry.FromBazelManifest(datafile.MustGet("metropolis/test/e2e/testimages_manifest.prototxt"))
+ if err != nil {
+ t.Fatalf("Creating test image registry failed: %v", err)
+ }
+
// Launch cluster.
clusterOptions := cluster.ClusterOptions{
- NumNodes: 2,
+ NumNodes: 2,
+ LocalRegistry: lr,
}
cluster, err := cluster.LaunchCluster(ctx, clusterOptions)
if err != nil {
@@ -374,7 +388,7 @@
Containers: []corev1.Container{{
Name: "vm-smoketest",
ImagePullPolicy: corev1.PullNever,
- Image: "bazel/metropolis/vm/smoketest:smoketest_container",
+ Image: "test.monogon.internal/metropolis/vm/smoketest:smoketest_container",
Resources: corev1.ResourceRequirements{
Limits: corev1.ResourceList{
"devices.monogon.dev/kvm": *resource.NewQuantity(1, ""),