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",
+ ],
+)