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/core/roleserve/roleserve.go b/metropolis/node/core/roleserve/roleserve.go
index 0d0997d..8f9bb47 100644
--- a/metropolis/node/core/roleserve/roleserve.go
+++ b/metropolis/node/core/roleserve/roleserve.go
@@ -85,6 +85,7 @@
heartbeat *workerHeartbeat
kubernetes *workerKubernetes
rolefetch *workerRoleFetch
+ nodeMgmt *workerNodeMgmt
}
// New creates a Role Server services from a Config.
@@ -129,6 +130,10 @@
localRoles: &s.localRoles,
}
+ s.nodeMgmt = &workerNodeMgmt{
+ clusterMembership: &s.ClusterMembership,
+ }
+
return s
}
@@ -187,6 +192,7 @@
supervisor.Run(ctx, "statuspush", s.statusPush.run)
supervisor.Run(ctx, "heartbeat", s.heartbeat.run)
supervisor.Run(ctx, "rolefetch", s.rolefetch.run)
+ supervisor.Run(ctx, "nodemgmt", s.nodeMgmt.run)
supervisor.Signal(ctx, supervisor.SignalHealthy)
<-ctx.Done()