m/node: move clusternet under network

Move the clusternet network side under the core/network umbrella and
rename it to overlay. Also split out types.go into the ipam package
to get the overlay package out of a lot of dependents which only import
it for the Prefixes type which should be part of the ipam package.

This is a clean move with no functional changes intended yet, these
will be stacked on top.

Change-Id: I6a6a6964af9d608f9ec3bf75b386c010cfff1df4
Reviewed-on: https://review.monogon.dev/c/monogon/+/4500
Tested-by: Jenkins CI
Reviewed-by: Jan Schär <jan@monogon.tech>
diff --git a/metropolis/node/kubernetes/BUILD.bazel b/metropolis/node/kubernetes/BUILD.bazel
index 530723f..3245964 100644
--- a/metropolis/node/kubernetes/BUILD.bazel
+++ b/metropolis/node/kubernetes/BUILD.bazel
@@ -21,7 +21,6 @@
         "//go/logging",
         "//go/net/tinylb",
         "//metropolis/node",
-        "//metropolis/node/core/clusternet",
         "//metropolis/node/core/consensus",
         "//metropolis/node/core/curator/proto/api",
         "//metropolis/node/core/curator/watcher",
@@ -29,6 +28,7 @@
         "//metropolis/node/core/localstorage",
         "//metropolis/node/core/metrics",
         "//metropolis/node/core/network",
+        "//metropolis/node/core/network/ipam",
         "//metropolis/node/kubernetes/authproxy",
         "//metropolis/node/kubernetes/clusternet",
         "//metropolis/node/kubernetes/metricsprovider",
diff --git a/metropolis/node/kubernetes/clusternet/BUILD.bazel b/metropolis/node/kubernetes/clusternet/BUILD.bazel
index 79bedbe..839d946 100644
--- a/metropolis/node/kubernetes/clusternet/BUILD.bazel
+++ b/metropolis/node/kubernetes/clusternet/BUILD.bazel
@@ -7,7 +7,7 @@
     visibility = ["//metropolis/node/kubernetes:__subpackages__"],
     deps = [
         "//go/logging",
-        "//metropolis/node/core/clusternet",
+        "//metropolis/node/core/network/ipam",
         "//osbase/event",
         "//osbase/supervisor",
         "@io_k8s_api//core/v1:core",
diff --git a/metropolis/node/kubernetes/clusternet/clusternet.go b/metropolis/node/kubernetes/clusternet/clusternet.go
index 9cf877b..dd5e5df 100644
--- a/metropolis/node/kubernetes/clusternet/clusternet.go
+++ b/metropolis/node/kubernetes/clusternet/clusternet.go
@@ -29,7 +29,7 @@
 	"k8s.io/client-go/tools/cache"
 
 	"source.monogon.dev/go/logging"
-	oclusternet "source.monogon.dev/metropolis/node/core/clusternet"
+	"source.monogon.dev/metropolis/node/core/network/ipam"
 	"source.monogon.dev/osbase/event"
 	"source.monogon.dev/osbase/supervisor"
 )
@@ -37,7 +37,7 @@
 type Service struct {
 	NodeName   string
 	Kubernetes kubernetes.Interface
-	Prefixes   event.Value[*oclusternet.Prefixes]
+	Prefixes   event.Value[*ipam.Prefixes]
 
 	logger logging.Leveled
 }
@@ -50,7 +50,7 @@
 		return nil
 	}
 
-	var prefixes oclusternet.Prefixes
+	var prefixes ipam.Prefixes
 	for _, podNetStr := range newNode.Spec.PodCIDRs {
 		prefix, err := netip.ParsePrefix(podNetStr)
 		if err != nil {
diff --git a/metropolis/node/kubernetes/service_worker.go b/metropolis/node/kubernetes/service_worker.go
index 8ca8556..5e28788 100644
--- a/metropolis/node/kubernetes/service_worker.go
+++ b/metropolis/node/kubernetes/service_worker.go
@@ -17,10 +17,10 @@
 
 	"source.monogon.dev/go/net/tinylb"
 	"source.monogon.dev/metropolis/node"
-	oclusternet "source.monogon.dev/metropolis/node/core/clusternet"
 	"source.monogon.dev/metropolis/node/core/localstorage"
 	"source.monogon.dev/metropolis/node/core/metrics"
 	"source.monogon.dev/metropolis/node/core/network"
+	"source.monogon.dev/metropolis/node/core/network/ipam"
 	"source.monogon.dev/metropolis/node/kubernetes/clusternet"
 	"source.monogon.dev/metropolis/node/kubernetes/metricsprovider"
 	"source.monogon.dev/metropolis/node/kubernetes/networkpolicy"
@@ -44,7 +44,7 @@
 	Network       *network.Service
 	NodeID        string
 	CuratorClient ipb.CuratorClient
-	PodNetwork    event.Value[*oclusternet.Prefixes]
+	PodNetwork    event.Value[*ipam.Prefixes]
 }
 
 type Worker struct {