go/net/tinylb: init

This implements tinylb, a tiny round-robin load balancer for
net.Conn/net.Listener protocols.

This will be used to loadbalance connections to Kubernetes apiservers
before cluster networking is available.

Change-Id: I48892e1fe03e0648df60c674e7394ca69b32932d
Reviewed-on: https://review.monogon.dev/c/monogon/+/1369
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/go/net/tinylb/BUILD.bazel b/go/net/tinylb/BUILD.bazel
new file mode 100644
index 0000000..a238bd3
--- /dev/null
+++ b/go/net/tinylb/BUILD.bazel
@@ -0,0 +1,26 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "tinylb",
+    srcs = [
+        "connection_pool.go",
+        "tinylb.go",
+    ],
+    importpath = "source.monogon.dev/go/net/tinylb",
+    visibility = ["//visibility:public"],
+    deps = [
+        "//go/types/mapsets",
+        "//metropolis/pkg/event",
+        "//metropolis/pkg/supervisor",
+    ],
+)
+
+go_test(
+    name = "tinylb_test",
+    srcs = ["tinylb_test.go"],
+    embed = [":tinylb"],
+    deps = [
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/supervisor",
+    ],
+)