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