m/n/core/localstorage: add curator ephemeral directory

This is where the curator will listen for local gRPC connections from
the rest of the node code.

Change-Id: Id0ea2e4e05d04bbea4b3b88dd51122d394317578
Reviewed-on: https://review.monogon.dev/c/monogon/+/183
Reviewed-by: Lorenz Brun <lorenz@nexantic.com>
diff --git a/metropolis/node/core/localstorage/directory_root.go b/metropolis/node/core/localstorage/directory_root.go
index c3a49cb..39fda2c 100644
--- a/metropolis/node/core/localstorage/directory_root.go
+++ b/metropolis/node/core/localstorage/directory_root.go
@@ -60,6 +60,7 @@
 	// TODO(q3k): do this automatically?
 	for _, d := range []declarative.DirectoryPlacement{
 		r.Ephemeral.Consensus,
+		r.Ephemeral.Curator,
 		r.Ephemeral.Containerd, r.Ephemeral.Containerd.Tmp, r.Ephemeral.Containerd.RunSC, r.Ephemeral.Containerd.IPAM,
 		r.Ephemeral.FlexvolumePlugins,
 	} {
diff --git a/metropolis/node/core/localstorage/storage.go b/metropolis/node/core/localstorage/storage.go
index e56b4eb..e1d1523 100644
--- a/metropolis/node/core/localstorage/storage.go
+++ b/metropolis/node/core/localstorage/storage.go
@@ -154,6 +154,7 @@
 type EphemeralDirectory struct {
 	declarative.Directory
 	Consensus         EphemeralConsensusDirectory  `dir:"consensus"`
+	Curator           EphemeralCuratorDirectory    `dir:"curator"`
 	Containerd        EphemeralContainerdDirectory `dir:"containerd"`
 	FlexvolumePlugins declarative.Directory        `dir:"flexvolume_plugins"`
 	Hosts             declarative.File             `file:"hosts"`
@@ -165,6 +166,13 @@
 	ClientSocket declarative.File `file:"client.sock"`
 }
 
+type EphemeralCuratorDirectory struct {
+	declarative.Directory
+	// Curator ephemeral socket, dialed by local curator clients.
+	// See: //metropolis/node/core/curator.
+	ClientSocket declarative.File `file:"client.sock"`
+}
+
 type EphemeralContainerdDirectory struct {
 	declarative.Directory
 	ClientSocket  declarative.File      `file:"client.sock"`