m/n/kubernetes: use node clusternet to submit cluster networking routes
This completes the work on using the new cluster networking service from
Kubernetes, thereby allowing non-worker nodes to participate in cluster
networking.
Change-Id: I7f3759186d7c8cc49833be29963f82a1714d293e
Reviewed-on: https://review.monogon.dev/c/monogon/+/1418
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/core/roleserve/roleserve.go b/metropolis/node/core/roleserve/roleserve.go
index a1969bf..86b5b5a 100644
--- a/metropolis/node/core/roleserve/roleserve.go
+++ b/metropolis/node/core/roleserve/roleserve.go
@@ -44,6 +44,7 @@
"crypto/ed25519"
common "source.monogon.dev/metropolis/node"
+ "source.monogon.dev/metropolis/node/core/clusternet"
"source.monogon.dev/metropolis/node/core/identity"
"source.monogon.dev/metropolis/node/core/localstorage"
"source.monogon.dev/metropolis/node/core/network"
@@ -83,6 +84,7 @@
KubernetesStatus memory.Value[*KubernetesStatus]
bootstrapData memory.Value[*bootstrapData]
localRoles memory.Value[*cpb.NodeRoles]
+ podNetwork memory.Value[*clusternet.Prefixes]
controlPlane *workerControlPlane
statusPush *workerStatusPush
@@ -90,6 +92,7 @@
kubernetes *workerKubernetes
rolefetch *workerRoleFetch
nodeMgmt *workerNodeMgmt
+ clusternet *workerClusternet
}
// New creates a Role Server services from a Config.
@@ -126,6 +129,7 @@
clusterMembership: &s.ClusterMembership,
kubernetesStatus: &s.KubernetesStatus,
+ podNetwork: &s.podNetwork,
}
s.rolefetch = &workerRoleFetch{
@@ -138,6 +142,12 @@
clusterMembership: &s.ClusterMembership,
logTree: s.LogTree,
}
+ s.clusternet = &workerClusternet{
+ storageRoot: s.StorageRoot,
+
+ clusterMembership: &s.ClusterMembership,
+ podNetwork: &s.podNetwork,
+ }
return s
}
@@ -198,6 +208,7 @@
supervisor.Run(ctx, "heartbeat", s.heartbeat.run)
supervisor.Run(ctx, "rolefetch", s.rolefetch.run)
supervisor.Run(ctx, "nodemgmt", s.nodeMgmt.run)
+ supervisor.Run(ctx, "clusternet", s.clusternet.run)
supervisor.Signal(ctx, supervisor.SignalHealthy)
<-ctx.Done()