Initial Kubernetes Control Plane
This adds a minimum viable Kubernetes Control Plane consisting of a
kube-apiserver, kube-controller-manager and kube-scheduler. It contains
two small CAs for Kubernetes Identity management based on shared
certificates and contains changes for exposing etcd via UNIX socket
so that the apiserver can talk to it.
Test Plan:
Tested by manually calling Setup() and observing subsequent logs and
connecting to the API server.
Bug: T485
X-Origin-Diff: phab/D271
GitOrigin-RevId: e56f3e50eb9d33ea291289faa1aac3bebdeb3346
diff --git a/core/internal/kubernetes/BUILD.bazel b/core/internal/kubernetes/BUILD.bazel
new file mode 100644
index 0000000..0fa4dc4
--- /dev/null
+++ b/core/internal/kubernetes/BUILD.bazel
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "go_default_library",
+ srcs = [
+ "apiserver.go",
+ "auth.go",
+ "controller-manager.go",
+ "scheduler.go",
+ "service.go",
+ ],
+ importpath = "git.monogon.dev/source/nexantic.git/core/internal/kubernetes",
+ visibility = ["//core:__subpackages__"],
+ deps = [
+ "//core/internal/common/service:go_default_library",
+ "//core/internal/consensus:go_default_library",
+ "//core/pkg/fileargs:go_default_library",
+ "@io_etcd_go_etcd//clientv3:go_default_library",
+ "@kubernetes//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
+ "@kubernetes//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library",
+ "@org_uber_go_zap//:go_default_library",
+ ],
+)