)]}'
{
  "log": [
    {
      "commit": "82e6af71ad2b7927de8d754799271ee9f39506f9",
      "tree": "4da4ec95a6e4c5f58957c555d8646e46dbb25c6d",
      "parents": [
        "bceb1604c4d6ce1396c63083d2fd8aae98346cf3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 23 00:05:42 2024 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 13 12:43:45 2024 +0000"
      },
      "message": "treewide: replace hardcoded runfiles paths\n\nWe hardcoded some of the runfiles paths to find specific files. This replaces the hardcoded paths by a call to rlocationpath. This prevents running a target without the correct dependencies at build time instead of at runtime\n\nChange-Id: I7ce56935ac80be6b28b824ccb0781ab401bd6521\nReviewed-on: https://review.monogon.dev/c/monogon/+/3301\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "efbde1900fbeb9ab7cab58cd53a39f8cab859e7c",
      "tree": "3bd21c61782fd93566490507e31bec2da74eb6b0",
      "parents": [
        "f9a8dcda408842251433b7d3d734d4f0710d1ba2"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 31 14:53:20 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Aug 06 14:35:51 2024 +0000"
      },
      "message": "metropolis/node: export core/supervisor metrics\n\nChange-Id: Ibe3be27f9a5b3fc5e36babecc74d7d784d1f5e10\nReviewed-on: https://review.monogon.dev/c/monogon/+/3292\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a3e38cf9a4fcc0940402c4f18172662a84e28151",
      "tree": "add9e62b0d9598619e0000353999729fc7b376b2",
      "parents": [
        "58079040557df838ec418d96155df0b273331dab"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 31 14:40:04 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Aug 01 10:11:03 2024 +0000"
      },
      "message": "metroctl: add metrics command\n\nThis is a little helper command to access Node metrics easily for people\n(eg. developers!) who don\u0027t have a metrics collection infrastructure set\nup.\n\nChange-Id: Ibe3b4356db88e31c3156289ab8d8ca2985266b4b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3288\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "3325b4b940370ad4282fdaa6027a5672ff8fdc2a",
      "tree": "7308d80e86a0d0ea34a5d2d5c8dac8cb2dd8efeb",
      "parents": [
        "41b244857ee793cbf74552ec39f2ff614a686a56"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 15 19:19:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 22 21:25:58 2024 +0000"
      },
      "message": "workspace: bump bazel_gazelle to v0.37.0\n\nChange-Id: I45a7769d80781075fdfb1c438240a75629dd572a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3220\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "9f21f5396aa18bc9f2f83c867ff883f49bbf02ae",
      "tree": "c232f42c84bd6b7ace576261a188134cb0c69771",
      "parents": [
        "f430fbfe35b70283090b6174cf5a920163c0148c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 15:14:20 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 04 12:19:37 2024 +0000"
      },
      "message": "treewide: introduce osbase package and move things around\n\nAll except localregistry moved from metropolis/pkg to osbase,\nlocalregistry moved to metropolis/test as its only used there anyway.\n\nChange-Id: If1a4bf377364bef0ac23169e1b90379c71b06d72\nReviewed-on: https://review.monogon.dev/c/monogon/+/3079\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "41113935d59f3c0210b04d6251b1559979c677fb",
      "tree": "e51f6fcbbf47dcda3255a237c901aee4ae84b64a",
      "parents": [
        "1f789540bbe4bf94c4ccae795272703577ca586e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed May 22 14:02:17 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jun 12 10:00:40 2024 +0000"
      },
      "message": "metroctl: display labels for nodes\n\nChange-Id: I78c0c5b37d10989539bfe5f13b0afdc3fc8a2a7a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3102\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1f789540bbe4bf94c4ccae795272703577ca586e",
      "tree": "2ecd2308e42e5f25e898f6901cd7562c3adad18a",
      "parents": [
        "2b6dc312656035aedade6f368af1994bdb8b6021"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed May 22 14:01:50 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jun 12 10:00:40 2024 +0000"
      },
      "message": "m/{node,proto}: implement Node Labels\n\nNodes can now have Labels attached to them. These are string key/value\ndata designed after Kubernetes labels. They are meant to be used to\nattach metadata to nodes, for example external IDs, nicknames or\ngeographical information.\n\nThis change implements just the core functionality: storing them within\netcd, retrieving them via management and curator APIs, and mutating them\nvia a new management RPC.\n\nFollowup changes will impelement provisioning labels at\nbootstrap/registration time and accessing label data from metroctl.\n\nChange-Id: I556b452a65061294e7c51037723a6db31d587716\nReviewed-on: https://review.monogon.dev/c/monogon/+/3101\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2b6dc312656035aedade6f368af1994bdb8b6021",
      "tree": "488e63bfdf22b6b389e160a01d4f731c3956e2f3",
      "parents": [
        "8111b901b88c8ef9ca5e113584c928de4bfdd24d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 04 17:44:55 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 11 17:01:21 2024 +0000"
      },
      "message": "metropolis/test: create swtpm TPMs at runtime instead of compile time\n\nThe generated TPM data is random (it contains generated cryptographic\nkeys) so we really shouldn\u0027t be building it with Bazel.\n\nInstead, let\u0027s create it at runtime for e2e tests, and also actually\ngenerate separate TPM data per node with a common issuer for all.\n\nMoving the logic out of //metropolis/node also feels deserved, as this\nis all squarely in test territory.\n\nChange-Id: I257ee54c88ede685ba3faf573282b0f9228b10e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3132\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3b5a917c5a1ac49acad50eeacb5cf275efc3631e",
      "tree": "1da59c672acf3b68aab81fae38c6b6e5929b82a2",
      "parents": [
        "988403453448d27f6df6eea0a232e97c2a2e739b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 13:33:52 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 12:44:02 2024 +0000"
      },
      "message": "treewide: initialize empty structs with var\n\nChange-Id: I72d3993eaf5fe57c77b1dda8218e36a8cc11813d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3108\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "988403453448d27f6df6eea0a232e97c2a2e739b",
      "tree": "73318162f2e4f37f39b6619097ff425fb0908585",
      "parents": [
        "dd5b03c0f43dabdd1b2882a4147f5b4a828543b8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed May 22 13:03:55 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu May 23 11:44:32 2024 +0000"
      },
      "message": "metroctl: add --columns options for `node describe`\n\nChange-Id: I58763edc25de7ac50885beb343831ae1b65ec65d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3100\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5878603e42a090dca43467173a249d5a8be4533f",
      "tree": "ec164a6f23caf39dbbfbecd27f8abc2778a7bee1",
      "parents": [
        "f8baa3a161261f0906bb06825e49d7556a35376c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 13:47:41 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 12:55:58 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: fix %v in cases where we should use %w\n\nChange-Id: I5504dd8d12fe09d4373df619a3cecbfa39c7587b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3097\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8814f52a4b2baffd5bd1495483a806535e0eca02",
      "tree": "cc61e7260a52617b7ee62b4a44ada9ea4cfa26a0",
      "parents": [
        "99b021469b209bf184cd8d18749a7c1e74852a50"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed May 08 00:41:13 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 10:16:56 2024 +0000"
      },
      "message": "metropolis/pkg/logtree: move logtree protobuf definition to logtree pkg\n\nBefore this change we had the LogEntry message inside the metropolis\ncommon proto file. This splits it out into the logtree package to make\nit standalone in a future change.\n\nChange-Id: Idb26a829d6174efa946a6c4ce0f1b984cb2f18a2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3080\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b765f24f8f1c93b817c8a3f4f1eef2514562b140",
      "tree": "1afe10327fcbbefa99de0bf3bfcb0d28ca77abca",
      "parents": [
        "da1c950d5099b7384d9239d3590393080e9bc8f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed May 08 01:40:02 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon May 13 10:07:41 2024 +0000"
      },
      "message": "metropolis/cli/pkg/context: replace with signal.NotifyContext\n\nChange-Id: I457ccb83c7e25988755bb9463a8c83fc328a722b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3081\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "2f842379253a73de17fc67385765c7862e317453",
      "tree": "6b78e8f3ff5cbc2b4faeeebaf55e07a2369408fe",
      "parents": [
        "ddc5e6a098c24c1e69b5c692f534b05dbc763367"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 00:07:11 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 12:04:28 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: register context flag to the correct command\n\nChange-Id: I934a5094dfb1dcbd472300888a0aef89b3917719\nReviewed-on: https://review.monogon.dev/c/monogon/+/3078\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Hendrik Hofstadt \u003chendrik@monogon.tech\u003e\n"
    },
    {
      "commit": "cceb6a36f1084fb3ced6332be39a6a3256514ebb",
      "tree": "4eff76a3ccdc71387e2861ebec57a97df07d6fc9",
      "parents": [
        "fbd55e74da4468e977ab3c0bbbdbb481607d4eaf"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 16 13:33:15 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 30 14:51:05 2024 +0000"
      },
      "message": "m/c/metroctl: add exclude flag to node update\n\nThis allows excluding nodes from updates, required for doing update\nsequencing manually on large clusters until we have an in-cluster\nsequencer.\n\nChange-Id: Ia522f55496b562781815aceb1321b6a2de93653d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2985\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "b41b548058101e663a9591beaf2c491a44638d56",
      "tree": "4e977981d188d2e1d8cc37ba717c9a1787a04324",
      "parents": [
        "513df18bf6ae7ad0cc17807674ee561c518d0654"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:24:01 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: remove duplicate imports\n\nChange-Id: I3708f9b6fb95d9463e3b9da12757a4b19416124f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3026\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "513df18bf6ae7ad0cc17807674ee561c518d0654",
      "tree": "2f9ce2af2964680376b62b183d65a93ae615c2e9",
      "parents": [
        "a21783f4a1c8f67eea0ca354e31f73ccfd682688"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:44:50 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: errors variables should be prefixed with Err\n\nChange-Id: Ic277f98ebcd03356500ce7daba199738e701e81c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3025\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "73e9882a907654dbecfb55ea0f30030e0fedbb1e",
      "tree": "b69ef493fcdf76614ed82d64f1a9ec8c79bb0375",
      "parents": [
        "07541ae311e9477cf1e5a20af82a81ee77840afe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:13:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: cleanup error string formatting\n\nChange-Id: I9012ba58dded916984468219b214200144a439b9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3023\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2d5ae8fda8eb566280ec81a8368cc524b809a8b4",
      "tree": "a0a6165fc87599fdd9dc198d9ad35604fc7fcc0b",
      "parents": [
        "096654adb312a1bc858a0f886b8fba755eab52b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:11:53 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: add nolint after t.Skip/log.Fatal to make staticcheck happy\n\nChange-Id: I8b3dcff93fcb1d11673f327252693e6aba26c239\nReviewed-on: https://review.monogon.dev/c/monogon/+/3020\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "a355821fa06a7f68ff8ddca6050f71e92e4939a5",
      "tree": "17e5e7581716aa12139ffc082dd9d688ffcd1583",
      "parents": [
        "92316fdcb21e4cba0494793f5b90924accfd3fc3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:41:38 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "metropolis/cli/dbg: replace deprecated grpc.WithInsecure\n\nChange-Id: I288446fa4055ee95ae024b634228afbae633dede\nReviewed-on: https://review.monogon.dev/c/monogon/+/3017\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d5f851bb477638436826adec756fe562db526865",
      "tree": "d981b1c62d613b45fb55023da289098d7e377705",
      "parents": [
        "69fec522d5db79d07bb1f227c2ab39c57fdf2831"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 14:59:37 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 13:15:14 2024 +0000"
      },
      "message": "treewide: replace error comparisons and assertions with errors.Is\n\nChange-Id: Id2424eb155f2c6842c72c5fafd124d428ef901f2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2994\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "49c9ab02d7ce200db6defbc82d95646ac4d64804",
      "tree": "da4d21a21fe25fa6a9e6211e26d8c0ef4ebece1f",
      "parents": [
        "0c57d34190434556847345072371a42a9e1c3154"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:39:06 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:31:42 2024 +0000"
      },
      "message": "treewide: dont seed random\n\nAs of Go 1.20 there is no reason to call Seed with a random value.\nPrograms that call Seed with a known value to get a specific sequence\nof results should use New(NewSource(seed)) to obtain a local random generator.\n\nChange-Id: Ice1bbfefd900e6e9241428ec345f51f780eed91f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2960\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9ded9940bbdecf0453132077db997878db1e8f76",
      "tree": "26887ae0a8b3dbf4d42381c07a6565254f74e269",
      "parents": [
        "fb94c758e8c2a878905aeb1e7a3d46820c21b7a2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 08 21:30:17 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 09 12:17:06 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: don\u0027t try to use the bundle as installer\n\nThis slipped in when I refactored the install command, woops.\n\nChange-Id: I5c6178f9dcf4840b0d7efe9b6e62e35df242f7ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/2927\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ec2906a6874e223813593128b6e72594a1ecfb0f",
      "tree": "41dbab79fd40e9e84c4a2398cb6d3d2fd51298fe",
      "parents": [
        "000450835393a02845d425695947ecb3576e9b82"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Mar 27 01:36:43 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 03 14:55:50 2024 +0000"
      },
      "message": "treewide: rename node.NodeManagement to node.NodeManagementPort\n\nThis is the only constant not having Port in its name which breaks the\nnaming scheme. Lets clean this up by adding it.\n\nChange-Id: Ic34c81c6d80c69e20516f4fca3c26560bbcf3ac6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2911\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "240faa45248cb64227fa74ae57822af0340b884f",
      "tree": "b2a754b4f5a4e0a928fff0fd41f0cdf1a04c8c84",
      "parents": [
        "700f1c97e6e63635b1010f1080340f593411f96c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 04 20:03:32 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 11 16:34:27 2024 +0000"
      },
      "message": "m/cli/metroctl: fix nil pointer for \"node describe\"\n\nCloses monogon-dev/monogon#293\n\nChange-Id: Ic2397c3a145f39d0d41d1e74a7d18fce98606043\nReviewed-on: https://review.monogon.dev/c/monogon/+/2826\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "7661202fe654da6ea6403bce89157c4d678abf22",
      "tree": "aa48910ef8bcd14a50d69ebb099e913a6965ab4a",
      "parents": [
        "7c8684b9e8aa4b0b16efd5f01a040a504a814ebc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 05 19:20:36 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 05 19:00:45 2024 +0000"
      },
      "message": "m/c/metroctl: fix update logic when errors happen\n\nError handling in the node status polling loop did not exit the current\niteration of the loop when an error was encountered due to missing\ncontrol flow statements. This caused the update command to panic when\nthe node state could not be retrieved.\n\nChange-Id: I802d3073ca0ce85248f6692360879b391ac64e7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2834\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0a8797d0dc8055b5c2c300570ca9297fee2cf86f",
      "tree": "d47e4d7e924e76250fa90f9e91b17b8bcc6981a2",
      "parents": [
        "5f5f3300dec2d65eb0321a19f789cfdd65c12c17"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 04 18:58:47 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 05 18:40:23 2024 +0000"
      },
      "message": "m/cli/metroctl: add flag for k8s context name\n\nChange-Id: I57b261e7fdb0ceef63f8ce5f098ecb322ed85874\nReviewed-on: https://review.monogon.dev/c/monogon/+/2825\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7006cafc58cbff6765726447d84df1cd1531d346",
      "tree": "63f1d3af24e02e69f1d63fbc38dd2fad0785b292",
      "parents": [
        "79ffbbe040d0db6c4ff6f8cdc84fe13d537e2bfe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 27 16:49:39 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 27 16:30:34 2024 +0000"
      },
      "message": "m/c/metroctl: split cmd_install for future changes\n\nChange-Id: I99119cc8f5e3728cf832427d1cad79f69fbd48bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2793\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "9ce4071f43ce45198b702176a84342e9a8fc6e90",
      "tree": "49eb5319403c5b381b1c7d31cd5ba57619eafd32",
      "parents": [
        "c51d47d2b9990eb2196f5790f85895987f67daf4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 13 21:54:46 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 14 15:07:52 2024 +0000"
      },
      "message": "mc/c/metroctl: implement simple update sequencing\n\nAdds support for the max-unavailable flag, specifying the number of\nnodes which can be concurrently in the update process.\n\nTo implement this, we now wait for the node to report as healthy again\nbefore considering the update complete.\n\nThis allows simple gradual cluster updates.\n\nChange-Id: If6aa44d1b8f12aadd77e35f16513a4af521fa356\nReviewed-on: https://review.monogon.dev/c/monogon/+/2770\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c51d47d2b9990eb2196f5790f85895987f67daf4",
      "tree": "d9264dfb89d98f993d7c243484b3f36039c15e35",
      "parents": [
        "9c4bece001c15d6ae4793016b2e3854627b2164c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 13 18:40:26 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 14 11:44:08 2024 +0000"
      },
      "message": "metroctl: use persisted CA certificate for node connections\n\nAfter the TOFU change (review/2744 and friends), we can now use the\npersisted CA certificate (or a CA certificate from TOFU) when connecting\nto node services.\n\nChange-Id: I103b558f4f7a3087f1f27fdc4ee7f7e2ec03a981\nReviewed-on: https://review.monogon.dev/c/monogon/+/2769\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2a1d1b2e90a44e140dd95a492de0c857287e071f",
      "tree": "392015b9ffa5f6f38da494c0a2fc519f16883113",
      "parents": [
        "5d556cae21803212ac72a3713ed449b412f777af"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:07:42 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:04 2024 +0000"
      },
      "message": "treewide: replace datafile pkg with rules_go/runfiles pkg\n\nrules_go/runfiles provides the same functionality as our datafile\npackage. This change also contains some specifics for the now active\nbzlmod, which replaces all WORKSPACE related behaviour. As example the\nWORKSPACE name is now always set to _main.\n\n\nChange-Id: I1a69c72b479330a627b402135670f218c297906f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2745\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "568c38c74f95612fc3c236539b037ebe490302ee",
      "tree": "8380bdc8956c3843cce7fae9cf4c700576d22d87",
      "parents": [
        "7eeef0f448a4ec1737e2e63961f24f51eec5deae"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:39 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: use TOFU CA for Kubernetes with node pinning hack\n\nNow that we have a persisted CA certificate in metroctl, we can use it\nwhen generating a kubeconfig to verify the cluster.\n\nThere\u0027s a catch though: the presented node certificates do not have any\n\u0027global\u0027 name (just per-node names), and we can\u0027t easily tell Kubernetes\nto trust any name from a given CA. Thus, we introduce a hack to pin the\nname of the node we\u0027re connecting to within the generated kubeconfig.\n\nChange-Id: Iea6aa5c0012c793fcb42a94c3c9bf35ea5787ab1\nReviewed-on: https://review.monogon.dev/c/monogon/+/2744\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7eeef0f448a4ec1737e2e63961f24f51eec5deae",
      "tree": "690afce7d61fed7284991d3622d2b4b7f5948c14",
      "parents": [
        "925ec3de7a8562ef478216c77dff68c8235aeabd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:15 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: implement TOFU for CA certificates\n\nThis implements trust-on-first-use (TOFU) for connecting to a Metropolis\ncluster.\n\nIf no locally persisted CA is available, one will be retrieved from the\ncluster. If it is then accepted, it will be persisted for future use.\n\nTo retrieve the Cluster CA certificate we implement a new\nunauthenticated call in the CuratorLocal service. The alternative would\nbe to include the CA certificate in the served TLS chain, but that would\nlikely cause some backwards compatibility problems with existing client\nsoftware.\n\nFull TOFU (with an SSH style prompt) will be performed when the user\nfirst takes ownership of a cluster. Otherwise, user credentials\nincluding a certificate will be present, which allows the process to be\nsimplified by just retrieving a remote CA and checking it against the\nsignature of the credentials.\n\nChange-Id: I20002399935c2f13adc4526f5cceddad84b36a8f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2743\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "925ec3de7a8562ef478216c77dff68c8235aeabd",
      "tree": "da40b46730911a514b5f03e842ab3b3951f8f9cf",
      "parents": [
        "0c2801516b5191472bd4bc1a07ab6f414a805b27"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:38:20 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/cli/metroctl: clean up RPC API\n\nThis removes a bunch of logic from the metroctl core RPC functions,\nforcing users (currently only other metroctl code) to use grpc.Dial and\nthe metropolis RPC library directly.\n\nWe also make the core functions take ConnectOptions structures where\nappropriate instead of passing around tons of arguments.\n\nChange-Id: I4d7aa232a659097da35027dfb9b87c58cbb4ab84\nReviewed-on: https://review.monogon.dev/c/monogon/+/2742\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0c2801516b5191472bd4bc1a07ab6f414a805b27",
      "tree": "ddcffa8351f934c0a7066a6341b8bc6888e90ab3",
      "parents": [
        "ad86a55c9c507478e2c4989f50912d7869164066"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:33:19 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/n/core/rpc: limit API footgun availability\n\nThis unifies the interface of the\nNew{Ephemeral,Authenticated}Credentials calls. They now use the same set\nof CredentialsOpt options which allows both calls to request a\nparticular verification of the remote side of the connection.\nNewEphemeralCredentials also now requires an explicit WantInsecure\noption which surfaces attempts to dial the cluster without CA/node\nverification.\n\nChange-Id: Ibb65cb0952f6ff2092a3f55fe1c5a31bd2b72b36\nReviewed-on: https://review.monogon.dev/c/monogon/+/2741\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7dbf18c1932b5c7945a2ba53d7580a6857cda5d3",
      "tree": "18b42442d4585153e7644e1250993122d523c8b2",
      "parents": [
        "d5cace605ffd48f89db25456b260c550621b8b4c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 31 22:39:42 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 21:04:03 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: add `node delete` command\n\nChange-Id: I804829efe3e78a56cd44915c8351272ffa5c670f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2276\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0ccc85ba1eb4e067dc3eea0dd58b9ab0ebf48d29",
      "tree": "82ed8db26475204d2b73f44626b751a474763883",
      "parents": [
        "8d64a3bad1f73197398b28dacecef57266980c1a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:59:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "metropolis/node: add version to status\n\nThis implements submitting the Node\u0027s version to its\u0027 Status report to\nthe control plane.\n\nThis version is then displayed to the user in metroctl.\n\nChange-Id: I70eadb9a7001b6e50931245e8a6274da2fbdc5bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2334\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e0c0617e33e3b9c9a69b150189b1b13c010de9e0",
      "tree": "9908902859bf7245a07e27cb0e6c621f65f15a1d",
      "parents": [
        "48f22ce3a1558ad9994de3bde93f38e1aa997812"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 19 12:28:16 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 26 10:01:57 2023 +0000"
      },
      "message": "go/clitable: factor out from metroctl\n\nWe need the same functionality in bmcli, so factor it out from metroctl\ninto a generic library.\n\nChange-Id: I3fb3dfaae44a64d204e9220f117f379c382c5c4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2172\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3b25cf7c486781e018795066c3337e73ac7e526b",
      "tree": "82e9b47b2ffb0614f811b57eb000c249942686d7",
      "parents": [
        "45d6f1821bf047dbe2a71b8d21401dfb60583285"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 17 16:58:10 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Aug 07 13:27:50 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: add update command\n\nChange-Id: Iab7f930923f8009e0e14f96fc64d336614b1251e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1937\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ad131883747f73e51526dd6f163df23b913f69ed",
      "tree": "e5dee1d605cf4df4c507529185a82b49dbb841b3",
      "parents": [
        "cb9f3d3d495b12e26772271e368340a38244d586"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 28 16:42:20 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 27 13:58:35 2023 +0000"
      },
      "message": "treewide: port everything to blockdev\n\nThis gets rid of most ad-hoc block device code, using blockdev for\neverything. It also gets rid of diskfs for everything but tests. This\nenables Metropolis to be installed on non-512-byte block sizes.\n\nChange-Id: I644b5b68bb7bed8106585df3179674789031687a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1873\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "394b67e4208e1b2f06e61ab7e69ae58f444a56d8",
      "tree": "76280f2c02e4afe2f9ace484f7fd61040326df47",
      "parents": [
        "4f28b9ed6387dc22225f5e60a78f91ab8e3d65bd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 19 17:34:34 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jul 20 10:54:36 2023 +0000"
      },
      "message": "m/cli/metroctl: implement buildkind\u003dlite\n\nUsers can now build metroctl with:\n\n   bazel build //metropolis/cli/metroctl --//metropolis/cli/metrocli:buildkind\u003dlite\n\nTo request a metroctl built without a direct dependency on the rest of\nMetropolis. Such a metroctl tool will not be able to run `genusb`\nwithout manually specifying a metropolis bundle and metropolis installer\nkernel.\n\nChange-Id: Ic8c135392a7d0ec3120e5dbed8fd6636de578633\nReviewed-on: https://review.monogon.dev/c/monogon/+/1947\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "46a45f941632de6ef0085eee373a6c3dad5e9f53",
      "tree": "07f2b51255011347175505c94c2a99ebdb0832c4",
      "parents": [
        "9508b12bba50625eaccadc4aacf908ba538e3dd6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 19 17:09:52 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jul 20 10:54:36 2023 +0000"
      },
      "message": "m/c/metroctl: move installer dependency to runfiles\n\nThis is the first step in not requiring a full Metropolis build to build\nmetroctl.\n\nThings are still actively coupled at build time, but the resulting\nbinary can now run without any embedded installer.\n\nChange-Id: I55fc53c57ac6d1d3e75a225e7d7c79bae5759b67\nReviewed-on: https://review.monogon.dev/c/monogon/+/1945\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f0ec0f670512f82b8e1428acd577ffe1693d1f8f",
      "tree": "690b280b94ed797149986fbbbd697ca216386235",
      "parents": [
        "e95007b7090921e2aa4fdc24fea3d23f1bda048e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 17 13:43:38 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 18 13:58:24 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: add cert export command\n\nTo scrape metrics we currently need the owner certificate in a usable format.\n\nChange-Id: Ic6695b14a764d71d9c7b698c113fe0109d5820bf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1932\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7d1a0dee36f43f232481eb7ca4ec5d520a526907",
      "tree": "f63118614604040cdea0edfbfd7b644a124e8cda",
      "parents": [
        "0300077941db0edfdcac0ae42e4a5dad3e8d3fd7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 05 01:17:15 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 05 09:31:04 2023 +0000"
      },
      "message": "m/cli/metroctl: implement `k8s configure` command\n\nChange-Id: I3da7a627b1ada462e62b739bde2073743262e23e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1905\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "634a3cf16ecf4cd551847185e7b539d16ad52d2d",
      "tree": "7653202205bd238b3d9d02c2bf87ae66e277d933",
      "parents": [
        "b37d7d8ef4e318c9d35d34eff79fa0a304ff35aa"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 20:01:33 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 19:19:16 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: dont segfault on missing status\n\nChange-Id: Ib1a594e0ccca0f6a993e651b62e8adcfb9dc1ea4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1814\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b37d7d8ef4e318c9d35d34eff79fa0a304ff35aa",
      "tree": "d9426085481415352c83263204c81e2796032eed",
      "parents": [
        "c09327c6393202f0b425313a18a834954aeba572"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 19:06:44 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 18:18:30 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: dont write hostPort and report correct context\n\nChange-Id: I9ddccf35cf7a1fe7ee839250ceab0925fe8f0138\nReviewed-on: https://review.monogon.dev/c/monogon/+/1811\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c09327c6393202f0b425313a18a834954aeba572",
      "tree": "80eebf9133ee9126295b1f3aa1a80578854b830a",
      "parents": [
        "1600d9b3aa84c3259a3e8355cba7702825924b6d"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 17:48:56 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 18:18:30 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: set storage security policy inside installer\n\nWithout it the installed metropolis node will fail initialization\n\nChange-Id: I137107260fc7c4f50052791f58454dd07b98c29c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1809\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "1600d9b3aa84c3259a3e8355cba7702825924b6d",
      "tree": "89699bcfedda33bb6aa7a69a4a9b11d58e6009c6",
      "parents": [
        "98054a1ddb45d9e0246a0f7f7b93f9e90619a544"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 14 20:00:59 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 14 18:16:09 2023 +0000"
      },
      "message": "m/c/metroctl: add newline between unapproved nodes\n\nChange-Id: I1db00eb9396e597a4596ad2b491a75bbcebacd62\nReviewed-on: https://review.monogon.dev/c/monogon/+/1812\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3a3c517696210f23f2c1d74d766ddf5750a3f4b8",
      "tree": "f20c99b0329b5895948e1cef5991dde8e5483a79",
      "parents": [
        "fd6d4ebffd699ed87cd8bb41dd7a74e40cbe519c"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 01 19:54:17 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 06 01:46:23 2023 +0000"
      },
      "message": "m/c/metroctl/test: deflake test\n\nThis test was flaky as the node picked to run takeownership against was\ndependent on map key order. Only the first node runs the relevant\ncontrol plane services, thus if the second node was iterated over first,\nthe test broke. Fix this by using the NodeIDs slice to get deterministic\nordering and always pick the first node.\n\nChange-Id: Id4ac162a8295be4e84ad439ac5b70ff5a968af04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1784\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bdc803b54b55b61bb07cd75ba966320e42a9c3b7",
      "tree": "9313f3d0c542c80150301718ca94ed3e2a143b84",
      "parents": [
        "b78919e7708904f042756e280015786caecf668c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 27 10:55:09 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 18 08:20:57 2023 +0000"
      },
      "message": "metroctl: allow picking cluster TPM mode on bootstrap\n\nChange-Id: I3822a0daabdae381e817b0d52b50173889967ec8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1496\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e4a4ce1dbbc8abc8a0817f80fcb27437a9e6ca63",
      "tree": "1d2fc878f2e74e1e077dd8848c983c00e6ffcb6d",
      "parents": [
        "5df62bae21bd89f15321a54a33a2ff59f5cbdce8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:29:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 09:14:54 2023 +0000"
      },
      "message": "metropolis: finish implementing TPMMode\n\nThis wraps up the implementation of TPMMode in ClusterConfiguration,\nallowing operators to select whether nodes should or should not use\ntheir TPM, based on local availability.\n\nWe keep the default behaviour to require a TPM, as we\u0027d like to be\nsecure by default.\n\nChange-Id: Ic8ac76d88ecc9de51f58ca99c92daede79d78ad7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1495\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2cfafc9a4c34152dd93b58aa82df1720fb4dd6d6",
      "tree": "7a944999ab576f4b421651c2c4d513b0b572a1be",
      "parents": [
        "d0be371ea905c3729f98d91d255d775b7c5193d3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:42:47 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 13 14:03:02 2023 +0000"
      },
      "message": "metropolis/node/kubernetes: move worker services to KubernetesWorker nodes\n\nThis finalizes the Big Split. After this change, nodes will only run a\nkubelet (and related services) if they have a KubernetesWorker role\nattached.\n\nThe first node in a new cluster now starts out with KubernetesController\nand ConsensusMember. All joined nodes start with no roles attached.\n\nChange-Id: I25a059318450b7d2dd3c19f3653fc15367867693\nReviewed-on: https://review.monogon.dev/c/monogon/+/1380\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "8234c16354a5723aafab7ab24f0b833dc00c926d",
      "tree": "02a4df42d3ddaced5a7ffcc63ff0dcc3626cad4f",
      "parents": [
        "e5053ed77b4fcfce6f88e2f8f0e98a0581b795cb"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 17:05:50 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 09:23:42 2022 +0000"
      },
      "message": "m/c/metroctl: add configurable credentials path\n\nThis lets metroctl users provide an alternative path to their cluster\ncredentials. This will be used by the upcoming metroctl test harness.\n\nChange-Id: I49647e3b9d038c230b9678ebb73ba19da038a6d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/833\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "f777496512bc553faeb5e17c818a118c6a057817",
      "tree": "d2065bdd76de2941fcb6b81b48847eb83bf5cfec",
      "parents": [
        "b1e7ee4984d057ca1aeacd8e0d1489aa700cdf0c"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 12:26:55 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/c/metroctl: introduce proxyAddr parameter\n\nThis enables metroctl to interact with the cluster over a SOCKS5 proxy.\n\nChange-Id: I73a59b01cecec7b5988ca57d7ff71179da260949\nReviewed-on: https://review.monogon.dev/c/monogon/+/830\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b1e7ee4984d057ca1aeacd8e0d1489aa700cdf0c",
      "tree": "6e0780e12d525cbf6393771af8100204e9668110",
      "parents": [
        "f1234a9528f700bc3c44a45fe19d5a743da29af5"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 12:19:02 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/c/metroctl: use the global endpoints parameter\n\nThis makes the takeownership command use the global --endpoints\nparameter instead of its positional argument.\n\nChange-Id: I1ddb27fb1cbb5b299c97b6c0bca26883c9a51329\nReviewed-on: https://review.monogon.dev/c/monogon/+/829\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c437dc40ca06702f1241cf774391aba9e6e9d48f",
      "tree": "82690cf90c66ccc81a5b6cf9d3a88319111c419e",
      "parents": [
        "d5f2f7a0f5c84715c3b61f3e411c3eebc0e03e61"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 13:01:43 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 12:21:02 2022 +0000"
      },
      "message": "m/c/metroctl: implement the approve command\n\nThis adds a command to approve new nodes, and list nodes pending\napproval.\n\nChange-Id: I8f91d6e549c1eae298c5a4a6f11b53ae70a77f79\nReviewed-on: https://review.monogon.dev/c/monogon/+/825\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d5f2f7a0f5c84715c3b61f3e411c3eebc0e03e61",
      "tree": "21db9115ef94166e0b334b2910bbd0a11a69db4f",
      "parents": [
        "ac3324bb1d7ed8dd088aebf2fabc054dd7f8d046"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jul 05 18:48:56 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 11:17:20 2022 +0000"
      },
      "message": "m/c/metroctl: implement multi-node installation\n\nThis enables metroctl to include the ClusterRegister part of\nNodeParameters in generated installer images, making it possible for\nnewly installed nodes to join an existing cluster.\n\nChange-Id: I648207d70a4bec2ed7acf42e02f2b2c93319f559\nReviewed-on: https://review.monogon.dev/c/monogon/+/822\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "20d1dd1fdae016c19fcdf9607ab1503f1a45722a",
      "tree": "9c6aa6c757bac73b705a715801dda8aed12f9d16",
      "parents": [
        "7a510198b10c0b78f87c74a76e429097a757373d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Fri Jul 01 12:21:42 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jul 06 09:36:46 2022 +0000"
      },
      "message": "m/c/metroctl: automatically set up kubeconfig\n\nWhen running takeownership this automatically sets up the necessary\nkubeconfig configuration to make sure kubectl can access the cluster.\n\nChange-Id: I135bfda2a13ea169a41506d3615d4e8a0bb0ea21\nReviewed-on: https://review.monogon.dev/c/monogon/+/818\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "7a510198b10c0b78f87c74a76e429097a757373d",
      "tree": "3f5acc9f346b977de524017ae61346811ec24ddd",
      "parents": [
        "adb98f9d02a0b2c6b5def344d421a79ab9c6b37e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 04 15:31:38 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jul 05 11:33:43 2022 +0000"
      },
      "message": "m/c/metroctl: embed installer and add argument for bundle\n\nThis embeds the installer in metroctl for easier distribution and adds\nan option for passing a bundle path explicitly.\n\nFor the MVP this allows users to download metroctl and a bundle\nseparately and make an installer out of them.\n\nChange-Id: I00f481c30a2e843d336248aad0dc4030d03c4576\nReviewed-on: https://review.monogon.dev/c/monogon/+/821\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "45c196cc0e8a388d6e1d69744c1b8d1b52b4b74e",
      "tree": "b1f84240759c7b5d35328f39e888dcdfdb8131d4",
      "parents": [
        "3154587bc0fcf3b1dfecc0538ec55a616e2eae0c"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jun 08 15:04:15 2022 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jun 09 13:31:30 2022 +0000"
      },
      "message": "m/cli/dbg: fix kubectl command\n\nThe one thing that does not have tests, broke :-) Looks like a recent\nk8s upgrade changed the way the cli library handles os.Args.\n\nChange-Id: If0f191026694281f98b3cba41f30e2fe7c217363\nReviewed-on: https://review.monogon.dev/c/monogon/+/759\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d13c1c64387ca9a83bb832a3faa5c4b07268d265",
      "tree": "0c0f534db4726e4400486aad25235e8c573d455e",
      "parents": [
        "79a1a8f9dd49afe8e0a2364c4586b8f39525b204"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 30 19:58:58 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 05 10:35:29 2022 +0000"
      },
      "message": "treewide: switch to gomod and bump everything\n\nThis switches version resolution from fietsje to gomod and updates\nall Go dependencies. It also bumps rules_go (required by gVisor) and\nswitches the Gazelle naming convention from go_default_xxx to the\nstandard Bazel convention of the default target having the package\nname.\n\nSince Kubernetes dropped upstream Bazel support and doesn\u0027t check in\nall generated files I manually pregenerated the OpenAPI spec. This\nshould be fixed, but because of the already-huge scope of this CL\nand the rebase complexity this is not in here.\n\nChange-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833\nReviewed-on: https://review.monogon.dev/c/monogon/+/639\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "399ce5537c9d74b2335add19dcb6a4043d9468b5",
      "tree": "a7e086c69c69f8745ca123764c6929e090e0d80b",
      "parents": [
        "0ea448a92ad342bcb0ecb05a2aa9652ebe48b62a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 29 12:52:42 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 30 15:50:59 2022 +0000"
      },
      "message": "m/n/core/rpc: provide lower-level gRPC dialing constructs\n\nThis replaces the 2x2 cartesian product of ready-made dialing functions\n(New{Authenticated,Ephemeral}Client{Test,}) with plain gRPC Dial\nOptions.\n\nThis is partially to reduce the magical aspect of the RPC library (after\nall, we are just using gRPC here, no need for these wrappers), but\nmostly in preparation for having another dimension added: dynamic\ncluster resolving, which will also be just provided as a Dial Option.\n\nChange-Id: Id051ca5204e4b44afcc10164f376ccf08af46120\nReviewed-on: https://review.monogon.dev/c/monogon/+/640\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "49a1ea42df1cf9f6f3b401a52565496c32b18308",
      "tree": "f6237d3438df1638517ab42b8609460738845518",
      "parents": [
        "f3c4b42225fb7340e12cc74f9afc2ecc241e4304"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Mar 15 13:43:59 2022 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Mar 17 07:51:54 2022 +0000"
      },
      "message": "m/c/p/datafile: expose ResolveRunfile\n\nThis exposes ResolveRunfile, which can be used to access runfiles using\na filesystem path.\n\nChange-Id: Ib3c41f86264368a076840618c682cb288b3b6f98\nReviewed-on: https://review.monogon.dev/c/monogon/+/630\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "705a4025b3a28f5ddc5c62d40d3011437a0199f0",
      "tree": "2212a99e1dd855e14160e6acae7d4f102484ac73",
      "parents": [
        "edffbb5a67e79fdb075c382995eaa0b52a16bfdd"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 23 11:51:06 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jan 12 15:21:36 2022 +0000"
      },
      "message": "m/c/metroctl: add k8s credentials plugin\n\nThis adds a command implementing the K8s client-go credentials\ninterface. It provides Metropolis credentials to Kubernetes clients\nlike kubectl for use with an authenticating proxy being added later.\n\nChange-Id: I11d29f80134c2ec0839f0619eaebc4a4bb2aa3e0\nReviewed-on: https://review.monogon.dev/c/monogon/+/508\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "edffbb5a67e79fdb075c382995eaa0b52a16bfdd",
      "tree": "7941e1dfb40d13b00dbcd1071c3e7ecfdaee3963",
      "parents": [
        "950c26d52a08499ebf45ee2b4b0e46d3bea66dee"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jan 11 15:27:22 2022 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Jan 12 15:20:32 2022 +0000"
      },
      "message": "m/{t,n}/installer: move to m/installer\n\nChange-Id: I8fd15f1fa1e151369df251d1469e84cfeffd26fd\nReviewed-on: https://review.monogon.dev/c/monogon/+/510\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "dc1bec4fd5d6b43d2218f466955720b911cefb17",
      "tree": "ddcc7e89eb8839a8353b83a54046e7553d73f095",
      "parents": [
        "97783222fe1b7585af74ee58206b0f614da68975"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 16 17:38:53 2021 +0100"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Dec 17 13:45:19 2021 +0000"
      },
      "message": "m: *: reformat imports\n\nReformat done by goimports with the following patch applied: https://go-review.googlesource.com/c/tools/+/321409/ .\n\nChange-Id: If90ccd1bd087988425e4f74b7cf4e65c14112722\nReviewed-on: https://review.monogon.dev/c/monogon/+/489\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "97783222fe1b7585af74ee58206b0f614da68975",
      "tree": "1a21deb8bd9f51019a3d229e476b49d357356162",
      "parents": [
        "e2e0371cd685fcfa600a9ad49b29c91fba4a1261"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Dec 14 16:04:26 2021 +0100"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Dec 17 13:45:13 2021 +0000"
      },
      "message": "m: {cli,installer}: runfiles through datafile.MustGet\n\nThis implements datafile, a small library to more ergonomically resolve\nBazel runfiles:\n\n1. It also works in cases where a tool doesn\u0027t run through `bazel run`.\n2. It provides a MustGet wrapper which returns already read bytes and\n   removes some boilerplate at the callsite.\n3. It allows us to extend the library in the future to prepare special\n   \u0027self-contained\u0027 builds of some binaries, for example to bundle the\n   installer kernel in metroctl.\n\nWe then use this library to simplify the installer and installer tests.\nIn the installer, we technically remove the ability to specify arbitrary\nkernels/bundles on the command line, but is this functionality actually\nuseful?\n\nChange-Id: I46155b9951729c810e0d36930b470edfdfd82943\nReviewed-on: https://review.monogon.dev/c/monogon/+/484\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "a9b455f2be1fb9dbda3217adb69bc0076113a814",
      "tree": "aa8484f4e163e02c2c7a80d8e6eeba993416a616",
      "parents": [
        "9e7961b7be5a87aca8bdf6bacb1675625348c883"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 07 03:53:22 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 16 12:00:23 2021 +0000"
      },
      "message": "m/c/metroctl: add takeownership command\n\nThis add a simple command to take ownership of a cluster previously\ninstalled using metroctl install. It calls the newly-formed cluster and\nretrieves a signed owner certificate for the owner key and stores that\nto disk for further use by metroctl.\n\nChange-Id: Ibd2771c571bda41270c3bbb110105f4f8f5b118d\nReviewed-on: https://review.monogon.dev/c/monogon/+/463\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "78e590504a86b38b313bdc6463cdda81f5dc8479",
      "tree": "c4f1e6477a77ddb6a5c42f0d7dd93efb3a5ea738",
      "parents": [
        "fdb7322f8a9061c6c57c89ee1fb4b754589802e7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Dec 15 18:46:18 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 16 12:00:23 2021 +0000"
      },
      "message": "m/c/p/context: add CLI context package\n\nThis adds a package for getting contexts useful in a CLI application.\nThe context inherits from a parent (usually contxt.Background in CLIs)\nand is cancelled when the user cancels the application by interrupting it\n(most commonly by pressing Ctrl+C, but sending a SIGINT will also do).\n\nChange-Id: Ibfeee17f3f6284745d3fbf3395d4b3ca9805258f\nReviewed-on: https://review.monogon.dev/c/monogon/+/486\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6c35e97e7da34dd8497f4d40172ecf745448ad21",
      "tree": "17e023a1849f629a641c43eff27e4dfdc7a9c04a",
      "parents": [
        "999e1db0130f148ac6e79e1acbb5ee68db1dcb64"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 14 03:08:23 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 14 11:27:13 2021 +0000"
      },
      "message": "metropolis: align EFI partition layout\n\nThis moves non-EFI-related data inside the ESP from under the EFI\nsubdirectory to the root. The data moved is never accessed from EFI and\nthus shouldn\u0027t be under the EFI folder. This also aligns localstorage\nwith the new layout as previously it and osimage didn\u0027t agree on a\nspecific layout, indirectly breaking the installer.\n\nChange-Id: I36bdc9782e181dafab40aaa85cc0b4eaf2448f6e\nReviewed-on: https://review.monogon.dev/c/monogon/+/483\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "f8ede09aea5ecd9b90213e09efd75210ce0a043c",
      "tree": "05e175a58fc980c13fe50df879dd157dc4e77723",
      "parents": [
        "dcfc6787c736ae3461138224a33c5d5c560df2ff"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 08 20:50:57 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 30 22:29:22 2021 +0000"
      },
      "message": "m/c/metroctl: use in-tree artifacts if called using bazel run\n\nThis allows for not specifying a bundle or installer and instead\ntaking them from the current build if running under bazel run.\nSo bazel run //metropolis/cli/metroctl -- install will automatically\nbuild and use the bundle and installer. This just changes the defaults,\nif you manually specify installer and/or bundle these are still\nrespected.\n\nChange-Id: I0676c9b28308544712c06881ad6ace2dba4cab2c\nReviewed-on: https://review.monogon.dev/c/monogon/+/425\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "764a2de7911a42d57720911332a12895f0aad707",
      "tree": "dd0e31cee8fb5c753a762462e9eb16f776c3ec73",
      "parents": [
        "e65731049afb6fd49da80f064fa40a28c9d5741d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 22 16:26:36 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 22 20:39:51 2021 +0000"
      },
      "message": "tree-wide: rewrite ioutil functions to their replacements\n\nThe ioutil package has been deprecated in Go 1.16 [1]. This CL removes\nall our own users of that package and rewrites them to use their\nreplacements in the os package. I initially wanted to do this with a\ngofix but because all replacements were signature-compatible I just\ndid it with a few string replaces and then ran goimports to fix up the\nimports.\n\nI intentionally didn\u0027t rewrite the patches as that would require a\ndifferent process and is IMO of less value.\n\n[1] https://github.com/golang/go/issues/42026\n\nChange-Id: Iac6663a1f1ee49f9b1c6e4b3d97e73f2c3b54a13\nReviewed-on: https://review.monogon.dev/c/monogon/+/449\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "e65731049afb6fd49da80f064fa40a28c9d5741d",
      "tree": "21dcad96d01c15fe0d0044c6ff72fbc18ab9105a",
      "parents": [
        "c71efc9d3b6c9d626e752ec5e17ea6893a3fbe34"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 02 14:15:37 2021 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Nov 22 12:55:56 2021 +0000"
      },
      "message": "m/c/metroctl: add MVP disk/image-only installer\n\nThis adds a very minimalist metroctl install command.\nOnly supports boostrapping and a single owner key.\nBut good enough to set up a node.\n\nChange-Id: I9306a054b9540a3a0c70621f3f5d9cb34fc18d14\nReviewed-on: https://review.monogon.dev/c/monogon/+/417\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "44d2ad428573bb20ee6be4b957b1abbacad50fcb",
      "tree": "441b11be3d9ac7dd6038f7a043055893403cf542",
      "parents": [
        "8fda084b12ad482da4b76888078cc53bfd3c2e20"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Nov 10 17:05:34 2021 +0100"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Nov 12 15:19:22 2021 +0000"
      },
      "message": "m/cli/metroctl: reformat\n\nAnother annoying instance of my local gofmt/goimports having stronger\nopinions about code formatting than our CI. Really ought to synchronize\nthem together ASAP.\n\nChange-Id: Ia4b9a30be3c19c0fc755d7659f26e7233b4f4598\nReviewed-on: https://review.monogon.dev/c/monogon/+/435\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "0b12170ae5e0ca561d1575a8e107da1b9690b2ca",
      "tree": "ce34dfbff7d4aed88d314e9fdf683874ee8cfa49",
      "parents": [
        "b7f8e9a05f2e47e63b697ae93a9c72741aef98c1"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Sat Nov 06 12:54:58 2021 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Nov 08 13:04:23 2021 +0000"
      },
      "message": "m/c/m/core: adjust the minimum ESP size\n\nOVMF firmware refuses to boot from a smaller ESP.\n\nThis is due to unknown factors. This patch addresses that problem by\nadjusting the partition\u0027s minimum size to slightly more than FAT\u0027s\nadvertised lower bound of 32MiB.\n\nChange-Id: I1516ce19a162cd8da51e92aa7783c5a48ecfa77f\nReviewed-on: https://review.monogon.dev/c/monogon/+/421\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "57479bb5c00df6127e592716b6d644c3c13d75e9",
      "tree": "db782aca2c0ea03fac70ab9d0cc89d30abf838ea",
      "parents": [
        "070ec4eb5f6853185209494455a9a7b751cf32e1"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 26 14:01:06 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 02 12:35:45 2021 +0000"
      },
      "message": "m/c/metroctl/core: add frontend-independent metroctl support pkg\n\nThis adds metroctl/core, a package which contains parts of metroctl\nwhich do significant amounts of work beyond just providing a CLI for\nthem.\nThis package is intended to be used for integrating with functions\nprovided by metroctl, for example for using them in integration tests\nor writing other frontends providing functionality similar to metroctl\n(like a GUI or webapp).\n\nChange-Id: I8a56bfbefce8d18c6c9be3349e3c7a15a699d009\nReviewed-on: https://review.monogon.dev/c/monogon/+/411\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nVouch-Run-CI: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "6adf8840e846b15b7b34151c3432c886b540f420",
      "tree": "c10422b27c730cdc7bdfb56e493aac784de5904a",
      "parents": [
        "2f9f3876dd51d6a3031220d578a18c98270c74a8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 05 13:39:11 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 05 16:00:31 2021 +0000"
      },
      "message": "m/c/metroctl: add skeleton and dependencies\n\nThis adds the skeleton for the Metropolis control command line,\nmetroctl. It currently consists of a single root command doing nothing\nand the dependency updates for viper, the library providing command\nline parsing and completion support.\nActual functionality will be in subsequent CLs.\n\nChange-Id: I73d0e2956d9550902a80295928e94cb32bb12cfc\nReviewed-on: https://review.monogon.dev/c/monogon/+/337\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "9d6c4c78bca9da0db7e40e5de776528f3d83a7dd",
      "tree": "71cba058637a866b7c87e3f296dd4995d0171cfe",
      "parents": [
        "257acab41f5a35575ca0f2dbc9568b1bd75d2570"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 20 21:16:27 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Aug 11 15:38:58 2021 +0000"
      },
      "message": "Support injecting container images for development\n\nThis adds the LoadImage RPC and an accompanying subcommand\nto the debug API which allows loading images into\nan existing Metropolis node for\ndevelopment or testing.\n\nChange-Id: I51d802630ae4c95fb874e01bfb6510ab69c322e1\nReviewed-on: https://review.monogon.dev/c/monogon/+/219\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "216fe7b3ae949376467f626f339423a31ea7da97",
      "tree": "b0fe587b671a76bf6229339825d2a61df7fc847b",
      "parents": [
        "6ebdc418f3c4799c12368e34ea78dc9c9757fb54"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri May 21 18:36:16 2021 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri May 28 17:54:03 2021 +0200"
      },
      "message": "*: reflow comments to 80 characters\n\nThis reformats the entire Metropolis codebase to have comments no longer\nthan 80 characters, implementing CR/66.\n\nThis has been done half manually, as we don\u0027t have a good integration\nbetween commentwrap/Bazel, but that can be implemented if we decide to\ngo for this tool/limit.\n\nChange-Id: If1fff0b093ef806f5dc00551c11506e8290379d0\n"
    },
    {
      "commit": "09c275bc489bc1de406be9a2e8f158eaa87b7c61",
      "tree": "31c62a93e37f6052aa99e2addacef6c060d75e85",
      "parents": [
        "37050126ef89ec30cc677c272471debe55ec0d69"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Mar 30 12:47:09 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Apr 13 11:04:05 2021 +0200"
      },
      "message": "Add ftrace support to DebugService\n\nThis allows us to do ad-hoc kernel-level tracing on a running Metropolis node.\nUseful for tracking down complex bugs.\n\nExample: `bazel run //metropolis/cli/dbg -- trace -function_graph_filter blkdev_* function_graph`\n\nTest Plan: Debug utility, manually tested\n\nX-Origin-Diff: phab/D748\nGitOrigin-RevId: 924eb795250412a73eb30c0eef4a8c1cc726e5fd\n"
    }
  ],
  "next": "0ed2f96a3a86aff2c9ce36289aa5d58a75f4d59b"
}
