)]}'
{
  "commit": "a4ea9d03f1fb4248739392615967eaf07842e74b",
  "tree": "e2b8e2e3d9aa83ca7f650f2a0d972023869c1d3b",
  "parents": [
    "e47ace84cb3e30375dcb4236c17ee9710a77a6ad"
  ],
  "author": {
    "name": "Lorenz Brun",
    "email": "lorenz@nexantic.com",
    "time": "Thu Oct 31 11:40:30 2019 +0100"
  },
  "committer": {
    "name": "Lorenz Brun",
    "email": "lorenz@nexantic.com",
    "time": "Thu Oct 31 11:40:30 2019 +0100"
  },
  "message": "Added bootstrap CA\n\nThis adds a self-contained CA for bootstrapping and securing etcd\nusing certificates of infinite duration and a CRL for near-instant\nrevocation.\n\nThe bootstrapping problem is addressed by first\ngenerating the CA and issuing initial certificates and then\ninjecting them once the consensus system is up and running.\nAll files are also kept on the encrypted persistent data store to\nprevent the same bootstrapping problem when the node is already\ninitialized. The CRL is synchronized using a sync loop on every\nnode running the consensus service and distributed inside that.\n\nThe CA uses Ed25519-based cryptography and identifies the\nhosts by their external hostname.\n\nTest Plan:\nInitial bootstrapping manually tested on a single node using a\nmanual gRPC call for Setup() and openssl s_client for connecting\nto etcd.\n\nX-Origin-Diff: phab/D233\nGitOrigin-RevId: bd67818b5b649b13e0c098e480059ef990826542\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6721a0efe3084a0c80c751c7dff4f700ef679ed",
      "old_mode": 33188,
      "old_path": "core/api/api/schema.proto",
      "new_id": "238cfcedcdb8b0bb4f3f5a28a76e28b7098b2842",
      "new_mode": 33188,
      "new_path": "core/api/api/schema.proto"
    },
    {
      "type": "modify",
      "old_id": "32a569197ed2362a86e7bb8e57e63294c2f7e1e2",
      "old_mode": 33188,
      "old_path": "core/internal/api/cluster.go",
      "new_id": "64a757f21e039c87ebec5eaa3f424c108a63159a",
      "new_mode": 33188,
      "new_path": "core/internal/api/cluster.go"
    },
    {
      "type": "modify",
      "old_id": "943f20382d87bda25bfe339f9bbcc34e482ca728",
      "old_mode": 33188,
      "old_path": "core/internal/api/setup.go",
      "new_id": "6aeda4042566de3de6bf6136567fdb794f9644b6",
      "new_mode": 33188,
      "new_path": "core/internal/api/setup.go"
    },
    {
      "type": "modify",
      "old_id": "fd70d0a4dfd64460eb8a80e6f7780174c28f9222",
      "old_mode": 33188,
      "old_path": "core/internal/common/setup.go",
      "new_id": "331d29a2ff3a50b462f4e8ca09cf075cc519839d",
      "new_mode": 33188,
      "new_path": "core/internal/common/setup.go"
    },
    {
      "type": "modify",
      "old_id": "72d73b463d6005ee5c86c10ad47278d7bf94ad8b",
      "old_mode": 33188,
      "old_path": "core/internal/consensus/BUILD.bazel",
      "new_id": "c1c6989789e781eeffbc146d76a06e3376e3d178",
      "new_mode": 33188,
      "new_path": "core/internal/consensus/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d50bfb689d52ae8a04cb7432bddb4ae1072ef66",
      "new_mode": 33188,
      "new_path": "core/internal/consensus/ca/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "925f030fcffbe983d398778a612f8fdb46757151",
      "new_mode": 33188,
      "new_path": "core/internal/consensus/ca/ca.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c1f4a6ef9fbb9060ef66bb242f9437c71a0f0bd",
      "new_mode": 33188,
      "new_path": "core/internal/consensus/ca/compat.go"
    },
    {
      "type": "modify",
      "old_id": "e1f59d6ad55a90a839ac4c9088fadd3e78ddb568",
      "old_mode": 33188,
      "old_path": "core/internal/consensus/consensus.go",
      "new_id": "d87a506e9f51a66ee140779add1d1bbfd1cb48f2",
      "new_mode": 33188,
      "new_path": "core/internal/consensus/consensus.go"
    },
    {
      "type": "modify",
      "old_id": "0596269989f1c49b3a72b75dbcf2a8447fbea63a",
      "old_mode": 33188,
      "old_path": "core/internal/node/BUILD.bazel",
      "new_id": "763df36fc4235dc7704e38393193027655c532f5",
      "new_mode": 33188,
      "new_path": "core/internal/node/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "28585dddba870e074f379a28f4e08d5fe4bc3fae",
      "old_mode": 33188,
      "old_path": "core/internal/node/setup.go",
      "new_id": "5d8953db1e830e64324b6aea2ec35efb60ba24dc",
      "new_mode": 33188,
      "new_path": "core/internal/node/setup.go"
    }
  ]
}
