treewide: replace rules_docker with rules_oci

rules_docker is not maintained anymore and recommends migration to
rules_oci

Change-Id: I089f3cf44888b3c3c0baa2c84a319b04b1a7dec4
Reviewed-on: https://review.monogon.dev/c/monogon/+/2712
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/test/e2e/BUILD.bazel b/metropolis/test/e2e/BUILD.bazel
index b3b2625..1e21035 100644
--- a/metropolis/test/e2e/BUILD.bazel
+++ b/metropolis/test/e2e/BUILD.bazel
@@ -21,7 +21,7 @@
     name = "testimages_manifest",
     images = [
         "//metropolis/test/e2e/selftest:selftest_image",
-        "//metropolis/vm/smoketest:smoketest_container",
+        "//metropolis/vm/smoketest:smoketest_image",
     ],
 )
 
diff --git a/metropolis/test/e2e/preseedtest/BUILD.bazel b/metropolis/test/e2e/preseedtest/BUILD.bazel
index 8f13e23..864ba59 100644
--- a/metropolis/test/e2e/preseedtest/BUILD.bazel
+++ b/metropolis/test/e2e/preseedtest/BUILD.bazel
@@ -1,16 +1,50 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
-load("@io_bazel_rules_docker//go:image.bzl", "go_image")
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "preseedtest",
+    name = "preseedtest_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/e2e/preseedtest",
     visibility = ["//visibility:private"],
 )
 
-go_image(
-    name = "preseedtest_image",
-    embed = [":preseedtest"],
+go_binary(
+    name = "preseedtest",
+    embed = [":preseedtest_lib"],
     pure = "on",
+    visibility = ["//visibility:private"],
+)
+
+load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
+
+platform_transition_binary(
+    name = "preseedtest_transitioned",
+    binary = ":preseedtest",
+    target_platform = "//build/platforms:linux_amd64_static",
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
+
+pkg_tar(
+    name = "preseedtest_layer",
+    srcs = [":preseedtest_transitioned"],
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
+
+oci_image(
+    name = "preseedtest_image",
+    base = "@distroless_base",
+    entrypoint = ["/preseedtest"],
+    tars = [":preseedtest_layer"],
+    visibility = ["//visibility:private"],
+    workdir = "/app",
+)
+
+oci_tarball(
+    name = "preseedtest_tarball",
+    image = ":preseedtest_image",
+    repo_tags = ["bazel/metropolis/test/e2e/preseedtest:preseedtest_image"],
     visibility = ["//metropolis/node:__pkg__"],
 )
diff --git a/metropolis/test/e2e/selftest/BUILD.bazel b/metropolis/test/e2e/selftest/BUILD.bazel
index 7560790..0990150 100644
--- a/metropolis/test/e2e/selftest/BUILD.bazel
+++ b/metropolis/test/e2e/selftest/BUILD.bazel
@@ -1,16 +1,43 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
-load("@io_bazel_rules_docker//go:image.bzl", "go_image")
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "selftest",
+    name = "selftest_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/e2e/selftest",
     visibility = ["//visibility:private"],
 )
 
-go_image(
-    name = "selftest_image",
-    embed = [":selftest"],
+go_binary(
+    name = "selftest",
+    embed = [":selftest_lib"],
     pure = "on",
+    visibility = ["//visibility:private"],
+)
+
+load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
+
+platform_transition_binary(
+    name = "selftest_transitioned",
+    binary = ":selftest",
+    target_platform = "//build/platforms:linux_amd64_static",
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
+
+pkg_tar(
+    name = "selftest_layer",
+    srcs = [":selftest_transitioned"],
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_oci//oci:defs.bzl", "oci_image")
+
+oci_image(
+    name = "selftest_image",
+    base = "@distroless_base",
+    entrypoint = ["/selftest"],
+    tars = [":selftest_layer"],
     visibility = ["//metropolis/test/e2e:__pkg__"],
+    workdir = "/app",
 )