m/p/gpt: add GPT package

This introduces our own GPT package. It will be used for provisioning
and Metropolis images.

Change-Id: I905cd5d540673fd4b69c01d8975f98b88e24edd4
Reviewed-on: https://review.monogon.dev/c/monogon/+/956
Tested-by: Jenkins CI
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
diff --git a/metropolis/pkg/gpt/BUILD.bazel b/metropolis/pkg/gpt/BUILD.bazel
new file mode 100644
index 0000000..25b6b7b
--- /dev/null
+++ b/metropolis/pkg/gpt/BUILD.bazel
@@ -0,0 +1,33 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+load("//metropolis/test/ktest:ktest.bzl", "ktest")
+
+go_library(
+    name = "gpt",
+    srcs = [
+        "gpt.go",
+        "mbr.go",
+    ],
+    importpath = "source.monogon.dev/metropolis/pkg/gpt",
+    visibility = ["//visibility:public"],
+    deps = ["@com_github_google_uuid//:uuid"],
+)
+
+go_test(
+    name = "gpt_test",
+    srcs = [
+        "gpt_test.go",
+        "linux_test.go",
+        "mbr_test.go",
+        "structs_test.go",
+    ],
+    embed = [":gpt"],
+    deps = [
+        "@com_github_google_uuid//:uuid",
+        "@org_golang_x_sys//unix",
+    ],
+)
+
+ktest(
+    cmdline = "ramdisk_size=4096",
+    tester = ":gpt_test",
+)