treewide: switch to gomod and bump everything

This switches version resolution from fietsje to gomod and updates
all Go dependencies. It also bumps rules_go (required by gVisor) and
switches the Gazelle naming convention from go_default_xxx to the
standard Bazel convention of the default target having the package
name.

Since Kubernetes dropped upstream Bazel support and doesn't check in
all generated files I manually pregenerated the OpenAPI spec. This
should be fixed, but because of the already-huge scope of this CL
and the rebase complexity this is not in here.

Change-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833
Reviewed-on: https://review.monogon.dev/c/monogon/+/639
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
Reviewed-by: Leopold Schabel <leo@nexantic.com>
diff --git a/metropolis/test/e2e/BUILD.bazel b/metropolis/test/e2e/BUILD.bazel
index 138fd4a..30932de 100644
--- a/metropolis/test/e2e/BUILD.bazel
+++ b/metropolis/test/e2e/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "e2e",
     srcs = [
         "kubernetes_helpers.go",
         "utils.go",
@@ -9,19 +9,19 @@
     importpath = "source.monogon.dev/metropolis/test/e2e",
     visibility = ["//metropolis/test:__subpackages__"],
     deps = [
-        "//metropolis/test/launch/cluster:go_default_library",
-        "@io_k8s_api//apps/v1:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/resource:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/util/intstr:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
-        "@io_k8s_client_go//rest:go_default_library",
+        "//metropolis/test/launch/cluster",
+        "@io_k8s_api//apps/v1:apps",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/api/resource",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/util/intstr",
+        "@io_k8s_client_go//kubernetes",
+        "@io_k8s_client_go//rest",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "e2e_test",
     size = "large",
     srcs = ["main_test.go"],
     data = [
@@ -29,16 +29,16 @@
         "//metropolis/node:swtpm_data",
         "//third_party/edk2:firmware",
     ],
-    embed = [":go_default_library"],
+    embed = [":e2e"],
     rundir = ".",
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/resource:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_kubernetes//pkg/api/v1/pod:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/identity",
+        "//metropolis/proto/api",
+        "//metropolis/test/launch/cluster",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/api/resource",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_kubernetes//pkg/api/v1/pod",
     ],
 )
diff --git a/metropolis/test/e2e/k8s_cts/BUILD.bazel b/metropolis/test/e2e/k8s_cts/BUILD.bazel
index 2d8ac79..6cc4080 100644
--- a/metropolis/test/e2e/k8s_cts/BUILD.bazel
+++ b/metropolis/test/e2e/k8s_cts/BUILD.bazel
@@ -1,47 +1,22 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
-load("@io_bazel_rules_docker//go:image.bzl", "go_image")
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-
-go_image(
-    name = "kubectl",
-    binary = "@io_k8s_kubernetes//cmd/kubectl",
-    pure = "on",
-)
-
-container_image(
-    name = "kubectl_in_path",
-    base = ":kubectl",
-    env = {
-        # Don't include FHS paths since they aren't available anyways
-        "PATH": "/app/cmd/kubectl",
-    },
-)
-
-go_image(
-    name = "k8s_cts_image",
-    base = ":kubectl_in_path",
-    binary = "@io_k8s_kubernetes//test/e2e:e2e.test",
-    pure = "on",
-    visibility = ["//metropolis/node:__pkg__"],
-)
 
 go_library(
-    name = "go_default_library",
+    name = "k8s_cts_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/e2e/k8s_cts",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/test/e2e:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_api//rbac/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
+        "//metropolis/node",
+        "//metropolis/test/e2e",
+        "//metropolis/test/launch/cluster",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_api//rbac/v1:rbac",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
     ],
 )
 
 go_binary(
     name = "k8s_cts",
-    embed = [":go_default_library"],
+    embed = [":k8s_cts_lib"],
     visibility = ["//visibility:private"],
 )
