Add EROFS creation utility and Bazel rule

This adds a binary which can create EROFS filesystems from a spec and a Bazel rule similar to
node_initramfs which creates EROFS filesystems.

Test Plan: Tested in subsequent revision

X-Origin-Diff: phab/D695
GitOrigin-RevId: 4e8f970938c93606da46f475387de1e013b1c35c
diff --git a/metropolis/node/build/mkerofs/fsspec/BUILD.bazel b/metropolis/node/build/mkerofs/fsspec/BUILD.bazel
new file mode 100644
index 0000000..bd0f036
--- /dev/null
+++ b/metropolis/node/build/mkerofs/fsspec/BUILD.bazel
@@ -0,0 +1,30 @@
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
+
+proto_library(
+    name = "spec_proto",
+    srcs = ["spec.proto"],
+    visibility = ["//visibility:public"],
+)
+
+go_proto_library(
+    name = "spec_go_proto",
+    importpath = "source.monogon.dev/metropolis/node/build/mkerofs/spec",
+    proto = ":spec_proto",
+    visibility = ["//visibility:public"],
+)
+
+go_library(
+    name = "go_default_library",
+    embed = [":fsspec_go_proto"],
+    importpath = "source.monogon.dev/metropolis/node/build/mkerofs/fsspec",
+    visibility = ["//visibility:public"],
+)
+
+go_proto_library(
+    name = "fsspec_go_proto",
+    importpath = "source.monogon.dev/metropolis/node/build/mkerofs/fsspec",
+    proto = ":spec_proto",
+    visibility = ["//visibility:public"],
+)