m/p/common: use protobuf.Timestamp in NodeStatus

This updates NodeStatus to use google.protobuf.Timestamp.
See: issue #129.

Change-Id: I7902908a885a909d5ad6e232333037add5fb02e2
Reviewed-on: https://review.monogon.dev/c/monogon/+/831
Tested-by: Jenkins CI
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
diff --git a/metropolis/proto/common/BUILD.bazel b/metropolis/proto/common/BUILD.bazel
index 45dafd8..21ca6a5 100644
--- a/metropolis/proto/common/BUILD.bazel
+++ b/metropolis/proto/common/BUILD.bazel
@@ -6,6 +6,9 @@
     name = "common_proto",
     srcs = ["common.proto"],
     visibility = ["//metropolis:__subpackages__"],
+    deps = [
+        "@com_google_protobuf//:timestamp_proto",
+    ],
 )
 
 go_proto_library(
diff --git a/metropolis/proto/common/common.proto b/metropolis/proto/common/common.proto
index c25736b..ca4bfea 100644
--- a/metropolis/proto/common/common.proto
+++ b/metropolis/proto/common/common.proto
@@ -18,6 +18,8 @@
 package metropolis.proto.common;
 option go_package = "source.monogon.dev/metropolis/proto/common";
 
+import "google/protobuf/timestamp.proto";
+
 // NodeRoles are the possible roles that a Metropolis Node should run within the
 // cluster. These are configured by the cluster and can be retrieved through the
 // Curator.
@@ -141,7 +143,7 @@
     RunningCurator running_curator = 3;
     // timestamp is an epoch number associated with the last status update.
     // It's set with a nanosecond granularity.
-    int64 timestamp = 2;
+    google.protobuf.Timestamp timestamp = 2;
 }
 
 // The Cluster Directory is information about the network addressing of nodes