)]}'
{
  "commit": "1f789540bbe4bf94c4ccae795272703577ca586e",
  "tree": "2ecd2308e42e5f25e898f6901cd7562c3adad18a",
  "parents": [
    "2b6dc312656035aedade6f368af1994bdb8b6021"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Wed May 22 14:01:50 2024 +0200"
  },
  "committer": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Wed Jun 12 10:00:40 2024 +0000"
  },
  "message": "m/{node,proto}: implement Node Labels\n\nNodes can now have Labels attached to them. These are string key/value\ndata designed after Kubernetes labels. They are meant to be used to\nattach metadata to nodes, for example external IDs, nicknames or\ngeographical information.\n\nThis change implements just the core functionality: storing them within\netcd, retrieving them via management and curator APIs, and mutating them\nvia a new management RPC.\n\nFollowup changes will impelement provisioning labels at\nbootstrap/registration time and accessing label data from metroctl.\n\nChange-Id: I556b452a65061294e7c51037723a6db31d587716\nReviewed-on: https://review.monogon.dev/c/monogon/+/3101\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "37dbb48761628b8ce971cb8bef21647aa939a2ed",
      "old_mode": 33188,
      "old_path": "metropolis/cli/metroctl/table_node.go",
      "new_id": "4af9f2c5c4d014bd38b951425aa36926091ca639",
      "new_mode": 33188,
      "new_path": "metropolis/cli/metroctl/table_node.go"
    },
    {
      "type": "modify",
      "old_id": "609bcd49ac5c62fbacb377f872bbe4bee03b79ed",
      "old_mode": 33188,
      "old_path": "metropolis/node/BUILD.bazel",
      "new_id": "876dbfc222ce27b2ed4e7bc1199c2c125cff2e98",
      "new_mode": 33188,
      "new_path": "metropolis/node/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "259677bbbdda771b7a23dde7d50f4701dcca762a",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_curator.go",
      "new_id": "b88525f06c6a8bc651680c2f8a00c4b9129148e5",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_curator.go"
    },
    {
      "type": "modify",
      "old_id": "ff18f7289e4fae63d7d395dcca3e0b6b43fabe6f",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_management.go",
      "new_id": "c0bab97b4aa8b22c612411ea775ffe2d5107b1df",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_management.go"
    },
    {
      "type": "modify",
      "old_id": "29f1f58d4da0fe44b2171b6e7193645137183034",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_test.go",
      "new_id": "d3c3de19901314c5654a2aa0ee0a4898a70fa552",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_test.go"
    },
    {
      "type": "modify",
      "old_id": "ff30ff1f562961fe6c9acccb4f00a13f2c4009b3",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/proto/api/api.proto",
      "new_id": "ef7e24c18d3b4139b3095b693ebdf345361191d9",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/api/api.proto"
    },
    {
      "type": "modify",
      "old_id": "23b60ac86b66fd1adbe4219b2614fd4b045256c0",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/proto/private/storage.proto",
      "new_id": "681bb0ac8d6cfb04701eb3723074de319baada3a",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/private/storage.proto"
    },
    {
      "type": "modify",
      "old_id": "a0d9dc3bb817f7720d1d0b9bd4c33460fbf553d7",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/state_node.go",
      "new_id": "18ea200eda7166fef80ac091c7f32b92dd4bf44d",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/state_node.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "08d0c6e7ea736349083e9c4a382db4be644a0fd7",
      "new_mode": 33188,
      "new_path": "metropolis/node/labels.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e8b79943cd1a765be035a91a29965844676b466",
      "new_mode": 33188,
      "new_path": "metropolis/node/labels_test.go"
    },
    {
      "type": "modify",
      "old_id": "bd7bd5b875f9760a901e08a99c8d0a2309596489",
      "old_mode": 33188,
      "old_path": "metropolis/proto/api/management.proto",
      "new_id": "421898af29e8711c29afd01a1b959125e68c2229",
      "new_mode": 33188,
      "new_path": "metropolis/proto/api/management.proto"
    },
    {
      "type": "modify",
      "old_id": "b870d20b5ea6d694881c534b24e01eafd6c121c8",
      "old_mode": 33188,
      "old_path": "metropolis/proto/common/common.proto",
      "new_id": "a0e8c73b34419cec5ec50c765b6dd4110915bbdd",
      "new_mode": 33188,
      "new_path": "metropolis/proto/common/common.proto"
    },
    {
      "type": "modify",
      "old_id": "1a0e759babd09af2a6cb5abcc121b7c9ab4cfe4d",
      "old_mode": 33188,
      "old_path": "metropolis/proto/ext/authorization.proto",
      "new_id": "4c27f3e3071e8538c66b0d59f05044de7ea86cc9",
      "new_mode": 33188,
      "new_path": "metropolis/proto/ext/authorization.proto"
    }
  ]
}
