)]}'
{
  "log": [
    {
      "commit": "630fb5c5349b13330b7de6f8300b495b801db061",
      "tree": "9d946ba0dd34a6ba0567f4f7120174797e29a8fe",
      "parents": [
        "1fb2b10801eb4ea56a1e00f174923ec83f039623"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 10:50:24 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 09:55:51 2023 +0000"
      },
      "message": "m/test/e2e: deflake\n\nNow that nodes don\u0027t heartbeat before they have critical ESP data\npersisted, we can simply make sure they heartbeat before any disruptive\nreboot and that will remove our biggest source of flakiness in E2E\ntests.\n\nChange-Id: I9d4483015341157af6b27c8bd98f5df64da229d2\nReviewed-on: https://review.monogon.dev/c/monogon/+/1499\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "1fb2b10801eb4ea56a1e00f174923ec83f039623",
      "tree": "8e1ef90a747d7d9559088deb321af96b09d626bb",
      "parents": [
        "86afa224665bb3c465c0ff36d97baafebc673264"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 10:13:46 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 09:55:51 2023 +0000"
      },
      "message": "m/node/core: run hostsfile from roleserver, provide feedback on cluster directory\n\nNot providing a heartbeat and status until we save a cluster directory\nto ESP is a quick and dirty way to make sure we don\u0027t mark a node as\nHEALTHY until it has performed the bare minimum of setup to be\nrebootable.\n\nThis is important in our E2E tests to reduce flakiness.\n\nIn the future we should have some node status field or general \u0027sync\u0027\nAPI exposed, but this will do for now.\n\nChange-Id: Ibad9e91f01abeacdfe4400ef7cb36ca17f68ba0a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1498\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "86afa224665bb3c465c0ff36d97baafebc673264",
      "tree": "d4cdce3099580c1b34b8855be47807bfbc05643a",
      "parents": [
        "7920852953a4b0846ddb16cb82a038b064ba473a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 10:47:50 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 09:55:51 2023 +0000"
      },
      "message": "m/n/c/cluster: when registering, save node credentials before starting roleserver\n\nThis makes sure we don\u0027t start heartbeating (and generally running any\nproduction roles) before we have our newly generated credentials\npersisted into ESP.\n\nIn turn this should make our E2E tests less flaky.\n\nChange-Id: I6440c53b346080015e082d97af06f795f7b8ed60\nReviewed-on: https://review.monogon.dev/c/monogon/+/1497\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7920852953a4b0846ddb16cb82a038b064ba473a",
      "tree": "afa919bc332a93bd0666714843632cffa1095170",
      "parents": [
        "4e6eae2bec769a565eece47438fcb594e7da2765"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 28 20:14:58 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 05 14:14:44 2023 +0000"
      },
      "message": "m/n/kubernetes: use node clusternet to submit cluster networking routes\n\nThis completes the work on using the new cluster networking service from\nKubernetes, thereby allowing non-worker nodes to participate in cluster\nnetworking.\n\nChange-Id: I7f3759186d7c8cc49833be29963f82a1714d293e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1418\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e012b728d98e51e6b5564873f10c06c4f4c81415",
      "tree": "65d21fa881c46451a2c8234ef10cd4283e2f85b5",
      "parents": [
        "cff8eb9db471c6dd85f92e1828ecd268c2737dda"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:49:04 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 04 16:51:11 2023 +0000"
      },
      "message": "metropolis: implement NodeManagement.Logs\n\nThis takes the implementation from the debug service, dusts it off a\nbit, adds tests and moves eerything to the new node mgmt service.\n\nChange-Id: Id3b70126a2551775d8328c0c4e424ec0e675f40f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1439\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a6d8b39959427e4f7e922f7dc095687e07a0caaa",
      "tree": "820548670c0e392197a2d7603bb7659ccd9cd9ea",
      "parents": [
        "3fe6615bd837038023b9839fb7300030999c60ff"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 03 15:23:57 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 03 15:09:45 2023 +0000"
      },
      "message": "third_party/go: bump grpc-go\n\nWe\u0027re about to include some new-ish cloud.google.com/go packages, and\nthese want a fairly new grpc-go.\n\nThis version of grpc-go finally deprecates some resolver struct fields,\nwhich means we need to migrate away from them.\n\nThe changes also pull in a bunch of golang.org/x/ updates, including one\nthat breaks our importsort patch in goimports.\n\nChange-Id: I2570af45694a5bf18eb7fabb44120d19c5e487da\nReviewed-on: https://review.monogon.dev/c/monogon/+/1472\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6d6ed31da287a055b18dedaa1fd70420994c66ae",
      "tree": "59de543dc0ad9bed120c29c62fdf19508b1ce341",
      "parents": [
        "1fdab13a2ea1411b332f67cfa9b1216753b9eb11"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 27 11:04:14 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 03 14:02:00 2023 +0000"
      },
      "message": "m/n/kubernetes/{clusternet,nfproxy}: log informer errors\n\nChange-Id: I9ea1444c7042dd25c25cecc6b6da054554010a85\nReviewed-on: https://review.monogon.dev/c/monogon/+/1447\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "93d593b8b51a597a030d589d4f7435236a52b2c5",
      "tree": "8fb78b1c9951431b96150e0910420bb62fc15101",
      "parents": [
        "f50c31ff196d2d5ae6c73d732e3d241020cf7882"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 28 16:43:47 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 30 15:38:07 2023 +0000"
      },
      "message": "m/n/core/clusternet: init\n\nThis implements the new cluster networking daemon. This is just the\ndaemon itself with some tests. It\u0027s not yet used.\n\nChange-Id: Ida34b647db0d075fcaaf2d57c9a8a14701713552\nReviewed-on: https://review.monogon.dev/c/monogon/+/1416\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b58102ce51699183af43248c88aa22b8407baa7c",
      "tree": "ee5560579ec7b32636bb4d9eee4e77271c9d3459",
      "parents": [
        "da11486352f2aaccfa271a8aaf06a3bef09b0a3a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:48:18 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 30 14:19:03 2023 +0000"
      },
      "message": "m/n/core/rpc: do not log RPC traces from NodeManagement.Logs\n\nChange-Id: I3106d7fe66a8cdd047e08af62844b20d11636bf5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1438\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "da11486352f2aaccfa271a8aaf06a3bef09b0a3a",
      "tree": "c5a4f5488061d4c0a8660014bc4f4838361ee4aa",
      "parents": [
        "bc7397214147701d6e70141ff70bf6e84f9aab62"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:46:42 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 30 14:19:03 2023 +0000"
      },
      "message": "metropolis/proto: move log-related types to common\n\nHaving them in API is kinda weird, especially as we\u0027re\ngenerating/parsing them from a few libraries already.\n\nChange-Id: I87b4b51f151443c60b87e3e50753c395fcf6e845\nReviewed-on: https://review.monogon.dev/c/monogon/+/1437\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bc7397214147701d6e70141ff70bf6e84f9aab62",
      "tree": "7be96e5fc859010fdf9bf9b381300fbd9d73d07f",
      "parents": [
        "a58047b542002a3045dc18c72ca8889f06b54329"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 28 20:12:01 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 30 14:18:53 2023 +0000"
      },
      "message": "m/n/core/curator: prevent nodes from sharing wireguard keys\n\nAs WireGuard keys nodes by public key, we must do our best to never let\ntwo nodes share the same public key.\n\nChange-Id: Ib8bc9b839355c1ee94dcf3ba42368055b47c2c21\nReviewed-on: https://review.monogon.dev/c/monogon/+/1415\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b91938fe16d74272c14e13cad5c6bd8f82391bc4",
      "tree": "c70a0acf239851748611957bee9d0275740b56ed",
      "parents": [
        "b40c008a6842a232c18b955375d4f1432b32cd53"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:31:22 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:18:22 2023 +0000"
      },
      "message": "metropolis: stub out log service\n\nThe server side and client-side implementations are not quite ready yet,\nbut we\u0027re commiting this early so that we can start implementing more\nnode-local management RPCs.\n\nChange-Id: I81b615b0f77dc7750cc738d60ee4923c3182721b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1429\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b40c008a6842a232c18b955375d4f1432b32cd53",
      "tree": "3fd188eb8b831102c9ab8997579554d200057ed3",
      "parents": [
        "8535cb5bc5437960430ff94d3ea7280ccf931340"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:28:04 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:18:22 2023 +0000"
      },
      "message": "m/n/core/mgmt: implement node-local management service\n\nChange-Id: I1e8a8ff46d1172e00f2d991ae3cc3af1929b6e4e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1428\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8535cb5bc5437960430ff94d3ea7280ccf931340",
      "tree": "57edb5cf064ad8b43aef52c1bbb974dd5cce7c26",
      "parents": [
        "30fd15406e2c9cba7391f6af96c775b313a115fa"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:15:08 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:18:22 2023 +0000"
      },
      "message": "m/n/core/rpc: implement node verification in authenticated connections\n\nThe current API of NewAuthenticatedCredentials is not easily extensible,\nso switch over to such an API now.\n\nThis then adds a WantRemoteNode option which verifies that the remote\nconnection is established to a node with a given ID.\n\nChange-Id: Ie9f6b33d8b032729181bae5591eba9856ea2f523\nReviewed-on: https://review.monogon.dev/c/monogon/+/1427\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "30fd15406e2c9cba7391f6af96c775b313a115fa",
      "tree": "cd19f1366d884c5b3110a7396b9cc5514dedecc2",
      "parents": [
        "8fab014d343633828dc4df3c670def9c75fa4485"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:19:02 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:18:22 2023 +0000"
      },
      "message": "m/n/core/curator: return denormalized node id in GetNodes\n\nThis is mostly useful when using filters to get just one node, eg.\n`node.id \u003d \"metropolis-1234567890\"`.\n\nChange-Id: I154508751b0e610742374b65915c07b64a7f7b71\nReviewed-on: https://review.monogon.dev/c/monogon/+/1426\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8fab014d343633828dc4df3c670def9c75fa4485",
      "tree": "178e3a4a95189e85e618fb966320e805961cb666",
      "parents": [
        "3ac3a2ecfab884ff26939834578ce731ee1778ac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 16:48:16 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 16:03:23 2023 +0000"
      },
      "message": "m/pkg/logtree: fix exact backlog fetch, head/tail confusion\n\nThis started off as \u0027hm, the backlog data returned seems wrong\u0027. I\nrealized we had no test for that, so I added one. It was indeed broken.\n\nThis was because we had two simultaneous bugs: we confused head/tail\nbetween docs and different parts of the code, and we forgot to do a\nreverse operation when scanning/retrieving journal entries.\n\nWith those two fixed, we also implement backlog retrieval in a optimized\nfashion, but not scanning/retrieving more entries that is necessary.\n\nFinally, we drive-by fix a massacred ASCII graphic in a comment.\n\nChange-Id: I2ec5dd9b5b58f66fbc015c142feb91bd92038e4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1430\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3ac3a2ecfab884ff26939834578ce731ee1778ac",
      "tree": "4d0cc471eac7e2986a7bb3d0690b1b348930d6a1",
      "parents": [
        "03139ef5370599ee89add5d4733d18a7e902e8ab"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:20:06 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:09:47 2023 +0000"
      },
      "message": "m/n/core/identity: prevent crash when verifying nil CA certs\n\nWe have some \u0027ca \u003d\u003d nil means do not verify\u0027 logic around in our\ncodebase, and this prevents programming errors from panicking.\n\nChange-Id: I047a06984dd40d709294edaf5d658c61667cb954\nReviewed-on: https://review.monogon.dev/c/monogon/+/1423\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "03139ef5370599ee89add5d4733d18a7e902e8ab",
      "tree": "df9bd2236136a01df1cc6c377f9d2eb76cc98e1e",
      "parents": [
        "8b4a5ea7468f26c693f9497e61e722614a4617ac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 13:37:07 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:09:38 2023 +0000"
      },
      "message": "m/n/c/curator: tell filter users what\u0027s wrong with their filter expression\n\nChange-Id: I994a76ba57e13a34a91b0e547b8173dbc583dd37\nReviewed-on: https://review.monogon.dev/c/monogon/+/1424\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8b4a5ea7468f26c693f9497e61e722614a4617ac",
      "tree": "c0f5912709fff737b6c4edf6e1da0c9053066e95",
      "parents": [
        "4e6fe4aefa98b1c027c4e934472c94b60abe727e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:16:59 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:09:32 2023 +0000"
      },
      "message": "m/n/core/rpc: shorten proto messages in traces\n\nWe\u0027ll have binary RPC logs in the future that will contain all RPC\nmessages. We definitely don\u0027t want kilobytes of prototext in our main\nlogtree or even in the RPC spans.\n\nChange-Id: I9abc5654ce977ff97a293b04f9c1fddfb71ed4a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1425\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "677887828c5440ac794e2cbd892f2c3314f7b63e",
      "tree": "4704995fc5fcd838f615efeaf3c6f2a4b578160e",
      "parents": [
        "e6bc2275053e06ea8d1274d132e5bb071aac6a75"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 28 20:13:18 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 12:34:59 2023 +0000"
      },
      "message": "m/n/core/curator: check that pubkey is given when expecting self-signed certificate\n\nPeerInfo.Unauthenticated does not imply Unauthenticated.SelfSigned,\nwhich might be nil if a client connects without a certificate at all.\nThis makes sure we don\u0027t crash when that happens.\n\nChange-Id: I52ceefe13f1eab9efe549e900a1ae715086b499e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1414\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e6bc2275053e06ea8d1274d132e5bb071aac6a75",
      "tree": "0b9147f9fef9610f7ca285e1457c90b8f292abd0",
      "parents": [
        "0731937d1f66230495e770fcdeaac16aaed8a0cb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 28 16:28:13 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 28 18:22:38 2023 +0000"
      },
      "message": "m/n/c/curator: implement cluster networking storage\n\nThis is just the Curator side, the client implementation will come in a\nsubsequent change.\n\nChange-Id: I4a9b5ad5c77662e11122d0a1cea22d80ecfe4299\nReviewed-on: https://review.monogon.dev/c/monogon/+/1413\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cfbbbdba0e7fa60c87ea6119697dff4e5e84a6ee",
      "tree": "30432c52dd18343481633e08806ee38305f2e6f1",
      "parents": [
        "504ea31137ab223b11d40469887ba7ab91f999ab"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:48:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 27 17:19:31 2023 +0000"
      },
      "message": "m/cli/metroctl: refactor, use tabular layout\n\nThis lays out the files to make it more obvious what command each file\nimplements, and uses the newly implemented tabular formatting for\nlisting/describing nodes.\n\nChange-Id: I90feeae67de0f78090dd5440cbad4cb9aa6bb6bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1392\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "504ea31137ab223b11d40469887ba7ab91f999ab",
      "tree": "601ecbe5a0186fcac11d3a79595a911a837f0ec4",
      "parents": [
        "20b27af7224da05fc5c96535b1b5dc91d5bd585a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:47:48 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 27 17:19:31 2023 +0000"
      },
      "message": "m/cli/metroctl: implement tabular print\n\nChange-Id: I0511d48218bcc7e2e56af66839392bf11643733c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1391\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "218d708b0dffe7a8516d97b13b2cd0f4b91fd756",
      "tree": "4884e81008c897e385411598021656daa266bf1c",
      "parents": [
        "c25ca5d06e3c006987b77350e3f55cccd358e117"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:48:37 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:07:47 2023 +0000"
      },
      "message": "m/n/core/curator: fix another crash in IssueCertificates\n\nWe should have a no-go check for this, this should\u0027ve been easily found.\n\nChange-Id: I1c22e0436da1c71dffc6494a5d5b1867879e17c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1394\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c25ca5d06e3c006987b77350e3f55cccd358e117",
      "tree": "cd00ee88800059299481cc7e006feccbafffae32",
      "parents": [
        "6b7731ee4017d5f412fa487c12b5fcab1b91cd44"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:29:05 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:35:54 2023 +0000"
      },
      "message": "m/n/core/curator: fix crash in IssueCertificates\n\nChange-Id: Ib0e1f08bfcc2e70cd638f0863450508d10ab9a93\nReviewed-on: https://review.monogon.dev/c/monogon/+/1393\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6b7731ee4017d5f412fa487c12b5fcab1b91cd44",
      "tree": "b47ce1057e5034690d6ee42862a6acdd79ce91eb",
      "parents": [
        "d02f2166634fd8c2ef3433ab7212088802cc7f89"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:58:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:35:41 2023 +0000"
      },
      "message": "m/n/core: hide verbose supervisor logs from console\n\nChange-Id: I617c4b966caa35253ba53407fbfadc6615b50822\nReviewed-on: https://review.monogon.dev/c/monogon/+/1388\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d02f2166634fd8c2ef3433ab7212088802cc7f89",
      "tree": "92d7a6eaf0dc07ba4ac53d07deaa325218281e62",
      "parents": [
        "1ec1fe9f8af947c972f803d778f95d145606a6d0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:57:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:34:11 2023 +0000"
      },
      "message": "m/n/core: fix crash on exit\n\nThe current code crashes on exit if a console wasn\u0027t opened.\n\nChange-Id: I7fc235953fe04b8ea924a380e7eb9195a8883d6d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1387\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1ec1fe9f8af947c972f803d778f95d145606a6d0",
      "tree": "d63a4b0dc55dfd582bb20dcdd47011a501d4ed2c",
      "parents": [
        "fe39cc21b69bb9fd9f641dfc6b3514386cbb0d4c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:29:28 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:32:41 2023 +0000"
      },
      "message": "m/pkg/socksproxy: fix fd leak\n\nChange-Id: I4e5f9e937b85a46a9c4ee2e79f4bdcea06858d59\nReviewed-on: https://review.monogon.dev/c/monogon/+/1386\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fe39cc21b69bb9fd9f641dfc6b3514386cbb0d4c",
      "tree": "2c4ff1bc567bb6b5e276bef2028fc196cbc37f2b",
      "parents": [
        "e88ffe9af09b2740bfe0c47ec1efae0380d4f706"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 14:21:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:21:21 2023 +0000"
      },
      "message": "m/n/c/curator: implement IssueCertificate for Kubernetes Workers\n\nThis is not yet used in this change, but will be very soon.\n\nChange-Id: I0283941f15211515537d2b23e0c8cd72dc2d77c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1378\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e88ffe9af09b2740bfe0c47ec1efae0380d4f706",
      "tree": "da2fac1e9bd4343250bc01c1bff81062d7ee60a7",
      "parents": [
        "e6719b379b19ad4439b5fd38da035a3043008d97"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 13:38:46 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:04:17 2023 +0000"
      },
      "message": "m/n/kubernetes: factor out generating KPKI, support multiple endpoints in Kubeconfig\n\nChange-Id: I0e648c24ffa134314a03715575d1af1b925fd450\nReviewed-on: https://review.monogon.dev/c/monogon/+/1377\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e6719b379b19ad4439b5fd38da035a3043008d97",
      "tree": "e3008346b5b32b327c7537451aeaabbf5b144bb7",
      "parents": [
        "ac43801262f2ef399c4b61172823d6d88ec3575e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:57:50 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:04:07 2023 +0000"
      },
      "message": "m/n/core: do not show minit error on failure\n\nChange-Id: I42018ea1d177c5a49c827242a6c8be93363e49bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1389\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ac43801262f2ef399c4b61172823d6d88ec3575e",
      "tree": "d4df4f7dc8121d53432d860c4e234484adafa1f4",
      "parents": [
        "439c1b0485e58600b3fce4e97da9fa362b1de099"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:01:29 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 08:32:21 2023 +0000"
      },
      "message": "m/n/core/cluster: don\u0027t cry wolf about missing nodeparams sources\n\nChange-Id: I4498b122dc5c63af89b2c9909250dfc0b6dae732\nReviewed-on: https://review.monogon.dev/c/monogon/+/1390\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5d6cdf4891f5a0662e5485b5fd34039d7bb1f664",
      "tree": "4e44e0444adb3c770e545dcfcacd3cdd00ccf40c",
      "parents": [
        "d85a40ab6fa79efca11b02522b89855952226f33"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:11:05 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 12:18:03 2023 +0000"
      },
      "message": "m/n/c/core/cluster: notify whenever storage takes longer than 5 seconds to mount\n\nFixes: https://github.com/monogon-dev/monogon/issues/139\nChange-Id: I86398e51cee90c2c5a5a3cb943d85bd09ea311b8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1382\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d85a40ab6fa79efca11b02522b89855952226f33",
      "tree": "408907867ea99dbc07a5d61ec70b2c8478a57414",
      "parents": [
        "d6fee31d519a22720ae0342e02ccdba405b62ded"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:14:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:57:36 2023 +0000"
      },
      "message": "m/n/kubernetes/service: only note lack of reconciliation every 10 seconds\n\nChange-Id: I6e070325daa265e2e0a65bc5f5e69cc5c9869a04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1384\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d6fee31d519a22720ae0342e02ccdba405b62ded",
      "tree": "b440f3b977eabe81de0ee24f99f385d710dfd84d",
      "parents": [
        "c64ba1ec847af9314790d8f13ff9ead06a9be45c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:11:48 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:57:32 2023 +0000"
      },
      "message": "m/n/c/roleserve/controlplane: wrap tpm errors\n\nChange-Id: I0ec10b6065c529b7772a884fd48c7c6f7b5df0bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1383\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c64ba1ec847af9314790d8f13ff9ead06a9be45c",
      "tree": "d5e0fbb008fe2ac950241ff53770aeee4e7b3df8",
      "parents": [
        "e013f1b87807b7c0eb7440cec41e568ef288b499"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 19:15:13 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "go/net/tinylb: init\n\nThis implements tinylb, a tiny round-robin load balancer for\nnet.Conn/net.Listener protocols.\n\nThis will be used to loadbalance connections to Kubernetes apiservers\nbefore cluster networking is available.\n\nChange-Id: I48892e1fe03e0648df60c674e7394ca69b32932d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1369\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e013f1b87807b7c0eb7440cec41e568ef288b499",
      "tree": "14fee72b90e222cd7ad2b4b865bf8c7637a4fd5e",
      "parents": [
        "6fdca3f2e8b60f53f69c8cd39a02109cc47059ac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 11:49:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "m/n/core/localstorage: add helper functions for PKIDirectory\n\nChange-Id: I2798b9d6fcaedcf7a5e8e01e322797ebb8a1389d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1376\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "6fdca3f2e8b60f53f69c8cd39a02109cc47059ac",
      "tree": "f875b3e103037078ece4842fcdd77cbb87d7a6cf",
      "parents": [
        "f71fe9278055d5a892448554aa7c59862256db7d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 17:47:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "m/n/kubernetes: start splitting, run apiproxy\n\nThis begins the process to split the Kubernetes service into a\ncontroller and a worker service.\n\nFirst, we rename the existing service to a Controller, create a Worker\nservice, and make the Worker service run our new tinylb-based apiserver\nloadbalancer.\n\nWe also make the roleserver aware of this change by making it spawn both\nthe controller and worker services according to roles.\n\nWe will move services to the Worker in follow up change requests.\n\nChange-Id: I76e98baa0603ad5df30b5892dd69154b895b35fa\nReviewed-on: https://review.monogon.dev/c/monogon/+/1374\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f71fe9278055d5a892448554aa7c59862256db7d",
      "tree": "4e94d3394eb60e6a6144545cc37dcf85560c951d",
      "parents": [
        "d09c58f33c523c9395446122fc552c58dbab80cc"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 01:10:37 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 10:43:52 2023 +0000"
      },
      "message": "m/installer: log to tty0 and ttyS0\n\nWithout this we only log to whatever the default system console is.\n\nChange-Id: I64b43f8617f3b8752332209b511ea470848c4481\nReviewed-on: https://review.monogon.dev/c/monogon/+/1381\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d09c58f33c523c9395446122fc552c58dbab80cc",
      "tree": "c1438cddc469da77cf1640e672894e99123bb827",
      "parents": [
        "ce19acc9d66055d912287d9f1f26c08d3df55aa8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:25:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 17:56:13 2023 +0000"
      },
      "message": "m/test/launch: do not pipe node logs to stdout in //:launch-multi2\n\nChange-Id: I9e74ca8d6121725b9d38c910f80759c3c6b932a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1372\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ce19acc9d66055d912287d9f1f26c08d3df55aa8",
      "tree": "6aedbe2ab0aef40955f3d416013ff59e1aec0139",
      "parents": [
        "1f8cad7568ad2e8e539fe44f1b2d51e1f2a19fd5"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:28:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 17:56:08 2023 +0000"
      },
      "message": "m/n/kubernetes: make CSI provisioner more debuggable\n\nChange-Id: I22292e627ceac0d41a7711964517a53e63636c3e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1379\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1f8cad7568ad2e8e539fe44f1b2d51e1f2a19fd5",
      "tree": "ed38d5ecb2f775c73c0ac8c23a68e610ce261591",
      "parents": [
        "d174e556db5e2ad25e406babf34442a529756081"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 16:58:10 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:39:39 2023 +0000"
      },
      "message": "m/{cli,test/launch}: integrate launch/cluster with metroctl\n\nThis makes test-launch2 (and possibly later any other code that uses the\nlaunch/cluster library) tell the user that they can connect to the newly\nlaunched cluster using metroctl, either by using specific flags, or\nusing a wrapper script, or using kubectl.\n\nChange-Id: I54035ee02f3cbab3d17f46b1f1685b91aab275a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1373\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d174e556db5e2ad25e406babf34442a529756081",
      "tree": "27627eb19faf5d3f9eb18bdeceff7cdc57ebc122",
      "parents": [
        "c1cb37ce9c43b1eae0325d2dbc0c480185f3d981"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 10:49:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 15:37:05 2023 +0000"
      },
      "message": "m/n/core/localstorage: remove unused PKI options\n\nChange-Id: Ifa6011fe7ab2868fac93483d0988c772c6f6fdf4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1375\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c1cb37ce9c43b1eae0325d2dbc0c480185f3d981",
      "tree": "16127799671c8aaf6ee3bb2548bc8579fd1d719b",
      "parents": [
        "7457ee940f2fff2df6e6eef89dcfbd3a9c67cfb9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:33 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 13:30:48 2023 +0000"
      },
      "message": "m/n/core/consensus: log etcd into sub-DN and wait for DNS resolvability\n\nThis lets us distrnguish between things that etcd logs (which is often\nextremely verbose) what our own consensus service says.\n\nIt also makes the consensus service wait for DNS resolvability before\nattempting to join an existing cluster, which makes etcd startup much\ncleaner (as etcd will itself crash if it cannot immediately resolve its\nExistingPeers in startup).\n\nChange-Id: Icc6a5a40fc56733cc24ccd88af0a73feba4f6922\nReviewed-on: https://review.monogon.dev/c/monogon/+/1356\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e25b3a4154cd71c1efd4e26760f4e14d27ad005b",
      "tree": "51d8974c74b742f5fe6e26e7154789007f10da4b",
      "parents": [
        "3600690988cd075c4e775018bcc9d0f345dd3e86"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:07:53 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 16:18:08 2023 +0000"
      },
      "message": "m/pkg/{logtree,supervisor}: support Benchmarks in test helpers\n\nChange-Id: I811356ac50dd9588412c280a87ad6e5c4be1e2cd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1368\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3600690988cd075c4e775018bcc9d0f345dd3e86",
      "tree": "3a2c20f519667ae15591aea1245e98697a1d7f58",
      "parents": [
        "0b3aac94581f63b3024b261fa6a9f298d0cca52b"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:16:57 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 14:09:21 2023 +0000"
      },
      "message": "m/n/c/rpc/resolver: correctly close watcher on context cancel\n\nWithout this change, a watcher can be stuck forever closing a connection\nto a resolver if that resolver has already exited due to its context\nbeing canceled.\n\nChange-Id: I99dc0f04ff840128879721d3e6368c07345564b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1371\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf33f6805a7842a1aa7fac377468d9ca54f8d05b",
      "tree": "4b5dbdc5d1e533278c8cdb7c0a3442c377d48285",
      "parents": [
        "fe5192dc5369ab47be1552a6935f9cb745d9f837"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:16:16 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 23:31:51 2023 +0000"
      },
      "message": "m/cli/metroctl: allow specifying --endpoints\u003dmultiple,values\n\nChange-Id: Ib7088c91d0e501e0925b6a8793a521dad58cd2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1370\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fe5192dc5369ab47be1552a6935f9cb745d9f837",
      "tree": "f41853b28d396a6fb1fbd9b6a9f5d16e679d0c59",
      "parents": [
        "356cbf3e49af75d9cccf92fd8d0a3236727f6761"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:33:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:23:27 2023 +0000"
      },
      "message": "m/n/core/cluster: clean up\n\nThe cluster.Manager structure got heavily refactored over its life, and\nwe ended up with a whole bunch of stuff that wasn\u0027t even being used.\nLet\u0027s clean that up.\n\nWe also change the oneway logic to use a channel instead of a locked\nboolean.\n\nChange-Id: I3e8158ad5938be1636efc9d7fad7eb6d6e953ccf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1354\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "356cbf3e49af75d9cccf92fd8d0a3236727f6761",
      "tree": "a8865bc1422fdde0d8f5a63f8e7e100156dccfeb",
      "parents": [
        "f9bdf3126488a2728e265a2b28cba564c8072e04"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:52:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:22:24 2023 +0000"
      },
      "message": "m/n/kubernetes: run reconciler before starting more services\n\nThis makes sure we successfully ran the reconciler at least once before\nattempting to running more than the apiserver. It saves us from a whole\nbunch of services complaining about not having the right permissions to\n(yet) access the cluster.\n\nChange-Id: I605eae9d6bbcc16a9dcb971caa26ee56a06e5d5b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1358\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9bdf3126488a2728e265a2b28cba564c8072e04",
      "tree": "fb0c4b0b1de6bf314c397ddf264fe9338e5aaec7",
      "parents": [
        "53a85f7e9f68cfc50721e94de717b1973be2b858"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:54:49 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:05:05 2023 +0000"
      },
      "message": "m/installer/test: undo leftover test comment\n\nThis was introduced by review/1365, and it was just done for testing.\nUndoing this should not undo the flakiness fix.\n\nChange-Id: I7e3096f6b09b2cbd3f3f75dfb4b3602ddfae0959\nReviewed-on: https://review.monogon.dev/c/monogon/+/1367\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b76b8d19c05e5df546e2b2dc08f6cdbec2a9ead0",
      "tree": "d04ffe4c6866be5139dbc87424d14cac2baea6cd",
      "parents": [
        "05f813bf2d311f94dbc8021a85b37ff7c2e33242"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:46:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:04:59 2023 +0000"
      },
      "message": "m/n/core/consensus: work around etcd dial timeout\n\nObserved in an E2E test:\n\n  consensus  ready to serve client requests\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: when getting bootstrap\n             client: context deadline exceeded\n  supervisor rescheduling supervised node root.role.controlplane.launcher.consensus\n             with backoff 681.402139ms\n  consensus  data absent, bootstrapping.\n  consensus  Bootstrapping PKI: starting etcd...\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: failed to start etcd:\n             listen tcp127.0.0.1:7834: bind: address already in use\n\nI\u0027m not sure what caused the original timeout of the client. Let\u0027s bump\nit to two seconds instead of one.\n\nIn addition, let\u0027s also properly stop the bootstrap etcd server on\nfailure, instead of letting it run forever and preventing any subsequent\netcd server from starting up.\n\nChange-Id: Icbcc31cb1e0b9e619360cbd71c5ee81396c79724\nReviewed-on: https://review.monogon.dev/c/monogon/+/1352\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "05f813bf2d311f94dbc8021a85b37ff7c2e33242",
      "tree": "861772847ef842bbdc362224c442a7679b8b10f2",
      "parents": [
        "cc4e96aed59648a3c4ac3faf3755deff4bb7f656"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:58:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/e2e: use concise-style logging\n\nMaking our test logs look like LogEntry.ConciseString() means we have\nsignificantly more readable test logs.\n\nChange-Id: I0b1eab6a5a837bb2001f3b32779c23df2feaa381\nReviewed-on: https://review.monogon.dev/c/monogon/+/1362\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cc4e96aed59648a3c4ac3faf3755deff4bb7f656",
      "tree": "95f6ddc310733ba68f457c95bae3a329c9328ebe",
      "parents": [
        "3b098239a4b40f7082d56f888590c2942990e72c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:14 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/nanoswitch: use concise logging\n\nChange-Id: I89a355a771140a5e8726603c2171bd4822ce1308\nReviewed-on: https://review.monogon.dev/c/monogon/+/1361\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3b098239a4b40f7082d56f888590c2942990e72c",
      "tree": "1df2cc725de2bb912923fe266ec532b216f19642",
      "parents": [
        "367ee27b50654bc37358d9172aed7c3d19a32dac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:02 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "metropolis/node: use concise logging in tty0/ttyS1\n\nChange-Id: I28ad4418a05a7962d61160583b2e210f73ff8c51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1360\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "367ee27b50654bc37358d9172aed7c3d19a32dac",
      "tree": "354e4e01616adbf92be250eacd28e66e2e97dd4e",
      "parents": [
        "ce4af2b7dbae61a81c791c30fe0a161b3ff8b7d9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:50:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/pkg/logtree: implement concise stringification\n\nThis adds a new method on LogEntry: ConciseString(). It\u0027s designed to\nbe used in cases where we want to display the log line on some\nlimited-width (and likely non-interactive) log console, like TTY\nconsoles in Metropolis.\n\nThis is a bit too Metropolis-specific to my liking (we hardcode some\nlogic related to the layout of root.role.*), but it\u0027ll do for now.\n\nChange-Id: I1079b8b19a3c304fcc5077ce6b4c69887a34d7ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/1359\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "05cf33dbfcc86f26f3771a5f489bfd6c78b8cdcf",
      "tree": "623584088f8922fc37f1662d1c957c1e1ad2d169",
      "parents": [
        "f2f85f5827b9df558606403d9451087873249265"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:50:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/installer/test: attempt to fix heisenbug\n\nChange-Id: Ib4dae5bec7c99b88d5b9d4e5ac90ece09fdc7c77\nReviewed-on: https://review.monogon.dev/c/monogon/+/1365\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f2f85f5827b9df558606403d9451087873249265",
      "tree": "646fff1411bff4f9a294f347d6576305171412f7",
      "parents": [
        "0164c717e7ca2420f86043283f4c56867734ecce"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:51:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:14 2023 +0000"
      },
      "message": "m/n/core: make startup errors more readable\n\nPreviously, fatal startup errors in the cluster manager/enrolment would\nget logged as general supervisor runnable errors, which is not very\nuser friendly.\n\nThis reworks error handling in main.go to switch over logging to an\nalternative \u0027fatal\u0027 channel as soon as an error is detected, and use it\nto clearly log that error.\n\nFixes issues/77\n\nChange-Id: Id73ee49f6bc5b4306dd67ede3a588f08dd2b33da\nReviewed-on: https://review.monogon.dev/c/monogon/+/1355\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0164c717e7ca2420f86043283f4c56867734ecce",
      "tree": "f75f52391d5db410cb081f04f372d34da26bf30b",
      "parents": [
        "9dd92d90074fbab1a15b07da9ccc0afab70a5f30"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:01 2023 +0000"
      },
      "message": "m/p/supervisor: provide more concise logs on runnable exit\n\nChange-Id: Iba99bdf5d516e0edad6da40951d61894acf0b70b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1357\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "9dd92d90074fbab1a15b07da9ccc0afab70a5f30",
      "tree": "4914a511ce3cfc2afa7143b75cedae2a46f2b11b",
      "parents": [
        "37110c360f012c10f3b9456a0eb282eefd3275b3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 14:29:07 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:27:36 2023 +0000"
      },
      "message": "m/pkg/event: implement Pipe helper\n\nThis simplifies some of the roleserver code, and is possible now that\nevent values are strongly typed.\n\nChange-Id: I0a22ff97fe4304d35cc9cee105e98bc224d1433b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1323\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "37110c360f012c10f3b9456a0eb282eefd3275b3",
      "tree": "0d8ade7c95d54a576d88e53fb5e8ca9ee76c8f29",
      "parents": [
        "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:57:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 16:55:28 2023 +0000"
      },
      "message": "m/pkg/event: make type-safe\n\nThis is a fairly large change which makes use of Go type parameters\n(“generics”) to make the event library (and its memory/etcd\nimplementations) type safe.\n\nSince we now have the event.Value interface strongly typed, we also move\noptions which were implementation-specific (like BacklogOnly)\nto be part of that interface, instead of the previously type-asserted\nspecific implementations. Use of options that are not handled by a\nparticular implementation is a runtime error. Expressing this in the\ntype system is probably not worth the effort.\n\nWe also implement Filter to allow offloading some of the functionality previously implemented in type assertion wrappers into the library itself.\n\nIn the end, this ends up removing a bunch of type assertion code, at\nthe cost of a fairly sweeping change. Unfortunately, some of this is due\nto IntelliJ suddenly deciding to reformat comments.\n\nChange-Id: I1ca6d93db1b5c4055a21af3fb9e5e3d425c0d86e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1322\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe",
      "tree": "f71839e80a77bb094c9836a399ebc2e0f99e4854",
      "parents": [
        "591d808678b9770bd579509928997dc5494806e8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:29:17 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/p/logtree: do not emit broken klog entries\n\nAny invalid line parsed to the klog parser would turn into a big INVALID\nbeing emitted to the console, as the emitted log entry had neither a\nleveled nor raw logline attached.\n\nChange-Id: Ia6d620ea56d2112d11e2d3edcd6c762c58de6c50\nReviewed-on: https://review.monogon.dev/c/monogon/+/1339\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "591d808678b9770bd579509928997dc5494806e8",
      "tree": "3afd01fdd280f279610160141c6ef1b02debb119",
      "parents": [
        "cf23ebc1afc53f93d56a0fd33209db7b033a991a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:26:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/test/e2e: stop downloading container images\n\nHaving tests rely on The Internet isn\u0027t great, having tests rely on the\nDockercorp registry is even worse. Instead, let\u0027s test everything using\nthe preseed_test image.\n\nChange-Id: Ib82ce266592e9c6d2f0d4597abcc114c12746b1f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1338\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf23ebc1afc53f93d56a0fd33209db7b033a991a",
      "tree": "23395adcd31b1ec31377de20ca46f5e98b9ff242",
      "parents": [
        "bfc280739cdbae950611e5d35a1adb5cd0f58feb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:02:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 16:36:18 2023 +0000"
      },
      "message": "m/cli/metroctl: factor out some helper functions\n\nWe will need these to create metroctl-compatible configs from\n//metropolis/cluster/launch.\n\nChange-Id: I2705afefb62b7e1b35c87d9753c4ca9c7f534c26\nReviewed-on: https://review.monogon.dev/c/monogon/+/1324\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "bfc280739cdbae950611e5d35a1adb5cd0f58feb",
      "tree": "8e86b9bcaa33f3cb3dd5950a556ecf0641f58c02",
      "parents": [
        "15f7f637d6885b471f52fd0aa04d04998366a7f9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:56:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 09:29:09 2023 +0000"
      },
      "message": "m/node/core: fix up resolver keepalives\n\nWe set up keepalives in the resolver to quickly detect that a Curator is\nnot longer available.\n\nThis fixes two bugs related to their use:\n\n 1. When the resolver\u0027s curator connection dies (eg. when we get kicked\n    off by the curator for keepaliving too often), we recreate it fully\n    and thus lose any \u0027keepalive backoff\u0027 state that the client\n    connection carries, thereby not letting that keepalive bachoff\n    mechanism kick in as intended.\n 2. The server-side limits for client keepalives were simply too low\n    compared to what the resolver library wants to use.\n\nChange-Id: If2e53e20a1462e9f71a3723b92d346aff795d84c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1321\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "15f7f637d6885b471f52fd0aa04d04998366a7f9",
      "tree": "b1884808d565ce0736993939f4f6b482aab0874d",
      "parents": [
        "e00a89da1c62e20c2528dadb0543a4578680b073"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:17:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 20:07:36 2023 +0000"
      },
      "message": "metropolis: rename KubernetesWorker to KubernetesController, add no-op KubernetesWorker\n\nThis is in preparation for actually splitting the Kubernetes service\ninto a control plane and data plane / worker. The new Worker service is\na no-op: it can be enabled/disabled, but has no practical effect.\n\nSince we plan on keeping the control plane stuff mostly as is, and add\nsplit worker functionality as a new codebase, it makes sense to rename\nthe existing role to Controller, and createa brand new Worker one (to\nmake future diffs smaller).\n\nChange-Id: I79de3219f3c190d38469a0a8d7371820471c100d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1325\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2d284b5718ad0948e7ef5afc5905f36701f4a3ab",
      "tree": "1525231844ed4fb336e9cf3b0b252008f4f44393",
      "parents": [
        "7922d41e98a28458e17e4ff33c9ece0d9ff6578a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 08 17:05:12 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/takeover/e2e: add takeover end-to-end test\n\nThis adds an end-to-end test to the takeover system.\nIt launches a QEMU VM running a Debian Cloud Image which is configured\nvia cloud-init to accept SSH access from the test.\nIt connects to that VM via SSH, copies the takeover binary under test\nto it via SFTP and launches it.\nIt passes a test TakeoverInit message to it, performs basic sanity\nchecking on the response and then looks on the serial port for a flag\nmesage that the agent has started.\n\nChange-Id: I8edce6163259da305bb43660a2d70474f7f11612\nReviewed-on: https://review.monogon.dev/c/monogon/+/1262\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "b033b380387a999b7ad19f9d001c42ec570c8945",
      "tree": "6093a955f5c08f29e6590fb71781849d100a3e0e",
      "parents": [
        "d8290c8082f752f52d0ba1c765f668e2992bc5d4"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 20:06:36 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 22:29:46 2023 +0000"
      },
      "message": "*: fix gomodproxy compatibility\n\nThis is necessary for the source to be fetchable from third-party Go\nprojects (currently via a replace directive, as source.monogon.dev isn\u0027t\ngo-getable). Otherwise, `go mod tidy` complains:\n\nreading https://sum.golang.org/lookup/github.com/monogon-dev/monogon@v0.0.0-20230223122556-665b10937eb8: 404 Not Found\n\tserver response:\n\tnot found: create zip: build/analysis/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/classify.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort_test.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/testdata/README.md: case-insensitive file name collision: \"BUILD\" and \"build\"\n\t[Truncated: too long.]\n\nChange-Id: If5947be74f7dfcf4ba4bd79c4dc37589f324b891\nReviewed-on: https://review.monogon.dev/c/monogon/+/1223\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "1cf17953163089f6b90d0922bff0994e06c95e29",
      "tree": "cfcef14d8530761d9b0a18adf266262898ede7c6",
      "parents": [
        "d026b37c2a27d414821f860ccd0effb522be1ce4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 17:41:59 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 14 10:03:25 2023 +0000"
      },
      "message": "pkg/bootparam: add bootparam pkg\n\nThis adds the bootparam package which can marshal and unmarshal the Linux\nkernel command line into boot parameters and a rest section passed to\ninit.\n\nThis is a very quirky format, thus there is a fuzz testing harness\nagainst the reference implementation from the kernel included to verify\ncorrectness.\n\nA set of weird edge cases is rejected by Unmarshal instead of parsing\nto nonsensical data as the reference implementation does to save on\ncomplexity in the parser.\n\nChange-Id: I6debfa67e69ae8db4e0356f34ecb127ea27d18de\nReviewed-on: https://review.monogon.dev/c/monogon/+/1125\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d026b37c2a27d414821f860ccd0effb522be1ce4",
      "tree": "223512570e3c0857d7f34e3ee588d21163b213b0",
      "parents": [
        "a01b4ee048e27dc05452912d25d6f718fb263c61"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 19:38:45 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 21:01:06 2023 +0000"
      },
      "message": "m/n/build: fix incorrect device number\n\nThe device node major number for our console device is wrong.\nThe major number for the console device is 5, not 1 as seen in\nDocumentation/admin-guide/serial-console.rst.\n\nI stumbled upon this when looking at this spec as a reference for an\nissue with an unrelated device.\n\nChange-Id: Icbae264d2b4a5dc8770cb1e15e33d56c504a50c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1126\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3ccf69641de62c68a5740d8194d4f0776052dd63",
      "tree": "8a35f1aa01076a35890862f90c186da7fe4ebeda",
      "parents": [
        "d266812c63eb25cf9a586297785add76f5b1f073"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jan 23 17:01:40 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Feb 09 12:00:00 2023 +0000"
      },
      "message": "go/net/psample: init\n\nThis adds a minimal golang implementation facilitating network packet\nsampling based on \u0027psample\u0027 kernel module.\n\nMetropolis kernel configuration was modified both in order for this\nchange to be testable in a ktest, as well as to make sure Metropolis\nwill be able to run the included code.\n\nChange-Id: Ie6a4721455f26644b6be01aa6190cf87f21355f3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1102\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f220b2923c0d8bcf760d1c86af51041371633617",
      "tree": "21a7b7915b25f2ee619de0973720068da9f72072",
      "parents": [
        "68961c3e99c5045bd50f6b91fca9469e47475f2e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jan 31 16:52:53 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Feb 01 18:08:48 2023 +0000"
      },
      "message": "*: use a vishvananda/netlink fork by Monogon\n\nThis switches Metropolis over to a Monogon-maintained fork of\nvishvananda/netlink.\n\nThe package was modified to support the \u0027sample\u0027 action in packet\nfilters. This is required for the upcoming change enabling network\nanalytics through local packet capture.\n\nMetropolis\u0027 dhcp4c had to be modified to match the vishvananda/netlink\nversion referenced by this change.\n\nChange-Id: I2dd0799a009618f8543904252b85ff63ddd560c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1109\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "97f212c1d25424a099b6a2ff52e0464a2755f11e",
      "tree": "f5da74b0ac98113b684f51c98946d405fbeacb77",
      "parents": [
        "6294854ace5e06e3b731878544eb39f5351de66d"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 21 19:06:34 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 24 16:16:59 2023 +0000"
      },
      "message": "build/ci: mark supervisor and e2e tests as flaky\n\nChange-Id: I56459eac238d3ecc5c8429226cab1c32ceb2e0c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1088\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "bc93c2b50690e66712d80e4da5837554588ca065",
      "tree": "68842095e93b11649cdc23da3bb4a6ef24f9dc8a",
      "parents": [
        "e1ebf729194f3673ea0638f0aceb90cb70de23aa"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 13:12:23 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: migrate to CC toolchains and Bazel 5.4.0\n\nChange-Id: Iff3c0ddda4413dd0c5fa657a5b7813223e98611e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1079\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e2a302a9062d3ebfc33ad83dd382653e067ca009",
      "tree": "55165c3da49a1f7b4604c4db85b59bb305011718",
      "parents": [
        "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 15:39:18 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "metropolis/test/launch: convert :launch to a test\n\n\"bazel run\" simply executes the binary outside the sandbox, so swtpm\nand other dependencies from the sandbox sysroot won\u0027t be available.\n\nIf swtpm is installed on the host, running the _bin target still works,\nbut it\u0027s better to point contributors to something that works\nout of the box.\n\nThis is a temporary workaround. Tests have timeouts and take the global\nBazel server lock. The correct solution is a static swtpm build\nwhich can run outside the sandbox.\n\nChange-Id: Icf7bf5cc44825df676d37a75ea9c1e135de14fef\nReviewed-on: https://review.monogon.dev/c/monogon/+/1078\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bffdda85d7750c9a9a34289a79281edeae1d73ef",
      "tree": "09bd64e59e1ed5a2dd3db9e4336b449158ba8fa0",
      "parents": [
        "6c9535b36d033ac647b1cf4fca2a29e8c260a79f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 10 05:00:36 2023 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 19 17:32:52 2023 +0000"
      },
      "message": "m/p/scsi: add SCSI package\n\nThis adds a SCSI package to interact with SCSI devices.\nIt implements a subset of commands from the SPC-5 and SBC-4 standard\nuseful for discovery and health assessment.\nA follow-up will add SAT (SCSI-to-ATA translation) support.\n\nChange-Id: I7f084d26f11d9c951f51051040160e351cf5594c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1066\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "acfad5b4d130084d58235a1eae54f4c51f936e44",
      "tree": "ecfbf0e9635fa4a6ef49b524c914834eb195f986",
      "parents": [
        "af5086bfe505940699203d158ffa89307f28ebde"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:05:25 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 13:54:47 2023 +0000"
      },
      "message": "m/test/launch/cluster: add pcap dump\n\nDump all network traffic by default to help debug failed tests.\n\nChange-Id: I5466639fa00501373690bd95452b85b61fb5b172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1076\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "af5086bfe505940699203d158ffa89307f28ebde",
      "tree": "3ec03923903f2a5f9262f1b9ee79b6e80158520b",
      "parents": [
        "20a036ee94d0999ab632de4f9c2d1feff192d72b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:12:42 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:44:48 2023 +0000"
      },
      "message": "m/test/launch: print qemu options at startup\n\nChange-Id: I35b234301e7c06a910127a4cf2c1573d23af45a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1077\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "20a036ee94d0999ab632de4f9c2d1feff192d72b",
      "tree": "47b90debe3873ee1d8075ffac1995f3769bdae31",
      "parents": [
        "afb925b446e4f13a05a36f1d87e6b8a1f5a2e27a"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 00:17:19 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:37:51 2023 +0000"
      },
      "message": "Fix some typos/grammar/variable shadows\n\nChange-Id: I43e78ec7931399c4f60f431d659953f084db7172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1074\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "12450d28a5a841994df41bb7c37c24d53a2c80d2",
      "tree": "4d986fcb759755fa81ebb4a6ef9bf98db916a3bb",
      "parents": [
        "fba5da0d552a7406276be9bacc87c79108698669"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 20 13:06:19 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "pkg/smbios: fix error calculating memory size\n\nThere were two errors in the memory size calculation.\nOne was that if the high bit is set the unit is KiB, otherwise MiB, not\nthe other way around.\nThe other one was that I extracted the bit, but failed to shift it to\nthe right position. So I took the time to stop this bit twiddling and\nadded some constants and a good old-fashioned if.\n\nChange-Id: I0bce8f7607981e62120365374458425f3c663b51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1000\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fba5da0d552a7406276be9bacc87c79108698669",
      "tree": "fbb6f9eb26f86bfb3e7aa8ba524a29bafe76ec12",
      "parents": [
        "189495ac490e93770a88affdce25b8f2087cb193"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 15 11:20:47 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "pkg/nvme: add NVMe package\n\nThis adds a NVMe package for performing various low-level operations on\nNVMe devices. Only the most important (to us) calls are implemented as\nNVMe has a vast API surface.\n\nChange-Id: I532894c3c2eb780309993a1688226c92c91cdedf\nReviewed-on: https://review.monogon.dev/c/monogon/+/999\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4abeb13b0c1f26148daf14f430de17cd5eacf351",
      "tree": "1e27894c1fa0b93a9345800df370c8e5e2156c17",
      "parents": [
        "f9c65e9e588c44e019d6b8836275493abe298a2e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Oct 11 11:32:19 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Dec 20 11:28:11 2022 +0000"
      },
      "message": "cloud/bmaas/server: init\n\nThis adds the BMaaS server alongside its first functionality: serving an\nAgent heartbeat API.\n\nThis allows (untrusted) Agents to communicate with the rest of the\nsystem by submitting heartbeats which may include a hardware report.\n\nThe BMaaS server will likely grow to implement further functionality as\ndescribed in its README.\n\nChange-Id: I1ede02121b3700079cbb11295525f4c167ee1e7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/988\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9c65e9e588c44e019d6b8836275493abe298a2e",
      "tree": "623c0d0e36c62d0593dbd6cc73ed3c629bf0466a",
      "parents": [
        "68ca370db4bb8314ac7598ce3b9c90194bde47a8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 22 12:50:56 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 29 12:22:31 2022 +0000"
      },
      "message": "pkg/smbios: add SMBIOS package\n\nThis adds a new SMBIOS package which contains common structures from\nSMBIOS as well as corresponding parsers.\nI originally explored an approach where I manually designed optimized Go\ntypes for each structure, but that would have led to a huge amount of\ncode that reading a structure of this type would cause if done\nliterally. I also considered code generation, but if the generated types\nare to be close to the manually-designed ones it would be an incredibly\ncomplex piece of code as well.\nFinally I went with a design based on reflection which is much more\ncompact than the first two and consists of plain Go code at the expense\nsome niceness in the types.\nI called the current types SomeTypeRaw in case I want to come back later\nintroduce a small layer mapping the current structures into nicer ones.\nBut for our current purposes the raw ones are good enough already.\n\nThis has been tested against our deployment targets, but as the SMBIOS\ndata contains uniquely identifying information these small tests are not\npart of this CL. Sadly I haven\u0027t found any public SMBIOS test-cases.\n\nChange-Id: I55d746ada0801de456f2a0eb961821abd9d58fa2\nReviewed-on: https://review.monogon.dev/c/monogon/+/983\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "0123a1c948100c040c1924e50dc1e05a9cd523a7",
      "tree": "0e99c3903f18cca4e97c60f3595b4fee5924ca1d",
      "parents": [
        "35e8d79e695b290d371d82dbcc5b15cea429d424"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 24 18:41:48 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Oct 26 15:46:46 2022 +0000"
      },
      "message": "m/p/kexec: add auxiliary EFI handling\n\nThis makes kexec do auxiliary handling related to EFI. If a system is\nbooted using EFI and has an ACPI Root System Description Pointer (RDSP)\ni.e. just about every modern system, the pointer to that structure needs\nto be passed to the kexec\u0027ed kernel on its command line.\nOtherwise various EFI-related functionality breaks, like accessing\nEFI variables which causes a kernel crash.\n\nLogically I think this functionality belongs to kexec as callers\nshouldn\u0027t need to be aware of kexec specifics and every caller\npotentially running on EFI needs this functionality.\n\nChange-Id: Iec7ad4c3c0a7e5c31d738d307ff0e10aac02ab11\nReviewed-on: https://review.monogon.dev/c/monogon/+/960\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "ee17d8303258980270587755f75dc4b6412e3a31",
      "tree": "25e30e22a95527592b8d596dc8da5e6f7b6b63ab",
      "parents": [
        "ce3d810f4fde5e00aba7539a4d12ebe82d65b672"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 18 12:02:45 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 24 16:30:56 2022 +0000"
      },
      "message": "m/p/gpt: add GPT package\n\nThis introduces our own GPT package. It will be used for provisioning\nand Metropolis images.\n\nChange-Id: I905cd5d540673fd4b69c01d8975f98b88e24edd4\nReviewed-on: https://review.monogon.dev/c/monogon/+/956\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "5486a9cf8c7092a213bfda0b52681c156fe87cbb",
      "tree": "458c972750c2a47ff4697ac11fe3c27b421fb8ff",
      "parents": [
        "d1bc4a61ebcebe25fc45fbaba577867a6f293b97"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 16:49:30 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:32:54 2022 +0000"
      },
      "message": "m/p/kexec: add minimal kexec library\n\nThis adds a minimal kexec library which wraps the kexec_file_load\nsyscall in a Go-style interface.\n\nChange-Id: Ia69b47ec6a305b19b238f30a7515aabdccb44bb9\nReviewed-on: https://review.monogon.dev/c/monogon/+/903\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d1bc4a61ebcebe25fc45fbaba577867a6f293b97",
      "tree": "373e0119dca4af4b8d3002008296ec1e7e8da0e6",
      "parents": [
        "4c50f99747ed78f74924e7ff9724fe4486ca2ec9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 16:45:18 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:32:54 2022 +0000"
      },
      "message": "m/n/build: fix fsspec rules duplicating specs\n\nCurrently if a rule which outputs an fsspec outputs both a DefaultInfo\nas well as an FSSpecInfo provider and both are propulated, the fsspec\ncore implementation will use both instead of only using the FSSpecInfo.\nThis leads to spurious errors when the fsspec consumers detect duplicate\nfiles.\nThis change makes the fsspec rule ignore the DefaultInfo provider if a\nFSSpecInfo provider exists on an input label.\n\nChange-Id: Iec8975200380889732c840ff16d17f791fa1ba83\nReviewed-on: https://review.monogon.dev/c/monogon/+/902\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "4c50f99747ed78f74924e7ff9724fe4486ca2ec9",
      "tree": "c14cf22e92ea70b109b067997ca152cf0ff3b68a",
      "parents": [
        "1b28e1b92989e827087bc6b594a411e10328e00a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 18:43:01 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:53 2022 +0000"
      },
      "message": "m/c/metroctl: reformat\n\nThis appeases my IntelliJ.\n\nChange-Id: I61fa3bea6d5e79eafc25a94880a630fad99c0524\nReviewed-on: https://review.monogon.dev/c/monogon/+/885\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "bd2ce6dcffa271d8ef00bceda1a89fc34d1d0f3d",
      "tree": "d40ddca810272927e140a369866be45adde0e150",
      "parents": [
        "4c078788121339beb45cad8b2ac2a24dac55cb93"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Fri Jul 22 00:00:13 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 06 13:59:45 2022 +0000"
      },
      "message": "m/p/fat32: add fat32 package\n\nThe fat32 package is a write-only implementation of the FAT32\nfilesystem. It works quite unlike a normal file system by first\ndetermining the entire disk layout and then sequentially writing\nout everything. This allows it to have a fully streaming output without\nneeding to seek at all.\nBecause all IO is sequential the implementation is extremely fast and\ncan potentially even leverage things like the copy_file_range syscall.\nThis means however that all files and readers need to be prepared ahead\nof time, it is not possible to make decisions during the writing\nprocess.\nIt is also possible to generate \"right-sized\" filesystems by not\nspecifying an explicit block count. In that case the resulting image\nwill contain exactly as many clusters as needed.\n\nChange-Id: I49bf2ce09b26a7d628a39a0dd0745bca61c1c4da\nReviewed-on: https://review.monogon.dev/c/monogon/+/841\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "4c078788121339beb45cad8b2ac2a24dac55cb93",
      "tree": "5715fd4141c472ec269ad36a15cfeeca2229ef26",
      "parents": [
        "e15fee1b7f2258fb677e824ad1e30fdf81279495"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 19:03:53 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: accept multiple node IDs in approve\n\nThis makes possible to issue commands of the form\n\"metroctl approve [NodeID, ...]\" instead of\n\"metroctl approve NodeID\".\n\nChange-Id: Ic5b4b3240aa0ff811aa3b52fb5f82b3966320dd9\nReviewed-on: https://review.monogon.dev/c/monogon/+/852\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e15fee1b7f2258fb677e824ad1e30fdf81279495",
      "tree": "c0b3ee3c658370a6e3922a4532b2fca8240266d5",
      "parents": [
        "b838e05983828a443390479691dba3de086bcb53"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 18:48:40 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement add, remove role commands\n\nThis adds commands accomodating node role modification.\n\nChange-Id: I3532081fa5e7ce521c3bd90cc4ebf46fec4bf168\nReviewed-on: https://review.monogon.dev/c/monogon/+/851\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b838e05983828a443390479691dba3de086bcb53",
      "tree": "14eef15338691f9764f3e93452bc27fc0834f29c",
      "parents": [
        "9c315f1116567df934cf7fce5f3f341c70cb9b66"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 18:08:10 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement the \"describe\" command\n\nThis implements metroctl\u0027s \"describe\".\n\ncmd.TerminateIfFound was adjusted to meet new test needs.\n\nChange-Id: If86f35bc648d99396e7d5be48ab459d6b13334ce\nReviewed-on: https://review.monogon.dev/c/monogon/+/850\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9c315f1116567df934cf7fce5f3f341c70cb9b66",
      "tree": "d02e8e879f226dffc657e7483795ba58cc2236ee",
      "parents": [
        "db75e21d4826eac4e0177995dff64c9ff6a64064"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 11 16:31:22 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/api: UpdateNodeRoles: identify by node IDs\n\nThis adds the possibility of identifying nodes through their node IDs\non top of their public keys.\n\nChange-Id: I4028832773acb11faf306144fece923e6c51d20d\nReviewed-on: https://review.monogon.dev/c/monogon/+/849\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "db75e21d4826eac4e0177995dff64c9ff6a64064",
      "tree": "52199cdff810e06ca271a8d1e6f05a88b343277f",
      "parents": [
        "2f7790dfe7a93f5f048e914d0c1d61af61dbdfba"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 04 17:31:34 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement the \"list\" command\n\nlist prints node IDs of existing nodes.\n\nIf no positional arguments are passed, or the only positional argument\nequals \"all\", all existing nodes will be processed.\n\nOtherwise, if any positional arguments are used, the output set will\nbe limited to node IDs matching the positional arguments. Nonexistent\nnodes will not be listed.\n\nThe node set can be further narrowed with an optional CEL node filter\nexpression, set with the new --filter flag.\n\nThe output format can be adjusted using the --format (-f) flag.\nCurrently, only plaintext output is available.\n\nThe output will be saved to a file, if a path is specified with the\n--output (-o) flag.\n\nChange-Id: I44d57ad52805924673354c70e54cd299a88ad75f\nReviewed-on: https://review.monogon.dev/c/monogon/+/848\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "2f7790dfe7a93f5f048e914d0c1d61af61dbdfba",
      "tree": "5bf39f6d0c3a13b97a617b752789c2bf2764e60c",
      "parents": [
        "6cdc976f681edc51f68454a76e7d7af64417ca7e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Sat Aug 06 16:10:42 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/cmd: handle exiting processes\n\nRunCommand was seen waiting for the line that would trigger its\nsupplied predicate function even after the managed process exited,\nwhich is deemed a bad strategy.\n\nChange-Id: I5fa5add1daf3c4f0c69f72f5b5859e88f7bc2679\nReviewed-on: https://review.monogon.dev/c/monogon/+/847\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6cdc976f681edc51f68454a76e7d7af64417ca7e",
      "tree": "dfcfa01566c2c82f41616cdc654937a3fbee0e31",
      "parents": [
        "18a67b033fd8ccd5dacb7c7e1f0c1a9c21eb0a6b"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Aug 03 17:15:01 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/cmd: use predicates in RunCommand\n\nThis generalizes RunCommand by making it accept any completion\npredicate function.\n\nChange-Id: Ic6b911244aaecd16c01000050fca618a8c8e09d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/846\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "18a67b033fd8ccd5dacb7c7e1f0c1a9c21eb0a6b",
      "tree": "b12e3ad0838cc56c509d7d381d119888bbff69ff",
      "parents": [
        "fed8fe5222c929b9ac5d5ccc0c0b95a8532cf892"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Aug 02 13:37:50 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: move common impl to m/c/m/core\n\nThis moves the implementation shared between CLI commands into metroctl\ncore package.\n\nChange-Id: I93624a07356accf3441f02e6ecd8e91d5b71e66e\nReviewed-on: https://review.monogon.dev/c/monogon/+/843\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "fed8fe5222c929b9ac5d5ccc0c0b95a8532cf892",
      "tree": "fdff787672761a817889b204ca6686565e65484a",
      "parents": [
        "1846450067dc73e906f77a41e7e8f23095dc45e7"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 16:19:35 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: exercise the takeownership command\n\nThis introduces a new test harness together with a test exercising\ntakeownership.\n\nChange-Id: I998506093c25e489d8cb2810e90b4c94530bf4a6\nReviewed-on: https://review.monogon.dev/c/monogon/+/839\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "1846450067dc73e906f77a41e7e8f23095dc45e7",
      "tree": "141ce55ffe297fa273203b8e04b7db44f42918af",
      "parents": [
        "b2cac08ef541db9969425fe5ef1c04660679e180"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 16:18:26 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: takeownership: use cluster resolver\n\nThis updates takeownership to use the new cluster resolver.\n\nChange-Id: I9fd546eb07a8909dc6c7fafd682ad6c4ab936151\nReviewed-on: https://review.monogon.dev/c/monogon/+/838\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b2cac08ef541db9969425fe5ef1c04660679e180",
      "tree": "6331eebaeba6b8f728234f07957bb25cc381290d",
      "parents": [
        "073a1c562f386ac9b33d5361a380098e5d3fdd74"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 14:55:43 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 11 11:32:14 2022 +0000"
      },
      "message": "m/c/metroctl: log resolver state\n\nThis makes metroctl log the resolver\u0027s output, given the --verbose flag\nis provided.\n\nChange-Id: If4578341b733b7ba0ae86bc31dac2f841e75e1ad\nReviewed-on: https://review.monogon.dev/c/monogon/+/836\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "fab7d46b81250f0b3dab0a588f414b2eb4ac6fc4",
      "tree": "eeb9de8c3769f830fdb138b53a39911a97e4e18b",
      "parents": [
        "8234c16354a5723aafab7ab24f0b833dc00c926d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 18 20:15:25 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 25 10:37:46 2022 +0000"
      },
      "message": "m/n/c/l/crypt: improve zeroing speed\n\nThis improves zeroing speed by a lot by mapping the integrity device\nwithout journal for zeroing. This halves IOPS requirements as well as\nmaking IO mostly sequential (instead of random with the journal).\nThis also bumps the write block size to 256 times the block size which\nexperimentally seems to reliably fill up the write queue while not being\ntoo big.\nAsynchronous IO (io_uring) doesn\u0027t perform better here, at least on not\ndisks which aren\u0027t insanely fast.\n\nChange-Id: Ia8fbed35cd0c8978209fa24dc7615bc71ff1ba2f\nReviewed-on: https://review.monogon.dev/c/monogon/+/840\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    }
  ],
  "next": "8234c16354a5723aafab7ab24f0b833dc00c926d"
}
