metropolis/node: add version to status

This implements submitting the Node's version to its' Status report to
the control plane.

This version is then displayed to the user in metroctl.

Change-Id: I70eadb9a7001b6e50931245e8a6274da2fbdc5bc
Reviewed-on: https://review.monogon.dev/c/monogon/+/2334
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/cli/metroctl/table_node.go b/metropolis/cli/metroctl/table_node.go
index 07f994c..baa8776 100644
--- a/metropolis/cli/metroctl/table_node.go
+++ b/metropolis/cli/metroctl/table_node.go
@@ -9,6 +9,7 @@
 	"source.monogon.dev/metropolis/node/core/identity"
 	apb "source.monogon.dev/metropolis/proto/api"
 	cpb "source.monogon.dev/metropolis/proto/common"
+	"source.monogon.dev/version"
 )
 
 func nodeEntry(n *apb.Node) clitable.Entry {
@@ -49,6 +50,10 @@
 	}
 	res.Add("tpm", tpm)
 
+	if n.Status.Version != nil {
+		res.Add("version", version.Semver(n.Status.Version))
+	}
+
 	tshs := n.TimeSinceHeartbeat.GetSeconds()
 	res.Add("heartbeat", fmt.Sprintf("%ds", tshs))