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/kubernetes/service_controller.go b/metropolis/node/kubernetes/service_controller.go
index da92b7f..d1de0b2 100644
--- a/metropolis/node/kubernetes/service_controller.go
+++ b/metropolis/node/kubernetes/service_controller.go
@@ -28,6 +28,7 @@
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/tools/clientcmd"
 
+	oclusternet "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"
@@ -38,6 +39,7 @@
 	"source.monogon.dev/metropolis/node/kubernetes/pki"
 	"source.monogon.dev/metropolis/node/kubernetes/plugins/kvmdevice"
 	"source.monogon.dev/metropolis/node/kubernetes/reconciler"
+	"source.monogon.dev/metropolis/pkg/event"
 	"source.monogon.dev/metropolis/pkg/supervisor"
 
 	apb "source.monogon.dev/metropolis/proto/api"
@@ -48,10 +50,11 @@
 	ClusterNet     net.IPNet
 	ClusterDomain  string
 
-	KPKI    *pki.PKI
-	Root    *localstorage.Root
-	Network *network.Service
-	Node    *identity.Node
+	KPKI       *pki.PKI
+	Root       *localstorage.Root
+	Network    *network.Service
+	Node       *identity.Node
+	PodNetwork event.Value[*oclusternet.Prefixes]
 }
 
 type Controller struct {
@@ -185,11 +188,9 @@
 	}
 
 	clusternet := clusternet.Service{
-		NodeName:        s.c.Node.ID(),
-		Kubernetes:      clientSet,
-		ClusterNet:      s.c.ClusterNet,
-		InformerFactory: informerFactory,
-		DataDirectory:   &s.c.Root.Data.Kubernetes.ClusterNetworking,
+		NodeName:   s.c.Node.ID(),
+		Kubernetes: clientSet,
+		Prefixes:   s.c.PodNetwork,
 	}
 
 	nfproxy := nfproxy.Service{