m/n/core: implement GetClusterInfo

This implements Management.GetClusterInfo which is used to retrieve a
ClusterDirectory. This in turn will be used by nodes that wish to
register into a cluster.

This could've been skipped and instead Curator.Watch could've been used.
However, the Curator service is only really (currently) intended to be
used by node-to-node communications. To keep with the current design, we
implement a separate RPC, but we should maybe reconsider if this
separation makes sense.

Change-Id: Ie9d475731f4faafdc51a2aa51a1582ee1a259fd2
Reviewed-on: https://review.monogon.dev/c/monogon/+/340
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/proto/api/BUILD.bazel b/metropolis/proto/api/BUILD.bazel
index ef8885d..9f46fb4 100644
--- a/metropolis/proto/api/BUILD.bazel
+++ b/metropolis/proto/api/BUILD.bazel
@@ -11,7 +11,10 @@
         "management.proto",
     ],
     visibility = ["//visibility:public"],
-    deps = ["//metropolis/proto/ext:ext_proto"],
+    deps = [
+        "//metropolis/proto/common:common_proto",
+        "//metropolis/proto/ext:ext_proto",
+    ],
 )
 
 go_proto_library(
@@ -20,7 +23,10 @@
     importpath = "source.monogon.dev/metropolis/proto/api",
     proto = ":api_proto",
     visibility = ["//visibility:public"],
-    deps = ["//metropolis/proto/ext:go_default_library"],
+    deps = [
+        "//metropolis/proto/common:go_default_library",
+        "//metropolis/proto/ext:go_default_library",
+    ],
 )
 
 go_library(