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/node/build/fsspec/BUILD.bazel b/metropolis/node/build/fsspec/BUILD.bazel
index e0ce66d..49ff9a0 100644
--- a/metropolis/node/build/fsspec/BUILD.bazel
+++ b/metropolis/node/build/fsspec/BUILD.bazel
@@ -9,7 +9,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "fsspec",
     srcs = ["utils.go"],
     embed = [":fsspec_go_proto"],
     importpath = "source.monogon.dev/metropolis/node/build/fsspec",
diff --git a/metropolis/node/build/fwprune/BUILD.bazel b/metropolis/node/build/fwprune/BUILD.bazel
index 18e83b1..578b829 100644
--- a/metropolis/node/build/fwprune/BUILD.bazel
+++ b/metropolis/node/build/fwprune/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "fwprune_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/fwprune",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/fsspec:go_default_library",
-        "@org_golang_google_protobuf//encoding/prototext:go_default_library",
+        "//metropolis/node/build/fsspec",
+        "@org_golang_google_protobuf//encoding/prototext",
     ],
 )
 
 go_binary(
     name = "fwprune",
-    embed = [":go_default_library"],
+    embed = [":fwprune_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/genosrelease/BUILD.bazel b/metropolis/node/build/genosrelease/BUILD.bazel
index b48b602..5ac09d5 100644
--- a/metropolis/node/build/genosrelease/BUILD.bazel
+++ b/metropolis/node/build/genosrelease/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 = "genosrelease_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/genosrelease",
     visibility = ["//visibility:private"],
-    deps = ["@com_github_joho_godotenv//:go_default_library"],
+    deps = ["@com_github_joho_godotenv//:godotenv"],
 )
 
 go_binary(
     name = "genosrelease",
-    embed = [":go_default_library"],
+    embed = [":genosrelease_lib"],
     visibility = [
         "//metropolis/installer:__subpackages__",
         "//metropolis/node:__subpackages__",
diff --git a/metropolis/node/build/kconfig-patcher/BUILD.bazel b/metropolis/node/build/kconfig-patcher/BUILD.bazel
index ee97c39..e838f9e 100644
--- a/metropolis/node/build/kconfig-patcher/BUILD.bazel
+++ b/metropolis/node/build/kconfig-patcher/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "kconfig-patcher_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/kconfig-patcher",
     visibility = ["//visibility:private"],
@@ -9,7 +9,7 @@
 
 go_binary(
     name = "kconfig-patcher",
-    embed = [":go_default_library"],
+    embed = [":kconfig-patcher_lib"],
     visibility = [
         "//metropolis/node:__pkg__",
         "//metropolis/test/ktest:__pkg__",
@@ -17,7 +17,7 @@
 )
 
 go_test(
-    name = "go_default_test",
+    name = "kconfig-patcher_test",
     srcs = ["main_test.go"],
-    embed = [":go_default_library"],
+    embed = [":kconfig-patcher_lib"],
 )
diff --git a/metropolis/node/build/mkcpio/BUILD.bazel b/metropolis/node/build/mkcpio/BUILD.bazel
index 5a93d3a..f0bb779 100644
--- a/metropolis/node/build/mkcpio/BUILD.bazel
+++ b/metropolis/node/build/mkcpio/BUILD.bazel
@@ -1,20 +1,20 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkcpio_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkcpio",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/fsspec:go_default_library",
-        "@com_github_cavaliergopher_cpio//:go_default_library",
-        "@com_github_pierrec_lz4_v4//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node/build/fsspec",
+        "@com_github_cavaliergopher_cpio//:cpio",
+        "@com_github_pierrec_lz4_v4//:lz4",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_binary(
     name = "mkcpio",
-    embed = [":go_default_library"],
+    embed = [":mkcpio_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/mkcpio/main.go b/metropolis/node/build/mkcpio/main.go
index 10deb5a..bde7082 100644
--- a/metropolis/node/build/mkcpio/main.go
+++ b/metropolis/node/build/mkcpio/main.go
@@ -174,7 +174,7 @@
 			inF.Close()
 		case *fsspec.Directory:
 			if err := cpioWriter.WriteHeader(&cpio.Header{
-				Mode: cpio.FileMode(i.Mode) | cpio.ModeDir,
+				Mode: cpio.FileMode(i.Mode) | cpio.TypeDir,
 				Name: strings.TrimPrefix(i.Path, "/"),
 			}); err != nil {
 				log.Fatalf("Failed to write cpio header for directory %q: %v", i.Path, err)
@@ -182,7 +182,7 @@
 		case *fsspec.SymbolicLink:
 			if err := cpioWriter.WriteHeader(&cpio.Header{
 				// Symlinks are 0777 by definition (from man 7 symlink on Linux)
-				Mode:     0777 | cpio.ModeSymlink,
+				Mode:     0777 | cpio.TypeSymlink,
 				Name:     strings.TrimPrefix(i.Path, "/"),
 				Linkname: i.TargetPath,
 			}); err != nil {
@@ -192,11 +192,11 @@
 			mode := cpio.FileMode(i.Mode)
 			switch i.Type {
 			case fsspec.SpecialFile_CHARACTER_DEV:
-				mode |= cpio.ModeCharDevice
+				mode |= cpio.TypeChar
 			case fsspec.SpecialFile_BLOCK_DEV:
-				mode |= cpio.ModeDevice
+				mode |= cpio.TypeBlock
 			case fsspec.SpecialFile_FIFO:
-				mode |= cpio.ModeNamedPipe
+				mode |= cpio.TypeFifo
 			}
 
 			if err := cpioWriter.WriteHeader(&cpio.Header{
diff --git a/metropolis/node/build/mkerofs/BUILD.bazel b/metropolis/node/build/mkerofs/BUILD.bazel
index 43e2f5c..73fda98 100644
--- a/metropolis/node/build/mkerofs/BUILD.bazel
+++ b/metropolis/node/build/mkerofs/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkerofs_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkerofs",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/build/fsspec:go_default_library",
-        "//metropolis/pkg/erofs:go_default_library",
+        "//metropolis/node/build/fsspec",
+        "//metropolis/pkg/erofs",
     ],
 )
 
 go_binary(
     name = "mkerofs",
-    embed = [":go_default_library"],
+    embed = [":mkerofs_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/mkimage/BUILD.bazel b/metropolis/node/build/mkimage/BUILD.bazel
index a18bb85..2bf8229 100644
--- a/metropolis/node/build/mkimage/BUILD.bazel
+++ b/metropolis/node/build/mkimage/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 = "mkimage_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkimage",
     visibility = ["//visibility:private"],
-    deps = ["//metropolis/node/build/mkimage/osimage:go_default_library"],
+    deps = ["//metropolis/node/build/mkimage/osimage"],
 )
 
 go_binary(
     name = "mkimage",
-    embed = [":go_default_library"],
+    embed = [":mkimage_lib"],
     visibility = ["//metropolis/node:__pkg__"],
 )
diff --git a/metropolis/node/build/mkimage/osimage/BUILD.bazel b/metropolis/node/build/mkimage/osimage/BUILD.bazel
index 88f1dd8..35bfb9c 100644
--- a/metropolis/node/build/mkimage/osimage/BUILD.bazel
+++ b/metropolis/node/build/mkimage/osimage/BUILD.bazel
@@ -1,16 +1,16 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "osimage",
     srcs = ["osimage.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkimage/osimage",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/pkg/efivarfs:go_default_library",
-        "@com_github_diskfs_go_diskfs//:go_default_library",
-        "@com_github_diskfs_go_diskfs//disk:go_default_library",
-        "@com_github_diskfs_go_diskfs//filesystem:go_default_library",
-        "@com_github_diskfs_go_diskfs//partition/gpt:go_default_library",
-        "@com_github_google_uuid//:go_default_library",
+        "//metropolis/pkg/efivarfs",
+        "@com_github_diskfs_go_diskfs//:go-diskfs",
+        "@com_github_diskfs_go_diskfs//disk",
+        "@com_github_diskfs_go_diskfs//filesystem",
+        "@com_github_diskfs_go_diskfs//partition/gpt",
+        "@com_github_google_uuid//:uuid",
     ],
 )
diff --git a/metropolis/node/build/mkpayload/BUILD.bazel b/metropolis/node/build/mkpayload/BUILD.bazel
index 7716e60..b092791 100644
--- a/metropolis/node/build/mkpayload/BUILD.bazel
+++ b/metropolis/node/build/mkpayload/BUILD.bazel
@@ -2,12 +2,12 @@
 
 go_binary(
     name = "mkpayload",
-    embed = [":go_default_library"],
+    embed = [":mkpayload_lib"],
     visibility = ["//visibility:public"],
 )
 
 go_library(
-    name = "go_default_library",
+    name = "mkpayload_lib",
     srcs = ["mkpayload.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkpayload",
     visibility = ["//visibility:private"],
diff --git a/metropolis/node/build/mkucode/BUILD.bazel b/metropolis/node/build/mkucode/BUILD.bazel
index 5f310c2..c1f5667 100644
--- a/metropolis/node/build/mkucode/BUILD.bazel
+++ b/metropolis/node/build/mkucode/BUILD.bazel
@@ -1,19 +1,19 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkucode_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkucode",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/mkucode/spec:go_default_library",
-        "@com_github_cavaliergopher_cpio//:go_default_library",
-        "@org_golang_google_protobuf//encoding/prototext:go_default_library",
+        "//metropolis/node/build/mkucode/spec",
+        "@com_github_cavaliergopher_cpio//:cpio",
+        "@org_golang_google_protobuf//encoding/prototext",
     ],
 )
 
 go_binary(
     name = "mkucode",
-    embed = [":go_default_library"],
+    embed = [":mkucode_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/mkucode/spec/BUILD.bazel b/metropolis/node/build/mkucode/spec/BUILD.bazel
index f41e2e9..84e7c7b 100644
--- a/metropolis/node/build/mkucode/spec/BUILD.bazel
+++ b/metropolis/node/build/mkucode/spec/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "spec",
     embed = [":spec_go_proto"],
     importpath = "source.monogon.dev/metropolis/node/build/mkucode/spec",
     visibility = ["//visibility:public"],
diff --git a/metropolis/node/build/mkverity/BUILD.bazel b/metropolis/node/build/mkverity/BUILD.bazel
index 2fe6768..faf7908 100644
--- a/metropolis/node/build/mkverity/BUILD.bazel
+++ b/metropolis/node/build/mkverity/BUILD.bazel
@@ -2,7 +2,7 @@
 
 go_binary(
     name = "mkverity",
-    embed = [":go_default_library"],
+    embed = [":mkverity_lib"],
     visibility = [
         "//metropolis/installer/test/testos:__pkg__",
         "//metropolis/node:__pkg__",
@@ -10,9 +10,9 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "mkverity_lib",
     srcs = ["mkverity.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkverity",
     visibility = ["//visibility:private"],
-    deps = ["//metropolis/pkg/verity:go_default_library"],
+    deps = ["//metropolis/pkg/verity"],
 )