core/internal/cluster: add new single-node cluster code
This adds a cluster library, that consists of:
- a Node object that can be loaded from and saved into etcd,
representing a node of the cluster that can have different 'role
tags' assigned to it
- a cluster Manager, that is responsible for bringing up the local node
into a cluster (by creaating a new cluster, enrolling into or joining a
cluster)
This also gets wired into core/cmd/init, and as such completes a chunk
of The Refactor. This code should pass tests.
Test Plan: this should work! should be covered by existing e2e tests.
X-Origin-Diff: phab/D590
GitOrigin-RevId: e88022164e4353249b29fc16849a02805f15dd49
diff --git a/core/cmd/init/BUILD.bazel b/core/cmd/init/BUILD.bazel
index 368470f..2f8103f 100644
--- a/core/cmd/init/BUILD.bazel
+++ b/core/cmd/init/BUILD.bazel
@@ -4,21 +4,30 @@
name = "go_default_library",
# keep
srcs = [
+ "debug_service.go",
"main.go",
"switchroot.go",
] + select({
- "//core:debug_build": ["debug_enabled.go"],
- "//conditions:default": ["debug_disabled.go"],
+ "//core:debug_build": ["delve_enabled.go"],
+ "//conditions:default": ["delve_disabled.go"],
}),
importpath = "git.monogon.dev/source/nexantic.git/core/cmd/init",
visibility = ["//visibility:private"],
deps = [
- "//core/internal/common:go_default_library", # keep
+ "//core/internal/cluster:go_default_library",
+ "//core/internal/common:go_default_library",
"//core/internal/common/supervisor:go_default_library",
+ "//core/internal/containerd:go_default_library",
+ "//core/internal/kubernetes:go_default_library",
+ "//core/internal/kubernetes/pki:go_default_library",
+ "//core/internal/localstorage:go_default_library",
+ "//core/internal/localstorage/declarative:go_default_library",
"//core/internal/network:go_default_library",
"//core/pkg/tpm:go_default_library",
- "@de_cinfra_git_source_nexantic_git//core/internal/node:go_default_library",
- "@de_cinfra_git_source_nexantic_git//core/internal/storage:go_default_library",
+ "//core/proto/api:go_default_library",
+ "@org_golang_google_grpc//:go_default_library",
+ "@org_golang_google_grpc//codes:go_default_library",
+ "@org_golang_google_grpc//status:go_default_library",
"@org_golang_x_sys//unix:go_default_library",
"@org_uber_go_zap//:go_default_library",
],