m/n/k/containerd: use preseeded pause container

To allow no-network tests we need to bundle the pause container.

Change-Id: I1fa6bb70c10a16097d35d919941f501ddc5f784d
Reviewed-on: https://review.monogon.dev/c/monogon/+/2767
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/node/kubernetes/pause/BUILD.bazel b/metropolis/node/kubernetes/pause/BUILD.bazel
new file mode 100644
index 0000000..b70d051
--- /dev/null
+++ b/metropolis/node/kubernetes/pause/BUILD.bazel
@@ -0,0 +1,45 @@
+cc_binary(
+    name = "pause",
+    srcs = [
+        "@io_k8s_kubernetes//build/pause/linux:pause.c",
+    ],
+    visibility = [
+        "//metropolis/node:__pkg__",
+    ],
+)
+
+load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
+
+platform_transition_binary(
+    name = "pause_transitioned",
+    binary = ":pause",
+    target_platform = "//build/platforms:linux_amd64_static",
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
+
+pkg_tar(
+    name = "pause_layer",
+    srcs = [":pause_transitioned"],
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
+
+oci_image(
+    name = "pause_image",
+    architecture = "amd64",
+    entrypoint = ["/pause"],
+    os = "linux",
+    tars = [":pause_layer"],
+    visibility = ["//visibility:public"],
+    workdir = "/",
+)
+
+oci_tarball(
+    name = "pause_tarball",
+    image = ":pause_image",
+    repo_tags = ["preseed.metropolis.internal/node/kubernetes/pause:latest"],
+    visibility = ["//metropolis/node:__pkg__"],
+)