m/t/installer: deflake by silencing kernel logs

The installer test was failing due to the success flag getting broken
in two by the kernel logs, like this:
>TestOS launched successfully! _TESTOS_LAUNCH_SUC[    0.963289] kvm:
>exiting hardware virtualizationCESS_

This change addresses this problem by setting an adequate loglevel for
both the installer and testos kernels.

m/t/installer/BUILD.bazel now defines its own unified kernel image
target with a custom kernel cmdline needed for test purposes.

Change-Id: I43547b6c81f8a1ebc4facb841a600b155af581df
Reviewed-on: https://review.monogon.dev/c/monogon/+/464
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
diff --git a/metropolis/node/installer/BUILD.bazel b/metropolis/node/installer/BUILD.bazel
index f69ecbe..9e1a36a 100644
--- a/metropolis/node/installer/BUILD.bazel
+++ b/metropolis/node/installer/BUILD.bazel
@@ -27,7 +27,7 @@
     files = {
         "//metropolis/node/installer": "/init",
     },
-    visibility = ["//visibility:private"],
+    visibility = ["//metropolis/test/installer:__pkg__"],
 )
 
 os_release(
@@ -39,7 +39,6 @@
 
 efi_unified_kernel_image(
     name = "kernel",
-    cmdline = "console=ttyS0",
     initramfs = ":initramfs",
     kernel = "//third_party/linux",
     os_release = ":installer-release-info",
diff --git a/metropolis/test/installer/BUILD.bazel b/metropolis/test/installer/BUILD.bazel
index 9b094a8..5763d75 100644
--- a/metropolis/test/installer/BUILD.bazel
+++ b/metropolis/test/installer/BUILD.bazel
@@ -1,10 +1,11 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+load("//metropolis/node/build:efi.bzl", "efi_unified_kernel_image")
 
 go_test(
     name = "installer",
     size = "small",
     data = [
-        "//metropolis/node/installer:kernel",
+        ":kernel",
         "//metropolis/test/installer/testos:testos_bundle",
         "//third_party/edk2:firmware",
         "@qemu//:qemu-x86_64-softmmu",
@@ -28,3 +29,11 @@
         "@io_bazel_rules_go//go/tools/bazel:go_default_library",
     ],
 )
+
+efi_unified_kernel_image(
+    name = "kernel",
+    cmdline = "loglevel=0 console=ttyS0",
+    initramfs = "//metropolis/node/installer:initramfs",
+    kernel = "//third_party/linux",
+    visibility = ["//visibility:private"],
+)
diff --git a/metropolis/test/installer/main.go b/metropolis/test/installer/main.go
index a5bac64..34c4d31 100644
--- a/metropolis/test/installer/main.go
+++ b/metropolis/test/installer/main.go
@@ -156,7 +156,7 @@
 		// side effects, it must be just a filename.
 		src string
 	}{
-		{&installerEFIPayload, true, "metropolis/node/installer/kernel.efi"},
+		{&installerEFIPayload, true, "metropolis/test/installer/kernel.efi"},
 		{&testOSBundle, true, "metropolis/test/installer/testos/testos_bundle.zip"},
 		{&installerImage, false, "installer.img"},
 		{&nodeStorage, false, "stor.img"},
diff --git a/metropolis/test/installer/testos/BUILD b/metropolis/test/installer/testos/BUILD
index c6ced2b..55fbd47 100644
--- a/metropolis/test/installer/testos/BUILD
+++ b/metropolis/test/installer/testos/BUILD
@@ -12,7 +12,7 @@
 
 efi_unified_kernel_image(
     name = "kernel_efi",
-    cmdline = "console=ttyS0 root=PARTLABEL=METROPOLIS-SYSTEM rootfstype=erofs init=/init",
+    cmdline = "loglevel=0 console=ttyS0 root=PARTLABEL=METROPOLIS-SYSTEM rootfstype=erofs init=/init",
     kernel = "//third_party/linux",
 )