)]}'
{
  "log": [
    {
      "commit": "a857936232478afe0329b2d66ea8a794ca6f3667",
      "tree": "7f9308b1be0eef9de07c25ae85deb6aeb55b1576",
      "parents": [
        "d1683d27351bb06f1e896ce29512531b8e67e57c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 11:34:26 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 16:44:11 2025 +0000"
      },
      "message": "m/n/core/network: fix panic\n\nIf the channel is closed, then u.Link is nil, and calling .Attrs() on it\ncauses a nil pointer dereference panic.\n\nChange-Id: I2d1b7b4e38957e6a55ef663876ac571e2dd6d3c1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3809\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d1683d27351bb06f1e896ce29512531b8e67e57c",
      "tree": "11507526efe5e2d116151836e79a04e42bc341ae",
      "parents": [
        "a10d0cb2c85c0ede60be6cc6d2dc7a66750ddecb"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Jan 21 10:54:48 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 16:44:11 2025 +0000"
      },
      "message": "osbase/loop: clean up code\n\nWe no longer need to use unsafe or raw syscalls here.\n\nChange-Id: I10a504be20c949bf41e7af5b33f4439b1580f1cc\nReviewed-on: https://review.monogon.dev/c/monogon/+/3808\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a10d0cb2c85c0ede60be6cc6d2dc7a66750ddecb",
      "tree": "540bc92832ea12cc8427c0bcd785498dfcc30119",
      "parents": [
        "f408e8123a3919a27d51983973a1bd41eaac1162"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 13 14:44:15 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 20:14:58 2025 +0000"
      },
      "message": "treewide: Fix ENUM_VALUE_PREFIX rule exception\n\nChange-Id: Ibc2fd66711f6aa347e88e2379c12db1898373700\nReviewed-on: https://review.monogon.dev/c/monogon/+/3804\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f408e8123a3919a27d51983973a1bd41eaac1162",
      "tree": "2b547a7f492136a810ea6c1391eb3ee9a619f3e8",
      "parents": [
        "20c2ff08e3ec38d2388c80b580a129fc8a851add"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 08:48:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 20:13:46 2025 +0000"
      },
      "message": "cloud/agent/api: Unmark MESSAGE_PASCAL_CASE rule exception as todo\n\nCurrently we cannot mark exemptions on a per-line basis. This is tracked by rules-proto-grpc/rules_proto_grpc#398\n\nChange-Id: Ie9ece6539b69edccf1b6b4078977e65e7ffb0b01\nReviewed-on: https://review.monogon.dev/c/monogon/+/3803\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "20c2ff08e3ec38d2388c80b580a129fc8a851add",
      "tree": "894b412c6ed8422b08401a17ab15050863734fdd",
      "parents": [
        "2f9f624dee572823d0ead529c1507bb3605d9ae5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 08:34:38 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: Fix FIELD_LOWER_SNAKE_CASE rule exception\n\nChange-Id: If59edf4c5483416c9779c382a5aafa58c7f73385\nReviewed-on: https://review.monogon.dev/c/monogon/+/3802\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2f9f624dee572823d0ead529c1507bb3605d9ae5",
      "tree": "29977f8a39336929d45189a119bc7e4bf82c4bf5",
      "parents": [
        "3b62407486d2c1fe7cd24a5f38e86fb19d1e2fa3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 08:25:54 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: Fix PACKAGE_DIRECTORY_MATCH rule exception\n\nChange-Id: I8c4061f8d147a4708167b0674abfa23784a7f40d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3801\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3b62407486d2c1fe7cd24a5f38e86fb19d1e2fa3",
      "tree": "bfe8bbebd74234a135aa48bb72d071097120c487",
      "parents": [
        "15c46ccb52bc2544d35eee9a80b3c2fb5c0756e2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 07:16:35 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: add buf_proto_lint_test to all proto_library targets\n\nChange-Id: Iaf6dc22fdbef6fcfd0bedff755bcdb06b56a6631\nReviewed-on: https://review.monogon.dev/c/monogon/+/3800\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "15c46ccb52bc2544d35eee9a80b3c2fb5c0756e2",
      "tree": "18a130c2eaf3c52b135e9278520b6fca35ddc710",
      "parents": [
        "f92158ec7c4b6e48134c2a2e0c0ca86ecebfa322"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 17:41:42 2025 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 18:11:01 2025 +0000"
      },
      "message": "workspace: update cacerts\n\nRemoved:\nSecureSign RootCA11\nEntrust Root Certification Authority - G4\nSecurity Communication RootCA3\n\nAdded:\nGLOBALTRUST 2020\nTWCA CYBER Root CA\nSecureSign Root CA12\nSecureSign Root CA14\nSecureSign Root CA15\n\nChange-Id: Ief327dba2eaf243ae94b9b0ee69a17da4e4688eb\nReviewed-on: https://review.monogon.dev/c/monogon/+/3786\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f92158ec7c4b6e48134c2a2e0c0ca86ecebfa322",
      "tree": "4afabfba93b77283e85678170d907bf26d3b4a45",
      "parents": [
        "5b83c5278b9ecd4f04e75ac0ddb7fcb0cfb0f20a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 17:33:51 2025 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 18:11:01 2025 +0000"
      },
      "message": "WORKSPACE: update linux to 6.6.71\n\nStable release bump, no significant changes expected.\nNo relevant regressions on the linux-regressions list observed.\n\nChange-Id: I382ef8f5db4fe912c693f542fadf8daa9f6702cd\nReviewed-on: https://review.monogon.dev/c/monogon/+/3785\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5b83c5278b9ecd4f04e75ac0ddb7fcb0cfb0f20a",
      "tree": "364e0339c662ee9fb005d8072d58c8246a30a40b",
      "parents": [
        "4beaf4fac641e77fd08b7b9a3139f7d27fddac72"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 14 16:12:38 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 12:38:32 2025 +0000"
      },
      "message": "m/n/c/curator: fix panic caused by race\n\nThe starting/stopping of the respective follower/leader implementations\nis not synchronized with the state event source. Thus it can happen that\nrequests get routed to an improper implementation. The follower\ncorrectly rejected requests when the current state indicated that it was\na leader, but panic\u0027ed if it was neither which is a valid state.\n\nReject requests when it is not a follower, not just if it is a leader.\n\nChange-Id: I5cee85a44cb8a1ce1f4f28c49930abd1d14ac4e1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3782\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4beaf4fac641e77fd08b7b9a3139f7d27fddac72",
      "tree": "6185d3a82ca7350d0db9ceb56fadf5e68bc02adc",
      "parents": [
        "5c52062f02eb3b32b39ed4ccb9aa6e70c7e1af0d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 14 16:10:55 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 12:38:32 2025 +0000"
      },
      "message": "m/t/launch: use undeclared test outputs for node logs\n\nThis allows easy access to node logs for failed tests. If\nNodeLogsToFiles is set and the environment variable is available, this\nis used instead of the test temp dir.\n\nChange-Id: Icf0a99280e4bfabb34f9259ea0e94ac3d6cc4b05\nReviewed-on: https://review.monogon.dev/c/monogon/+/3781\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5c52062f02eb3b32b39ed4ccb9aa6e70c7e1af0d",
      "tree": "ac43dda542ea4724382d7d34c40d8024ff937191",
      "parents": [
        "896b1388fb26096ccaf60ff99ac8da2a9b07dab3"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 14 14:14:52 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 12:38:32 2025 +0000"
      },
      "message": "third_party/k8s: backport data race fix\n\nThe metrics component of K8s had a very questionable WithContext\nimplementation which set the context into the metric, not the returned\nhandle. This causes incorrect metrics as well as data races. Backport\nthe fix from upstream.\n\nChange-Id: I4f8ce9d194ba9e7b3420007863286ad9f5b612b6\nReviewed-on: https://review.monogon.dev/c/monogon/+/3780\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "896b1388fb26096ccaf60ff99ac8da2a9b07dab3",
      "tree": "1f70faa162e8af73f4d08d75dceee15010f849c5",
      "parents": [
        "25e0d8f5bdcae3b03b1bc43cad49b4ed0b4e567e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jan 15 13:54:26 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jan 16 08:56:10 2025 +0000"
      },
      "message": "m/n/kubernetes: switch to typed workqueue\n\nThe functions and types without \"Typed\" are deprecated, and should be\nreplaced by the corresponding ones with \"Typed\".\n\nChange-Id: I41c378df953ae4964d1247e470ccf38f13ea1f47\nReviewed-on: https://review.monogon.dev/c/monogon/+/3784\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "25e0d8f5bdcae3b03b1bc43cad49b4ed0b4e567e",
      "tree": "d82d60b706433dafabc494619032e35044aa3151",
      "parents": [
        "bdd0d25cda74c662cef174c032057cb2aba29e8a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 02 23:46:24 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 14 16:15:53 2025 +0000"
      },
      "message": "treewide: remove usage of global tags between build configs\n\nChange-Id: Ie7c4714d30f8c3342a97451d58e14cfb43087586\nReviewed-on: https://review.monogon.dev/c/monogon/+/3776\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bdd0d25cda74c662cef174c032057cb2aba29e8a",
      "tree": "686f5a06fd23332710835d94d925b3e63bab539b",
      "parents": [
        "156248b949f3da7c8d0f4f46cb97ac7606464952"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 22:31:08 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 14 12:07:21 2025 +0000"
      },
      "message": "build/bindata: delete unused tooling\n\nChange-Id: I4febbc6b5a8bf8dc9aa6aa1c56e5ae70214974ef\nReviewed-on: https://review.monogon.dev/c/monogon/+/3773\nTested-by: Jenkins CI\nReviewed-by: Hendrik Hofstadt \u003chendrik@monogon.tech\u003e\n"
    },
    {
      "commit": "156248b949f3da7c8d0f4f46cb97ac7606464952",
      "tree": "ff52faf242a29f1916edad64bca6282f8030ee66",
      "parents": [
        "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 00:27:45 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 20:13:30 2025 +0000"
      },
      "message": "treewide: format repo with buildifier\n\nChange-Id: Ia7aebeb7bba5b119c9157d1ad805cc477bcbb68a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3774\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2",
      "tree": "46f0f2d12a36cbeb477d54a57d50a11d62277c5c",
      "parents": [
        "3a171d123fff540c8c9d646152a5d5ed9ef873de"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 09 21:39:55 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 09 22:13:01 2025 +0000"
      },
      "message": "osbase/net/dump: correct address prefixes if not on-link\n\nCurrently if an interface address has an on-link prefix (i.e. is not a\n/32 or /128) this gets automatically added as a route. Certain\nin-the-wild configs have these but also a route with a gateway, making\nthe prefix not on-link. Fix the interface addresses in these cases to a\nsingle IP to avoid the spurious on-link route.\n\nChange-Id: If601c61cbbab7f05e72c7f4908071def2dcdb44b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3771\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3a171d123fff540c8c9d646152a5d5ed9ef873de",
      "tree": "62fe245a0182c3ba931d8c33278f2dd89c35e77b",
      "parents": [
        "0996ea85ca6200e1729941d316f7891835871938"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 23:51:23 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 21:19:31 2025 +0000"
      },
      "message": "treewide: add race-detector config\n\nThis also disables all `pure \u003d \"on\"` attributes as they propagate too\nfar and break the race detector because rules_go contradicts itself by\nforcing pure go even when CGO is required by the race detector. We build\neverything for our node images static and pure via a transition anyway,\nso this is actually fine.\n\nChange-Id: I5cd3879fba4258caa94df4dbea5c6472867b7e34\nReviewed-on: https://review.monogon.dev/c/monogon/+/3725\nTested-by: Jenkins CI\nReviewed-by: Hendrik Hofstadt \u003chendrik@monogon.tech\u003e\n"
    },
    {
      "commit": "0996ea85ca6200e1729941d316f7891835871938",
      "tree": "7e570810e91743d5b689aa87118fce7fb56a3cb2",
      "parents": [
        "16ebf144db82c8a57869456d159352e5aa2f4392"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 20:57:23 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 21:19:31 2025 +0000"
      },
      "message": "cloud/shepherd/provider/equinix: fix data race\n\nThis directly accesses the map without using the lock. Adding that fixes\nthe data race\n\nChange-Id: I7d7f8aa59cfa2d564d2702926b05831f7c7ffa87\nReviewed-on: https://review.monogon.dev/c/monogon/+/3770\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "16ebf144db82c8a57869456d159352e5aa2f4392",
      "tree": "b26ca61256f9773e3680291876032729d81a29d1",
      "parents": [
        "eda1e1228ee6174e266cc0b4a30310b56a292558"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 09 20:54:52 2025 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 09 20:53:07 2025 +0000"
      },
      "message": "metropolis/node/core: fix typo\n\nChange-Id: I07b362e411d22ddd99eecbb1b19b5a5e604c6d34\nReviewed-on: https://review.monogon.dev/c/monogon/+/3769\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "eda1e1228ee6174e266cc0b4a30310b56a292558",
      "tree": "c1fa1d75febdfc1e963480b1df18af438a3784a7",
      "parents": [
        "d0dd1f538ab8ca0085e388824fd5ad3f0fb5a855"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 05:42:53 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 18:39:22 2025 +0000"
      },
      "message": "treewide: bump bazel dependencies\n\n- rules_python to 1.0.0\n- rules_go to 0.51.0\n- gazelle to 0.41.0\n- rules_oci to 2.2.0\n- aspect_bazel_lib to 2.10.0\n- rules_multirun to 0.10.0\n- rules_cc to 0.1.0\n\nChange-Id: I11c662d478b66d313d47e8a7700e129fd67743ce\nReviewed-on: https://review.monogon.dev/c/monogon/+/3766\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d0dd1f538ab8ca0085e388824fd5ad3f0fb5a855",
      "tree": "506144866693ea0ea80f8aa73a17a65d381dad19",
      "parents": [
        "5c717dd5a7dfecc7a0c629abf5b0b9af7583fe95"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 04:42:19 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 16:58:17 2025 +0000"
      },
      "message": "osbase/bringup/test: unflake test\n\nThis is a fun one and sadly semi-expected/wanted behavior. Because we\nhave the exception tracing of the kernel enabled, it captures all\nunhandled signals and prints them into dmesg. This is then written to\nserial, which then is read by our test. Because this is all serial and\nthere is no locking, the kernel and our test can race each other and\nthe tests can\u0027t identify the string which identifies a PASS. It\u0027s simple\nto fix, as we can just disable the exception trace before provoking a\nsegfault.\n\nCloses monogon-dev/monogon#366\n\nChange-Id: I8766a28bf339e9e2d5b0aec415c3affe0db82f50\nReviewed-on: https://review.monogon.dev/c/monogon/+/3758\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5c717dd5a7dfecc7a0c629abf5b0b9af7583fe95",
      "tree": "d698cacb7a91551f73fd909c330cb41c660e86d8",
      "parents": [
        "deaf0c044579516df1fb510c106e8e7881028701"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jan 08 19:35:29 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 09 13:04:14 2025 +0000"
      },
      "message": "m/t/e2e/suites/kubernetes: remove orphaned tests\n\nThese were never automatically exercised as they relied on a\nmanually-set environment variable. The infrastructure that they were\ntesting was long removed, remove them as well.\n\nChange-Id: Ifdf89cfc21fd9069db2577d3ffc7c7ad674da703\nReviewed-on: https://review.monogon.dev/c/monogon/+/3757\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "deaf0c044579516df1fb510c106e8e7881028701",
      "tree": "d9207b12566cbb64234994e16a0f4a1923b0e4c7",
      "parents": [
        "681d5157b955f6b942c620837d1a9e90bdefc983"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 00:17:15 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 21:08:46 2025 +0000"
      },
      "message": "metropolis/node/core: fix formatting call to Info instead of Infof\n\nChange-Id: I1188104834e3620907b1ae3df2551d5fffcae713\nReviewed-on: https://review.monogon.dev/c/monogon/+/3752\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "681d5157b955f6b942c620837d1a9e90bdefc983",
      "tree": "254905b461e1545d960fafbdad1ec2c250fc383f",
      "parents": [
        "2edb96aeded0f67904ac9630088454fb12a62317"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 00:19:33 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 20:54:21 2025 +0000"
      },
      "message": "treewide: clean up test static binary targets\n\nThis removes some intermediate targets only used for transitions by\nconsolidating them into a single one.\n\nChange-Id: I46dcbcb731038edd2b67259de1811018f5ba43da\nReviewed-on: https://review.monogon.dev/c/monogon/+/3753\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "2edb96aeded0f67904ac9630088454fb12a62317",
      "tree": "8cc82e8c54f326f4fb3082469543531d5aa56e9c",
      "parents": [
        "84f0b020542553603024298185262a3dc553f90a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 01:13:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 12:42:49 2025 +0000"
      },
      "message": "treewide: configure CI to use disk cache\n\nChange-Id: I89b09a6190fb62452314606b831ff5a7872a1d28\nReviewed-on: https://review.monogon.dev/c/monogon/+/3754\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "84f0b020542553603024298185262a3dc553f90a",
      "tree": "053cac1f766d6f189b56efba42e113e522f316bf",
      "parents": [
        "11bf3d33b1ebbaea218fe0a4198c1f2da6a74d71"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 01:59:22 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 12:42:49 2025 +0000"
      },
      "message": "treewide: bump bazel to 7.4.1\n\nThis is required to allow disk cache garbage collection.\n\nChange-Id: I8ecc48636746c4fe076dba0655785e02b6d8caa4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3755\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "11bf3d33b1ebbaea218fe0a4198c1f2da6a74d71",
      "tree": "3bfc9046c49c9c133490f593b0281513d004f1ca",
      "parents": [
        "153c9c1d69e5c37dd96f8d43ff1e628bd548320e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 07 17:49:27 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jan 08 00:01:30 2025 +0000"
      },
      "message": "treewide: update nftables to 0.2 with patches\n\nThis updates nftables to 0.2 and adapts nfproxy to the changes.\nIt also includes two patches which will be needed by the k8s-nft-npc\nimplementation later. The first one increases buffer sizes to allow\nlarger transactions (the buffer size is sadly not configurable). The\nsecond one introduces a special expr implementation which allows for\nexpressions whose value depends on the address family.\n\nBoth patches should eventually go upstream but are not fully suitable\nfor upstreaming in their current form.\n\nChange-Id: Ib398a14fa3fb7b6f808a834406d5307cea1fe8ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/3751\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "153c9c1d69e5c37dd96f8d43ff1e628bd548320e",
      "tree": "dc8b3d767ad46645cf2b0c3425f5a2f1e65cfcb5",
      "parents": [
        "8e19fa4edcb992d8c486b420debb6d63f8777d97"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 07 17:44:45 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jan 08 00:01:30 2025 +0000"
      },
      "message": "treewide: unfork netlink\n\nWe were using our own fork because of the psample change whose\nupstreaming effort has stalled since Mateusz left the company. That\nnetlink base is now getting too old and we have more patches on top\nwhich all have since become irrelevant or got upstreamed.\n\nThe new version of netlink also no longer has the quirk that default\nroutes do not have a destination set, fix that in the DHCP tests and use\ngo-cmp as the raw binary values are annoying to get right and do not\nmatter. Semantic equivalence is what we\u0027re after.\n\nThus stop using our fork and instead pick up the rebased psample patches\nfrom the new upstreaming effort. This removes one more replace directive\nwhich is nice.\n\nChange-Id: I21a59c2c9a99dd3baf672a8aa2ad9332e573cba1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3750\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8e19fa4edcb992d8c486b420debb6d63f8777d97",
      "tree": "ed19daa5f7ddf6376658e6d4e04754aeaca83a00",
      "parents": [
        "5178dd76472906d541fe08c643633499708c67de"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 12 13:39:43 2024 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 17:00:42 2025 +0000"
      },
      "message": "metropolis/node/core/bios_bootcode: Add legacy bootcode\n\nThis change provides a legacy bootcode that shows the user that they\nare using an invalid configuration, e.g. not use UEFI. This can be\ntested with \"qemu-system-i386 -hda bazel-bin/metropolis/node/image.img\".\n\nCloses monogon-dev/monogon#142\n\nChange-Id: I3337a70125010aec110ad75647346310cac76d37\nReviewed-on: https://review.monogon.dev/c/monogon/+/3748\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5178dd76472906d541fe08c643633499708c67de",
      "tree": "c8ca42dc5fe77d78cca49cb002eeed67de06e743",
      "parents": [
        "f724ed2be1d3f86159ea83ca41f5f6b0886a69a5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Dec 04 04:38:45 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 15:59:01 2025 +0000"
      },
      "message": "workspace: introduce bazel downloader config and replace bazeldnf mirror\n\nThis rather small change does rework the way we cache our dependencies\nby instructing bazel to fetch everything through a custom proxy. See\n//build/mirror_proxy:README.me for more infos.\n\nCloses monogon-dev/monogon#178\n\nChange-Id: Ic671fc8233a1cbf37427bbc96339ea8108310e21\nReviewed-on: https://review.monogon.dev/c/monogon/+/3686\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "f724ed2be1d3f86159ea83ca41f5f6b0886a69a5",
      "tree": "fb4b9bbabf2bafeaf3e0f3f106b2aaf0279d95fb",
      "parents": [
        "475cbb1e8f9fc90936a04ff11bcb4b794b5adcec"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 01:02:41 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 15:10:08 2025 +0000"
      },
      "message": "metropolis/proto: Add protobuf linting\n\nThis adds linting for our proto definitions. All failing linter rules\nare currently disabled and will be enabled/fixed in a future commit.\n\nCloses monogon-dev/monogon#7\n\nChange-Id: Ifb9531511f0bc2a0b740722a493d7c3bf8d6d19c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3747\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "475cbb1e8f9fc90936a04ff11bcb4b794b5adcec",
      "tree": "76f0216106df475b63ec31f30bb715e5cd0563c4",
      "parents": [
        "1195734e94f3842db7f9044d581d88494a8440db"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 00:38:16 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 15:10:08 2025 +0000"
      },
      "message": "treewide: replace build/proto_docs with rules_proto_grpc_doc\n\nIn a future commit we will use other modules from rules_proto_grpc,\nwhich allows us to remove this custom rule\n\nChange-Id: I00a823de8fb8eb1e3beb5bf2f516d2c92dabc5a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3746\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "1195734e94f3842db7f9044d581d88494a8440db",
      "tree": "a404306592d5647fa71aa6cf817d4cc3f42169c2",
      "parents": [
        "15eee605512951b018939dd2cf096722f2be4807"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 13:58:41 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 15:09:46 2025 +0000"
      },
      "message": "treewide: remove toolchains_protoc\n\nAs discussed we want to reduce external binaries and therefore don\u0027t\nneed this.\n\nChange-Id: Ia3d053a9584baf54b6aefe79b88ac31126d54e14\nReviewed-on: https://review.monogon.dev/c/monogon/+/3687\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "15eee605512951b018939dd2cf096722f2be4807",
      "tree": "0f410396bd7bd7a5cfc5624184bcb5e791d23d80",
      "parents": [
        "ccabae947fe90a36055e7a16f42c030a1c89f1ac"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 02 13:31:31 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jan 06 21:10:14 2025 +0000"
      },
      "message": "m/n/k/containerd: update to 2.0.1\n\nPull in the first containerd 2.0 patch release as it fixes a bunch of\nuserns-related issues (like pipe ownership).\n\nChange-Id: I371f48fa321d7ed18f5e6b480bc27f9f1592a8a3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3738\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ccabae947fe90a36055e7a16f42c030a1c89f1ac",
      "tree": "6d292c851b180fbe1aa2ac27cbf788992e0f7e15",
      "parents": [
        "35cd44be9b5f43d19e05f48f6be2ab6cd65b9c22"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 17 22:25:33 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 06 15:36:47 2025 +0000"
      },
      "message": "build/bazel: update chrony source url\n\nThe old one is not reachable anymore\n\nChange-Id: I166238408f3f330f87971af5c1f06e7a259ae89d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3741\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "35cd44be9b5f43d19e05f48f6be2ab6cd65b9c22",
      "tree": "1ec0672614bb0e03246dd91f03c3113a6f42c95a",
      "parents": [
        "117006e5a66f0c5858bff44aa05dc036083610a3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:44:11 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 03 15:40:37 2025 +0000"
      },
      "message": "osbase/supervisor: allow access to LogTree from Runnable\n\nThis adds a way to access the underlying LogTree instance from\na runnable with the same API as normal logger access. This is required\nfor migrating metropolis/node/core to use bringup.\n\nChange-Id: I867ff0ff104bd7f524667a66aaaf13fc29c8f25c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3704\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "117006e5a66f0c5858bff44aa05dc036083610a3",
      "tree": "62491f59c1747dca7c2334c32dd1d22e6074195b",
      "parents": [
        "8eeae7b7fb8f98497caa5c69f9d6528fbdd81281"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 22:53:52 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 03 15:40:32 2025 +0000"
      },
      "message": "third_party/linux: set transition overrides to default value\n\nWithout this a run with the race detector doesn\u0027t work as we prevent CGO\nwith this transition.\n\nChange-Id: Ibba17ec4058ed34bee1beb7b5f3c6cac345bac5d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3690\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8eeae7b7fb8f98497caa5c69f9d6528fbdd81281",
      "tree": "ca22c3af862b7f6641922b9878d3632c1fd561e4",
      "parents": [
        "5241968495198eb1957b893071eac3d2bb7ca1b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 22:52:55 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 03 15:40:32 2025 +0000"
      },
      "message": "cloud/shepherd/manager: fix data race\n\nChange-Id: I74dfe7ebd274a2014df827ae804d02cded3af090\nReviewed-on: https://review.monogon.dev/c/monogon/+/3689\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5241968495198eb1957b893071eac3d2bb7ca1b4",
      "tree": "bebab9899d5858d72e60f22f945be3cd06627a26",
      "parents": [
        "837cb8e459b9eefabe89ab17df0b7dafb5e3d631"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 15:57:35 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 21:59:59 2024 +0000"
      },
      "message": "gomod: remove x/exp replace directive\n\nUpstream has since fixed the mentioned dependency problem, thus we can\nuse the normally-resolved version again.\n\nChange-Id: Ic9e7e0473d62c5adf89b1c0f9804296074dcd966\nReviewed-on: https://review.monogon.dev/c/monogon/+/3723\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "837cb8e459b9eefabe89ab17df0b7dafb5e3d631",
      "tree": "32337d84d4f32b0c2c523e2c5bd177f4acfe4808",
      "parents": [
        "b6afed68fd1d2ee9b32d395b388d2db1338d0fa0"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 13:52:56 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 21:59:59 2024 +0000"
      },
      "message": "treewide: update Kubernetes to 1.32\n\nRelatively easy change, one cadvisor fix is temporarily needed. The\nlegacy log dir patch needed to be rebased, that\u0027s about it.\n\nI enabled single-process OOM killing again as that was the default for\ncgroupv1 and IMO the more sane behavior.\n\nUpstrem changelog at:\nhttps://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md\n\nChange-Id: I537a6e37137d05efb6eec8635915e36fd8b37cbc\nReviewed-on: https://review.monogon.dev/c/monogon/+/3721\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b6afed68fd1d2ee9b32d395b388d2db1338d0fa0",
      "tree": "9d4deac20acc468c78be9f55574c08035b9b26fc",
      "parents": [
        "139550a8c8ff4c0d0c7557b9e5af0c76ea09a4ef"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 13:04:34 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 21:59:59 2024 +0000"
      },
      "message": "third_party/gvisor: remove old cgroups import\n\nWe don\u0027t want to use the old cgroups/v1 import, remove it.\nMost code using it is no longer in use as it has been replaced by\ncontainerd shim code, so just delete that.\nAdjust the rest to work with cgroups/v3.\n\nAs K8s 1.32 drops its dependency on cgroups/v1 Gazelle mangles the deps\nif we leave it in.\n\nChange-Id: Ic95fce7a17acbddf70a1b5b2a0978b9246a17c58\nReviewed-on: https://review.monogon.dev/c/monogon/+/3720\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "139550a8c8ff4c0d0c7557b9e5af0c76ea09a4ef",
      "tree": "88132557266dc11bcc65b85d7a1b3dc6ce741b9b",
      "parents": [
        "a5b00bd43cceaf807e56ae609c6acdb9f94fa983"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 20 13:30:27 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 23 13:11:49 2024 +0000"
      },
      "message": "build/platforms: use our platform as host platform\n\nChange-Id: I5e5b1a6c629e97a034474ad36ff1d025f7bd4873\nReviewed-on: https://review.monogon.dev/c/monogon/+/1833\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "a5b00bd43cceaf807e56ae609c6acdb9f94fa983",
      "tree": "5c2c0fe0d3947ddc7d82f6c4b34bedaeb26b7f39",
      "parents": [
        "70e5a977302e5ce90c94488b7da0d55894dea3ec"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 22:52:31 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 23 13:11:29 2024 +0000"
      },
      "message": "metropolis/test/launch: fix data race\n\nChange-Id: Id427d73cf32ff06a074fce5903d66050dd9e28cb\nReviewed-on: https://review.monogon.dev/c/monogon/+/3688\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "70e5a977302e5ce90c94488b7da0d55894dea3ec",
      "tree": "fc21c3671818973eb60f5e31ff753a86592f7ff0",
      "parents": [
        "5b38443b6ef6337db8d4ed12d7d2dc59c0a079da"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 20 13:19:20 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 23 13:11:29 2024 +0000"
      },
      "message": "build/toolchain/musl-host-gcc: add pie feature, disabled by default\n\nThis isn\u0027t enabled anywhere, but we should enable it for all of our\nbinaries.\n\nChange-Id: I77dc163a7085c792c0b0d64e6423e9117b596ec4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1838\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5b38443b6ef6337db8d4ed12d7d2dc59c0a079da",
      "tree": "b0a97ea2c180aec385b71bbf8c8cd4185d927943",
      "parents": [
        "3c6183f7f12ded0c563239c7eff1f1dc4a9bebec"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 20 13:17:30 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 23 13:11:29 2024 +0000"
      },
      "message": "third_party/musl: build PIE/PIC static library\n\nThis allows us to then build static-pie binaries.\n\nChange-Id: Ied5c34da85608df0c1b56aec321b9eec367a9615\nReviewed-on: https://review.monogon.dev/c/monogon/+/1837\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3c6183f7f12ded0c563239c7eff1f1dc4a9bebec",
      "tree": "e3487e97b71fb10a310780a36c7438f4fb9af242",
      "parents": [
        "bc32bcd241a9270786a749266ce4f6a5df6d0a6e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:42:21 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 23 13:10:21 2024 +0000"
      },
      "message": "osbase/supervisor: use MustRegister for metrics registration\n\nChange-Id: I4321c626f210bea025ab27bfecf783425f1482b5\nReviewed-on: https://review.monogon.dev/c/monogon/+/3703\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bc32bcd241a9270786a749266ce4f6a5df6d0a6e",
      "tree": "d82d87a2af96a2cf40894869de5550de8500560e",
      "parents": [
        "5b997a113d011c35ecc981594c95a53d67311f83"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Dec 18 17:36:41 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 12:34:41 2024 +0000"
      },
      "message": "vscode: add gopls config file\n\nThis allows using VSCode and its derivatives to use our gopackagesdriver\nto have working code intelligence with our Bazel build. It also\noptimizes the VSCode file watcher to ignore lots of file changes in\nBazel symlinked output directories.\n\nChange-Id: I1d36a31b5c58987d42f78a80ba8831761327d884\nReviewed-on: https://review.monogon.dev/c/monogon/+/3711\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5b997a113d011c35ecc981594c95a53d67311f83",
      "tree": "61b4a9db6eab7a23d58242a098b8a65670b181eb",
      "parents": [
        "fce7c765ace0ae7058af9498e228eca30dd4695c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Dec 19 15:10:07 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/event/memory: remove Sync feature\n\nThe Sync feature was unused, and I\u0027m not sure using it anywhere is a\ngood idea. If you really do need reliable delivery of events to multiple\nconsumers, then you probably also would need some mechansim for a\nconsumer to restart at the point in the history it has last seen before\nit failed. Removing this feature simplifies the implementation and\nallows new features to be implemented.\n\nChange-Id: I94731355b7208f91256bc4610cb31a2720ab6c68\nReviewed-on: https://review.monogon.dev/c/monogon/+/3717\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "fce7c765ace0ae7058af9498e228eca30dd4695c",
      "tree": "4d331860270a59969d0f917a72e87e7dde74b9a6",
      "parents": [
        "08c1c72246da4f8f18dfb7e94a1da813b094c7a4"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Dec 19 14:07:24 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/supervisor: restart DONE nodes when needed\n\nNodes in DONE state are normally not restarted. However, if a sibling of\nthe node dies, then the node in DONE state and all its children are\ncanceled and need to be restarted. Previously, this did not happen, so\nthe newly added test got stuck waiting forever for the inner runnable to\nstart again.\n\nChange-Id: I8c437937d21edb822985ec6fa3f36425e12ff218\nReviewed-on: https://review.monogon.dev/c/monogon/+/3716\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "08c1c72246da4f8f18dfb7e94a1da813b094c7a4",
      "tree": "e8dd5a474edb79f2658b951e64b993b38c46b210",
      "parents": [
        "65602097b716674316a318d5594a8b2b0e52d239"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Dec 19 12:03:17 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/supervisor: only enter DONE state after runnable returns\n\nPreviously, a node was marked DONE as soon as it signaled DONE. If a GC\nrun happens between the time when the runnable signals DONE, and when\nthe runnable exit is processed, this causes problems. The test which I\nadded panics without the other changes:\n\npanic: could not find [inner] (root.inner) in root (NODE_STATE_NEW)\n\nIf the delay is long enough that the inner node has already restarted,\nthen this could even end up with multiple instances of the same runnable\nrunning simultaneously.\n\nI fixed this problem by only entering the DONE state after the runnable\nhas returned.\n\nChange-Id: If73b73f104c4cc204bce4374f4ba5f7e163e4a0b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3715\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "65602097b716674316a318d5594a8b2b0e52d239",
      "tree": "750858f9b0302860f49ccde11edbd908ce58df94",
      "parents": [
        "aa6b42a15c38d1d99301673fa76c6b0f2953a892"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Dec 19 10:37:34 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/supervisor: make restart sleep cancelable\n\nPreviously, if a runnable died, and immediately after also its parent,\nthen the parent was only restarted after waiting for both the child\nand then parent restart backoff sleep. Additionally, the child was\nrestarted with an already canceled context.\n\nNow, the restart sleep can be canceled, and if canceled will directly\ngo to CANCELED state without first starting the runnable.\n\nChange-Id: Ie986db680d4df12d590881d1a7e468c741a732d9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3714\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "aa6b42a15c38d1d99301673fa76c6b0f2953a892",
      "tree": "5b79f12996420eb010ff8bb340710f8ef4669383",
      "parents": [
        "bdbb9c2baa94f72bf57ad1c13a2c2a5c3ff01858"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Dec 18 18:03:26 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/supervisor: canceled runnables are not live\n\nThis fixes a bug which caused a test to be flaky; it could get stuck\nwith the TestHarness waiting for runnables in CANCELED state to die.\n\nChange-Id: I31394e407662fe05918907650931859c6bba35fe\nReviewed-on: https://review.monogon.dev/c/monogon/+/3713\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bdbb9c2baa94f72bf57ad1c13a2c2a5c3ff01858",
      "tree": "97fad3e69df9ac10117a71846320dd8748caeecd",
      "parents": [
        "742fde7cd4861bb16b4f0655b84f587510c1e84b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Dec 18 15:14:02 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "m/node/core/time: use CommandContext\n\nChange-Id: Ie98b949facf3d26c819bdf56329f5837b8e3dac7\nReviewed-on: https://review.monogon.dev/c/monogon/+/3712\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "742fde7cd4861bb16b4f0655b84f587510c1e84b",
      "tree": "c9a9dbf91270ac38f315636ed3acf4086431b107",
      "parents": [
        "d7c8bbbf6638f0042a972af7efaf808b159fcbb1"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 16:39:31 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Fri Dec 20 15:53:04 2024 +0000"
      },
      "message": "build/ci: add windows metroctl builds\n\nmetroctl now builds for Windows.  Make sure it stays that way by\nincluding it in the CI target set.\n\nChange-Id: Id9b6a42159c6ff2400f1e8788a5ae6d2c4156e9f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3698\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d7c8bbbf6638f0042a972af7efaf808b159fcbb1",
      "tree": "4ed649b74c53ac0d1b514b2d2821556da33bef00",
      "parents": [
        "91bcf46639db7008c7290e6f27136cd122fd1b3c"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 17:26:35 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Fri Dec 20 15:53:04 2024 +0000"
      },
      "message": "m/c/metroctl: clean up ssh terminal handling\n\nDrop deprecated x/crypto/ssh/terminal package.  It\u0027s replacement is\nalready used in the same package.  Consistently use syscall.Stdin and\ncast it to int to be compatible with Windows.  This is a no-op on\nUnix-style platforms.\n\nChange-Id: I727a51a6aae6e57e4133ab5969db77af013ba78f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3699\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "91bcf46639db7008c7290e6f27136cd122fd1b3c",
      "tree": "f0edbfddd7a96ce00edb0db0bb1cf294536d9f1a",
      "parents": [
        "007d66e6b32db8080d37738b2986871729a48e03"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 16:57:05 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Fri Dec 20 15:53:04 2024 +0000"
      },
      "message": "m/node: remove non-definition dependencies\n\nThis enables usage from arbitrary platforms without including lots of\ndependencies that aren\u0027t related to functionality.\n\nChange-Id: I33e16b5396dc7216b676b294b8c1752caf3551b3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3697\nTested-by: Jenkins CI\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "007d66e6b32db8080d37738b2986871729a48e03",
      "tree": "2f8e97539a365a16eab8c84a5be701c1303b07a6",
      "parents": [
        "83f0aa47b5e9c02cc6871760fcac29b31b344c48"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 16:29:04 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Fri Dec 20 15:53:04 2024 +0000"
      },
      "message": "o/blockdev: add windows implementation\n\nThis adds a relatively bare bones, but working implementation of\nblockdev for Windows.  Has been manually tested on Windows 23H2.\n\nChange-Id: I7a2bf0a46e973f838506a321ad815629f62a3b35\nReviewed-on: https://review.monogon.dev/c/monogon/+/3696\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "83f0aa47b5e9c02cc6871760fcac29b31b344c48",
      "tree": "a3f923ef7db47733008c92d2d2a7fc0d24b32ec8",
      "parents": [
        "b62b8e04eb6f2f6ebc54ecc397ded788a924f279"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 20:34:33 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 17 23:06:51 2024 +0000"
      },
      "message": "osbase/build: update progress messages to contain output short_name\n\nChange-Id: Id41a05a7b8f5cec6e50d9c74ee09309d1a4b504f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3691\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b62b8e04eb6f2f6ebc54ecc397ded788a924f279",
      "tree": "9934baf66b686eee0609ec2ceb402450de0afee3",
      "parents": [
        "b9701c362d602b9b51961bcff849b2eb28b65883"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 16 20:18:47 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 16 20:24:07 2024 +0000"
      },
      "message": "m/n/kubernetes: fix flake in TestAsFlags\n\nThis test was flaky due to Go\u0027s map iteration not being deterministic.\nSort the output to make sure we do not introduce unnecessary\nnon-determinism.\n\nFixes: #363\nChange-Id: If70486306a809b7d33bc17206600b0f750429b7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3708\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b9701c362d602b9b51961bcff849b2eb28b65883",
      "tree": "536fd1e47e35ca5b7ee81b6097b619c721b6916a",
      "parents": [
        "c441f0b4141a4908bbae142dcde929e427ad8fd0"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 17:50:01 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Mon Dec 16 19:34:45 2024 +0000"
      },
      "message": "m/c/metroctl: add prototext node-params option\n\nThis adds the node-params flag to metroctl install, which allows\nadvanced users to specify customized NodeParameters in a prototext file.\nThe cluster field gets overwritten by the existing logic.  As of now,\nthis is only useful for specifying network_config.\n\nChange-Id: Ieccf208177bb49635a634e484c67e99e80792bda\nReviewed-on: https://review.monogon.dev/c/monogon/+/3700\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c441f0b4141a4908bbae142dcde929e427ad8fd0",
      "tree": "159d2da9f1b27a01dd8f22f4a2cc1c97fb7c6c12",
      "parents": [
        "b7df5ba641a78b4ef0c926ea45bffb5cf76c8915"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Dec 04 18:02:26 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 05 13:08:05 2024 +0000"
      },
      "message": "gomod: switch ethtool back to upstream\n\nOur privflags patch got into the 0.2.0 relase, use that and drop our\noverride.\n\nChange-Id: I4fe83874f3ddfe66dcff006df86570ab946a30ff\nReviewed-on: https://review.monogon.dev/c/monogon/+/3681\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b7df5ba641a78b4ef0c926ea45bffb5cf76c8915",
      "tree": "96f9f7a280d661de9f00cd6b17b158db49033b34",
      "parents": [
        "d1a8b64d305c57f45416fc40b39211541113a373"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Dec 04 17:58:54 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 05 13:08:05 2024 +0000"
      },
      "message": "gomod: clean up indirect section\n\nWe had some direct dependencies in the indirect section, causing go mod\ntidy to create new sections every time a new dependency is added.\n\nClean this up by moving the direct dependencies into the correct\nsection, leaving us with one direct and one indirect section.\n\nChange-Id: I1b06e7b08d8d7ca2ed535400d33997b089e04cf0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3680\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d1a8b64d305c57f45416fc40b39211541113a373",
      "tree": "17fcd0e77576b200e75a940fb26ce2334a7a8553",
      "parents": [
        "d77e26ee216738393a9808c95266bbcb91ca0e68"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Dec 03 17:40:41 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Dec 04 08:28:03 2024 +0000"
      },
      "message": "treewide: add more ptr.To usages\n\nChange-Id: Ibf511bc012a17e39d6b7b4f3a7d9abc1304d755f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3677\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d77e26ee216738393a9808c95266bbcb91ca0e68",
      "tree": "8dd5dfa48c9b388684b697687be4198094ac66e3",
      "parents": [
        "affe8fa229e3a701e060cb6bc35b9362814b5daf"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 02 18:23:10 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 03 14:31:57 2024 +0000"
      },
      "message": "treewide: replace bool-to-boolptr helpers with k8s.io/utils/ptr.To\n\nChange-Id: I90419ddfe087291f41f7f2f3589263e56c15470a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3675\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "affe8fa229e3a701e060cb6bc35b9362814b5daf",
      "tree": "63c91aa39676df52139f5c0df6023feff1ab0def",
      "parents": [
        "e49c273818f88cc4ff2fd9fcb8bb8272b70f1beb"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 02 17:53:24 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 03 14:31:57 2024 +0000"
      },
      "message": "osbase/build: remove redundant platform_transition_binary rule\n\nWe have the aspect library in our dependencies anyway,\nso there is no point in copying this.\n\nChange-Id: I160a13a90dd45a0495670bd453a3aa0a16cfb771\nReviewed-on: https://review.monogon.dev/c/monogon/+/3674\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e49c273818f88cc4ff2fd9fcb8bb8272b70f1beb",
      "tree": "513aa18ea3661eca62df782c1f064ee8b5c84c06",
      "parents": [
        "2ecccae4ff62b687ec5e218349fcf8a42069dfc9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 28 20:01:39 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 03 14:31:57 2024 +0000"
      },
      "message": "treewide: remove duplicate test_output flag\n\nChange-Id: Ia45b46dbbdb2daad2da33094acfe047b6ad09ab3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3673\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2ecccae4ff62b687ec5e218349fcf8a42069dfc9",
      "tree": "c5a5914c9d3bd8fb37a5650a6b3e4881f9fc2610",
      "parents": [
        "d58edf4e2f745427d69ecc72bfe9a9ead69d697d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 27 22:03:35 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 02 16:50:54 2024 +0000"
      },
      "message": "m/node: enable user namespaces in K8s\n\nThis enables the two feature gates for user namespace support in K8s.\nWe did not previously have a passwd file which caused Go\u0027s UserLookup\nto fail with an unexpected error. Add an mostly-empty placeholder file\nto placate it.\n\nChange-Id: I71a7a6dc889a289512075a25b7e551f2cd65ffb6\nReviewed-on: https://review.monogon.dev/c/monogon/+/3665\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d58edf4e2f745427d69ecc72bfe9a9ead69d697d",
      "tree": "bd9424fdb0a58cb7c78ab99d8a3b1d4ebc07c5db",
      "parents": [
        "ff7452b586134e18af9f1362d7b96dcb64aa8d71"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 27 20:38:14 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 02 16:50:54 2024 +0000"
      },
      "message": "m/n/kubernetes: introduce feature gate infra\n\nThis introduces centralized infrastructure to control feature gates in K8s.\n\nIt includes a test to make sure that we do not keep outdated flags in there.\n\nChange-Id: Ife251cbd5210bc8b3757bb3829e91bcdb2e6fdfb\nReviewed-on: https://review.monogon.dev/c/monogon/+/3664\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ff7452b586134e18af9f1362d7b96dcb64aa8d71",
      "tree": "7e3b9fe5c161cedf1073a086d0b6e5511b20bd98",
      "parents": [
        "231ee041b652ab2aea6a64e0c4929fa4beb5851b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Nov 28 13:08:55 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Nov 28 14:45:57 2024 +0000"
      },
      "message": "m/node/kubernetes: mount PVs with noexec on the host\n\nNow that runc always replaces per-mount-point flags when bind-mounting\nvolumes inside the container, we can mount them with noexec on the host\nwithout affecting workloads. This has some security advantages, as any\nexecutables in volumes are no longer executable from the host.\n\nChange-Id: Id5a8ea8caf702fca58d300fc9e17c21e94ebaf13\nReviewed-on: https://review.monogon.dev/c/monogon/+/3660\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "231ee041b652ab2aea6a64e0c4929fa4beb5851b",
      "tree": "c0d279637a526450cf60004cae32aa00edba57d6",
      "parents": [
        "690c42d8e98c4b9ad5caec1f8dc0da91f9347f12"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 20 19:10:35 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 28 11:46:04 2024 +0000"
      },
      "message": "workspace: update K8s to 1.31.3\n\nRelevant changes:\n* Reverted DisableNodeKubeProxyVersion feature gate to off\n* Various scheduler preemption fixes and improvements\n* Lifecycle fix for pods with init containers getting stuck in creating\n  when the container runtime returns an error.\n* Kubelet no longer processes terminated pods when it is restarted to\n  prevent lifecycle bugs.\n* Fixed endpoint controller not reconciling endpoints after the object\n  gets truncated (more than 1000 endpoints).\n* Fixes a memory leak related to tracing.\n* Fixes a crash in controller-manager\u0027s service-lb-controller loop.\n\nChange-Id: I287a532dd3781079b351cc71ca95d596ad2b59b3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3626\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "690c42d8e98c4b9ad5caec1f8dc0da91f9347f12",
      "tree": "58a3e2cbd510aaa5286a82f983e26ba2d83c8553",
      "parents": [
        "7873f46b185f846260d0119fad34e8882a48bf8d"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Nov 21 12:10:53 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Nov 28 09:58:03 2024 +0000"
      },
      "message": "metropolis/node: validate label prefixes with our own function\n\nI think it makes sense to use our own domain validation function here\ninstead of using the function from Kubernetes. The Kubernetes one is\nless strict than ours, and actually allows names which are not valid\nDNS names, because it does not limit the length of labels to 63.\n\nAll labels which are valid according to ValidateLabelKey should also be\nvalid according to Kubernetes IsQualifiedName, and I added a test for\nthis. We need this property for synchronizing labels to Kubernetes.\n\nChange-Id: I0f96551b7d41f38b28174b7349cd8f37e6fd8f81\nReviewed-on: https://review.monogon.dev/c/monogon/+/3624\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7873f46b185f846260d0119fad34e8882a48bf8d",
      "tree": "125fdf48f5b678357bb33548d5100718ce60c819",
      "parents": [
        "73beb693ce8aed1c1caffaec2f01b2b9c65516b3"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 20 20:02:31 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 27 19:34:17 2024 +0000"
      },
      "message": "workspace: update runc to 1.2.2\n\nContains various fixes as well as support for transparent user\nnamespaces with K8s.\n\nChange-Id: I7441cda74ddbaa38712a1e594884f37fa87892b6\nReviewed-on: https://review.monogon.dev/c/monogon/+/3625\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "73beb693ce8aed1c1caffaec2f01b2b9c65516b3",
      "tree": "378d3b779febf33b1666438b1dd003053d9fd21c",
      "parents": [
        "be70c9247b7c8f7ab0eef4b0c7b1faaf934b8f97"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Nov 27 17:47:09 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 27 19:34:17 2024 +0000"
      },
      "message": "m/node/kubernetes: remove local-strict storage class\n\nIt turns out that the local-strict storage class did not have an effect\non readonly volumes, or on gVisor. And after updating runc to 1.2.0, it\nno longer has an effect anywhere. It appears that setting noexec and\nsimilar flags in the CSI server, using a storage class, is the wrong\napproach and just happened to work by accident. Instead, this should\nprobably be implemented as a Kubernetes feature to set per-mount-point\nflags on the VolumeMount.\n\nThis commit thus removes the local-strict storage class and the mount\noptions processing in the provisioner and CSI server. This will allow\nupdating runc.\n\nAdditionally, the StatefulSet end-to-end test is extended to also run\ntests with gVisor. gVisor apparently does not support block volumes.\n\nSee: https://github.com/monogon-dev/monogon/issues/361\nChange-Id: Ic2f50aa3bc9442ca1dbb9e8742d5b8fecbfc3614\nReviewed-on: https://review.monogon.dev/c/monogon/+/3658\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "be70c9247b7c8f7ab0eef4b0c7b1faaf934b8f97",
      "tree": "b1126b8ddaf845314329bd33249e2ec0db6940dd",
      "parents": [
        "0ec0c53061acd57cf545440a723c1fd9817ed080"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Nov 21 11:16:03 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Nov 21 12:57:42 2024 +0000"
      },
      "message": "m/node/kubernetes: fix attaching block PVs\n\nAttaching a block PV to a container failed with the error:\n\"failed to create device node at target path: file exists\".\nThis happened because there was already a directory at the path.\nThe directory should only be created for mounts, not for block devices.\n\nI also extended the PV end-to-end test to add a block volume, and check\nthat it can be opened as a block device and has the expected size.\n\nChange-Id: I40ca82cfcbfee1cb3196a900423f967b45790a64\nReviewed-on: https://review.monogon.dev/c/monogon/+/3623\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0ec0c53061acd57cf545440a723c1fd9817ed080",
      "tree": "ac07fa1b10948234fe1add7300508a427c058325",
      "parents": [
        "652c2ad2e499ca709523978e04b3a3dbb6df642c"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Aug 29 12:39:47 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 20 18:40:12 2024 +0000"
      },
      "message": "m/n/k/containerd: upgrade to v2\n\nUpgrade containerd to 2.0, migrate config and adjust all paths.\nNo new K8s features are enabled yet, this will come separately.\n\nAlso bumps gVisor to the latest version and essentially reimplements the\nshim as the API has changed a lot.\n\nA drive-by fix in clitable was necessary as the x/tools upgrade\nintroduced a new analysis pass.\n\nChange-Id: I9d25af203b94667aaac69a71eeccad2d42aa5f99\nReviewed-on: https://review.monogon.dev/c/monogon/+/3622\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "652c2ad2e499ca709523978e04b3a3dbb6df642c",
      "tree": "4a31c1797694ed53331d1a998922c3587d940d5b",
      "parents": [
        "36f0375c9834d82016cb077142d2eaaea981d7a5"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Nov 19 17:40:50 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Nov 20 13:55:19 2024 +0000"
      },
      "message": "m/node/kubernetes: fix PV mount flags and add e2e test\n\nMount flags did not work because of two problems:\n- The provisioner did not copy them from the StorageClass to the\n  PersistentVolume.\n- The CSI server used \u003d instead of |\u003d when adding flags, so only one of\n  the flags was added or removed.\n\nThere was an existing e2e test for PVs, however this only created the\nPVC/PV without even attaching it to a container. I extended this test to\nattach the PV and check from inside the container that it has the\nexpected mount flags and quota.\n\nThe existing e2e test also created a block PV, however attaching a block\nPV to a container was not tested and is apparently broken, so I removed\nthis test for now.\n\nChange-Id: Ie14adfafd333eab38d2b5f1b4ce8a2aa8795eae0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3613\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "36f0375c9834d82016cb077142d2eaaea981d7a5",
      "tree": "301dacf15758e619d2c7fc0901e90ce6a5229f81",
      "parents": [
        "1fc5eb01ef91a4c6fc936a177329b845f0bb45d7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Nov 19 17:41:05 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Nov 20 13:55:19 2024 +0000"
      },
      "message": "m/test/e2e/suites/kubernetes: increase test timeouts\n\nThese timeouts are too short and cause spurious test failures.\n\nChange-Id: I21252337a150bb5774ef031eea53ec1a366f7fbd\nReviewed-on: https://review.monogon.dev/c/monogon/+/3614\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1fc5eb01ef91a4c6fc936a177329b845f0bb45d7",
      "tree": "a482438d1f4475952d52f1b11957124fd67700f2",
      "parents": [
        "1587a80c5a13a64798b46e32ecad998dd96db906"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 12 13:21:52 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 12 19:13:52 2024 +0000"
      },
      "message": "treewide: use toolchain resolution to access protoc\n\nChange-Id: I7eb5cfe2619dba7b56c7952c2042313a6e8db6ac\nReviewed-on: https://review.monogon.dev/c/monogon/+/3610\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1587a80c5a13a64798b46e32ecad998dd96db906",
      "tree": "6d685e516c6e125dc5ccfc46dde0f291b7824be1",
      "parents": [
        "795951910e1c6f66efecf40e4dcc909d143999fc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 30 21:18:03 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 12 19:02:38 2024 +0000"
      },
      "message": "metropolis: add boot IDs to status\n\nThis allows for precisely determining if a kernel restart has occurred.\nUseful for making tests more accurate and relying less on sleeps.\n\nCloses: #357\nChange-Id: Ic215b5db841b29b3a3c622333a05be6c35cc6ded\nReviewed-on: https://review.monogon.dev/c/monogon/+/3477\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "795951910e1c6f66efecf40e4dcc909d143999fc",
      "tree": "c6b16e84340b390da57b3628f6d5ef1b71ac89c1",
      "parents": [
        "d589b6afab60a4cfc5723c04ae83183a4487ec7e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Nov 11 14:55:56 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Nov 12 16:14:55 2024 +0000"
      },
      "message": "osbase/fat32: write file creation time\n\nAdd file creation times to directory entries. This was already partially\nimplemented, and there even was a test. But the test was conditional on\nthe kernel version, and the version comparison was broken. The test\ntimestamps were also wrong, as the last component of time.Date is\nnanoseconds, not milliseconds.\n\nChange-Id: Ic00d6bb27aced918df018c9ff3148d12ecb07753\nReviewed-on: https://review.monogon.dev/c/monogon/+/3608\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d589b6afab60a4cfc5723c04ae83183a4487ec7e",
      "tree": "fd404d8cdda2f86a1298aaa85b15a3946770e597",
      "parents": [
        "5d1bf6ab597d1ebfc4284bcb7df6648c17535464"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Nov 11 14:55:38 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Nov 12 16:14:55 2024 +0000"
      },
      "message": "osbase/fat32: fix corrupted directories\n\nPreviously, after writing the contents of a file or directory, any\nremaining space in the last cluster was left as is instead of zeroed.\nFor files this may be acceptable, but directories do not have an\nexplicit size in bytes. The result is that, if the device was not zeroed\nbefore writing the FAT32, each directory contains some number of\nadditional garbage entries, with a random name, size, and initial\ncluster.\n\nThe fix is to ensure that the last cluster of a directory is filled up\nwith zeroes, following the FAT32 spec (page 24): \"initialize all bytes\nof that cluster to 0\". The change also applies to files, where zeroing\nthe remainder of the last cluster should not be necessary, but also\ndoesn\u0027t hurt. At most 32 KiB of zeroes (the maximum cluster size) will\nbe written for each file.\n\nThe fsck test is extended to initialize the file with random bytes.\nWithout the fix, this results in fsck reporting a large number of\nproblems.\n\nChange-Id: I7729e028c92bfad9b879a4256f3fa4f7af25553a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3607\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5d1bf6ab597d1ebfc4284bcb7df6648c17535464",
      "tree": "1f57a604f9f3e9420e8d7bde27d8ae5fed31ea98",
      "parents": [
        "275facf8c7a5f3dc826e27e75a6122226acd5694"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Nov 12 13:34:40 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Nov 12 13:14:50 2024 +0000"
      },
      "message": "build/ci: add bazel mod tidy step\n\nRunning `bazel mod tidy` on the current main branch causes a change in\nbuild/bazel/rust.MODULE.bazel. If `bazel run //:go -- mod tidy` changes\ngo.mod, it will also also run `bazel mod tidy`, which means that this\nwill eventually be noticed in a later unrelated change. But it is better\nif this is noticed and fixed immediately, so I added `bazel mod tidy` to\nthe steps run by CI. It looks like we then don\u0027t need `bazel mod deps`\nanymore.\n\nI also moved the git status step to the post always block, such that it\nis run even if one of the previous steps fails. For example,\n`bazel run //:gazelle -- update` can fail if a change to\nMODULE.bazel.lock is necessary. This should make it easier to understand\nwhy the pipeline failed, because you can then still see which files have\nchanged, and the \"Unclean working directory\" message is printed.\nI tested that this works, and that the pipeline still fails if a step\nin the always block fails.\n\nChange-Id: I05e3f1a5d9e45ba16058cc6758b0acb106458cae\nReviewed-on: https://review.monogon.dev/c/monogon/+/3609\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "275facf8c7a5f3dc826e27e75a6122226acd5694",
      "tree": "a4f5068b0d1888e9c81757539bc52f0dcf8e5f89",
      "parents": [
        "a8938da203b9ecc42a61b4aa9e92b802bf0e4902"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Sep 24 00:24:29 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 11 16:03:59 2024 +0000"
      },
      "message": "m/cli/metroctl/test: rename test file to fit naming scheme\n\nChange-Id: Ia4b93203d0da27ef171272bb9cb18ac7cdac5db0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3511\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "a8938da203b9ecc42a61b4aa9e92b802bf0e4902",
      "tree": "52c8f2971cc6ce50b9bf17a490a7defbf66e69d2",
      "parents": [
        "9eab31ccbba4a2db416e4c5c387d22ec672ea92f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Sep 13 22:34:01 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 11 16:03:55 2024 +0000"
      },
      "message": "metropolis/node/kubernetes: add mountOptions support for PVs\n\nWe have very strict defaults on our data mount which prevents exec\u0027s and\nsuid binaries. By adding support for mountOptions on PVs we enable\nthe user to allow specific behaviour e.g. exec\u0027s on the given PV.\n\nChange-Id: I902cf3b9dafb14598cddc18c327ef3f5bcd6450b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3421\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9eab31ccbba4a2db416e4c5c387d22ec672ea92f",
      "tree": "92b81e90fdb13d29a12dc4ef1a253e40eddd10ff",
      "parents": [
        "272c8301e0db375689dbc5bee6134b91cc23188d"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Oct 23 12:33:36 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Nov 06 16:47:06 2024 +0000"
      },
      "message": "treewide: bump rust to 1.82.0\n\nThis also patches rules_rust to support extra_rustc_flags inside bzlmod\nextensions.\n\nChange-Id: I5da146bee580128a7ecfa6d98fa3afe482deb112\nReviewed-on: https://review.monogon.dev/c/monogon/+/3599\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "272c8301e0db375689dbc5bee6134b91cc23188d",
      "tree": "31c97490efe77ff7b571402f51b776af2d601b97",
      "parents": [
        "b701df98b1706751142f29bee032321447886267"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 05 05:17:44 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Nov 06 16:47:06 2024 +0000"
      },
      "message": "osbase/build/mkimage: replace embedsrc abloader reference with argument\n\nrules_rust things that our abloader target itself is an exec target\nbecause it is included as embedsrc inside mkimage. To prevent this wrong\ndetection we provide it as runfile like the kernel and rootfs. This is\na preparation for updating rust to the current stable version, as it\nrequires specific overrides to work correctly with our efi toolchain.\n\nChange-Id: I78de6a15570a81d9f673702ec4e50954d604117d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3598\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b701df98b1706751142f29bee032321447886267",
      "tree": "27b650e77b9be17108f8e03aecfd535ec0366242",
      "parents": [
        "78567601398f4db5a8080fd30038ff7ac6affe0f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 14:15:33 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis/metroctl: implement cluster configure\n\nThis is a framework for simple ClusterConfiguration changes via\nmetroctl. We only have one mutable field for now\n(kubernetes.node_labels_to_synchronize), but more fields can be\nsupported later.\n\nThis could also be extended to support operations like \u0027add\u0027 and\n\u0027remove\u0027 for repeated fields.\n\nFinally, there could be another CLI command that would drop you into a\nprototext editor, similar to `kubectl edit xxx`. But this solves the\nsimplest usecase for now.\n\nChange-Id: I2fc588a2a2249a5c4f0cf52acb162cac9ed3d9a4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3595\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "78567601398f4db5a8080fd30038ff7ac6affe0f",
      "tree": "757ee7c8d374317366a2535dbfb48ceaa66700f0",
      "parents": [
        "beec27c6bdc2da730ffa2a2be6a68e1610148913"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 13:42:04 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis: remove stutter in ClusterConfiguration.KubernetesConfig\n\nWe already know this is a config (it lives in ClusterConfiguration), no\nneed to call that a config again.\n\nThis doesn\u0027t break any compatibility yet as field names are not (yet)\nunder a stability guarantee.\n\nChange-Id: Ib6492d1c8303cbd0620b979b8047ec9757e301c0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3594\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "beec27c6bdc2da730ffa2a2be6a68e1610148913",
      "tree": "d9c130b03107cdcbadcc50ff850d96d0c83b8dcb",
      "parents": [
        "2db687330d6c907bf31006730bdd161cd34cddaa"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 12:27:08 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: move takeownership under cluster subcommand tree\n\nThis is in preparation for having more cluster-wide commands (same as we\nkeep \u0027node\u0027 for all node-specific commands).\n\nChange-Id: I3fa5935e1d751261bf82a80cf61e811fa36effc9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3593\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2db687330d6c907bf31006730bdd161cd34cddaa",
      "tree": "996bd64c955d1d383cd2bddb296d41437186a82f",
      "parents": [
        "492434add0746eef043e5e5acc106035ccec4358"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Oct 30 18:25:33 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Oct 31 14:48:23 2024 +0000"
      },
      "message": "osbase/build/genosrelease: Add trailing newline to os-release\n\nText files should end with a newline.\n\nChange-Id: I14f06359959a41d3a49ecfb3923cb5e509020310\nReviewed-on: https://review.monogon.dev/c/monogon/+/3592\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "492434add0746eef043e5e5acc106035ccec4358",
      "tree": "8a6cb3b702b55e69f7e78f57a6ece0196bdf6567",
      "parents": [
        "1f51cf42fcd4d7bb7f4b103c797c438bfa7b0098"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 22 14:29:55 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Oct 31 14:09:37 2024 +0000"
      },
      "message": "treewide: remove qemu build\n\nWe aren\u0027t bundling it right now and it is fairly out of date. Let\u0027s kick\nit out until we need it, then reengineer the build.\n\nChange-Id: I5362616922d4b9d3e971868636f3792e33880f7a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3568\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1f51cf42fcd4d7bb7f4b103c797c438bfa7b0098",
      "tree": "8baeed7e76e82440e9217ea7055d04af0ba14435",
      "parents": [
        "39f4f5c360e7a286bff4adaeabc52393dc28dc22"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 01 17:04:28 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Oct 31 14:09:31 2024 +0000"
      },
      "message": "treewide: update rules_rust to v0.53.0\n\nThis updated our patches for rules_rust, removes a transition as it can\nbe replaced with the \"platform\" field in the rust_binary rule. This then\nallows us to correctly reference it in all targets that depend on it.\nAdditionally the -target parameter is replaced inside the llvm-efi\ntoolchain with --target\u003d.\n\nChange-Id: Ie98753e505736c9ef28ff92fa1c5aa5b3612aec3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3473\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "39f4f5c360e7a286bff4adaeabc52393dc28dc22",
      "tree": "c81382f2408a83ab7391414738713633b8fc9608",
      "parents": [
        "1e39914fbcecda7ec236e67f143bbefc31eee9da"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Oct 29 09:41:50 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Oct 30 13:10:29 2024 +0000"
      },
      "message": "metropolis: add cluster domain config and metroctl param\n\nThis adds a --cluster parameter to metroctl and a cluster domain field\nto the bootstrap configuration. It is not yet used anywhere, but later\nthe cluster domain will be used to identify the cluster.\n\nThe length of the cluster domain is limited to 80, to allow for\nconstructing subdomains. This limit could be increased later if needed,\nbut it cannot easily be decreased, so I chose a conservative value that\nshould be enough in most cases.\n\nChange-Id: I627cca8eb1d92c4b06e4dfd6b6926a013e8f33ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/3508\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1e39914fbcecda7ec236e67f143bbefc31eee9da",
      "tree": "806a09d23eec324d7ff131f42ddfab13cc0f98e0",
      "parents": [
        "20498ddc40079451c83ba3708afc57d820866cb3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Oct 22 10:58:15 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Oct 30 11:42:51 2024 +0000"
      },
      "message": "metropolis: first pass API for reconfiguring cluster\n\nThis implements management.ConfigureCluster. This API is based around\nProtobuf FieldMasks, which is a new thing in the Metropolis codebase\n(node config mutation is performed via optional fields).\n\nWhether this is the right way to do this is to be discussed.\nAlternatives considered are:\n\n1. Always insert a full new config, providing the old one as a base. The\n   downside of that is the potential conflicts that will spring up the\n   moment we have systems regularly mutate independent parts of the\n   config. Additionally, this might lead to some odd behaviour when\n   dealing with clients that don\u0027t have support for newer versions of\n   the config proto.\n2. Use optional fields, like in Node role code. However, this has the\n   downside of duplicating protos (one for the config state, one for the\n   mutation request). Plus, protobuf optionals are still somewhat\n   unusual.\n3. Provide individual requests for mutating fields (like with Node\n   labels). This also results in a lot of boilerplate code.\n4. Something akin to JSON Patch, but for protobufs, which doesn\u0027t seem\n   to exist.\n\nChange-Id: I42e5eabd42076e947f4bc8399b843e0e1fd48548\nReviewed-on: https://review.monogon.dev/c/monogon/+/3591\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "20498ddc40079451c83ba3708afc57d820866cb3",
      "tree": "08849c86dba480fd56e4252a302ee804d8ac7fae",
      "parents": [
        "e99638e3c7a2f1a604d49c47cc7a2685bfff8c5e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 30 17:07:08 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 28 14:22:49 2024 +0000"
      },
      "message": "metropolis/test/launch: synchronize test node labels to kubernetes\n\nChange-Id: I57361503debb1d25873a72be18e947d2d1f11511\nReviewed-on: https://review.monogon.dev/c/monogon/+/3470\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e99638e3c7a2f1a604d49c47cc7a2685bfff8c5e",
      "tree": "636c243a58100c971cc3e224abf2c54324aad00a",
      "parents": [
        "9579be5e09b6293edc78d3142b0c67a24afda93c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 30 17:06:44 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 28 14:22:49 2024 +0000"
      },
      "message": "metropolis/node/kubernetes: synchronize metropolis node labels to kubernetes\n\nThis extends the labelmaker to manage Kubernetes node labels mirrored\nfrom Metropolis node labels.\n\nNote that currently there is no way to edit a ClusterConfiguration at\ncluster runtime, but this will come in a future CL.\n\nChange-Id: If7dbc3796085a8b85c1b5b2a181bcb1cee3d1db4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3469\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9579be5e09b6293edc78d3142b0c67a24afda93c",
      "tree": "52fd3bd699099ff599eca2d7c52febad6b5b41c4",
      "parents": [
        "dd2b80fa4eb22931702aae5d849c178a4930e101"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 30 17:01:04 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 28 14:22:49 2024 +0000"
      },
      "message": "metropolis/proto/common: add node label synchronization rules\n\nThis paves the way for a mechanism to synchronize Metropolis node labels\nto Kubernetes node labels. This is just the API/Protobuf part.\n\nChange-Id: Ia6f5dd91190d46495714ea56aa359c48e6a068d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/3468\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "dd2b80fa4eb22931702aae5d849c178a4930e101",
      "tree": "56d10f07a4dec157756a62caa7e534a270591921",
      "parents": [
        "6d1ff36763f1d48cf8620afd17321a06d2fbe228"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 24 13:06:27 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 28 14:22:49 2024 +0000"
      },
      "message": "metropolis: support prefixes in node labels\n\nThis brings Metropolis node label semantics to be the same as Kubernetes\nlabels.\n\nChange-Id: I33c321432ec01abf978bb8dfbb3cef90f75a38eb\nReviewed-on: https://review.monogon.dev/c/monogon/+/3467\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "6d1ff36763f1d48cf8620afd17321a06d2fbe228",
      "tree": "e0f48b5b138f51579de1ce2662e1b3a39acec6d3",
      "parents": [
        "677de978403a58cd219e77b312b647927bd560ac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 30 15:15:31 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 28 14:22:49 2024 +0000"
      },
      "message": "metropolis/node/kubernetes: update labels based on node roles\n\nThis implements the labelmaker, a reconciling loop running on Kubernetes\ncontroller nodes which updates Kubernetes node labels based on cluster\ndata.\n\nCurrently it only updates role labels based on cluster roles, but this\ncan be extended in the future to also replicate Metropolis node labels\ninto Kubernetes node labels.\n\nChange-Id: I9c5ba92bb46f064aa03836720d4a80adc6061ab9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3464\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    }
  ],
  "next": "677de978403a58cd219e77b312b647927bd560ac"
}
