m/n/core/mgmt: implement node-local management service

Change-Id: I1e8a8ff46d1172e00f2d991ae3cc3af1929b6e4e
Reviewed-on: https://review.monogon.dev/c/monogon/+/1428
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/node/ports.go b/metropolis/node/ports.go
index f4ffa0b..440f127 100644
--- a/metropolis/node/ports.go
+++ b/metropolis/node/ports.go
@@ -34,6 +34,9 @@
 	// WireGuardPort is the UDP port on which the Wireguard Kubernetes network
 	// overlay listens for incoming peer traffic.
 	WireGuardPort Port = 7838
+	// NodeManagement is the TCP port on which the node-local management service
+	// serves gRPC traffic for NodeManagement.
+	NodeManagement Port = 7839
 	// KubernetesAPIPort is the TCP port on which the Kubernetes API is
 	// exposed.
 	KubernetesAPIPort Port = 6443
@@ -59,6 +62,8 @@
 		return "debug"
 	case WireGuardPort:
 		return "wireguard"
+	case NodeManagement:
+		return "node-mgmt"
 	case KubernetesAPIPort:
 		return "kubernetes-api"
 	case KubernetesWorkerLocalAPIPort: