m/n/kubernetes: add metricsprovider

Kubernetes has a metrics provider interface, add an adapter to be able
to get these into our Prometheus registry. This code exists in a similar
form inside K8s but against their custom metrics architecture, not plain
Prometheus.

As these metrics are shared across all workqueues we follow K8s in
implementing this with a singleton/global. It's not the prettiest, but
otherwise we may get issues with Prometheus and duplicate metrics.

Change-Id: I0b6d608d14793e44859166a5a59d446c8f662a25
Reviewed-on: https://review.monogon.dev/c/monogon/+/3829
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/kubernetes/metricsprovider/BUILD.bazel b/metropolis/node/kubernetes/metricsprovider/BUILD.bazel
new file mode 100644
index 0000000..4bba439
--- /dev/null
+++ b/metropolis/node/kubernetes/metricsprovider/BUILD.bazel
@@ -0,0 +1,12 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+    name = "metricsprovider",
+    srcs = ["metricsprovider.go"],
+    importpath = "source.monogon.dev/metropolis/node/kubernetes/metricsprovider",
+    visibility = ["//visibility:public"],
+    deps = [
+        "@com_github_prometheus_client_golang//prometheus",
+        "@io_k8s_client_go//util/workqueue",
+    ],
+)