diff --git a/metropolis/test/e2e/kubernetes_helpers.go b/metropolis/test/e2e/kubernetes_helpers.go
index ec12ca0..44fa660 100644
--- a/metropolis/test/e2e/kubernetes_helpers.go
+++ b/metropolis/test/e2e/kubernetes_helpers.go
@@ -79,7 +79,7 @@
 							// TODO(phab/T793): Build and preseed our own container images
 							Image: "nginx:alpine",
 							ReadinessProbe: &corev1.Probe{
-								Handler: corev1.Handler{
+								ProbeHandler: corev1.ProbeHandler{
 									HTTPGet: &corev1.HTTPGetAction{Port: intstr.FromInt(80)},
 								},
 							},
@@ -123,7 +123,7 @@
 							Name:  "test",
 							Image: "nginx:alpine",
 							ReadinessProbe: &corev1.Probe{
-								Handler: corev1.Handler{
+								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 80140a3..f7dfff8 100644
--- a/metropolis/test/e2e/main_test.go
+++ b/metropolis/test/e2e/main_test.go
@@ -265,7 +265,7 @@
 						Containers: []corev1.Container{{
 							Name:            "preseed-test-1",
 							ImagePullPolicy: corev1.PullNever,
-							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest",
+							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest_image",
 						}},
 						RestartPolicy: corev1.RestartPolicyNever,
 					},
diff --git a/metropolis/test/e2e/preseedtest/BUILD.bazel b/metropolis/test/e2e/preseedtest/BUILD.bazel
index f88d9ad..8f13e23 100644
--- a/metropolis/test/e2e/preseedtest/BUILD.bazel
+++ b/metropolis/test/e2e/preseedtest/BUILD.bazel
@@ -2,15 +2,15 @@
 load("@io_bazel_rules_docker//go:image.bzl", "go_image")
 
 go_library(
-    name = "go_default_library",
+    name = "preseedtest",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/e2e/preseedtest",
     visibility = ["//visibility:private"],
 )
 
 go_image(
-    name = "preseedtest",
-    embed = [":go_default_library"],
+    name = "preseedtest_image",
+    embed = [":preseedtest"],
     pure = "on",
     visibility = ["//metropolis/node:__pkg__"],
 )
diff --git a/metropolis/test/ktest/BUILD b/metropolis/test/ktest/BUILD
index e994c48..0a5f5b3 100644
--- a/metropolis/test/ktest/BUILD
+++ b/metropolis/test/ktest/BUILD
@@ -3,16 +3,16 @@
 load("//third_party/linux:def.bzl", "linux_image")
 
 go_library(
-    name = "go_default_library",
+    name = "ktest_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/ktest",
     visibility = ["//visibility:private"],
-    deps = ["//metropolis/test/launch:go_default_library"],
+    deps = ["//metropolis/test/launch"],
 )
 
 go_binary(
     name = "ktest",
-    embed = [":go_default_library"],
+    embed = [":ktest_lib"],
     pure = "on",
     visibility = ["//metropolis:__subpackages__"],
 )
diff --git a/metropolis/test/ktest/init/BUILD.bazel b/metropolis/test/ktest/init/BUILD.bazel
index 93637aa..f6b540f 100644
--- a/metropolis/test/ktest/init/BUILD.bazel
+++ b/metropolis/test/ktest/init/BUILD.bazel
@@ -1,16 +1,16 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "init_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/ktest/init",
     visibility = ["//visibility:private"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
 
 go_binary(
     name = "init",
-    embed = [":go_default_library"],
+    embed = [":init_lib"],
     pure = "on",
     visibility = ["//metropolis:__subpackages__"],
 )
diff --git a/metropolis/test/launch/BUILD.bazel b/metropolis/test/launch/BUILD.bazel
index 1cb6b24..4508dd5 100644
--- a/metropolis/test/launch/BUILD.bazel
+++ b/metropolis/test/launch/BUILD.bazel
@@ -1,14 +1,14 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "launch",
     srcs = ["launch.go"],
     importpath = "source.monogon.dev/metropolis/test/launch",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/pkg/freeport:go_default_library",
+        "//metropolis/node",
+        "//metropolis/pkg/freeport",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
index 932b57b..c53b626 100644
--- a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
+++ b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
@@ -1,13 +1,13 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "launch-multi2_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/launch/cli/launch-multi2",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/cli/pkg/context:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
+        "//metropolis/cli/pkg/context",
+        "//metropolis/test/launch/cluster",
     ],
 )
 
@@ -21,6 +21,6 @@
         "//third_party/edk2:firmware",
         "@com_github_bonzini_qboot//:qboot-bin",
     ],
