)]}'
{
  "commit": "57b4375dc2763dbf8444a4786bd41b7ec1a8172b",
  "tree": "96c6ec6648426bd51bbf82573b2fbe28f2044868",
  "parents": [
    "73fc59541abfc457598cc5e62ae4d2c3b84065a1"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@nexantic.com",
    "time": "Mon Jul 13 19:17:48 2020 +0200"
  },
  "committer": {
    "name": "Serge Bazanski",
    "email": "serge@nexantic.com",
    "time": "Mon Jul 13 19:17:48 2020 +0200"
  },
  "message": "core/internal/cluster: implement multi-node clusters with \u0027golden ticket\u0027.\n\nAs we have fully ripped out all traces of the node management service or\nintegrity checks, we implement a stopgap system that allows us to\ncontinue developing multi-node clusters. This mechanism is enrolment\nusing \u0027golden tickets\u0027, which are protobuf messages that can be\ngenerated via the debug service on an existing cluster, and set on a new\nnode\u0027s EnrolmentConfig to bring that enrol that node into the cluster.\n\nAs this is a stopgap measure (waiting for better cluster lifecycle\ndesign), this is somewhat poorly implemented, with known issues:\n - odd enrolment flow that creates all certificates off-node and results\n   in some code duplication in the cluster manager and node debug\n   service\n - (more) assumptions that every node is both a kubernetes and etcd\n   member.\n - absolutely no protection against consensus loss due to even quorum\n   membership, repeated issuance of certificates\n - dependence on knowing the IP address of the new node ahead of time,\n   which is not something that our test harness supports well (or that\n   we want to rely on at all)\n\nTest Plan: part of existing multi-node tests\n\nX-Origin-Diff: phab/D591\nGitOrigin-RevId: 8f099e6ef37f8d47fb2272a3a14b25ed480e377a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e0bde55059880b6bb36dd3bfa285dae1867cb2f7",
      "old_mode": 33188,
      "old_path": "core/cmd/dbg/main.go",
      "new_id": "f2d8fc0d720f597c0a6b3f1ccf91f012a6d5dfd2",
      "new_mode": 33188,
      "new_path": "core/cmd/dbg/main.go"
    },
    {
      "type": "modify",
      "old_id": "2f8103fb29bc2ae99f72dc0b05c93bbea61372b8",
      "old_mode": 33188,
      "old_path": "core/cmd/init/BUILD.bazel",
      "new_id": "34b666f2a3ab53efd36da15b93568696b33bcdd3",
      "new_mode": 33188,
      "new_path": "core/cmd/init/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "0dc7d5ebfea503d4e9f9c1736c2233dd713c7b3a",
      "old_mode": 33188,
      "old_path": "core/cmd/init/main.go",
      "new_id": "0c19ef9d79ccbaec20723ac00e7f7ebe0194c1c9",
      "new_mode": 33188,
      "new_path": "core/cmd/init/main.go"
    },
    {
      "type": "modify",
      "old_id": "867838af93eb2fe75befef4ff462a2f2339d627f",
      "old_mode": 33188,
      "old_path": "core/cmd/launch-multi2/BUILD.bazel",
      "new_id": "87f4c888013902620644a9ed2f6a3b8795d68983",
      "new_mode": 33188,
      "new_path": "core/cmd/launch-multi2/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2a38cef7b0356665659bb7b25ccd74ab7d9bec14",
      "old_mode": 33188,
      "old_path": "core/cmd/launch-multi2/main.go",
      "new_id": "763395d00a2f5c8b1cc036f0d75c31d6ec3f9874",
      "new_mode": 33188,
      "new_path": "core/cmd/launch-multi2/main.go"
    },
    {
      "type": "modify",
      "old_id": "99a6eac4eb3091576237d5ceb00c5e1f801491d6",
      "old_mode": 33188,
      "old_path": "core/internal/cluster/BUILD.bazel",
      "new_id": "3efdab065ce38b5d64c6233d603bb838a5bcdec7",
      "new_mode": 33188,
      "new_path": "core/internal/cluster/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7e5af9f7c913f4e0ac89a181dd2b160be84fbeb9",
      "old_mode": 33188,
      "old_path": "core/internal/cluster/manager.go",
      "new_id": "dfdab367ae04733ca3d6cf85dd15434d07c3fc3a",
      "new_mode": 33188,
      "new_path": "core/internal/cluster/manager.go"
    },
    {
      "type": "modify",
      "old_id": "ec9659122cc142f9e817cc9c6a0b0a8076097022",
      "old_mode": 33188,
      "old_path": "core/proto/api/debug.proto",
      "new_id": "74d314aaff85eafe5aced25329d9ad835419e53b",
      "new_mode": 33188,
      "new_path": "core/proto/api/debug.proto"
    },
    {
      "type": "modify",
      "old_id": "cf109adba5310d32e97a8e13a82ab4593b16776b",
      "old_mode": 33188,
      "old_path": "core/proto/api/enrolment.proto",
      "new_id": "d4176ccbef1b5232364da1f667185dcfed77d1ca",
      "new_mode": 33188,
      "new_path": "core/proto/api/enrolment.proto"
    }
  ]
}
