)]}'
{
  "log": [
    {
      "commit": "778cc33e311ab1578b3e1447c10b7d40612a774e",
      "tree": "78e166c6522ab612967f0cf9cde7d4318808873e",
      "parents": [
        "1b6cd6feb2ea0ee9940e59ec787803dae0071b22"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 16:31:40 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "m/n/c/abloader: fix duplicate build\n\nPreviously, the abloader was built twice with different\n@io_bazel_rules_go//go/config:static setting.\n\nChange-Id: I41ebac22613b895fe85f14367bdf0f31c817cafe\nReviewed-on: https://review.monogon.dev/c/monogon/+/4163\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "1b6cd6feb2ea0ee9940e59ec787803dae0071b22",
      "tree": "8fd33a9dd8da12a7524bb24fceef24350663d603",
      "parents": [
        "8ffa54e80544005e0f779c681a8c9dfc6afecfa7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 15:30:22 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "treewide: replace platform_transition_binary\n\nplatform_transition_binary changes the platform, but does not set\n@io_bazel_rules_go//go/config:static. Instead, build_static_transition\nis now used, which sets both.\n\nA second benefit of this change is that we have fewer places where the\namd64 architecture is mentioned, which should make it easier to enable\nmulti-platform builds.\n\nChange-Id: Id01e0d942a12770b8b34b0e6825f314128149b40\nReviewed-on: https://review.monogon.dev/c/monogon/+/4162\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0fd36f458729a67e4daf68a430ce3a79428a05e9",
      "tree": "dae4bd858448b6a72daeab0cbeb177da802aff11",
      "parents": [
        "7c38e7845bad04db14031741e879e887e2f571b5"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 10:26:03 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 13:11:33 2025 +0000"
      },
      "message": "treewide: enable pure Go by default\n\nPure can be safely enabled by default. For those targets which need cgo,\nwe can set `pure \u003d \"off\"` on the go_binary or go_test.\n\nThis simplifies transitions, and makes the files/files_cc distinction\nobsolete.\n\nChange-Id: Ic1a985e7d347a7222f55735c1ee2016e8a7e1c65\nReviewed-on: https://review.monogon.dev/c/monogon/+/4158\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "7c38e7845bad04db14031741e879e887e2f571b5",
      "tree": "8481308f7280a6153de818497d11f0c9614baeeb",
      "parents": [
        "dc97912eb162144d7bd92509ad8f064a8cf98ecb"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 09:23:37 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 13:11:33 2025 +0000"
      },
      "message": "treewide: replace go_binary_with_tag\n\nInstead of using go_binary_with_tag, we can write a go_binary rule which\nembeds the library. Then we can easily change all the Go configs, not\njust tags.\n\nBy default, Gazelle generates the libraries for a go_binary with private\nvisibility, so we need to override it to pulic. The go_binary_with_tag\nrule had the additional feature of combining the specified tags with the\nincoming ones (osusergo, netgo); instead I added those manually.\n\nChange-Id: I23965176f87e3a0bbd18ba5a72f190e4f9047363\nReviewed-on: https://review.monogon.dev/c/monogon/+/4157\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "dc97912eb162144d7bd92509ad8f064a8cf98ecb",
      "tree": "6b0e61c39634423babbdbb51f7c1e1d11a66c33a",
      "parents": [
        "62cecde6415032da48f05a178c8e9e9721dab9c2"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 16 16:27:43 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis/handbook: update for new OS image format\n\nThis updates the instructions for setting up a demo cluster. We don\u0027t\nhave recent release build, so I changed the instructions to building it\nyourself for now. This way, we don\u0027t need to provide the image as an\nargument to install, because it will be taken from runfiles. The\nprevious instructions didn\u0027t work anyway because the --installer flag\nwas missing, which is now also provided by runfiles.\n\nChange-Id: Ie98cd5a1ab097623b4258ddfaedd2a64bcaefb67\nReviewed-on: https://review.monogon.dev/c/monogon/+/4124\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "62cecde6415032da48f05a178c8e9e9721dab9c2",
      "tree": "47617bd0bcaaf31a45eb085d946ad24db34b4f48",
      "parents": [
        "82e8a57d0d715b9e0479000b18f50aafc63ac58a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 16 15:24:04 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for updates\n\nThis switches the node update implementation to the new OS image format\nbased on OCI artifacts. Updates are now fetched from an OCI registry.\n\nTo update existing clusters, build //metropolis/node:bundle in the new\nversion, then run the update command of the old version of metroctl with\nthis bundle. Once a node is updated, it only accepts updates in the\nnew format. It is possible to rollback if needed by building\n//metropolis/node:oci_image in the old version and using the new version\nof metroctl.\n\nThe node bundle target is no longer referenced anywhere, and will be\nremoved soon.\n\nChange-Id: I00ac6d0d88e379259cea52c8a106204c5eb73fe7\nReviewed-on: https://review.monogon.dev/c/monogon/+/4123\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "4cc3d4d23485f5144f1ee34877c5cc4ae693755f",
      "tree": "c7b8ae03805540f8c78ac99688ba59d2ce9aaa64",
      "parents": [
        "5fdca5678df575870c5c2def673669e894b5158e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:46:47 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "cloud/agent: use new OS image format for install\n\nThis switches the Agent installation method to the new OS image format\nbased on OCI artifacts. OS images are now fetched from an OCI registry.\n\nChange-Id: Icd59a2c808fd607b95d8aaa8e60022a27fd2d091\nReviewed-on: https://review.monogon.dev/c/monogon/+/4091\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5fdca5678df575870c5c2def673669e894b5158e",
      "tree": "c4a02abab427e96b568ff5b22f8c77c0882c33ea",
      "parents": [
        "9d2f3c681fee76b54dc202da6ca140151f588be8"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:33:29 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for install\n\nThis switches the USB and SSH installation methods to the new OS image\nformat based on OCI artifacts.\n\nWhen stored on disk, the new format consists of a directory containing\nan OCI layout, instead of a single file. This means that all steps which\ncopy or upload an image now need to handle a tree of files.\n\nChange-Id: I526d32f5c50bd74f513f785118768a56b2655fa0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4090\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9d2f3c681fee76b54dc202da6ca140151f588be8",
      "tree": "9f673387eea27eac06fbd16e9c2f3cfc689cc7fb",
      "parents": [
        "82900a743f1eebcb80c0a310563be149691b89a7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:17:22 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "m/test/localregistry: use osbase/oci/registry\n\nThis replaces the localregistry implementation with a small wrapper\naround the new registry package.\n\nThe images attribute of the Bazel rule was changed from a list to a\ndict, which makes the repository and tag independent from the file path.\n\nChange-Id: I1f6213dd67f7bdcf2373fe136958caa68b9f4d10\nReviewed-on: https://review.monogon.dev/c/monogon/+/4089\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7ea9ef105600a845445523033d5745bb654d3000",
      "tree": "628eb95ac3cc9a661472a767f21da7a7750fb008",
      "parents": [
        "51f81e5779eac05472fa060f519c481f512bd704"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 27 15:57:41 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "m/cli/metroctl: use one progress bar for all files\n\nPreviously, there was a separate progress bar for each uploaded file,\nnow there is just one which shows the total number of bytes transferred.\n\nChange-Id: Id4cba63889077a076cb63d437e3fe4b17cfc3786\nReviewed-on: https://review.monogon.dev/c/monogon/+/4049\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0175d7ab5a5f0414fa4a472b7cf0e066fe8e5f66",
      "tree": "6c519e0d656373c0fbe273f4e6eeb5747fa329c7",
      "parents": [
        "997faa44e945697717b2eaf22786ba803f741a1e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 12:57:23 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/net/sshtakeover: refactor package\n\nThis is an extensive refactoring of the sshtakeover package.\n\nThe package is renamed from //go/net/ssh to //osbase/net/sshtakeover,\nto make it more clear what the package is for and avoid clashes with\ngolang.org/x/crypto/ssh.\n\nThe previous Client type was removed, and Dial is now a top-level\nfunction which takes an ssh.ClientConfig. The previous Connection type\nwas renamed to Client, which makes the naming match ssh.Client.\n\nThe Client interface type was moved to //cloud/shepherd/manager. This\nallows us to add more functions to sshtakeover.Client without breaking\nconsumers of the package, which would need to add dummy implementations\nfor functions which they don\u0027t need.\n\nThe Upload function was renamed to UploadExecutable, and the new Upload\nfunction can be used for files that don\u0027t need to be executable.\n\nThe sftp client is now created at the same time as the client, instead\nof creating a new one for each uploaded file.\n\nChange-Id: I3be9c346713cb4e5c2b33f9c8c9a6f11ca569a75\nReviewed-on: https://review.monogon.dev/c/monogon/+/4047\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "997faa44e945697717b2eaf22786ba803f741a1e",
      "tree": "5596de2b7cbb09fd3db1aeb41a45da285ee45e0f",
      "parents": [
        "c1b6df499c0e03d8d65b6570c2dcddb908752f7a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 14:24:08 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "m/cli/takeover: refactor CPIO writing\n\nRefactor the CPIO writing to first creating a structfs.Tree and then\nwriting that as CPIO in a separate function. Previously, errors during\nwriting were ignored; they are now properly handled.\n\nChange-Id: Icc7cf1c94dd01bc9d69b01ee2f6696bfa4c183af\nReviewed-on: https://review.monogon.dev/c/monogon/+/4040\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "c1b6df499c0e03d8d65b6570c2dcddb908752f7a",
      "tree": "17d045c8f96dd2d77aef785653ac1f937142c714",
      "parents": [
        "e4c48544e908e78efdb00c8c507c251be26c4ab9"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 20 08:52:18 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/fat32: adopt structfs\n\nChange the external interface of the FAT32 writer to take a\nstructfs.Tree instead of a FAT32-specific data structure. Producers of\nfile system data are no longer specific to FAT32.\n\nWith these changes, the blkio package becomes obsolete. The\nLazyFileReader did not actually work as intended when used with\nosbase/fat32, because fat32 copies data with io.CopyN and thus stops\nreading before reaching EOF, so the LazyFileReader is never closed. The\nnew Blob interface requires the consumer to explicitly Open and Close.\n\nChange-Id: I9a71a5f0bddf36ac38c656659e6dcfe520b88fb0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4037\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4f586b56786657f50d0f8fe89697f15f960d6ab1",
      "tree": "982fe9e3964a2e1e246de1719e825b146f25c3a5",
      "parents": [
        "1fe3f9419ae27d593a7c1840e6c37b20923da206"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 02 15:04:10 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 03 12:18:32 2025 +0000"
      },
      "message": "metropolis/test/nanoswitch: use osbase/bringup\n\nChange-Id: I061371d271414f6474448450c9183a93d0abf3b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/4055\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "1fe3f9419ae27d593a7c1840e6c37b20923da206",
      "tree": "03d182217e78e21487839fe1691601b15955a5d5",
      "parents": [
        "b8500fb0d7463f8fd629148fd0760ece2a4e7102"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 01 14:22:11 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 03 12:18:32 2025 +0000"
      },
      "message": "metropolis/test/launch: write nanoswitch logs to correct dir\n\nChange-Id: I9ef4f39d0ca279b9b16158453b9e9b7774426480\nReviewed-on: https://review.monogon.dev/c/monogon/+/4053\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d0cdb57f3d19239d987ffc58d3bb89760837953b",
      "tree": "e31c9e4ed046cfbebbd077dc0e5b137f2bb066ea",
      "parents": [
        "47eb65bd29d4576593c134915088fe8bf144b047"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Mar 27 17:18:39 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 31 11:30:21 2025 +0000"
      },
      "message": "treewide: rename osbase/test/launch to osbase/test/qemu\n\nChange-Id: Ia0775c462c8c909dc2080f01ff1f609b6d099179\nReviewed-on: https://review.monogon.dev/c/monogon/+/4046\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "47eb65bd29d4576593c134915088fe8bf144b047",
      "tree": "613483a5514ef15b9698f0b0097feee54bed7325",
      "parents": [
        "90d4051ae6119dc08dfa17f3a9e95e5b98fba2a5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Mar 27 16:49:27 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 31 11:30:21 2025 +0000"
      },
      "message": "treewide: remove usage of osbase/test/launch for logging\n\nChange-Id: Ib0279f1f1cbbefeb5064e78cfb36b0bf7a59f5cb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4045\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "ad4d9545ac74b43c3f442627b507d45f7eec3b3f",
      "tree": "932ce4ce4788f60232222d8dc2770eaa466a9529",
      "parents": [
        "ae2f9a36c74ae1e15d5ccd472dd2417fca86aaf4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 24 20:20:13 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 25 13:01:09 2025 +0000"
      },
      "message": "osbase/build/fsspec: change order of arguments\n\nWe should always use the key as target path, as that\u0027s unique.\n\nChange-Id: I09085448efda67cb6d1c0470fa15e4282b38e0d5\nReviewed-on: https://review.monogon.dev/c/monogon/+/4035\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ec61a478161002b8cba1a21d152f3285355fa667",
      "tree": "055a6294ef297b8e992941c92d27968e9592194f",
      "parents": [
        "f07d1b373463bb30a068a1186176277a12a975bc"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Mar 24 18:54:00 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 25 11:48:25 2025 +0000"
      },
      "message": "m/cli/takeover/e2e: test with metroctl\n\nThis extends the starting end of the takeover end-to-end test by\nexecuting metroctl instead of duplicating some of the logic in the test.\n\nVM logs are now printed with %q such that that terminal escape codes are\nprinted escaped instead of raw. Without this, parts of the logs are\nobscured after a new kernel boots.\n\nChange-Id: I05de3eb2ce142a99815eba6b978dad92772fe10f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4034\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "f07d1b373463bb30a068a1186176277a12a975bc",
      "tree": "aaeb325253d1c27744afe998ac388778b3bbecf7",
      "parents": [
        "e817a2a25d8e1f87490d050c6d1ed293f0c81fd3"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Mar 24 18:36:06 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 25 11:48:25 2025 +0000"
      },
      "message": "metropolis/cli/metroctl: fix takeover path\n\nbundlePath was used for both bundle and takeover, probably a copy paste\nmistake.\n\nChange-Id: Ib3acc1f415fa24021bd9800eb9eb5deb061a919a\nReviewed-on: https://review.monogon.dev/c/monogon/+/4033\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "b00f7f9a97eae55ae6df80bbdea46815498898fa",
      "tree": "46517933cf9c0d9fc18ccf085dcf335d664e2b94",
      "parents": [
        "1947e9b1480d9a3e90fe8b12bc897fd5cd2abce7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 06 17:27:22 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 18 14:02:05 2025 +0000"
      },
      "message": "m/node/kubernetes: implement storage resizing\n\nThis implements persistent volume resizing in the storage provisioner.\nThe logic is based on https://github.com/kubernetes-csi/external-resizer\n\nThe mutation caches are an optimization to prevent unnecessary repeated\nprocessing, because they make the controller remember changes that it\nhas made itself, when the watch events for those changes have not\narrived yet.\n\nThe controller supports the RecoverVolumeExpansionFailure feature, which\nallows reducing the requested size when the previous resize fails due to\ninsufficient space. When resize fails, it is retried with backoff.\n\nChange-Id: I0f3d40c1a592b30d25739f5d20b529dfe25dfbe1\nReviewed-on: https://review.monogon.dev/c/monogon/+/4008\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1947e9b1480d9a3e90fe8b12bc897fd5cd2abce7",
      "tree": "9c3586cc1e87b87b48d489ac77082b91199c699e",
      "parents": [
        "551a7373e295b30eb7453d51d71b21a5f8bac108"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jan 16 16:45:03 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 18 14:02:05 2025 +0000"
      },
      "message": "m/n/kubernetes: fix storage provisioner rate limiting\n\nForget() resets the rate limiter, so it should only be called when\nprocessing has suceeded.\n\nFor example, provisioning can fail for a block volume if there is not\nenough disk space for the requested size. Previously, this caused the\nlog to be quickly  spammed with \"Failed processing item\" messages, all\nwith \"numrequeues: 0\". With the fix, the retries are properly backed\noff, with the requeue counter incrementing.\n\nChange-Id: I8a31fa03fadb202205967e045d4e30f04567d9d1\nReviewed-on: https://review.monogon.dev/c/monogon/+/4007\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "551a7373e295b30eb7453d51d71b21a5f8bac108",
      "tree": "4039f95ddebafeeadb2547484cdf09df4b5f7668",
      "parents": [
        "a0684409400aa22f39b44a125dc07729e98c4908"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 12 19:13:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Mar 13 14:38:51 2025 +0000"
      },
      "message": "treewide: remove rlocationpath workaround\n\nIt is apparently no longer necessary to hardcode these paths.\n\nCloses: https://github.com/monogon-dev/monogon/issues/316\nChange-Id: Ic7ff23266bfab3c4d32e54dfcbabf104c5f524c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4010\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "17ad63fa0b09d3dfe461ac237cd5db5eaeefc2ed",
      "tree": "aa133f4b89c91044047c902dad5b752696098b14",
      "parents": [
        "12e4b549f88c91e5eccb2abe1631793c879a66c6"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Feb 27 14:43:56 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Feb 27 17:33:51 2025 +0000"
      },
      "message": "m/n/kubernetes/networkpolicy: add Cyclonus test suite\n\nThis adds a test for the network policy controller, based on the\nCyclonus test suite. Running Cyclonus on a real cluster takes multiple\nhours, as there are over 200 test cases, each of which takes around 1\nminute. The test implemented here uses a fake Kubernetes API and pods,\nwhich allows running all tests in around 15 seconds.\n\nIPv6 is partially implemented but disabled. The tests pass, but each\ntest takes around 2 seconds, because some ICMPv6 replies for blocked TCP\nconnections seem to get lost somewhere and are only processed when the\nTCP SYN is resent one second later.\n\nChange-Id: Id77f2dd4d884b6d156e238e07e88c222e3bbe9a2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3905\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12e4b549f88c91e5eccb2abe1631793c879a66c6",
      "tree": "9bf724f8068149af2711a1132d569c006d507ecd",
      "parents": [
        "ec03df42d643603d0a8d92b0db1cc4a4a865651e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 19 16:29:30 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Feb 27 17:23:16 2025 +0000"
      },
      "message": "gomod: update k8s-nft-npc\n\nThis includes all of Jan\u0027s fixes to get the test suite to pass.\n\nChange-Id: Ie172325b87e7e4f4859c3576ce8577d48497027f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3924\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9bd9bd45d58fd615c0c240226e6fb74e406b0d17",
      "tree": "18961f688d41f4098e34231c201f2e96ac35d864",
      "parents": [
        "ffd8c7bb37da9b72eb66a0555e319ca2290ea761"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Feb 14 17:08:52 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 27 07:43:17 2025 +0000"
      },
      "message": "treewide: replace deprecated grpc.Dial with grpc.NewClient\n\nChange-Id: I925912ca1ee01d547fd9c1813eb083a2cd9a590a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3858\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12cab56e96b6591f4756bdca96e26260431fbcda",
      "tree": "bdba0d9a4bc52abe4fb2dd8bf287055f844725a1",
      "parents": [
        "e294916b24bb6d0035484d215421ceb03c6598b7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 25 17:01:02 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 26 14:11:21 2025 +0000"
      },
      "message": "m/n/c/l/crypt: open blockdevs read-only for discovery\n\nUse the new blockdev capabilities to only open the block devices in\nread-only mode for partition discovery. This allows us to disable writes\nto mounted partitions in Linux 6.12 and not get a spurious warning for\nevery boot. It\u0027s also generally good practice as we don\u0027t want to write\nat that stage anyways.\n\nChange-Id: If8dd9b49ae593aac6f0a25d439baa0b7d60d7ffe\nReviewed-on: https://review.monogon.dev/c/monogon/+/3986\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bed76d97e58becd2aa314a6132c9968efabc16b5",
      "tree": "d9e862bcddf77a913e8bdd3bb361f2fbcd949be5",
      "parents": [
        "8eb0244ed3653b6bcb80a29acb4f9e6b66a272f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 18 03:04:14 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 21:36:11 2025 +0000"
      },
      "message": "osbase/build: move efi.bzl, split and move def.bzl to their corresponding action\n\nThis is a small reorganization to make the osbase/build less dependent on each other.\n\nChange-Id: I8c12f04f3bdc98128c5424f142f452c2e094f2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3903\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2c3956750bb75b0d18ddd52565f998492b0f83f4",
      "tree": "e74900cf54d9476463bde2bac7a8c3e040ff18a6",
      "parents": [
        "d842aaf9b5b45c6a0851542e8c9d21032f99a249"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 18 12:26:41 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 25 16:04:13 2025 +0000"
      },
      "message": "m/n/c/network: drop random snat mapping workaround\n\nLinux has since fixed the issue that if two connections get assigned the\nsame mapped port/address combo one of them drops the packet. Instead\nthey just \"requeue\" it so it gets a new non-conflicting mapping.\n\nThis allows us the drop the workaround that mappings need to be\ngenerated on a per-connection basis instead of just a per-port basis,\nthis makes Linux behave more like an endpoint-independent NAT which is\nbetter for anything trying to establish P2P connections and also a bit\neasier to debug as source ports get preserved if possible.\n\nChange-Id: Ibfaf63746a269ec6bf0444e8c7dddb3a51b07900\nReviewed-on: https://review.monogon.dev/c/monogon/+/3907\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "16cb15ab5aa2fc0193a1534e65ba2e527e3e8f56",
      "tree": "0d04d148f5127884b12f73b9bc6f83804c65d4cd",
      "parents": [
        "7b1e4c1e89ba5507dd029984a29739b3d43f6846"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 24 18:47:48 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 14:23:22 2025 +0000"
      },
      "message": "treewide: explicity load built-in rules\n\nIn Bazel 9 all autoloaded rules will be disabled. This prepares us for\nthat.\n\nChange-Id: Ibaa4fa2e6b7095922a5699d2d5f3ae6c2cba3552\nReviewed-on: https://review.monogon.dev/c/monogon/+/3939\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "24bf6fdd43f3abb5a96d3081753fbdcc6bd3c1de",
      "tree": "f1d31a396adfe2489659ac0743a3e173d44c2a4c",
      "parents": [
        "632049b3e6ffda1039ef569ec2c234a7eadceae4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 12 04:48:24 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 17 13:53:17 2025 +0000"
      },
      "message": "osbase/build: replace label_keyed_string_dict with string_keyed_label_dict\n\nBefore bazel 7.4 the string_keyed_label_dict attribute type wasn\u0027t available. fsspec_core_impl was using a label_keyed_string_dict which is structurally wrong but there was no alternative for it. This replaces that usage.\n\nChange-Id: I36c02c84e6aa2557cd2beb09c07d3ceca501553d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3853\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "52700ae56c5d541e711fbd5f27373b3dc200f8dc",
      "tree": "ed5e75883fc44d14f7824b0a5ed40a6ab650923e",
      "parents": [
        "e8beaed8dcde2c198e91addb0baa884079363581"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 28 15:07:08 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 11 15:05:46 2025 +0000"
      },
      "message": "m/n/k8s: add nftables network policy controller\n\nThis integrates my K8s network policy controller. In its current form it\ndoes not have many guarantees as the custom CNI plugin is not yet in\nthere but it mostly works. Also there is still a DNS hole as host-local\nservices are not properly policed yet.\n\nIt has a basic smoke test using the connectivity testing helper as well\nas some metrics to make sure it is integrated properly and to be able to\nmonitor its performance.\n\nChange-Id: Ia2f54b9975361270678ce742ae5e32df25e515c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/3740\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "e8beaed8dcde2c198e91addb0baa884079363581",
      "tree": "8470b2dfe6a8017729083a4bb119c1d8f0b514d9",
      "parents": [
        "08fd1cb799ef2629a2da846584cd42fe2d6ecb35"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 05 22:03:50 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 11 13:39:37 2025 +0000"
      },
      "message": "m/n/kubernetes: add metricsprovider\n\nKubernetes has a metrics provider interface, add an adapter to be able\nto get these into our Prometheus registry. This code exists in a similar\nform inside K8s but against their custom metrics architecture, not plain\nPrometheus.\n\nAs these metrics are shared across all workqueues we follow K8s in\nimplementing this with a singleton/global. It\u0027s not the prettiest, but\notherwise we may get issues with Prometheus and duplicate metrics.\n\nChange-Id: I0b6d608d14793e44859166a5a59d446c8f662a25\nReviewed-on: https://review.monogon.dev/c/monogon/+/3829\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "08fd1cb799ef2629a2da846584cd42fe2d6ecb35",
      "tree": "891510981041e930b88ddead221836deb5a30a8c",
      "parents": [
        "6948d336e97fc71734013fc5c219671e3bea7965"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 10 19:11:17 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 11 11:59:57 2025 +0000"
      },
      "message": "osbase/socksproxy: implement hostname addresses\n\nThis is required by quite a few clients, like Chrome. Implement it for\nbetter usability of our userspace network while debugging.\n\nChange-Id: I5db16d3702800b79f88d11c132ce8f7469839ec4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3842\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "59094470108cac86cc8a9615cb934075a2c8780c",
      "tree": "ad823351a916d3391a5738a800c9866a0cae1428",
      "parents": [
        "5ffa636e48f42aef08bd8d186db2213fc8d0d665"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Feb 10 10:17:33 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Feb 10 16:16:47 2025 +0000"
      },
      "message": "m/test/launch/cli/launch-cluster: use metroctl_lite\n\nThis avoids building the bundle and thus speeds up the build of\nlaunch-cluster. metroctl_lite is already used in\n//metropolis/test/launch.\n\nChange-Id: I67ef3e92f068d4314f1ef9942ed2fe49992ce48f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3839\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "5ffa636e48f42aef08bd8d186db2213fc8d0d665",
      "tree": "6c40f21e3e1c52567734de5aa574b92c5ba10e20",
      "parents": [
        "de57e6f273b05ebf9f58bf4a4ca9734038bcad9f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 19:20:06 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 10 16:11:22 2025 +0000"
      },
      "message": "treewide: Fix RPC_REQUEST_STANDARD_NAME and RPC_RESPONSE_STANDARD_NAME\n\nChange-Id: I190ade92c04313961edd4787196568216d028ba8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3818\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "de57e6f273b05ebf9f58bf4a4ca9734038bcad9f",
      "tree": "8bc29c1edb49cdb69870f13794add9a3fc1b5762",
      "parents": [
        "c359d550ca8bf59acc77dd9aefc5b09572a7e399"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jan 08 16:34:08 2025 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 10 16:00:22 2025 +0000"
      },
      "message": "m/test/e2e/connectivity: add connectivity tester\n\nThis adds a connectivity testing framework. It uses pod agents and\ncommunicates with them over stdio. This is used to implement a simple\nsmoke test and will later be used to test network policy controllers.\n\nChange-Id: If40673a91336dbe3a7a383bf2e9d17736fad3bdc\nReviewed-on: https://review.monogon.dev/c/monogon/+/3756\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6d33a4342a16200d628f30ff91b169927fc2867a",
      "tree": "e65ad23cb6d0b795420b5ec625a757784d4c3e3b",
      "parents": [
        "7887f758de8f9106a484ca59d9734304aa919e36"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 14:34:25 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 17:03:43 2025 +0000"
      },
      "message": "treewide: add license header and enable haslicense linter\n\nChange-Id: I873a8d4082d75e8f813d8a726a41187eea7a065e\nReviewed-on: https://review.monogon.dev/c/monogon/+/3825\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7887f758de8f9106a484ca59d9734304aa919e36",
      "tree": "f3e85143bc4b4a064e44534327a1f656c83b6340",
      "parents": [
        "e6cc22700801d284386fdf7345dd85f7e522a6cb"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 03:06:56 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 16:46:49 2025 +0000"
      },
      "message": "third_party: move go patches into their own folder\n\nChange-Id: I7e2f2790e233aaf13cfd6ed2ffcf5544461a4f39\nReviewed-on: https://review.monogon.dev/c/monogon/+/3822\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "99e15117227f5663d390536118c02fbcc0e71834",
      "tree": "00f534ca904605a66e6ccfa988bfa6a4744db367",
      "parents": [
        "7c0bd0b18e0c857a8af930607b61bde0b68fb55f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 17:38:16 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 14:04:05 2025 +0000"
      },
      "message": "treewide: run gofmt -s and enable linter\n\nChange-Id: I90b8ef48c955dccfddc5bbc0a57205b7da844b60\nReviewed-on: https://review.monogon.dev/c/monogon/+/3828\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f525fa74802d2ea61577b188476bea2d54f816d7",
      "tree": "9603a1111df362b72286e12dc6a0f8f685a349bf",
      "parents": [
        "b51ecdff88528652297cdaeefa9fd94e7d63f093"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:31:42 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 15:45:47 2025 +0000"
      },
      "message": "treewide: Unmark SERVICE_SUFFIX rule exception as todo\n\nWe can\u0027t rename the services as it would be a breaking change.\n\nChange-Id: Ib6db1692e80ddff74819df62824b0d1311f11d7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3817\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b51ecdff88528652297cdaeefa9fd94e7d63f093",
      "tree": "14948d20ad9c3057fcc3cf58aaefca8e794bc186",
      "parents": [
        "0dca6c91ea9b8a14278aeb3a1a8ba6b512479862"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 22 21:59:59 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 15:45:47 2025 +0000"
      },
      "message": "treewide: Unmark missed ENUM_ZERO_VALUE_SUFFIX rule exception as todo\n\nChange-Id: If621eaedf1a1d816a528494efb3e46668c5608e1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3816\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0dca6c91ea9b8a14278aeb3a1a8ba6b512479862",
      "tree": "d3a4605fa9cefa9dccc79fe3df71d1e4335381a8",
      "parents": [
        "b6ed72eabf092066a837fea4b68846376bd70e8a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 28 15:04:13 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 05 14:55:23 2025 +0000"
      },
      "message": "metropolis: use interface groups\n\nThis adds interface groups to all K8s pod interfaces via a CNI plugin\npatch and corresponding configuration. It also adds an interface group\nto the clusternet interface. Using these new interface groups the\nnftables rules for NAT can be simplified.\n\nThese will also be used by the network policy plugin later.\n\nChange-Id: I4638a4349ccb12b8724ad28ae34bb61cac4b4ece\nReviewed-on: https://review.monogon.dev/c/monogon/+/3814\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "3c19522f224526e8418bd606f63a037a4bdc9466",
      "tree": "cd958c30e93628ef7f77d32437f385c97c494417",
      "parents": [
        "b69a71ca61b99fc68e83d5735eb449f638ef8b1e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 30 15:12:12 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 03 14:11:04 2025 +0000"
      },
      "message": "n/c/update/e2e/testos: ignore unnamed-macro lint\n\nThis also removes the global exclude for the unnamed-macro linter rule\n\nChange-Id: I416a73013abc38c5390348ffdf95984f769fd9c0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3819\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b69a71ca61b99fc68e83d5735eb449f638ef8b1e",
      "tree": "69aa2c20e8002355ca7657523b617923b2243e39",
      "parents": [
        "8f1254d1919c7cda42c611c9e1d83cf9a2ef8034"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 14:12:46 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 03 14:05:23 2025 +0000"
      },
      "message": "o/t/ktest: switch to proper rule\n\nThis was previously implemented as a macro, lacking proper transitions.\nReimplement it as a proper test rule.\n\nChange-Id: I237a2fcc29ea6dfbb294ce6313c9ff457def12b8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3722\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8f1254d1919c7cda42c611c9e1d83cf9a2ef8034",
      "tree": "5be283b1ba93876be9c5c53f256ef55793b35bd3",
      "parents": [
        "32e74305db44feaa564da55b3108ff3cc3f1fd32"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 28 14:10:05 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 03 11:13:25 2025 +0000"
      },
      "message": "m/test/launch: extend GetKubeClientSet with rest.Config\n\nK8s streaming transports need a separate rest.Config, expose that from\nthe GetKubeClientSet.\n\nChange-Id: I7c4ee5dae0349bd6742afcbaf23aa7536b1bdf88\nReviewed-on: https://review.monogon.dev/c/monogon/+/3811\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f4d38759600c2f308c4d4c79cfd9b4215d56b34a",
      "tree": "ea31800f2baa3bd6a6db28ca6d106abdf103058c",
      "parents": [
        "3eb7d033642ebaaddccde287d5ad3c8c59f7a576"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 22 21:59:59 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:44:58 2025 +0000"
      },
      "message": "treewide: Unmark ENUM_ZERO_VALUE_SUFFIX rule exception as todo\n\nWe don\u0027t really have a policy for these, they are chosen arbitrarily.\n\nChange-Id: I705ad309c2a36d794665de2482441858850a1893\nReviewed-on: https://review.monogon.dev/c/monogon/+/3805\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d634975c7d113b8ec093dae261288b10080283e0",
      "tree": "a71b12031fb83ca71af32de568135b2e39746bfa",
      "parents": [
        "7dac92b4445e15f0467a0a6e330c40faabae23fe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 06:43:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 12:30:59 2025 +0000"
      },
      "message": "treewide: bump rules_rust to 0.56.0\n\nChange-Id: I7e1ee6f6d10d1ffe0b8e94f81b4a901f49bf818d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3765\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7dac92b4445e15f0467a0a6e330c40faabae23fe",
      "tree": "7b1e9290437ae2c023cd0c1aa5015e4c69a75f4d",
      "parents": [
        "83da4226001e9ce1cc71e687418ab61fdff6cfc9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:51:04 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 27 17:17:28 2025 +0000"
      },
      "message": "metropolis/node/core: migrate main to osbase/bringup\n\nThis migrates our existing startup code to use our bringup library\n\nChange-Id: Ic78c80bc4631fa2a67cd6a3db1ea19642b20aea9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3706\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "1cd14f55663e33a6b6c42864395a8543fb325581",
      "tree": "194853ce3e2efcfd991c7f6f6b6c54a93d6b5a46",
      "parents": [
        "a857936232478afe0329b2d66ea8a794ca6f3667"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 11:43:13 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: add netlink error callback\n\nAdd a callback which logs netlink subscription errors. This may be\nuseful for debugging.\n\nChange-Id: I35c64ef68bfd098139f94e7d952174ff81acaac3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3810\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "20498ddc40079451c83ba3708afc57d820866cb3"
}