-    embed = [":go_default_library"],
+    embed = [":launch-multi2_lib"],
     visibility = ["//:__pkg__"],
 )
diff --git a/metropolis/test/launch/cli/launch/BUILD.bazel b/metropolis/test/launch/cli/launch/BUILD.bazel
index cb2cbb5..31d491a 100644
--- a/metropolis/test/launch/cli/launch/BUILD.bazel
+++ b/metropolis/test/launch/cli/launch/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "launch_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/launch/cli/launch",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/cli/pkg/context:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
+        "//metropolis/cli/pkg/context",
+        "//metropolis/proto/api",
+        "//metropolis/test/launch",
+        "//metropolis/test/launch/cluster",
     ],
 )
 
@@ -20,6 +20,6 @@
         "//metropolis/node:swtpm_data",
         "//third_party/edk2:firmware",
     ],
-    embed = [":go_default_library"],
+    embed = [":launch_lib"],
     visibility = ["//:__pkg__"],
 )
diff --git a/metropolis/test/launch/cluster/BUILD.bazel b/metropolis/test/launch/cluster/BUILD.bazel
index 8e829df..2ca9816 100644
--- a/metropolis/test/launch/cluster/BUILD.bazel
+++ b/metropolis/test/launch/cluster/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "cluster",
     srcs = [
         "cluster.go",
         "insecure_key.go",
@@ -18,19 +18,19 @@
     importpath = "source.monogon.dev/metropolis/test/launch/cluster",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/common:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
-        "@com_github_grpc_ecosystem_go_grpc_middleware//retry:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/rpc",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/proto/api",
+        "//metropolis/proto/common",
+        "//metropolis/test/launch",
+        "@com_github_cenkalti_backoff_v4//:backoff",
+        "@com_github_grpc_ecosystem_go_grpc_middleware//retry",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
-        "@org_uber_go_multierr//:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_google_protobuf//proto",
+        "@org_uber_go_multierr//:multierr",
     ],
 )
diff --git a/metropolis/test/nanoswitch/BUILD b/metropolis/test/nanoswitch/BUILD
index 5a71c94..ce22acd 100644
--- a/metropolis/test/nanoswitch/BUILD
+++ b/metropolis/test/nanoswitch/BUILD
@@ -2,29 +2,29 @@
 load("//metropolis/node/build:def.bzl", "node_initramfs")
 
 go_library(
-    name = "go_default_library",
+    name = "nanoswitch_lib",
     srcs = ["nanoswitch.go"],
     importpath = "source.monogon.dev/metropolis/test/nanoswitch",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/network/dhcp4c:go_default_library",
-        "//metropolis/node/core/network/dhcp4c/callback:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "@com_github_google_nftables//:go_default_library",
-        "@com_github_google_nftables//expr:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4/server4:go_default_library",
-        "@com_github_vishvananda_netlink//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/network/dhcp4c",
+        "//metropolis/node/core/network/dhcp4c/callback",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/test/launch",
+        "@com_github_google_nftables//:nftables",
+        "@com_github_google_nftables//expr",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_insomniacslk_dhcp//dhcpv4/server4",
+        "@com_github_vishvananda_netlink//:netlink",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_binary(
     name = "nanoswitch",
-    embed = [":go_default_library"],
+    embed = [":nanoswitch_lib"],
     pure = "on",
     visibility = ["//visibility:private"],
 )