)]}'
{
  "log": [
    {
      "commit": "1e90c6d29a4af63fa01b472b7a49bdba256797b2",
      "tree": "dd4e37ad5679bc397c63041490032ab7eb88f6ec",
      "parents": [
        "c4dd0032736567ca7873a11588f3a64d1dddea88"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 19 22:21:01 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 19 21:40:47 2024 +0000"
      },
      "message": "m/n/c/mgmt: disable interfaces before kexec\n\nThis is done to prevent network interface DMA transactions from\ninterfering with an in-progress kexec. [1]\n\n[1] https://lists.infradead.org/pipermail/kexec/2011-January/004795.html\n\nChange-Id: I12ab22c095fcff56873d980d524c461b1b2d57ee\nReviewed-on: https://review.monogon.dev/c/monogon/+/2783\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c4dd0032736567ca7873a11588f3a64d1dddea88",
      "tree": "e5485ef011f7f2e1d17fb4e5f4bf0f6686b6fa75",
      "parents": [
        "fdd87abdd1d3bc7a87594a463344b1542e2650b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 19 13:13:31 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 19 14:00:17 2024 +0000"
      },
      "message": "cloud/shepherd: rename shepherd.State to shepherd.Availability\n\nChange-Id: I8e1fa243317bf4f97af98303b10b979b98943156\nReviewed-on: https://review.monogon.dev/c/monogon/+/2779\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fdd87abdd1d3bc7a87594a463344b1542e2650b4",
      "tree": "ac4b5a1bf2584611256c3a8903168bf33a05e799",
      "parents": [
        "968d72095a54aabed1a59cccf3591c4f32a7b70a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Dec 07 18:03:21 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 19 14:00:17 2024 +0000"
      },
      "message": "cloud/shepherd: skip machines in failed state\n\nCurrently we are not ignoring machines that are in failed state, which\nbrings the provider to a stop as soon as a provision request fails. We\nshould ignore such machines.\n\nChange-Id: I7be64c710cc15428f4d8d4e75b6df1e816d453f8\nReviewed-on: https://review.monogon.dev/c/monogon/+/2417\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "968d72095a54aabed1a59cccf3591c4f32a7b70a",
      "tree": "815d7df587bd967164a572d2aef21a769aa2474e",
      "parents": [
        "6a328e61aece941c0b91a97c8303c235ce80f596"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 07 16:33:38 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 19 10:08:55 2024 +0000"
      },
      "message": "root: move Metropolis README contents to metropolis/README.md, document launch-cluster\n\nChange-Id: I3555ce1d31e83e27239bcd8dde20bdc69deac35c\nReviewed-on: https://review.monogon.dev/c/monogon/+/2765\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "6a328e61aece941c0b91a97c8303c235ce80f596",
      "tree": "2a4fe2f61f6fa669de2b1df016e8c6df05a70c13",
      "parents": [
        "9ce4071f43ce45198b702176a84342e9a8fc6e90"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 12 17:37:50 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 19 10:08:55 2024 +0000"
      },
      "message": "root: move metropolis-specific tools to metropolis/, rename launch-multi2 to launch-cluster\n\nSince we now have more than one top-level project it makes sense to not\nhave metropolis aliases in the root.\n\nWe also drive-by rename launch-multi2 to launch-cluster and bump it up\nto three nodes.\n\nChange-Id: Ic99065465006e0dace05bcc1f2a702d430014b84\nReviewed-on: https://review.monogon.dev/c/monogon/+/2764\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "9ce4071f43ce45198b702176a84342e9a8fc6e90",
      "tree": "49eb5319403c5b381b1c7d31cd5ba57619eafd32",
      "parents": [
        "c51d47d2b9990eb2196f5790f85895987f67daf4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 13 21:54:46 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 14 15:07:52 2024 +0000"
      },
      "message": "mc/c/metroctl: implement simple update sequencing\n\nAdds support for the max-unavailable flag, specifying the number of\nnodes which can be concurrently in the update process.\n\nTo implement this, we now wait for the node to report as healthy again\nbefore considering the update complete.\n\nThis allows simple gradual cluster updates.\n\nChange-Id: If6aa44d1b8f12aadd77e35f16513a4af521fa356\nReviewed-on: https://review.monogon.dev/c/monogon/+/2770\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c51d47d2b9990eb2196f5790f85895987f67daf4",
      "tree": "d9264dfb89d98f993d7c243484b3f36039c15e35",
      "parents": [
        "9c4bece001c15d6ae4793016b2e3854627b2164c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 13 18:40:26 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 14 11:44:08 2024 +0000"
      },
      "message": "metroctl: use persisted CA certificate for node connections\n\nAfter the TOFU change (review/2744 and friends), we can now use the\npersisted CA certificate (or a CA certificate from TOFU) when connecting\nto node services.\n\nChange-Id: I103b558f4f7a3087f1f27fdc4ee7f7e2ec03a981\nReviewed-on: https://review.monogon.dev/c/monogon/+/2769\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "9c4bece001c15d6ae4793016b2e3854627b2164c",
      "tree": "3381a01d7f7d3e9fd9f6c6e2e037a3a76e5ce8ce",
      "parents": [
        "93020d77a383e68fd4b1adfafaf136c405648172"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 13 18:32:44 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 13 19:53:58 2024 +0000"
      },
      "message": "m/n/k/containerd: clarify preseed log message\n\nChanging this log message makes it easier to understand what happens.\n\nBefore:\n```\nSuccessfully imported preseeded bundle\nk8s.io/docker.io/bazel/metropolis/test/e2e/preseedtest:preseedtest_image\ninto containerd\n```\n\nAfter:\n```\nSuccessfully imported preseeded bundle\n\"docker.io/bazel/metropolis/test/e2e/preseedtest:preseedtest_image\" into\ncontainerd namespace k8s.io\n```\n\nCloses monogon-dev/monogon#287\n\nChange-Id: I932d36b0cc1926d7248028c8a412f921562a9858\nReviewed-on: https://review.monogon.dev/c/monogon/+/2768\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "93020d77a383e68fd4b1adfafaf136c405648172",
      "tree": "f35720a2f35a6efdb63b8044ece9d71121929bd9",
      "parents": [
        "502f9973502fec41d358e0c3939f61c5cf58e0de"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 13 18:13:07 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 13 19:53:34 2024 +0000"
      },
      "message": "m/n/k/containerd: use preseeded pause container\n\nTo allow no-network tests we need to bundle the pause container.\n\nChange-Id: I1fa6bb70c10a16097d35d919941f501ddc5f784d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2767\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "502f9973502fec41d358e0c3939f61c5cf58e0de",
      "tree": "7e0feee38fe038672b5294771486ae670691fec5",
      "parents": [
        "c5b52f17897b30a465761865fb0053b5d02c7756"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 08 06:18:05 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 13 17:37:56 2024 +0000"
      },
      "message": "workspace: migrate aspect_bazel_lib to bzlmod\n\nChange-Id: Ia185d32abb059d0b4456c7646f370105b42118ea\nReviewed-on: https://review.monogon.dev/c/monogon/+/2756\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c5b52f17897b30a465761865fb0053b5d02c7756",
      "tree": "8f584fac1ad5aedfc1495d83251f3ca5292183a2",
      "parents": [
        "bd8e2d7e1c3118899aa5f9501841f94e56aab24a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 13 14:45:19 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 13 15:28:40 2024 +0000"
      },
      "message": "build: fix workspace status detection\n\n`git status --porcelain` doesn\u0027t communicate status by return code, not\nsure where I got that from.\n\nTested manually on main branch just now.\n\nChange-Id: I9b05ba552abaf6efe2364b7dec43728eba4ace6e\nReviewed-on: https://review.monogon.dev/c/monogon/+/2766\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bd8e2d7e1c3118899aa5f9501841f94e56aab24a",
      "tree": "4f40b845b68dc5783ac0a0c8e56789a076903f82",
      "parents": [
        "6cb00ed6d867466d824ee5e3464f707787ed035c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 08 05:54:19 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 13 13:31:04 2024 +0000"
      },
      "message": "workspace: remove duplicate rules_oci definition\n\nIt was was already migrated to bzlmod, this removes the duplicate\ninside WORKSPACE\n\n\nChange-Id: I77052d15aeceebd28dd6cc6b93118664d6e50a86\nReviewed-on: https://review.monogon.dev/c/monogon/+/2755\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6cb00ed6d867466d824ee5e3464f707787ed035c",
      "tree": "fd7f6a1340634ed4233f6f9ec1bad479f17b5ec6",
      "parents": [
        "acdfba5e65701520a23e3b3a90c5cb17c0cf3ac2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Feb 08 17:49:19 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 12 18:10:28 2024 +0000"
      },
      "message": "m/node: panic on unknown NMIs\n\nConfigure the kernel to panic in case it receives an unknown NMI.\n\nThis can be used to induce a crash in a hanging kernel, allowing\ncrash diagnostics (pstore currently, maybe kdump in the future) to be\nused to diagnose the hang.\n\nThis can have false positives on some badly-configured client systems,\nbut is expected to be fine on servers as other server kernels like\nESXi\u0027s vmkernel behave the same.\n\nChange-Id: Ie41e7b816be8492636b6fa596c1c299c0a7a0fc2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2754\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "acdfba5e65701520a23e3b3a90c5cb17c0cf3ac2",
      "tree": "ffa24e208faa66029bb406e3d69a3c0cf1d7921e",
      "parents": [
        "d1f82e98ffe72d8378fbff4d127c6863d96b1f72"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jan 29 23:09:42 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 12 18:10:28 2024 +0000"
      },
      "message": "third_party/linux: enable more features\n\nEnables EDAC for ECC stats as well as SysRq over serial for diagnostics\nand some misc stuff we want like watchdogs.\n\nChange-Id: I8293a498726452d07176ddf59a841adf41e3ccd6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2730\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d1f82e98ffe72d8378fbff4d127c6863d96b1f72",
      "tree": "5c5e47642c62a059307b7cb72f46edc302b86750",
      "parents": [
        "38b959fcda1df417ad833acc006fb4a039b4f9ce"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Feb 08 19:27:46 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 12 18:10:28 2024 +0000"
      },
      "message": "m/node: use pstore for panic storage\n\nThe old solution never worked as the ESP was not mounted at that stage.\nIn general storing crash data there is suboptimal as it makes lots of\nassumptions about the system state.\n\nFor kernel crashes we already use pstore and there is an interface for\nstoring userspace messages in pstore as well. Set up the panic handler\nto put its logs in there and extend the pstore cleanup runnable to also\ndump that part of pstore into the logtree after reboot.\n\nIn most cases this also requires a kernel patch as most pstore backends\nto not allow userspace messages, probably to preserve limited space.\nSince we always clean pstore after reboot, this should be fine.\n\nChange-Id: I011109112e7bfd24d1772d5853a1d491c0cfd026\nReviewed-on: https://review.monogon.dev/c/monogon/+/2753\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "38b959fcda1df417ad833acc006fb4a039b4f9ce",
      "tree": "44971846f1720cb91d198e8a92b4261218c5b7a8",
      "parents": [
        "223609ced73e359b040cb56a873880e3f9efbd7e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Feb 08 17:53:45 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 12 18:10:28 2024 +0000"
      },
      "message": "workspace: update linux to 6.6.13\n\nNow that Linux 6.6 is in LTS, let\u0027s switch to it. This also allows us to\ndrop one patch which has since been merged upstream.\n\nAs our kernel config hasn\u0027t been regenerated in quite some time I took\nthis opportunity to do so. No semantic changes to the existing config\nwere made, I just went through all new settings and set them to\nappropriate values.\n\nChange-Id: I4e7d92e13ddb51aad5c6571f2ae081e8e6de7138\nReviewed-on: https://review.monogon.dev/c/monogon/+/2752\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "223609ced73e359b040cb56a873880e3f9efbd7e",
      "tree": "a87172ffa26304528ef2ec0c52227318b9f67240",
      "parents": [
        "244b567d827331be5bcc147562dd00db1d2b6579"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 12 22:59:20 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:23:51 2024 +0000"
      },
      "message": "WORKSPACE: update rules_rust and replace cargo-raze with crate_universe\n\ncargo-raze is deprecated, unmaintained and doesn\u0027t build anymore.\ncreate_universe reduces the clutter inside the repo and allows simpler\nsetup of rust requirements.\n\nChange-Id: Iebe88902ae469a28c0378707447f7d97006d0479\nReviewed-on: https://review.monogon.dev/c/monogon/+/2749\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "244b567d827331be5bcc147562dd00db1d2b6579",
      "tree": "8a0222cdfbe1fd2e10bc682ec1871ba263bbfae7",
      "parents": [
        "b40b918b88971002fd82f4e172ee347b435e41f5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 10:18:56 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:23:45 2024 +0000"
      },
      "message": "treewide: remove direct access to external/\n\nThis prepares the repositoriy to be compatible with the flag\n--nolegacy_external_runfiles. This reduces runfiles \u0026 sandbox creation\n times.\n\nChange-Id: I06720be4a3c873d68d8278dcb24271ed874f7134\nReviewed-on: https://review.monogon.dev/c/monogon/+/2747\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b40b918b88971002fd82f4e172ee347b435e41f5",
      "tree": "e225e83ee1cc281b8ba8728efa0a4c1029559faf",
      "parents": [
        "2a1d1b2e90a44e140dd95a492de0c857287e071f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:08:35 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:09 2024 +0000"
      },
      "message": "treewide: replace deprecated qemu short-form option \u0027readonly\u0027\n\nChange-Id: Id9fb95ab8b975cdbe76fc711ab20c16e3a91592a\nReviewed-on: https://review.monogon.dev/c/monogon/+/2746\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2a1d1b2e90a44e140dd95a492de0c857287e071f",
      "tree": "392015b9ffa5f6f38da494c0a2fc519f16883113",
      "parents": [
        "5d556cae21803212ac72a3713ed449b412f777af"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:07:42 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:04 2024 +0000"
      },
      "message": "treewide: replace datafile pkg with rules_go/runfiles pkg\n\nrules_go/runfiles provides the same functionality as our datafile\npackage. This change also contains some specifics for the now active\nbzlmod, which replaces all WORKSPACE related behaviour. As example the\nWORKSPACE name is now always set to _main.\n\n\nChange-Id: I1a69c72b479330a627b402135670f218c297906f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2745\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5d556cae21803212ac72a3713ed449b412f777af",
      "tree": "9ffc0cb6d4341200c140e7a65a7f5481e62daf04",
      "parents": [
        "568c38c74f95612fc3c236539b037ebe490302ee"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 08 07:39:30 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 13:01:00 2024 +0000"
      },
      "message": "treewide: bump runc to v1.1.12 (CVE-2024-21626)\n\nChange-Id: I7372e892b4d8b92f8c55e051049052cad3b33b04\nReviewed-on: https://review.monogon.dev/c/monogon/+/2751\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "568c38c74f95612fc3c236539b037ebe490302ee",
      "tree": "8380bdc8956c3843cce7fae9cf4c700576d22d87",
      "parents": [
        "7eeef0f448a4ec1737e2e63961f24f51eec5deae"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:39 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: use TOFU CA for Kubernetes with node pinning hack\n\nNow that we have a persisted CA certificate in metroctl, we can use it\nwhen generating a kubeconfig to verify the cluster.\n\nThere\u0027s a catch though: the presented node certificates do not have any\n\u0027global\u0027 name (just per-node names), and we can\u0027t easily tell Kubernetes\nto trust any name from a given CA. Thus, we introduce a hack to pin the\nname of the node we\u0027re connecting to within the generated kubeconfig.\n\nChange-Id: Iea6aa5c0012c793fcb42a94c3c9bf35ea5787ab1\nReviewed-on: https://review.monogon.dev/c/monogon/+/2744\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7eeef0f448a4ec1737e2e63961f24f51eec5deae",
      "tree": "690afce7d61fed7284991d3622d2b4b7f5948c14",
      "parents": [
        "925ec3de7a8562ef478216c77dff68c8235aeabd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:15 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: implement TOFU for CA certificates\n\nThis implements trust-on-first-use (TOFU) for connecting to a Metropolis\ncluster.\n\nIf no locally persisted CA is available, one will be retrieved from the\ncluster. If it is then accepted, it will be persisted for future use.\n\nTo retrieve the Cluster CA certificate we implement a new\nunauthenticated call in the CuratorLocal service. The alternative would\nbe to include the CA certificate in the served TLS chain, but that would\nlikely cause some backwards compatibility problems with existing client\nsoftware.\n\nFull TOFU (with an SSH style prompt) will be performed when the user\nfirst takes ownership of a cluster. Otherwise, user credentials\nincluding a certificate will be present, which allows the process to be\nsimplified by just retrieving a remote CA and checking it against the\nsignature of the credentials.\n\nChange-Id: I20002399935c2f13adc4526f5cceddad84b36a8f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2743\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "925ec3de7a8562ef478216c77dff68c8235aeabd",
      "tree": "da40b46730911a514b5f03e842ab3b3951f8f9cf",
      "parents": [
        "0c2801516b5191472bd4bc1a07ab6f414a805b27"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:38:20 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/cli/metroctl: clean up RPC API\n\nThis removes a bunch of logic from the metroctl core RPC functions,\nforcing users (currently only other metroctl code) to use grpc.Dial and\nthe metropolis RPC library directly.\n\nWe also make the core functions take ConnectOptions structures where\nappropriate instead of passing around tons of arguments.\n\nChange-Id: I4d7aa232a659097da35027dfb9b87c58cbb4ab84\nReviewed-on: https://review.monogon.dev/c/monogon/+/2742\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0c2801516b5191472bd4bc1a07ab6f414a805b27",
      "tree": "ddcffa8351f934c0a7066a6341b8bc6888e90ab3",
      "parents": [
        "ad86a55c9c507478e2c4989f50912d7869164066"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:33:19 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/n/core/rpc: limit API footgun availability\n\nThis unifies the interface of the\nNew{Ephemeral,Authenticated}Credentials calls. They now use the same set\nof CredentialsOpt options which allows both calls to request a\nparticular verification of the remote side of the connection.\nNewEphemeralCredentials also now requires an explicit WantInsecure\noption which surfaces attempts to dial the cluster without CA/node\nverification.\n\nChange-Id: Ibb65cb0952f6ff2092a3f55fe1c5a31bd2b72b36\nReviewed-on: https://review.monogon.dev/c/monogon/+/2741\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ad86a55c9c507478e2c4989f50912d7869164066",
      "tree": "214d48bcad4ede5909af88ce7deaadedd2d9fbe0",
      "parents": [
        "7dbf18c1932b5c7945a2ba53d7580a6857cda5d3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jan 31 17:46:47 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/n/kubernetes: serve authproxy with node certificate\n\nWe are currently serving authproxy with the Kubernetes node certificate,\nwhich is somewhat useless, considering that this certificate isn\u0027t even\nissued by the same CA that the client certificates (which are Metropolis\ncertificates) presented.\n\nThis changes the authproxy to serve with Metropolis node certificates\ninstead.\n\nChange-Id: I03ff19c919c6a9fa72c98997432cc06a59e9958e\nReviewed-on: https://review.monogon.dev/c/monogon/+/2740\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7dbf18c1932b5c7945a2ba53d7580a6857cda5d3",
      "tree": "18b42442d4585153e7644e1250993122d523c8b2",
      "parents": [
        "d5cace605ffd48f89db25456b260c550621b8b4c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 31 22:39:42 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 21:04:03 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: add `node delete` command\n\nChange-Id: I804829efe3e78a56cd44915c8351272ffa5c670f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2276\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d5cace605ffd48f89db25456b260c550621b8b4c",
      "tree": "3a020de589b3931d069a29deebddbb47e1f41d7f",
      "parents": [
        "961a7cc7f4794833f821a368b68d12ec70353d6c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jan 25 14:01:54 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jan 25 17:43:22 2024 +0000"
      },
      "message": "metropolis/node/curator: restart listener on status changes\n\nThis change ensures that a Curator\u0027s gRPC listener restart not only when\nit switches from leader to follower (and vice versa), but also when the\ncurator instance keeps being a leader/follower but the leadership status\nchanges in an important way.\n\nRestarting the listener is important when the Curator is a re-elected\nleader, as otherwise the listener will continue running with the old\nleadership data which includes the old leadership election key/revision,\nsubsequently failing any leadership transactions when serving gRPC\nrequests.\n\nSimilarly, we need to restart the follower listener when the we the\nleader changes to some other node, otherwise we end up serving old\nleadership data in GetCurrentLeader.\n\nAn alternative fix would be to move the leadership status to an Event\nvalue that gets updated and passed through to the listeners. This would\navoid somewhat unnecessary listener restarts on leadership changes, but\nthis will do for now.\n\nThis should fix issue #276 and perhaps some related flakiness. I\u0027ll try\nto write a test for this on top of this CR, but this will require a new\nkind of Curator test which we don\u0027t have yet.\n\nChange-Id: I20ef147adeb0c976b904ef55dbadb9b461111e94\nReviewed-on: https://review.monogon.dev/c/monogon/+/2722\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "961a7cc7f4794833f821a368b68d12ec70353d6c",
      "tree": "628530eb9b533df3e047e0db2af960ccfa84242d",
      "parents": [
        "0974b2275edc21ce3b76606ba7f8eed84e5cc9f0"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 13 21:00:02 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 23 17:10:41 2024 +0000"
      },
      "message": "WORKSPACE: bump bazel to 7.0.0\n\nChange-Id: Ic074b7b83f229e3c7f6ace7fdb46d33e5bd7c37b\nReviewed-on: https://review.monogon.dev/c/monogon/+/2708\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0974b2275edc21ce3b76606ba7f8eed84e5cc9f0",
      "tree": "b9bd73528dc6823168273fb8eb58d02054e90047",
      "parents": [
        "c834b7dd62f20188f3ffd7cbb092e2536403474b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 16 14:04:15 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 23 15:52:54 2024 +0000"
      },
      "message": "treewide: replace rules_docker with rules_oci\n\nrules_docker is not maintained anymore and recommends migration to\nrules_oci\n\nChange-Id: I089f3cf44888b3c3c0baa2c84a319b04b1a7dec4\nReviewed-on: https://review.monogon.dev/c/monogon/+/2712\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c834b7dd62f20188f3ffd7cbb092e2536403474b",
      "tree": "387939293c51c492fadb85985061c2337c6002f6",
      "parents": [
        "dc1230a18056dcfe901550fd912b690e1bb1867b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Oct 26 05:52:28 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 23 12:53:44 2024 +0000"
      },
      "message": "WORKSPACE: bump bazel to 6.4.0\n\nChange-Id: Id6ca8317c1eaeb55dc8f272fa51f8879c4c02320\nReviewed-on: https://review.monogon.dev/c/monogon/+/2261\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "dc1230a18056dcfe901550fd912b690e1bb1867b",
      "tree": "1b68ee2e6ebdfaf5e11a45fd9b1bd494a8956235",
      "parents": [
        "dae21ce4f8794257c46a32ca3e67b6fc52d9c791"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 11 11:29:41 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jan 21 13:52:43 2024 +0000"
      },
      "message": "build/toolchain/musl-host-gcc: regenerate musl sysroot\n\nCloses monogon-dev/monogon#179\n\nChange-Id: I77b8e2a05f0e8874f711519aab256e294d7bd963\nReviewed-on: https://review.monogon.dev/c/monogon/+/2699\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "dae21ce4f8794257c46a32ca3e67b6fc52d9c791",
      "tree": "c4b8dd07d82deffa6117ba4b1e69ffec68ff64dc",
      "parents": [
        "087152ba642040410bbfb9d673ff69ca6682a549"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 13 20:41:07 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 11 14:21:03 2024 +0000"
      },
      "message": "build/ci: replace build container with nix\n\nChange-Id: Ie304e50bef9a7d19aa57d5d0e63e6f1e574941ea\nReviewed-on: https://review.monogon.dev/c/monogon/+/2185\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "087152ba642040410bbfb9d673ff69ca6682a549",
      "tree": "e818c16b9a8d3346d48abdea5b4fe46de9589384",
      "parents": [
        "4327e8ff7cbe9ea1511248f303b84730f688ea43"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 16:04:24 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 16:37:24 2023 +0000"
      },
      "message": "workspace: update intel_ucode to 20231114\n\nChange-Id: Idfbe57ce5c9ff6453d8d87e596806b532a0df7cc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2596\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "4327e8ff7cbe9ea1511248f303b84730f688ea43",
      "tree": "307581de89cf2d8d5aefeaaed43168493a0a3956",
      "parents": [
        "60efa4416d36f04f860a130e51e8d82e0bf13f45"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 16:01:54 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 16:37:24 2023 +0000"
      },
      "message": "workspace: update linux to 6.1.69\n\nChange-Id: Ia2e8442f7d4780c8f34b2e4a10f30f47222f9fbc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2595\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "60efa4416d36f04f860a130e51e8d82e0bf13f45",
      "tree": "30388d277a200bcdff738e6c2d7b4b9a3d8f9978",
      "parents": [
        "4ae4b7a013b3b3d5c927b59392220abba8957ce2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 15:52:53 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 16:37:24 2023 +0000"
      },
      "message": "workspace: update linux-firmware to 20231211\n\nChange-Id: I14aaa08103bfecad8f0485f7fa1bc27117e1cbae\nReviewed-on: https://review.monogon.dev/c/monogon/+/2594\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4ae4b7a013b3b3d5c927b59392220abba8957ce2",
      "tree": "6bfa054ee7203ec3431bf03d449d04828793f2c3",
      "parents": [
        "30494c151b8dee3e20f681f800376a04e8f3965b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 15:50:46 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 16:37:24 2023 +0000"
      },
      "message": "workspace: update to Go 1.21.5\n\nChange-Id: I651588c482518205895cebd5975e52388d66940f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2593\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "30494c151b8dee3e20f681f800376a04e8f3965b",
      "tree": "ea622a06ea15ad4892d51896ef79002639c6cff6",
      "parents": [
        "0ccc85ba1eb4e067dc3eea0dd58b9ab0ebf48d29"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 28 16:27:24 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "build/status: remove old compatibility fields for metropolis/cloud\n\nChange-Id: I5e314714b02e87b5f955798dd2bcf497de699ac9\nReviewed-on: https://review.monogon.dev/c/monogon/+/2405\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0ccc85ba1eb4e067dc3eea0dd58b9ab0ebf48d29",
      "tree": "82ed8db26475204d2b73f44626b751a474763883",
      "parents": [
        "8d64a3bad1f73197398b28dacecef57266980c1a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:59:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "metropolis/node: add version to status\n\nThis implements submitting the Node\u0027s version to its\u0027 Status report to\nthe control plane.\n\nThis version is then displayed to the user in metroctl.\n\nChange-Id: I70eadb9a7001b6e50931245e8a6274da2fbdc5bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2334\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8d64a3bad1f73197398b28dacecef57266980c1a",
      "tree": "48969ae64f4a00755e9e3414a7b58cfb382810e8",
      "parents": [
        "8999faafd3184dbc4ba345f72812b29602c5412d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:58:42 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "metropolis: use //version\n\nThis switches over the Metropolis codebase from the previous build\nstamping system to the new //version library.\n\nChange-Id: I8ecb0c3b4b19098e0026215444bae9b34060440e\nReviewed-on: https://review.monogon.dev/c/monogon/+/2333\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8999faafd3184dbc4ba345f72812b29602c5412d",
      "tree": "04be915879bb49de08e4555d7424180052d64cd8",
      "parents": [
        "417d7f6b2e4bbf979ec336cf1dd5eb7599e6535c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:42:13 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "version: implement Go tooling\n\nThese two packages implement respectively:\n\n1. A companion Go library to access data from //version/spec\n   Protobuf data.\n2. A Go code generator and related Bazel build infrastructure to convert\n   Bazel build status data into an embedded //version/spec Protobuf\n   Version message.\n\nThe two allow for stamping Go artifacts with a generated spec.Version\nproto, and allows Go code to work with said messages.\n\nThe two systems are split to allow decoupling stamping build artifacts\nfrom processing such version messages. This is so that eg. a Metropolis\nclient tool can receive a server\u0027s Version field, and then show that\nfield to the user.\n\nChange-Id: I82fbfa6bc2418edc979cdc6e1fdee60ee75a88b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/2332\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "417d7f6b2e4bbf979ec336cf1dd5eb7599e6535c",
      "tree": "5770f7596eaa2e03157df319a3fcb945e42050db",
      "parents": [
        "f42e36431afdc3a4a6682dcc50bd61d18cb72870"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:57:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "version/spec: init\n\nThis is the second step in a repo-wide versioning system after the new\nbuild status generator.\n\nIt introduces a proto representation of the essential version data which\nis attached to artifacts generated from this repository.\n\nThe definition encompasses an informal spec on how this data can be\nserialized to a SemVer 2.0.0 version string, which will be used in human\nreadable output and with interoperability with external systems.\n\nChange-Id: I3f78e34af1f063fcf6035a0258a383b5d3f8adb6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2331\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f42e36431afdc3a4a6682dcc50bd61d18cb72870",
      "tree": "59cc7691861d9da54a28ffbc2f9186ba6597d2b7",
      "parents": [
        "d79881d8a07f0d5460e78b10adbb13be6052e6fd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 28 16:25:25 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "build/status: complete semver strings for product versions\n\nThis changes the _gitVersion status field into a _version field, which\nfully contains all version data in a semver compatible format.\n\nPreviously:\n\n   v1.2.3\n   v1.2.3-dev123\n\nNow:\n\n   v1.2.3-gdeadbeef\n   v1.2.3-gdeadbeef.dirty\n   v1.2.3-dev123.gdeadbeef.dirty\n\netc.\n\nChange-Id: I781fe4af6bbf8001d8f9920f542be490a8bc0f73\nReviewed-on: https://review.monogon.dev/c/monogon/+/2404\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d79881d8a07f0d5460e78b10adbb13be6052e6fd",
      "tree": "ff8c332c8d1e202c7cdae83814cdd4a91dd6d2c2",
      "parents": [
        "4f00f90934c3eb969b1490582b8194d8706a3e81"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 30 19:02:06 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 14:10:41 2023 +0000"
      },
      "message": "m/n/c/update: auto-repair preloader environment\n\nOn every successful boot this checks the correctness of the preloader\nas well as the EFI boot entries. If anything is wrong, it automatically\nrecreates the affected state. This also gives us a way\nto update the A/B preloader.\n\nChange-Id: I72137de2e3803e72a99a8397d2bfa818314229e5\nReviewed-on: https://review.monogon.dev/c/monogon/+/2413\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "4f00f90934c3eb969b1490582b8194d8706a3e81",
      "tree": "341594cd4a4768c155777032f04c7f8558723d30",
      "parents": [
        "7f14f91765c6b32a95aac5d2b40a25bba1eae695"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Dec 19 13:54:04 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 21 14:10:22 2023 +0000"
      },
      "message": "rust, toolchains: make EFI builds reproducible\n\nThis makes Rust EFI builds bit-for-bit reproducible by stripping\nBuildConfiguration dependent output paths and timestamps from target\nbinaries and intermediary files.\n\nChange-Id: I845be61f32ed304883460fca9006aa398d035b08\nReviewed-on: https://review.monogon.dev/c/monogon/+/2583\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7f14f91765c6b32a95aac5d2b40a25bba1eae695",
      "tree": "d3da64e7bf9baf6c89e29df78ce86504e64e9c89",
      "parents": [
        "a7cfc1c29ec81525846a48b98d0f66e2899c13b8"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Dec 15 21:49:15 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Dec 15 21:39:49 2023 +0000"
      },
      "message": "workspace: return to pre nix-shell directory before running bazel\n\nChange-Id: I64ec0f26e2b7fd4ec9497bc59d68df438f3496d4\nReviewed-on: https://review.monogon.dev/c/monogon/+/2579\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "a7cfc1c29ec81525846a48b98d0f66e2899c13b8",
      "tree": "68e5abb158a8ff68e820d2c1c0ca38b4ce15f586",
      "parents": [
        "d8a3fa2d6a84617b3013b07e15293ae266af8922"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 30 18:59:25 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 04 21:59:03 2023 +0000"
      },
      "message": "m/p/efivarfs: add Delete and DeleteBootEntry\n\nThis allows us to delete EFI variables in addition to reading and\ncreating them.\n\nChange-Id: I5fa4e64e5662a11bffdc0830c7af79301173f2aa\nReviewed-on: https://review.monogon.dev/c/monogon/+/2412\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d8a3fa2d6a84617b3013b07e15293ae266af8922",
      "tree": "c2cf863c5ddc2bd770c99c3fc70386247dbd30c6",
      "parents": [
        "63b346d8a41f2c6e668bb17600fbc15c4feb1f2f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Nov 24 23:14:09 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Dec 01 21:22:22 2023 +0000"
      },
      "message": "third_party/go: disable unused node_exporter collectors\n\nChange-Id: I56115f0b37aeeaca7e7b1648e423f61476186563\nReviewed-on: https://review.monogon.dev/c/monogon/+/2369\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "63b346d8a41f2c6e668bb17600fbc15c4feb1f2f",
      "tree": "e1422afea67211d2dc3b55626d7897df89860bc8",
      "parents": [
        "e6e570ae3c26c5fda4855522e8cf04644627295f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Nov 30 12:54:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Nov 30 15:48:00 2023 +0000"
      },
      "message": "metropolis/node/c/localstorage: make writes durable\n\nWith just a write() -\u003e rename() we can end up with an empty file in case\nof an outage. The write() needs to be followed by an fsync() to avoid\nthat.\n\nSince all of our localstorage framework contains only rarely-written\n\u0027configuration\u0027 style files, we now add such an fsync() to every\nwrite().\n\nThis should fix some flakes in tests and low-load clusters where eg. a\nnode can\u0027t read back its key material or persisted node roles after\nreboot.\n\nChange-Id: Iefae4f8bd68ee2972860a7c58326442c80d8aa8c\nReviewed-on: https://review.monogon.dev/c/monogon/+/2411\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e6e570ae3c26c5fda4855522e8cf04644627295f",
      "tree": "1678ee01ccfc5277f2e6f79858466a2847d291fd",
      "parents": [
        "6fa92ac53f2cbeb3b2e63dea9f87b1b19a680434"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 28 19:23:19 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 29 12:23:41 2023 +0000"
      },
      "message": "m/n/k/nfproxy: use discovery/v1 API\n\nThe old discovery/v1beta1 is deprecated and removed in 1.25. We need to\nget nfproxy to use the new API (available since 1.21) before we jump\nto a K8s control plane version above 1.25.\n\nChange-Id: I6336e168e9efbfc4a7b41f6fe15efebf95624df2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2407\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "6fa92ac53f2cbeb3b2e63dea9f87b1b19a680434",
      "tree": "4ba7bb0c1308b670c6e72718ea422a8c0d937883",
      "parents": [
        "7a5422e2718017958c0c408cd6f363d33f41fefb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 28 17:42:26 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Nov 29 10:27:26 2023 +0000"
      },
      "message": "metropolis/node: sanitize served logs to remove invalid UTF-8 characters\n\nIdeally we would instead either use bytes instead of a string, or never\nallow submitting log lines which are invalid UTF-8. And some day we\nmight still prohibit that - but for now let\u0027s add this failsafe anyway.\n\nFixes #277.\n\nChange-Id: I3d057f4bd1de0ce86e9724e2234b2a40efea8507\nReviewed-on: https://review.monogon.dev/c/monogon/+/2406\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "7a5422e2718017958c0c408cd6f363d33f41fefb",
      "tree": "f14a3dc1383555eecf538fe8a6ef05257fa9e0e3",
      "parents": [
        "3e756907d9c769bc92efde5325cd965a4dacf5bd"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 27 19:34:53 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 27 18:43:16 2023 +0000"
      },
      "message": "gomod: update rtnentlink to fix ARP table issue\n\nSee https://github.com/prometheus/node_exporter/issues/2849 and\nhttps://github.com/jsimonetti/rtnetlink/releases/tag/v1.4.0\nfor discussion.\n\nChange-Id: Id9d9630bf32c121ec059a3ee1de9b4e8aa42fb92\nReviewed-on: https://review.monogon.dev/c/monogon/+/2402\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3e756907d9c769bc92efde5325cd965a4dacf5bd",
      "tree": "e6b11184fd17367cde826cc2f561d228c881f0ba",
      "parents": [
        "947c0267b97834c4538777426f1a657f118a3945"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Nov 24 23:12:06 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 27 18:15:51 2023 +0000"
      },
      "message": "metropolis/node/core/metrics: build command inside runnable\n\nIt is not allowed to reuse exec.Command. The command has to be rebuild\nevery time the runnable restarts, because go does not allow command\nrestarts.\n\nChange-Id: Ia0f7c8e598bbd0c275d0cb47c020099d1baa5865\nReviewed-on: https://review.monogon.dev/c/monogon/+/2368\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "947c0267b97834c4538777426f1a657f118a3945",
      "tree": "39eb8d886197b457b0c611335421cbb1f8bcad90",
      "parents": [
        "5bfdb97df902a2ef27aecf40620d56773f9e90b3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 00:11:48 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 27 17:01:33 2023 +0000"
      },
      "message": "metropolis/node/core/metrics: enable more node_exporter metrics\n\nChange-Id: Ie4441cdb5c9c5ba6da8542aaeff8d60cd734030c\nReviewed-on: https://review.monogon.dev/c/monogon/+/2346\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5bfdb97df902a2ef27aecf40620d56773f9e90b3",
      "tree": "59684e3bed0821b6f1139d32042cb76ac0d2d8ec",
      "parents": [
        "1a773dd14503c985d4f4a8717a7d5a5ebcbe6552"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 25 06:01:28 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 25 19:29:46 2023 +0000"
      },
      "message": "tools/bazel: Allow direct invocation of bazel wrapper and add more docs\n\nChange-Id: I5f03225fb3d5c0304e2f3843ac3d81af2d1b504e\nReviewed-on: https://review.monogon.dev/c/monogon/+/2384\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1a773dd14503c985d4f4a8717a7d5a5ebcbe6552",
      "tree": "68833ddba21b8712d41c0aaa45c5583d3289f6a3",
      "parents": [
        "4ff00f89bac159848b5a694a1868885a9dcd2387"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Nov 24 00:14:05 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Nov 24 22:44:14 2023 +0000"
      },
      "message": "metropolis/node/core/metrics: fix ephemeral typo\n\nChange-Id: I10bee18e1174dd0b5a6b74b14eda8c1859d50cad\nReviewed-on: https://review.monogon.dev/c/monogon/+/2356\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4ff00f89bac159848b5a694a1868885a9dcd2387",
      "tree": "119cd2a2cb4a6fd03f969b5c2d0b7c7c79e53fde",
      "parents": [
        "538d3098711d0b8ca0ddd2e76c301f45a46eba9f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 14 00:33:27 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 21:47:02 2023 +0000"
      },
      "message": "treewide: update x/exp\n\nChange-Id: Ie8954ba4f170477ff676b64a64bc017e100a01bd\nReviewed-on: https://review.monogon.dev/c/monogon/+/2311\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "538d3098711d0b8ca0ddd2e76c301f45a46eba9f",
      "tree": "4ba3e2cf0010d359498449df741baf14a76d3de3",
      "parents": [
        "cf8a324b54ad8ab1b6adeb5c54b34de59a936143"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 16 07:59:55 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 21:47:02 2023 +0000"
      },
      "message": "treewide: update github.com/insomniacslk/dhcp\n\nChange-Id: Ia53b40a5ef3868043f0d6244ce08c6af458c6a24\nReviewed-on: https://review.monogon.dev/c/monogon/+/2321\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf8a324b54ad8ab1b6adeb5c54b34de59a936143",
      "tree": "c1cf639ddf65ea95fc438752578325950c659a5d",
      "parents": [
        "3fdaeaca3820de37a000a4157617b8c7fca7877c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 02:22:57 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 21:47:02 2023 +0000"
      },
      "message": "treewide: update node_exporter and dependencies\n\nChange-Id: I57f73c01905e77459b6c70a196c76ba331c80d8b\nReviewed-on: https://review.monogon.dev/c/monogon/+/2347\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3fdaeaca3820de37a000a4157617b8c7fca7877c",
      "tree": "654df63825aa91aa8615e21954dc15e11a450eb9",
      "parents": [
        "37dbb942110eb68df407f43ba1a40d872bb4cb67"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 13 23:33:07 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 21:47:02 2023 +0000"
      },
      "message": "treewide: update sqlc\n\nChange-Id: I72b0f33989bb0032d5a42bc888cdfac666db2a54\nReviewed-on: https://review.monogon.dev/c/monogon/+/2309\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "37dbb942110eb68df407f43ba1a40d872bb4cb67",
      "tree": "8d2972e43004d6bff4061c2894febca3edf273e5",
      "parents": [
        "a56cc4b99f6274fc2f70916b035e4d1da3205d45"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 13 16:06:18 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 23 21:47:02 2023 +0000"
      },
      "message": "treewide: update gazelle,rules_go\n\nnogo does fail with errors because of file in bazel-out/. To fix this we\njust disable the import sort check there.\n\nChange-Id: I241c354f0b23451b4afc989deceb4b38c4e20ee0\nReviewed-on: https://review.monogon.dev/c/monogon/+/2307\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "a56cc4b99f6274fc2f70916b035e4d1da3205d45",
      "tree": "7f9f6c0207ef375f9865cc408a063fd63065eec1",
      "parents": [
        "321cd715b52fb5c252cc2f99030883001748a63f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 22 23:45:39 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 23 04:45:38 2023 +0000"
      },
      "message": "m/n/c/network: add quirks infra and i40e quirk\n\nThis adds the applyQuirks function which is called during early\ninitialization of the network stack, before any network interfaces are\nenabled. This function applies device and/or driver-specific fixups to\nmake them work better. For that purpose it examines relevant metadata\n(driver in use, firmware version and OpROM version) to decide which\nquirks should be applied to which device.\n\nAs we do not yet have another way of exposing firmware versions, this\nalso takes care of logging all non-zero firmware versions.\n\nIt also adds a first quirk for i40e which disables firmware-based LLDP\nprocesing.\n\nChange-Id: I456753880102dfb5b3e94847cf5627a003d70eeb\nReviewed-on: https://review.monogon.dev/c/monogon/+/2344\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "321cd715b52fb5c252cc2f99030883001748a63f",
      "tree": "cf4e308ed0cff46be32b58a0b4f4745434dea82d",
      "parents": [
        "3aa00d46256216c799b0a8c4bcaeddcdfada483a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 22 21:22:16 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 23 04:31:42 2023 +0000"
      },
      "message": "gomod: use our ethtool fork with privflags support\n\nThis change is going upstream, but until it is, pull it in via replace.\n\nThe privflags support will be used in a subsequent CL to set better\ndefaults for certain NIC parameters.\n\nChange-Id: Ied85619ea3fce097722be5c244dcfcb019db7c6e\nReviewed-on: https://review.monogon.dev/c/monogon/+/2343\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3aa00d46256216c799b0a8c4bcaeddcdfada483a",
      "tree": "8fed2cccd0de0b0693af6bc27bf9612de2e373d3",
      "parents": [
        "600e2eb39a6581b5c48deac66c4c29015e48b877"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 20 23:08:41 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 22 20:54:23 2023 +0000"
      },
      "message": "third_party/nix: make run launch-multi2 work\n\nThis makes commands like `bazel run //:launch-multi2` work in the\nnix-shell which is nicer than running it inside a Bazel test.\n\nLong-term we should work on reducing these ambient deps, but\nconsidering all the other deps in that list I think this makes sense for\nthe time being.\n\nChange-Id: Iaef701f19bf363536e415b9a0c51a220b8785ca6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2337\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "600e2eb39a6581b5c48deac66c4c29015e48b877",
      "tree": "69b6850121e5a9896dded1bbd3afa881ebe03430",
      "parents": [
        "cf7f8c0475b8eaddb02869aaa9cb83ce3928b5f6"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 21 05:29:14 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Nov 22 13:33:24 2023 +0000"
      },
      "message": "metropolis/node: fix api-server metrics docs\n\nChange-Id: I28b4860a11a1fb4beb49feb65317220fcb683efd\nReviewed-on: https://review.monogon.dev/c/monogon/+/2340\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cf7f8c0475b8eaddb02869aaa9cb83ce3928b5f6",
      "tree": "0563191b7e033a230d4de6980aa38e8dc8b14f47",
      "parents": [
        "eb2520f048df92de2e48ff69d4b9a5431f0372d1"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 21 15:16:21 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 21 18:50:45 2023 +0000"
      },
      "message": "m/n/c/curator: log leadership key details when transaction gets aborted due to leadership loss\n\nThis should allow us to debug\nhttps://github.com/monogon-dev/monogon/issues/276 a bit further.\n\nChange-Id: If709858df15de67f19beffc8e14b0ab09bba89c8\nReviewed-on: https://review.monogon.dev/c/monogon/+/2341\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "eb2520f048df92de2e48ff69d4b9a5431f0372d1",
      "tree": "de8e9cb052cad3a6b8993f6814974b94abb4c0fb",
      "parents": [
        "4b42c8a429b1d061faa9823c1ac26adaac3dc012"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Sun Nov 19 07:04:15 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 20 22:13:16 2023 +0000"
      },
      "message": "m/n/c/metrics: add node name to discovery labels\n\nThis allows for identifying the node directly without taking a detour\nvia its IP address.\n\nChange-Id: Ia36ba52385292264a42f451ce2c63e9a6c76fdb6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2336\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "4b42c8a429b1d061faa9823c1ac26adaac3dc012",
      "tree": "e5bf8412d8fceb0178cbf93b7623934299b475e3",
      "parents": [
        "a6a039209495ee74c2e830a55f496e901b6a3b5b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Sun Nov 19 07:02:51 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 20 22:13:16 2023 +0000"
      },
      "message": "m/n/c/metrics: add kube-apiserver\n\nThis adds the Kubernetes API Server metrics to the list of exported\nmetrics.\n\nChange-Id: Ie5827441362787a3bff03ec6cff1f07332b0ae34\nReviewed-on: https://review.monogon.dev/c/monogon/+/2335\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a6a039209495ee74c2e830a55f496e901b6a3b5b",
      "tree": "11c915326c4b2c7b16dec2f67f595a3cb9a5db3b",
      "parents": [
        "79d0b0d518efef2f86904443b8612ed6bd90cb8c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 13 19:57:48 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 11:36:53 2023 +0000"
      },
      "message": "build: new workspace status script, new versioning scheme\n\nThis reimplements the workspace status script and fixes a bunch of\nissues along the way:\n\n1. The script is now in Python, which allows us to better express some\n   complexity.\n2. We now retrieve the Kubernetes version from\n   third_party/go/repositories.bzl, thereby unhardcoding the Kubernetes\n   version.\n3. We now support for multiple \u0027products\u0027 with different versions.\n   Currently we have only one product, which is metropolis. This is the\n   basis for tying Git tags to releases of a particular codebase within\n   the monorepo.\n4. Git tags are now parsed to retrieve the version of a product, instead\n   of it being hardcoded in the workspace status script.\n5. We use a vX.Y.Z-devNNN versioning system for builds which have\n   happened in between tags. NNN is the number of commits since vX.Y.Z.\n\nThis changes the current version of Metropolis from 0.1 to 0.1.0-dev440.\n\nIn an upcoming change we will implement a Go-side library to caputure\ninformation about the workspace state, both the per-repo data like VCS\nstate and per-product data like versions. For now we keep a stopgap in\nthe new script to emit version data as expected by the current codebase.\n\nChange-Id: I07cb17efc7d60aa269627a549f56ffa1bfdeb5b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/2304\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "79d0b0d518efef2f86904443b8612ed6bd90cb8c",
      "tree": "4694fc178feea953957e92814de0fd9aa358b34c",
      "parents": [
        "9907d199d9397dd90e1ff37e70ede151f2f89db6"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 18 23:12:13 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 18 22:24:59 2023 +0000"
      },
      "message": "metropolis/node/core/metrics: Enable cpu info exporter\n\nChange-Id: I625485570360908810fad3f56e8958ed2d5bbcad\nReviewed-on: https://review.monogon.dev/c/monogon/+/2327\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9907d199d9397dd90e1ff37e70ede151f2f89db6",
      "tree": "d9c04e69c126e74a157e522c5c2a75e5ad8951b7",
      "parents": [
        "449daf6f134c9473351921883f7481204f584ce9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 18 23:11:56 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 18 22:21:40 2023 +0000"
      },
      "message": "metropolis/node/core/metrics: Exclude veth interfaces from metrics\n\nChange-Id: If4059eb9aae225ab283c4f7d6d49342e626e206f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2326\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "449daf6f134c9473351921883f7481204f584ce9",
      "tree": "b4e20c7f33b4cba565272f6aa26e226bb5a3c7d6",
      "parents": [
        "786134dcac2737cb3ab62f1b54389946b1bc7fd4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 13 23:13:54 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Nov 18 02:35:40 2023 +0000"
      },
      "message": "treewide: update to go 1.21.4\n\nChange-Id: I4f4cdaf696a13dd967834ec5ea690aa266e3aea8\nReviewed-on: https://review.monogon.dev/c/monogon/+/2310\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "786134dcac2737cb3ab62f1b54389946b1bc7fd4",
      "tree": "4e2e7ebfc8a74ca2264f73a8acc69c39d26243a0",
      "parents": [
        "b6308cd63854e3ef48e6afcc4c1f51e0c6ac1203"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 13 16:55:14 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 16 18:09:22 2023 +0000"
      },
      "message": "m/n/c/n/dhcp4c/transport: replace mdlayher/raw with mdlayher/packet\n\nChange-Id: Iee27f977434d795fd16df6a16096fd8439f423ba\nReviewed-on: https://review.monogon.dev/c/monogon/+/2308\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b6308cd63854e3ef48e6afcc4c1f51e0c6ac1203",
      "tree": "ca6a5e292e05e420b7f04250c1e189511a6de3f7",
      "parents": [
        "a85c86f5b2d80251811f3a659fe9570694dd6056"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 10 21:19:03 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 16 18:09:16 2023 +0000"
      },
      "message": "cloud: split shepherd up\n\nChange-Id: I8e386d9eaaf17543743e1e8a37a8d71426910d59\nReviewed-on: https://review.monogon.dev/c/monogon/+/2213\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a85c86f5b2d80251811f3a659fe9570694dd6056",
      "tree": "987fdd08f23f5ccb5df390927db6905f3804d03b",
      "parents": [
        "b4f5024731f2f61b0f5b377fe9bcbb4934a5e83b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 16 05:19:12 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 16 18:09:06 2023 +0000"
      },
      "message": "go/types/mapsets: replace x/exp dependency with stdlib/cmp\n\nChange-Id: I5a97afb12ae161b607e2c5640ca9429dba1461b0\nReviewed-on: https://review.monogon.dev/c/monogon/+/2320\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b4f5024731f2f61b0f5b377fe9bcbb4934a5e83b",
      "tree": "d71e84a77c0e77849390bacbde7554bc02fa48b6",
      "parents": [
        "62f1d3680947e1d78bacf2a7277fb4b2007ebacb"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 14 21:51:07 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 15 13:10:19 2023 +0000"
      },
      "message": "treewide: use Pinner to resolve safety issues\n\nPrior to Go 1.21 the only way to pass Go-managed pointers to the kernel\nwas to convert them to a uintptr inside the syscall argument expression.\nThis pattern was special-cased in the compiler to prevent the referenced\nmemory from being moved by an eventual moving GC in Go while the syscall\nis running (thus corrupting the Go heap).\n\nBut this was very restrictive as there are syscalls which take inputs\ncontaining further pointers.  According to the official rules this could\nnot be implemented safely.\n\nIn practice you could just do it anyways as the current Go GC does\nin general not move objects, but it was always kind of a hack.\nWith Go 1.21 there is a new Pinner API which can be used to pin the\nmemory which is going to be referenced in these structures, allowing\nthem to be constructed and used over multiple calls.\n\nruntime.KeepAlive is still required to prevent finalizers from running\nprematurely.\n\nUse this new API and remove the relevant comments.\n\nChange-Id: I26bce06e1c20a5fe0c41f9ae736a895f533674c1\nReviewed-on: https://review.monogon.dev/c/monogon/+/2316\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "62f1d3680947e1d78bacf2a7277fb4b2007ebacb",
      "tree": "38c2fe1d57b68788f79ae018075b246f228310cc",
      "parents": [
        "60461b2b23eb57319525a3e00d7ae57e51598ebc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 14 16:18:24 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 14 16:44:03 2023 +0000"
      },
      "message": "treewide: stop using LZ4 for initrd compression\n\nThere are two issues at play here: One is a bug in pierrec/lz4 when\nusing the legacy framing format [1]. This bit us when we hit a broken\nsize region with CL:2130, taking hours to debug.\n\nThe other is the fact that the Linux LZ4 frame format has significant\ndesign issues [2], especially with concatenanted initrds.\n\nThe first issue could be fixed by switching to a different LZ4\nimplementation (we do even have the reference impl in the monorepo) but\nthere is no API to generate the legacy frame format and things like [3],\na patch carried by Ubuntu to fix more edge cases just do not inspire\nconfidence in such a solution.\n\nThus, this CL switches over to using zstd for compressing initrds.\n\nZstd is slower than LZ4 for decompressing, but it still decompresses at\nmultiple GB/s per core while having a much better compression ratio.\nIt also doesn\u0027t have any Linux-specific bits and Linux uses the\nreference implementation for decoding, which should make it much more\nrobust. So overall I think this is a good tradeoff.\n\n[1] https://github.com/pierrec/lz4/issues/156\n[2] https://github.com/lz4/lz4/issues/956#issuecomment-736705712\n[3] https://launchpadlibrarian.net/507407918/0001-unlz4-Handle-0-size-chunks-discard-trailing-padding-.patch\n\nChange-Id: I69cf69f2f361de325f4b39f2d3644ee729643716\nReviewed-on: https://review.monogon.dev/c/monogon/+/2313\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "60461b2b23eb57319525a3e00d7ae57e51598ebc",
      "tree": "17f4eb857a29b08a6e2be059279b9d88691aff09",
      "parents": [
        "3fd0977e92c3e86cdfde736debdda66af05d1015"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 26 19:16:59 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 13 21:05:16 2023 +0000"
      },
      "message": "metropolis: move curator client watches to curator/watcher\n\nThis replaces all the ad-hoc code to watch Curator node(s) with calls\nthrough the new curator/watcher library.\n\nChange-Id: Ie2a82b330e4108b9b725515cb10595916c38b323\nReviewed-on: https://review.monogon.dev/c/monogon/+/2263\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3fd0977e92c3e86cdfde736debdda66af05d1015",
      "tree": "879808d1406f1f1caeb5030a10779d25a6c05a07",
      "parents": [
        "8ec6ef0931c7e3d3084bc3180a9d88c002a1618d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 26 19:13:32 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 13 20:11:06 2023 +0000"
      },
      "message": "m/n/c/curator/watcher: init\n\ncurator/watcher is a new library which simplifies access to the Curator\nfrom client code.\n\nIt implements common logic found in a bunch of Metropolis code, where a\nnode or multiple nodes are watched for updates. The single-node version\nof this RPC is not that complex, but the many-node version is and\ndefinitely deserves a client library to remove possible sources of\nimplementation bugs.\n\nThis doesn\u0027t yet switch over any of the existing code to use this\nlibrary - that will come up in another CR on the stack.\n\nChange-Id: Ia1df6f21473f86cb9af1e962d157350a5cfd7d07\nReviewed-on: https://review.monogon.dev/c/monogon/+/2262\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8ec6ef0931c7e3d3084bc3180a9d88c002a1618d",
      "tree": "d9963dad7d76071fcb3d42bc84123f2aaaaa4867",
      "parents": [
        "ea762f621a91400569c3118bbaef395336d90979"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 13 13:30:28 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 13 20:11:06 2023 +0000"
      },
      "message": "go/types/mapsets: implement OrderedMap.{Count,Clear}\n\nChange-Id: Iaee5b914fe63ee7a60f796ef986535f6f8e72960\nReviewed-on: https://review.monogon.dev/c/monogon/+/2302\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ea762f621a91400569c3118bbaef395336d90979",
      "tree": "f2d09d28d42e91795c83e5b9b15e88e00a484bf6",
      "parents": [
        "d0424439e5c6637afa5b8156464d14933d955404"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 08 18:54:56 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Nov 13 15:39:29 2023 +0000"
      },
      "message": "m/n/c/n/hostsfile: do not log individual entries\n\nThis gets extremely spammy when spinning up large clusters as it\nemits all entries for every new hostsfile into the log.\nFor a fresh cluster of n nodes this is O(n^2) log lines, which is\nfar too many. The number of entries is already logged and should be\nsufficient for debugging purposes.\n\nChange-Id: I6bf4e489aea52bad3a32a8a0f900e832b6a4f197\nReviewed-on: https://review.monogon.dev/c/monogon/+/2298\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d0424439e5c6637afa5b8156464d14933d955404",
      "tree": "98a243e7e4612b6db6271c3ef9c5ef1036d1f519",
      "parents": [
        "60fab1cd31c77234e4840f95d12e2062ca7f0a5c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Nov 08 15:12:54 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 13 13:53:51 2023 +0000"
      },
      "message": "cloud/bmaas/bmdb/webug: Add provider ip address to webug\n\nChange-Id: Ic0b2767ef6b8dd86b158119e6e109c5acb406121\nReviewed-on: https://review.monogon.dev/c/monogon/+/2297\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "60fab1cd31c77234e4840f95d12e2062ca7f0a5c",
      "tree": "9ba6f87941285551ae62e3e165e622f148196511",
      "parents": [
        "246f2fe5d8139b167550b957365118d62ad8f4a9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 13 20:41:07 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 06 18:35:37 2023 +0000"
      },
      "message": "cloud/bmaas/scruffy: add nodes per region metric\n\nChange-Id: If9edcdd4a486fd2f141bfcd89dd1a2b60424ab4c\nReviewed-on: https://review.monogon.dev/c/monogon/+/2281\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "246f2fe5d8139b167550b957365118d62ad8f4a9",
      "tree": "fbded2cea378207e9a605225a75bfbb84995da21",
      "parents": [
        "d9f1f1ec67af21eba685505d7b3086fc222106e1"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Oct 26 04:39:35 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Nov 01 12:54:17 2023 +0000"
      },
      "message": "tools: extend bazel wrapper to execute commands inside nix-shell\n\nChange-Id: I27fd2e2ac863fabdc015437594bc2cc677279af1\nReviewed-on: https://review.monogon.dev/c/monogon/+/2239\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d9f1f1ec67af21eba685505d7b3086fc222106e1",
      "tree": "9281d846ff2d20f66dc24d2231969deb7fd1348d",
      "parents": [
        "8456ddf02aea2e1015805f18ef1871812c5cb7f6"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 31 15:44:35 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 31 17:33:45 2023 +0000"
      },
      "message": "node/core: add sysctls\n\nChange-Id: I47b0d639a62f73f134430c5164a35eef2b5622d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/2273\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8456ddf02aea2e1015805f18ef1871812c5cb7f6",
      "tree": "7ea30de34d2ed42e2da1c044fb62576464b4e2cc",
      "parents": [
        "7acd92dae19109fff8e6036d0a7fcd64aa1851c1"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 30 18:56:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 30 22:12:01 2023 +0000"
      },
      "message": "metropolis: implement node Deletion and framework for Decommissioning\n\nThis implements the basic ability to remove nodes from a cluster.\n\nWe prepare for a more complex workflow involving multi-sage\ndecommissioning, but first implement the \u0027worst case\u0027 workflow, in which\na node needs to be deleted if it hasn\u0027t been gracefully decommissioned.\nThis is what we currently need most in practice, as we have node\nfailures we\u0027d like to deal with.\n\nThe Delete functionality is still not fully complete though, as we\u0027re\nstill accepting client certificates from decommissioned nodes. But we\u0027ll\nfix that in an upcoming CR.\n\nChange-Id: I7322cb1464a9e5bc924363321534033dcc8a6246\nReviewed-on: https://review.monogon.dev/c/monogon/+/2270\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7acd92dae19109fff8e6036d0a7fcd64aa1851c1",
      "tree": "23f299c22f1b40014e9bf7bfca47b1788c1f7f28",
      "parents": [
        "91c0397b2f8eab309e0958afa1746c2a2d02b433"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 30 18:56:00 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 30 22:12:01 2023 +0000"
      },
      "message": "metropolis: renamed DISOWNED to DECOMMISSIONED\n\nThis seems like a better name, and the old one was never actually used\nanywhere.\n\nChange-Id: I66b17a9145225828bb978c999bbecd5118188389\nReviewed-on: https://review.monogon.dev/c/monogon/+/2269\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "91c0397b2f8eab309e0958afa1746c2a2d02b433",
      "tree": "1be5ceff1a23a179d2bbcdf5ca744624112131b4",
      "parents": [
        "da342a424ffbd981df2250ebed2aa845a18356eb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 30 18:54:32 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 30 22:12:01 2023 +0000"
      },
      "message": "m/n/core/curator: add FsmState to Curator Node data\n\nThe node state from the point of view of the cluster is already exposed\nthrough the Management Node data. Add the same to the Curator Node data.\nWe\u0027ll use this in nodes to detect when a node is requested to be\ndecommissioned.\n\nChange-Id: I60408a5e3a22c21dae6f073e21528ccc309b3fbe\nReviewed-on: https://review.monogon.dev/c/monogon/+/2268\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "da342a424ffbd981df2250ebed2aa845a18356eb",
      "tree": "2eae1557414e3d3982206e267d2e8ee0bd219bc2",
      "parents": [
        "c0f72dc5bd129a27d9a141a84f3602480a28400a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 24 15:47:54 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Oct 26 20:58:17 2023 +0000"
      },
      "message": "m/n/b/fwprune: fix bug in firmware deduplication\n\nThe populatedPaths set was checked for the path relative to\n/lib/firmware, but the absolute path was added. This caused the\nbailout for duplicate firmware requests to be ineffective.\n\nFound while using this for a weekend project.\n\nChange-Id: I74f6cd0dd7e2da1fc189da8a4d01aba7ac29b837\nReviewed-on: https://review.monogon.dev/c/monogon/+/2264\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "c0f72dc5bd129a27d9a141a84f3602480a28400a",
      "tree": "edc135243ce1caf6b11a448339b738629dd91bdb",
      "parents": [
        "f64f197c8039a72d82efaae6a21f725d3cd3ac7a"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Oct 19 16:54:38 2023 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Oct 23 21:07:09 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nMirror is up to date now.\n\nChange-Id: Idfbedccac30000a54ebc8fc0a95f4ff008f7a640\nReviewed-on: https://review.monogon.dev/c/monogon/+/2227\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f64f197c8039a72d82efaae6a21f725d3cd3ac7a",
      "tree": "302a5d9c6ee1d5cdf2b2c8e4abe7b0609c9a2ffa",
      "parents": [
        "54a5a053f2250c03d8476293ecb98fdb458ee5fd"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jul 28 00:00:50 2023 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Oct 11 10:53:00 2023 +0000"
      },
      "message": "metropolis/node/core/metrics: fixup metrics authentication\n\nChange-Id: I67643855ab61bfdea980211ffe01e50c2409882b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1979\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "54a5a053f2250c03d8476293ecb98fdb458ee5fd",
      "tree": "acfde3ff61c5181ca89998d725001071f86d9356",
      "parents": [
        "4811e70b3cd8f237c1b57ac85cc4c02b57c82535"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 02 16:40:11 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 10 15:14:57 2023 +0000"
      },
      "message": "metropolis: implement and use A/B preloader\n\nThis switches over from using the EFI built-in bootloader for A/B\nupdates to using our own EFI preloader due to significant issues with\nin-the-wild EFI implementations.  It is a very minimal design relying\non a single Protobuf state file instead of EFI variables.\n\nChange-Id: Ieebd0a8172ebe3f44c69b3e8c278c53d3fe2eeb4\nReviewed-on: https://review.monogon.dev/c/monogon/+/2203\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "4811e70b3cd8f237c1b57ac85cc4c02b57c82535",
      "tree": "aefc6d2f568c61ab5afcb2a7cb4f2c46b479deaf",
      "parents": [
        "0f43359cd444ab84167c9f5305ad5bfb9ffd3a3c"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 09 22:13:34 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 09 20:27:06 2023 +0000"
      },
      "message": "linux: bump to 6.1.56\n\nThis gets us to the latest LTS kernel, 5.15 is nearly two years old.\n\nChange-Id: I2f386c334b5067b9ced1b5286253d439884182bf\nReviewed-on: https://review.monogon.dev/c/monogon/+/2210\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0f43359cd444ab84167c9f5305ad5bfb9ffd3a3c",
      "tree": "cea0e3688f15af00f6f2fa28f1119593389835c1",
      "parents": [
        "5a90d306602a5ccb7022fa8c80b7b1e4fb6c85d4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 09 22:11:58 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 09 20:27:06 2023 +0000"
      },
      "message": "linux-firmware: bump to 20230919\n\nBump linux-firmware to a tagged version again.\n\nChange-Id: I65fcce7ed3ce0323e1504d339b349fc3a901bff7\nReviewed-on: https://review.monogon.dev/c/monogon/+/2209\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5a90d306602a5ccb7022fa8c80b7b1e4fb6c85d4",
      "tree": "b6e2bfe17aa8ccb532aeca405e17fc2eda99dc5f",
      "parents": [
        "d141d182614f915ae44250b84c6be10276ca4840"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 09 17:38:13 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 09 15:47:05 2023 +0000"
      },
      "message": "metropolis: fix handling GPT holes\n\nGPT tables can have \"holes\" i.e. unused partition slots. These are\nrepresented as nil values. Code walking these tables did not consider\nthat partition entries might be nil.\nFix the call sites and improve the gpt package documentation to\nexplicitly mention the need to check IsUnused.\n\nChange-Id: I27f5db31e14a4907a84d6069ddcc267b25871f72\nReviewed-on: https://review.monogon.dev/c/monogon/+/2208\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d141d182614f915ae44250b84c6be10276ca4840",
      "tree": "8d590cd643144299ccb28960ea7af55b79d8e304",
      "parents": [
        "1dc60af36a57d434689032234fdc9e9d00ed957e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 02 15:07:01 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Oct 05 13:46:24 2023 +0000"
      },
      "message": "workspace: add Rust EFI infrastructure\n\nThis bumps rules_rust, cleans up the toolchains with the new version.\nIt also adds the Prost codegen to \"normal\" crate set as well as a new\ncrate set specific to EFI. This is separate because of Rust no-std\u0027s\ndependence on create feature tags.\n\nChange-Id: Ie76e66ee83696948391420ca3b011a3a71258690\nReviewed-on: https://review.monogon.dev/c/monogon/+/2202\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "1dc60af36a57d434689032234fdc9e9d00ed957e",
      "tree": "df6f6d4fef63fb3fa13b4f06b9a06e0339caaec2",
      "parents": [
        "e0c0617e33e3b9c9a69b150189b1b13c010de9e0"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 03 15:40:09 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Oct 05 13:46:24 2023 +0000"
      },
      "message": "m/node: replace image genrule with proper rule\n\nThe genrule has issues with transitions so replace it with a proper\nrule.\n\nChange-Id: Ie5c38ae17da07a3694a6d0ea7a6580c588916175\nReviewed-on: https://review.monogon.dev/c/monogon/+/2205\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e0c0617e33e3b9c9a69b150189b1b13c010de9e0",
      "tree": "9908902859bf7245a07e27cb0e6c621f65f15a1d",
      "parents": [
        "48f22ce3a1558ad9994de3bde93f38e1aa997812"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 19 12:28:16 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 26 10:01:57 2023 +0000"
      },
      "message": "go/clitable: factor out from metroctl\n\nWe need the same functionality in bmcli, so factor it out from metroctl\ninto a generic library.\n\nChange-Id: I3fb3dfaae44a64d204e9220f117f379c382c5c4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2172\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "48f22ce3a1558ad9994de3bde93f38e1aa997812",
      "tree": "509c22d629aabf45b1c65e57598dd92eded4a455",
      "parents": [
        "a5588e1c1d15edf055e615be1269aa54eb4955fe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Sep 20 22:48:26 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Sep 25 14:32:49 2023 +0000"
      },
      "message": "third_party/nix: make nix-env reusable\n\nChange-Id: I19ffb94d0822044ad19b8454f91d2186209d3510\nReviewed-on: https://review.monogon.dev/c/monogon/+/2184\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "a5588e1c1d15edf055e615be1269aa54eb4955fe",
      "tree": "ed9770046b0f60948f09799a9f5519df6262abac",
      "parents": [
        "1feb0fef61999a073e238cca783ce8011f353add"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Sep 20 19:43:15 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Sep 21 13:01:44 2023 +0000"
      },
      "message": "third_party/sandboxroot: use macros for bazeldnf\n\nChange-Id: I055b377dc3b5580d442abcba939d8b720cb42ad9\nReviewed-on: https://review.monogon.dev/c/monogon/+/2183\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    }
  ],
  "next": "1feb0fef61999a073e238cca783ce8011f353add"
}
