)]}'
{
  "log": [
    {
      "commit": "4b8882699a307857c52e2faa3d4dfa544b188cd1",
      "tree": "c6fcc0c145d95d9b5b86feb27a655c040f9dd8af",
      "parents": [
        "b86917b2bdb755de8106aea08841c914d52d3347"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue May 13 09:12:03 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "treewide: use architecture-specific UEFI boot path\n\nThe default UEFI boot path depends on the architecture. This change is\nneeded for aarch64 support.\n\nChange-Id: I69916ac5063e963b67ecdcdd814b0678c61da9fb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4195\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b86917b2bdb755de8106aea08841c914d52d3347",
      "tree": "18727705322dc5b26584b7fe019812447f737224",
      "parents": [
        "07e6905d472157754a536564046a23654960de45"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed May 14 16:31:08 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "metropolis: replace version stamp with product info\n\nThis removes the stamped metropolis version library and the associated\nstampgo infrastructure, and replaces it with the product info file.\n\nThe info is now stored in a separate file in the rootfs, instead of\nembedded in the core binary. This has the benefit that the core binary\nno longer needs to be relinked when stamping info changes.\n\nThe version logging in core/main, and the tconsole are updated to show\nsome of the additional info from the product info.\n\nChange-Id: Ic5ed0e3598e8da71b96748e8d7abfedff41acd3f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4207\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "6df40aaf96ec4bcd5567b448109ec0a73cc5b2c8",
      "tree": "d412bad375fa031b3663aefe1b3364f0547734b4",
      "parents": [
        "163525e321a41724b1e457315c5003603957b3c6"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu May 22 15:35:44 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 11 19:46:15 2025 +0000"
      },
      "message": "t/linux: use toolchain and platforms\n\nThis allows us to do builds for different platforms consistent with how\nBazel does them. Also uses our own LLVM toolchain instead of the\n\"ambient\" GCC. As bzImages only exist for x86, rename everything to\nImage which is the cross-platform name. For us this is fine as we use\nthe PE entry point which exists for all of these.\n\nBinary path generation is a hack as not all of the ones Linux needs are\nactually available in the rules-based toolchain and we need a special\ncalling convention to work around a bug in LLVM when compiling assembly\nwith preprocessor macros.\n\nChange-Id: I8ed8fa7c1514b9ffbfaedf235e32250e4af40aa4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4215\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "69b7687c6a755ea017974c7318409970c2822e91",
      "tree": "9fb6c6ffcbb8822a2a943e85ebfd00601bb01fa1",
      "parents": [
        "549b1d3549b05b589d697a53ce2e663f9d87f8e3"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed May 14 16:39:47 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 19 08:37:47 2025 +0000"
      },
      "message": "metropolis/node: move misplaced packages out of core\n\nabloader, bios_bootcode and minit don\u0027t run as part of the core process,\nso it doesn\u0027t make sense to have them in //metropolis/node/core.\nThis changes moves these three to //metropolis/node.\n\nChange-Id: I908efb311a138f07a9f1de8e3c23437ff00131ee\nReviewed-on: https://review.monogon.dev/c/monogon/+/4196\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3cebdfd8929e83d79b1048295775786f2661153a",
      "tree": "f7ba908bc8019cd9af22ad564fb000d55aa41131",
      "parents": [
        "56248c1c1d5039bdf3c1043ade88f3f158ceb52b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 12 09:11:33 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 12 15:20:19 2025 +0000"
      },
      "message": "m/cli/metroctl: transition node platform\n\nAdd a platform transition to the node binary data dependencies of\nmetroctl. These binaries always need to be built for linux.\nAdditionally, the user may want to build them for a different\narchitecture than metroctl, which is possible with the new node_arch\nflag. If the flag is not set, the architecture is inherited.\n\nChange-Id: If4a15146392dfbc48c8e13db3bfb131f32176559\nReviewed-on: https://review.monogon.dev/c/monogon/+/4190\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "778cc33e311ab1578b3e1447c10b7d40612a774e",
      "tree": "78e166c6522ab612967f0cf9cde7d4318808873e",
      "parents": [
        "1b6cd6feb2ea0ee9940e59ec787803dae0071b22"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 16:31:40 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "m/n/c/abloader: fix duplicate build\n\nPreviously, the abloader was built twice with different\n@io_bazel_rules_go//go/config:static setting.\n\nChange-Id: I41ebac22613b895fe85f14367bdf0f31c817cafe\nReviewed-on: https://review.monogon.dev/c/monogon/+/4163\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "1b6cd6feb2ea0ee9940e59ec787803dae0071b22",
      "tree": "8fd33a9dd8da12a7524bb24fceef24350663d603",
      "parents": [
        "8ffa54e80544005e0f779c681a8c9dfc6afecfa7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 15:30:22 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "treewide: replace platform_transition_binary\n\nplatform_transition_binary changes the platform, but does not set\n@io_bazel_rules_go//go/config:static. Instead, build_static_transition\nis now used, which sets both.\n\nA second benefit of this change is that we have fewer places where the\namd64 architecture is mentioned, which should make it easier to enable\nmulti-platform builds.\n\nChange-Id: Id01e0d942a12770b8b34b0e6825f314128149b40\nReviewed-on: https://review.monogon.dev/c/monogon/+/4162\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "62cecde6415032da48f05a178c8e9e9721dab9c2",
      "tree": "47617bd0bcaaf31a45eb085d946ad24db34b4f48",
      "parents": [
        "82e8a57d0d715b9e0479000b18f50aafc63ac58a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 16 15:24:04 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for updates\n\nThis switches the node update implementation to the new OS image format\nbased on OCI artifacts. Updates are now fetched from an OCI registry.\n\nTo update existing clusters, build //metropolis/node:bundle in the new\nversion, then run the update command of the old version of metroctl with\nthis bundle. Once a node is updated, it only accepts updates in the\nnew format. It is possible to rollback if needed by building\n//metropolis/node:oci_image in the old version and using the new version\nof metroctl.\n\nThe node bundle target is no longer referenced anywhere, and will be\nremoved soon.\n\nChange-Id: I00ac6d0d88e379259cea52c8a106204c5eb73fe7\nReviewed-on: https://review.monogon.dev/c/monogon/+/4123\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "5fdca5678df575870c5c2def673669e894b5158e",
      "tree": "c4a02abab427e96b568ff5b22f8c77c0882c33ea",
      "parents": [
        "9d2f3c681fee76b54dc202da6ca140151f588be8"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:33:29 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for install\n\nThis switches the USB and SSH installation methods to the new OS image\nformat based on OCI artifacts.\n\nWhen stored on disk, the new format consists of a directory containing\nan OCI layout, instead of a single file. This means that all steps which\ncopy or upload an image now need to handle a tree of files.\n\nChange-Id: I526d32f5c50bd74f513f785118768a56b2655fa0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4090\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7ea9ef105600a845445523033d5745bb654d3000",
      "tree": "628eb95ac3cc9a661472a767f21da7a7750fb008",
      "parents": [
        "51f81e5779eac05472fa060f519c481f512bd704"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 27 15:57:41 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "m/cli/metroctl: use one progress bar for all files\n\nPreviously, there was a separate progress bar for each uploaded file,\nnow there is just one which shows the total number of bytes transferred.\n\nChange-Id: Id4cba63889077a076cb63d437e3fe4b17cfc3786\nReviewed-on: https://review.monogon.dev/c/monogon/+/4049\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0175d7ab5a5f0414fa4a472b7cf0e066fe8e5f66",
      "tree": "6c519e0d656373c0fbe273f4e6eeb5747fa329c7",
      "parents": [
        "997faa44e945697717b2eaf22786ba803f741a1e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 12:57:23 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/net/sshtakeover: refactor package\n\nThis is an extensive refactoring of the sshtakeover package.\n\nThe package is renamed from //go/net/ssh to //osbase/net/sshtakeover,\nto make it more clear what the package is for and avoid clashes with\ngolang.org/x/crypto/ssh.\n\nThe previous Client type was removed, and Dial is now a top-level\nfunction which takes an ssh.ClientConfig. The previous Connection type\nwas renamed to Client, which makes the naming match ssh.Client.\n\nThe Client interface type was moved to //cloud/shepherd/manager. This\nallows us to add more functions to sshtakeover.Client without breaking\nconsumers of the package, which would need to add dummy implementations\nfor functions which they don\u0027t need.\n\nThe Upload function was renamed to UploadExecutable, and the new Upload\nfunction can be used for files that don\u0027t need to be executable.\n\nThe sftp client is now created at the same time as the client, instead\nof creating a new one for each uploaded file.\n\nChange-Id: I3be9c346713cb4e5c2b33f9c8c9a6f11ca569a75\nReviewed-on: https://review.monogon.dev/c/monogon/+/4047\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "997faa44e945697717b2eaf22786ba803f741a1e",
      "tree": "5596de2b7cbb09fd3db1aeb41a45da285ee45e0f",
      "parents": [
        "c1b6df499c0e03d8d65b6570c2dcddb908752f7a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 14:24:08 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "m/cli/takeover: refactor CPIO writing\n\nRefactor the CPIO writing to first creating a structfs.Tree and then\nwriting that as CPIO in a separate function. Previously, errors during\nwriting were ignored; they are now properly handled.\n\nChange-Id: Icc7cf1c94dd01bc9d69b01ee2f6696bfa4c183af\nReviewed-on: https://review.monogon.dev/c/monogon/+/4040\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "c1b6df499c0e03d8d65b6570c2dcddb908752f7a",
      "tree": "17d045c8f96dd2d77aef785653ac1f937142c714",
      "parents": [
        "e4c48544e908e78efdb00c8c507c251be26c4ab9"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 20 08:52:18 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/fat32: adopt structfs\n\nChange the external interface of the FAT32 writer to take a\nstructfs.Tree instead of a FAT32-specific data structure. Producers of\nfile system data are no longer specific to FAT32.\n\nWith these changes, the blkio package becomes obsolete. The\nLazyFileReader did not actually work as intended when used with\nosbase/fat32, because fat32 copies data with io.CopyN and thus stops\nreading before reaching EOF, so the LazyFileReader is never closed. The\nnew Blob interface requires the consumer to explicitly Open and Close.\n\nChange-Id: I9a71a5f0bddf36ac38c656659e6dcfe520b88fb0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4037\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ec61a478161002b8cba1a21d152f3285355fa667",
      "tree": "055a6294ef297b8e992941c92d27968e9592194f",
      "parents": [
        "f07d1b373463bb30a068a1186176277a12a975bc"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Mar 24 18:54:00 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 25 11:48:25 2025 +0000"
      },
      "message": "m/cli/takeover/e2e: test with metroctl\n\nThis extends the starting end of the takeover end-to-end test by\nexecuting metroctl instead of duplicating some of the logic in the test.\n\nVM logs are now printed with %q such that that terminal escape codes are\nprinted escaped instead of raw. Without this, parts of the logs are\nobscured after a new kernel boots.\n\nChange-Id: I05de3eb2ce142a99815eba6b978dad92772fe10f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4034\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "f07d1b373463bb30a068a1186176277a12a975bc",
      "tree": "aaeb325253d1c27744afe998ac388778b3bbecf7",
      "parents": [
        "e817a2a25d8e1f87490d050c6d1ed293f0c81fd3"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Mar 24 18:36:06 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 25 11:48:25 2025 +0000"
      },
      "message": "metropolis/cli/metroctl: fix takeover path\n\nbundlePath was used for both bundle and takeover, probably a copy paste\nmistake.\n\nChange-Id: Ib3acc1f415fa24021bd9800eb9eb5deb061a919a\nReviewed-on: https://review.monogon.dev/c/monogon/+/4033\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "551a7373e295b30eb7453d51d71b21a5f8bac108",
      "tree": "4039f95ddebafeeadb2547484cdf09df4b5f7668",
      "parents": [
        "a0684409400aa22f39b44a125dc07729e98c4908"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 12 19:13:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Mar 13 14:38:51 2025 +0000"
      },
      "message": "treewide: remove rlocationpath workaround\n\nIt is apparently no longer necessary to hardcode these paths.\n\nCloses: https://github.com/monogon-dev/monogon/issues/316\nChange-Id: Ic7ff23266bfab3c4d32e54dfcbabf104c5f524c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4010\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "9bd9bd45d58fd615c0c240226e6fb74e406b0d17",
      "tree": "18961f688d41f4098e34231c201f2e96ac35d864",
      "parents": [
        "ffd8c7bb37da9b72eb66a0555e319ca2290ea761"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Feb 14 17:08:52 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 27 07:43:17 2025 +0000"
      },
      "message": "treewide: replace deprecated grpc.Dial with grpc.NewClient\n\nChange-Id: I925912ca1ee01d547fd9c1813eb083a2cd9a590a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3858\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bed76d97e58becd2aa314a6132c9968efabc16b5",
      "tree": "d9e862bcddf77a913e8bdd3bb361f2fbcd949be5",
      "parents": [
        "8eb0244ed3653b6bcb80a29acb4f9e6b66a272f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 18 03:04:14 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 21:36:11 2025 +0000"
      },
      "message": "osbase/build: move efi.bzl, split and move def.bzl to their corresponding action\n\nThis is a small reorganization to make the osbase/build less dependent on each other.\n\nChange-Id: I8c12f04f3bdc98128c5424f142f452c2e094f2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3903\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5ffa636e48f42aef08bd8d186db2213fc8d0d665",
      "tree": "6c40f21e3e1c52567734de5aa574b92c5ba10e20",
      "parents": [
        "de57e6f273b05ebf9f58bf4a4ca9734038bcad9f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 19:20:06 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 10 16:11:22 2025 +0000"
      },
      "message": "treewide: Fix RPC_REQUEST_STANDARD_NAME and RPC_RESPONSE_STANDARD_NAME\n\nChange-Id: I190ade92c04313961edd4787196568216d028ba8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3818\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "6d33a4342a16200d628f30ff91b169927fc2867a",
      "tree": "e65ad23cb6d0b795420b5ec625a757784d4c3e3b",
      "parents": [
        "7887f758de8f9106a484ca59d9734304aa919e36"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 14:34:25 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 17:03:43 2025 +0000"
      },
      "message": "treewide: add license header and enable haslicense linter\n\nChange-Id: I873a8d4082d75e8f813d8a726a41187eea7a065e\nReviewed-on: https://review.monogon.dev/c/monogon/+/3825\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "a10d0cb2c85c0ede60be6cc6d2dc7a66750ddecb",
      "tree": "540bc92832ea12cc8427c0bcd785498dfcc30119",
      "parents": [
        "f408e8123a3919a27d51983973a1bd41eaac1162"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 13 14:44:15 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 20:14:58 2025 +0000"
      },
      "message": "treewide: Fix ENUM_VALUE_PREFIX rule exception\n\nChange-Id: Ibc2fd66711f6aa347e88e2379c12db1898373700\nReviewed-on: https://review.monogon.dev/c/monogon/+/3804\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "156248b949f3da7c8d0f4f46cb97ac7606464952",
      "tree": "ff52faf242a29f1916edad64bca6282f8030ee66",
      "parents": [
        "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 00:27:45 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 20:13:30 2025 +0000"
      },
      "message": "treewide: format repo with buildifier\n\nChange-Id: Ia7aebeb7bba5b119c9157d1ad805cc477bcbb68a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3774\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3a171d123fff540c8c9d646152a5d5ed9ef873de",
      "tree": "62fe245a0182c3ba931d8c33278f2dd89c35e77b",
      "parents": [
        "0996ea85ca6200e1729941d316f7891835871938"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 23:51:23 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 21:19:31 2025 +0000"
      },
      "message": "treewide: add race-detector config\n\nThis also disables all `pure \u003d \"on\"` attributes as they propagate too\nfar and break the race detector because rules_go contradicts itself by\nforcing pure go even when CGO is required by the race detector. We build\neverything for our node images static and pure via a transition anyway,\nso this is actually fine.\n\nChange-Id: I5cd3879fba4258caa94df4dbea5c6472867b7e34\nReviewed-on: https://review.monogon.dev/c/monogon/+/3725\nTested-by: Jenkins CI\nReviewed-by: Hendrik Hofstadt \u003chendrik@monogon.tech\u003e\n"
    },
    {
      "commit": "d7c8bbbf6638f0042a972af7efaf808b159fcbb1",
      "tree": "4ed649b74c53ac0d1b514b2d2821556da33bef00",
      "parents": [
        "91bcf46639db7008c7290e6f27136cd122fd1b3c"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 17:26:35 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Fri Dec 20 15:53:04 2024 +0000"
      },
      "message": "m/c/metroctl: clean up ssh terminal handling\n\nDrop deprecated x/crypto/ssh/terminal package.  It\u0027s replacement is\nalready used in the same package.  Consistently use syscall.Stdin and\ncast it to int to be compatible with Windows.  This is a no-op on\nUnix-style platforms.\n\nChange-Id: I727a51a6aae6e57e4133ab5969db77af013ba78f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3699\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b9701c362d602b9b51961bcff849b2eb28b65883",
      "tree": "536fd1e47e35ca5b7ee81b6097b619c721b6916a",
      "parents": [
        "c441f0b4141a4908bbae142dcde929e427ad8fd0"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 17:50:01 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Mon Dec 16 19:34:45 2024 +0000"
      },
      "message": "m/c/metroctl: add prototext node-params option\n\nThis adds the node-params flag to metroctl install, which allows\nadvanced users to specify customized NodeParameters in a prototext file.\nThe cluster field gets overwritten by the existing logic.  As of now,\nthis is only useful for specifying network_config.\n\nChange-Id: Ieccf208177bb49635a634e484c67e99e80792bda\nReviewed-on: https://review.monogon.dev/c/monogon/+/3700\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d77e26ee216738393a9808c95266bbcb91ca0e68",
      "tree": "8dd5dfa48c9b388684b697687be4198094ac66e3",
      "parents": [
        "affe8fa229e3a701e060cb6bc35b9362814b5daf"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 02 18:23:10 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 03 14:31:57 2024 +0000"
      },
      "message": "treewide: replace bool-to-boolptr helpers with k8s.io/utils/ptr.To\n\nChange-Id: I90419ddfe087291f41f7f2f3589263e56c15470a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3675\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "affe8fa229e3a701e060cb6bc35b9362814b5daf",
      "tree": "63c91aa39676df52139f5c0df6023feff1ab0def",
      "parents": [
        "e49c273818f88cc4ff2fd9fcb8bb8272b70f1beb"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 02 17:53:24 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Dec 03 14:31:57 2024 +0000"
      },
      "message": "osbase/build: remove redundant platform_transition_binary rule\n\nWe have the aspect library in our dependencies anyway,\nso there is no point in copying this.\n\nChange-Id: I160a13a90dd45a0495670bd453a3aa0a16cfb771\nReviewed-on: https://review.monogon.dev/c/monogon/+/3674\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "275facf8c7a5f3dc826e27e75a6122226acd5694",
      "tree": "a4f5068b0d1888e9c81757539bc52f0dcf8e5f89",
      "parents": [
        "a8938da203b9ecc42a61b4aa9e92b802bf0e4902"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Sep 24 00:24:29 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 11 16:03:59 2024 +0000"
      },
      "message": "m/cli/metroctl/test: rename test file to fit naming scheme\n\nChange-Id: Ia4b93203d0da27ef171272bb9cb18ac7cdac5db0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3511\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b701df98b1706751142f29bee032321447886267",
      "tree": "27b650e77b9be17108f8e03aecfd535ec0366242",
      "parents": [
        "78567601398f4db5a8080fd30038ff7ac6affe0f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 14:15:33 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis/metroctl: implement cluster configure\n\nThis is a framework for simple ClusterConfiguration changes via\nmetroctl. We only have one mutable field for now\n(kubernetes.node_labels_to_synchronize), but more fields can be\nsupported later.\n\nThis could also be extended to support operations like \u0027add\u0027 and\n\u0027remove\u0027 for repeated fields.\n\nFinally, there could be another CLI command that would drop you into a\nprototext editor, similar to `kubectl edit xxx`. But this solves the\nsimplest usecase for now.\n\nChange-Id: I2fc588a2a2249a5c4f0cf52acb162cac9ed3d9a4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3595\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "beec27c6bdc2da730ffa2a2be6a68e1610148913",
      "tree": "d9c130b03107cdcbadcc50ff850d96d0c83b8dcb",
      "parents": [
        "2db687330d6c907bf31006730bdd161cd34cddaa"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 12:27:08 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: move takeownership under cluster subcommand tree\n\nThis is in preparation for having more cluster-wide commands (same as we\nkeep \u0027node\u0027 for all node-specific commands).\n\nChange-Id: I3fa5935e1d751261bf82a80cf61e811fa36effc9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3593\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "1f51cf42fcd4d7bb7f4b103c797c438bfa7b0098",
      "tree": "8baeed7e76e82440e9217ea7055d04af0ba14435",
      "parents": [
        "39f4f5c360e7a286bff4adaeabc52393dc28dc22"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 01 17:04:28 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Oct 31 14:09:31 2024 +0000"
      },
      "message": "treewide: update rules_rust to v0.53.0\n\nThis updated our patches for rules_rust, removes a transition as it can\nbe replaced with the \"platform\" field in the rust_binary rule. This then\nallows us to correctly reference it in all targets that depend on it.\nAdditionally the -target parameter is replaced inside the llvm-efi\ntoolchain with --target\u003d.\n\nChange-Id: Ie98753e505736c9ef28ff92fa1c5aa5b3612aec3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3473\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "39f4f5c360e7a286bff4adaeabc52393dc28dc22",
      "tree": "c81382f2408a83ab7391414738713633b8fc9608",
      "parents": [
        "1e39914fbcecda7ec236e67f143bbefc31eee9da"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Oct 29 09:41:50 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Oct 30 13:10:29 2024 +0000"
      },
      "message": "metropolis: add cluster domain config and metroctl param\n\nThis adds a --cluster parameter to metroctl and a cluster domain field\nto the bootstrap configuration. It is not yet used anywhere, but later\nthe cluster domain will be used to identify the cluster.\n\nThe length of the cluster domain is limited to 80, to allow for\nconstructing subdomains. This limit could be increased later if needed,\nbut it cannot easily be decreased, so I chose a conservative value that\nshould be enough in most cases.\n\nChange-Id: I627cca8eb1d92c4b06e4dfd6b6926a013e8f33ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/3508\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0b4fb8c4987b6ce0c8d33d9b643e0bcee5bfabe5",
      "tree": "e812207ac2a8573b3058e6a213a4810d8f65866c",
      "parents": [
        "0de92127b6b247c4e2a816a84a1ff045a603ca73"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Sep 18 17:34:23 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 08 21:00:43 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: refactor to use RunE instead of log.Fatal\n\nChange-Id: Id5ca65980816e1715a8f08afcdf712292117012a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3441\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "39d9c24f7167eb853aed0e1865ef8b187adf5bba",
      "tree": "dc8229e272c2f78eac56bdf4fde135809444f255",
      "parents": [
        "8d82f8d261b14b73385ba66e44279c53bb9fef13"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Sep 24 13:49:55 2024 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 26 11:44:09 2024 +0000"
      },
      "message": "metropolis: reduce usage of identity.NodeID\n\nEventually, we want to be able to rotate node keypairs. To allow this,\nthe node ID needs to become independent of the public key. This change\nis a refactoring which starts this work by reducing the usage of\nidentity.NodeID, the function which derives a node ID from a public key.\n\nChange-Id: I5231ed0a7be37c23327fec93481b00c74374af07\nReviewed-on: https://review.monogon.dev/c/monogon/+/3445\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "fc6e1cf11d0d96fac1e8d52b5787b207f8b1fd9f",
      "tree": "85ee090a2aa8cfe6bdc64e9116066350f8d12605",
      "parents": [
        "e551d31d39e7cf13e7adf2f66941e6989a708c60"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Sep 18 17:34:07 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Sep 23 15:44:49 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: don\u0027t print usage for runtime errors\n\nChange-Id: I91fdca45e874ea1ec9112df556a9a7392fd45bfd\nFixes: https://github.com/monogon-dev/monogon/issues/352\nReviewed-on: https://review.monogon.dev/c/monogon/+/3440\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5f1a7de2dfb5db1884fcb677a0bd38daf6dd3c97",
      "tree": "fd52bf35b4b2e6b5c51f56d62424c9d0820ef537",
      "parents": [
        "e337e938ae8e08dffa3a01045571188413ce70ff"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Sep 19 02:00:14 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Sep 19 12:06:50 2024 +0000"
      },
      "message": "treewide: fix %v in cases where we should use %w\n\nWe should always use %w when using fmt.Errorf as you can use error.Is to\ncompare the underlying error. When printing an error the use of %w is\nwrong and should be replaced with %v.\n\nChange-Id: I741111bd91dcee4099144d2ecaffa879fdbb34a2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2993\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7a1b27df41a9729dd9669cdaabd6864afc5e85b7",
      "tree": "fe32eee491bd556f3379ac2fba779d56314f045c",
      "parents": [
        "d0e39cbad2e12cbb23caa7d36ccbd4821285ac51"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 22 23:54:58 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 18 19:39:51 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: implement install ssh\n\nThis implements another way of installing metropolis via ssh. It does\nthis by uploading the files to the target machine and then doing a kexec\ninto the install environment. If it fails at any point it will print the\nerror and reboot.\n\nChange-Id: I1ac6538896709c386b053a84903fa04940c1f012\nReviewed-on: https://review.monogon.dev/c/monogon/+/2079\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ca8d951b683a3f0c64da7f61d4f74567d50623ac",
      "tree": "8e8f7af5a5902c0807d77d6774dfd8b426510624",
      "parents": [
        "04aa3df595521dab1fe8fb12b716d2826a37105f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Sep 12 14:20:57 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 16 16:29:59 2024 +0000"
      },
      "message": "metropolis/resolver: use logging.Leveled\n\nThis moves the resover client library to use logging.Leveled instead of\nan ad-hoc logger interface.\n\nBy now having multiple level of logs, and by defaulting metroctl to show\nerrors and warnings, this should fix #302.\n\nChange-Id: I7cae1cf1be377ec824ad46ea1da1b23b46e01903\nReviewed-on: https://review.monogon.dev/c/monogon/+/3432\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cc32cc4945e51da605a961022440f5456455ce30",
      "tree": "0bb5e4c3c4252ff561e6960819e1bba81e7ca30f",
      "parents": [
        "5a5c66bf9f8b7429687705e30b35e5ef2249a068"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 09 20:14:05 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 11 13:45:13 2024 +0000"
      },
      "message": "m/c/metroctl: implement reboot and poweroff\n\nImplements node-level reboot and poweroff commands, both routed to the\nReboot RPC.\n\nThese are approximately modeled after systemd\u0027s systemctl as that\u0027s\nwhat most people will be familiar with.\n\nChange-Id: I5578bb0a37cd8f0ac9438ae5f2f5db0bf025672b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3391\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "6120f38e1a10a1389f9413209ea6b6f23be56258",
      "tree": "e05e708b1c8c9a8fabdd725f66e8885dec448857",
      "parents": [
        "e1420ab79117be4c97818fa708f62fea3ff6d265"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Sep 03 16:31:10 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Sep 10 12:10:09 2024 +0000"
      },
      "message": "cli/metroctl: add metroctl_lite for use in tests\n\nIt is the same target just without any data dependencies to ensure we\ndont have large dependency tree when running tests.\n\nChange-Id: Iebd0fbd880de07bbd853ea8dce8e9fbb193506af\nReviewed-on: https://review.monogon.dev/c/monogon/+/3372\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "93d2e6c9014c17e86e357f7285e2a3378a6dbbcb",
      "tree": "3d3c0d1f26660d141c4bcacf19def7958fd835e7",
      "parents": [
        "14e634795ccfe49710f6f7b5d6c1819f575480a6"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 05 17:47:09 2024 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Sep 09 11:32:45 2024 +0000"
      },
      "message": "m/cli/metroctl: fix confusing logs\n\nIf there is an error, it previously logged both the error and success\nmessage, which is confusing.\n\nChange-Id: I2b4cbed205a035eae2b10412a527536593f38e24\nReviewed-on: https://review.monogon.dev/c/monogon/+/3384\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a9b060b0bf7d965c7f04f1d005d7f3767715d5bc",
      "tree": "3f04781571d00e3b9640bb24da27cd0c7b6c121a",
      "parents": [
        "397f7eaa1e98554f8b9fed2c748e492bf739027b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Aug 07 10:42:29 2024 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Aug 21 12:34:45 2024 +0000"
      },
      "message": "m/test/launch: allow specifying launch parameters\n\nThis adds flags to the launch-cluster command for specifying the size of\nthe cluster, tpm and storage security configuration, number of CPUs and\nRAM size for all nodes, and assigning roles to specific nodes.\n\nAs an example, the following command launches a cluster with tpm\ndisabled, 4 nodes, 2 CPUs and 4 GiB of RAM on each node, and assigns the\nKubernetes Worker role to all except the first node:\n\nbazel run //metropolis:launch-cluster -- -tpm-mode\u003ddisabled \\\n-num-nodes\u003d4 -cpu\u003d2 -ram\u003d4G -kubernetes-worker\u003d1-3\n\nThe default storage security policy was changed to insecure, as this\nspeeds up cluster launch.\n\nThe cluster configuration flags are defined in a new separate package to\navoid code duplication.\n\nFixes: https://github.com/monogon-dev/monogon/issues/315\nChange-Id: Icf8b7fcbd6e609f4785b2a60ce5e7be14b641884\nReviewed-on: https://review.monogon.dev/c/monogon/+/3307\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2542ef844695ed5b4d636b4aedecfd7ec6809166",
      "tree": "221ca06d7acbfe8e7bc58b87d1902f0a70c9cb09",
      "parents": [
        "5b075f7157dfac40ff5c26478cfb74deaf5ae48a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Aug 20 13:33:02 2024 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Aug 20 13:37:21 2024 +0000"
      },
      "message": "m/c/metroctl: fix crash deleting node without status\n\nIf status for a node is not present, which might happen for multiple\nreasons, metroctl node delete crashes trying to dereference a nil status\nvalue. Fix this by not printing status info if it\u0027s not available.\n\nFixes: https://github.com/monogon-dev/monogon/issues/341\nChange-Id: I204cd9a70c2b44238da0356ee2629325aa713bea\nReviewed-on: https://review.monogon.dev/c/monogon/+/3333\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "5b075f7157dfac40ff5c26478cfb74deaf5ae48a",
      "tree": "d79fb94a4044b0bc33504ce7b511ed93db34a04c",
      "parents": [
        "c2290c2e21ee5615d341d56799516829c2fea540"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Aug 18 23:51:23 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 20 13:03:51 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: Add missing role to command error message\n\nChange-Id: I06530fcc296022c5d24aee396073f6ce20d41135\nReviewed-on: https://review.monogon.dev/c/monogon/+/3331\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "82e6af71ad2b7927de8d754799271ee9f39506f9",
      "tree": "4da4ec95a6e4c5f58957c555d8646e46dbb25c6d",
      "parents": [
        "bceb1604c4d6ce1396c63083d2fd8aae98346cf3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 23 00:05:42 2024 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 13 12:43:45 2024 +0000"
      },
      "message": "treewide: replace hardcoded runfiles paths\n\nWe hardcoded some of the runfiles paths to find specific files. This replaces the hardcoded paths by a call to rlocationpath. This prevents running a target without the correct dependencies at build time instead of at runtime\n\nChange-Id: I7ce56935ac80be6b28b824ccb0781ab401bd6521\nReviewed-on: https://review.monogon.dev/c/monogon/+/3301\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "efbde1900fbeb9ab7cab58cd53a39f8cab859e7c",
      "tree": "3bd21c61782fd93566490507e31bec2da74eb6b0",
      "parents": [
        "f9a8dcda408842251433b7d3d734d4f0710d1ba2"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 31 14:53:20 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Aug 06 14:35:51 2024 +0000"
      },
      "message": "metropolis/node: export core/supervisor metrics\n\nChange-Id: Ibe3be27f9a5b3fc5e36babecc74d7d784d1f5e10\nReviewed-on: https://review.monogon.dev/c/monogon/+/3292\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a3e38cf9a4fcc0940402c4f18172662a84e28151",
      "tree": "add9e62b0d9598619e0000353999729fc7b376b2",
      "parents": [
        "58079040557df838ec418d96155df0b273331dab"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 31 14:40:04 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Aug 01 10:11:03 2024 +0000"
      },
      "message": "metroctl: add metrics command\n\nThis is a little helper command to access Node metrics easily for people\n(eg. developers!) who don\u0027t have a metrics collection infrastructure set\nup.\n\nChange-Id: Ibe3b4356db88e31c3156289ab8d8ca2985266b4b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3288\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "3325b4b940370ad4282fdaa6027a5672ff8fdc2a",
      "tree": "7308d80e86a0d0ea34a5d2d5c8dac8cb2dd8efeb",
      "parents": [
        "41b244857ee793cbf74552ec39f2ff614a686a56"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 15 19:19:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 22 21:25:58 2024 +0000"
      },
      "message": "workspace: bump bazel_gazelle to v0.37.0\n\nChange-Id: I45a7769d80781075fdfb1c438240a75629dd572a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3220\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "9f21f5396aa18bc9f2f83c867ff883f49bbf02ae",
      "tree": "c232f42c84bd6b7ace576261a188134cb0c69771",
      "parents": [
        "f430fbfe35b70283090b6174cf5a920163c0148c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 15:14:20 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 04 12:19:37 2024 +0000"
      },
      "message": "treewide: introduce osbase package and move things around\n\nAll except localregistry moved from metropolis/pkg to osbase,\nlocalregistry moved to metropolis/test as its only used there anyway.\n\nChange-Id: If1a4bf377364bef0ac23169e1b90379c71b06d72\nReviewed-on: https://review.monogon.dev/c/monogon/+/3079\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "41113935d59f3c0210b04d6251b1559979c677fb",
      "tree": "e51f6fcbbf47dcda3255a237c901aee4ae84b64a",
      "parents": [
        "1f789540bbe4bf94c4ccae795272703577ca586e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed May 22 14:02:17 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jun 12 10:00:40 2024 +0000"
      },
      "message": "metroctl: display labels for nodes\n\nChange-Id: I78c0c5b37d10989539bfe5f13b0afdc3fc8a2a7a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3102\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1f789540bbe4bf94c4ccae795272703577ca586e",
      "tree": "2ecd2308e42e5f25e898f6901cd7562c3adad18a",
      "parents": [
        "2b6dc312656035aedade6f368af1994bdb8b6021"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed May 22 14:01:50 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jun 12 10:00:40 2024 +0000"
      },
      "message": "m/{node,proto}: implement Node Labels\n\nNodes can now have Labels attached to them. These are string key/value\ndata designed after Kubernetes labels. They are meant to be used to\nattach metadata to nodes, for example external IDs, nicknames or\ngeographical information.\n\nThis change implements just the core functionality: storing them within\netcd, retrieving them via management and curator APIs, and mutating them\nvia a new management RPC.\n\nFollowup changes will impelement provisioning labels at\nbootstrap/registration time and accessing label data from metroctl.\n\nChange-Id: I556b452a65061294e7c51037723a6db31d587716\nReviewed-on: https://review.monogon.dev/c/monogon/+/3101\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2b6dc312656035aedade6f368af1994bdb8b6021",
      "tree": "488e63bfdf22b6b389e160a01d4f731c3956e2f3",
      "parents": [
        "8111b901b88c8ef9ca5e113584c928de4bfdd24d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 04 17:44:55 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 11 17:01:21 2024 +0000"
      },
      "message": "metropolis/test: create swtpm TPMs at runtime instead of compile time\n\nThe generated TPM data is random (it contains generated cryptographic\nkeys) so we really shouldn\u0027t be building it with Bazel.\n\nInstead, let\u0027s create it at runtime for e2e tests, and also actually\ngenerate separate TPM data per node with a common issuer for all.\n\nMoving the logic out of //metropolis/node also feels deserved, as this\nis all squarely in test territory.\n\nChange-Id: I257ee54c88ede685ba3faf573282b0f9228b10e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3132\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3b5a917c5a1ac49acad50eeacb5cf275efc3631e",
      "tree": "1da59c672acf3b68aab81fae38c6b6e5929b82a2",
      "parents": [
        "988403453448d27f6df6eea0a232e97c2a2e739b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 13:33:52 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 12:44:02 2024 +0000"
      },
      "message": "treewide: initialize empty structs with var\n\nChange-Id: I72d3993eaf5fe57c77b1dda8218e36a8cc11813d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3108\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "988403453448d27f6df6eea0a232e97c2a2e739b",
      "tree": "73318162f2e4f37f39b6619097ff425fb0908585",
      "parents": [
        "dd5b03c0f43dabdd1b2882a4147f5b4a828543b8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed May 22 13:03:55 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu May 23 11:44:32 2024 +0000"
      },
      "message": "metroctl: add --columns options for `node describe`\n\nChange-Id: I58763edc25de7ac50885beb343831ae1b65ec65d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3100\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5878603e42a090dca43467173a249d5a8be4533f",
      "tree": "ec164a6f23caf39dbbfbecd27f8abc2778a7bee1",
      "parents": [
        "f8baa3a161261f0906bb06825e49d7556a35376c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 13:47:41 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 12:55:58 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: fix %v in cases where we should use %w\n\nChange-Id: I5504dd8d12fe09d4373df619a3cecbfa39c7587b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3097\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8814f52a4b2baffd5bd1495483a806535e0eca02",
      "tree": "cc61e7260a52617b7ee62b4a44ada9ea4cfa26a0",
      "parents": [
        "99b021469b209bf184cd8d18749a7c1e74852a50"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed May 08 00:41:13 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 10:16:56 2024 +0000"
      },
      "message": "metropolis/pkg/logtree: move logtree protobuf definition to logtree pkg\n\nBefore this change we had the LogEntry message inside the metropolis\ncommon proto file. This splits it out into the logtree package to make\nit standalone in a future change.\n\nChange-Id: Idb26a829d6174efa946a6c4ce0f1b984cb2f18a2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3080\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b765f24f8f1c93b817c8a3f4f1eef2514562b140",
      "tree": "1afe10327fcbbefa99de0bf3bfcb0d28ca77abca",
      "parents": [
        "da1c950d5099b7384d9239d3590393080e9bc8f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed May 08 01:40:02 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon May 13 10:07:41 2024 +0000"
      },
      "message": "metropolis/cli/pkg/context: replace with signal.NotifyContext\n\nChange-Id: I457ccb83c7e25988755bb9463a8c83fc328a722b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3081\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "2f842379253a73de17fc67385765c7862e317453",
      "tree": "6b78e8f3ff5cbc2b4faeeebaf55e07a2369408fe",
      "parents": [
        "ddc5e6a098c24c1e69b5c692f534b05dbc763367"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 00:07:11 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 12:04:28 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: register context flag to the correct command\n\nChange-Id: I934a5094dfb1dcbd472300888a0aef89b3917719\nReviewed-on: https://review.monogon.dev/c/monogon/+/3078\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Hendrik Hofstadt \u003chendrik@monogon.tech\u003e\n"
    },
    {
      "commit": "cceb6a36f1084fb3ced6332be39a6a3256514ebb",
      "tree": "4eff76a3ccdc71387e2861ebec57a97df07d6fc9",
      "parents": [
        "fbd55e74da4468e977ab3c0bbbdbb481607d4eaf"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 16 13:33:15 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 30 14:51:05 2024 +0000"
      },
      "message": "m/c/metroctl: add exclude flag to node update\n\nThis allows excluding nodes from updates, required for doing update\nsequencing manually on large clusters until we have an in-cluster\nsequencer.\n\nChange-Id: Ia522f55496b562781815aceb1321b6a2de93653d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2985\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "b41b548058101e663a9591beaf2c491a44638d56",
      "tree": "4e977981d188d2e1d8cc37ba717c9a1787a04324",
      "parents": [
        "513df18bf6ae7ad0cc17807674ee561c518d0654"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:24:01 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: remove duplicate imports\n\nChange-Id: I3708f9b6fb95d9463e3b9da12757a4b19416124f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3026\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "513df18bf6ae7ad0cc17807674ee561c518d0654",
      "tree": "2f9ce2af2964680376b62b183d65a93ae615c2e9",
      "parents": [
        "a21783f4a1c8f67eea0ca354e31f73ccfd682688"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:44:50 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: errors variables should be prefixed with Err\n\nChange-Id: Ic277f98ebcd03356500ce7daba199738e701e81c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3025\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "73e9882a907654dbecfb55ea0f30030e0fedbb1e",
      "tree": "b69ef493fcdf76614ed82d64f1a9ec8c79bb0375",
      "parents": [
        "07541ae311e9477cf1e5a20af82a81ee77840afe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:13:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: cleanup error string formatting\n\nChange-Id: I9012ba58dded916984468219b214200144a439b9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3023\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2d5ae8fda8eb566280ec81a8368cc524b809a8b4",
      "tree": "a0a6165fc87599fdd9dc198d9ad35604fc7fcc0b",
      "parents": [
        "096654adb312a1bc858a0f886b8fba755eab52b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:11:53 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: add nolint after t.Skip/log.Fatal to make staticcheck happy\n\nChange-Id: I8b3dcff93fcb1d11673f327252693e6aba26c239\nReviewed-on: https://review.monogon.dev/c/monogon/+/3020\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "a355821fa06a7f68ff8ddca6050f71e92e4939a5",
      "tree": "17e5e7581716aa12139ffc082dd9d688ffcd1583",
      "parents": [
        "92316fdcb21e4cba0494793f5b90924accfd3fc3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:41:38 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "metropolis/cli/dbg: replace deprecated grpc.WithInsecure\n\nChange-Id: I288446fa4055ee95ae024b634228afbae633dede\nReviewed-on: https://review.monogon.dev/c/monogon/+/3017\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d5f851bb477638436826adec756fe562db526865",
      "tree": "d981b1c62d613b45fb55023da289098d7e377705",
      "parents": [
        "69fec522d5db79d07bb1f227c2ab39c57fdf2831"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 14:59:37 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 13:15:14 2024 +0000"
      },
      "message": "treewide: replace error comparisons and assertions with errors.Is\n\nChange-Id: Id2424eb155f2c6842c72c5fafd124d428ef901f2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2994\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "49c9ab02d7ce200db6defbc82d95646ac4d64804",
      "tree": "da4d21a21fe25fa6a9e6211e26d8c0ef4ebece1f",
      "parents": [
        "0c57d34190434556847345072371a42a9e1c3154"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:39:06 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:31:42 2024 +0000"
      },
      "message": "treewide: dont seed random\n\nAs of Go 1.20 there is no reason to call Seed with a random value.\nPrograms that call Seed with a known value to get a specific sequence\nof results should use New(NewSource(seed)) to obtain a local random generator.\n\nChange-Id: Ice1bbfefd900e6e9241428ec345f51f780eed91f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2960\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9ded9940bbdecf0453132077db997878db1e8f76",
      "tree": "26887ae0a8b3dbf4d42381c07a6565254f74e269",
      "parents": [
        "fb94c758e8c2a878905aeb1e7a3d46820c21b7a2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 08 21:30:17 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 09 12:17:06 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: don\u0027t try to use the bundle as installer\n\nThis slipped in when I refactored the install command, woops.\n\nChange-Id: I5c6178f9dcf4840b0d7efe9b6e62e35df242f7ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/2927\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ec2906a6874e223813593128b6e72594a1ecfb0f",
      "tree": "41dbab79fd40e9e84c4a2398cb6d3d2fd51298fe",
      "parents": [
        "000450835393a02845d425695947ecb3576e9b82"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Mar 27 01:36:43 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 03 14:55:50 2024 +0000"
      },
      "message": "treewide: rename node.NodeManagement to node.NodeManagementPort\n\nThis is the only constant not having Port in its name which breaks the\nnaming scheme. Lets clean this up by adding it.\n\nChange-Id: Ic34c81c6d80c69e20516f4fca3c26560bbcf3ac6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2911\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "240faa45248cb64227fa74ae57822af0340b884f",
      "tree": "b2a754b4f5a4e0a928fff0fd41f0cdf1a04c8c84",
      "parents": [
        "700f1c97e6e63635b1010f1080340f593411f96c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 04 20:03:32 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 11 16:34:27 2024 +0000"
      },
      "message": "m/cli/metroctl: fix nil pointer for \"node describe\"\n\nCloses monogon-dev/monogon#293\n\nChange-Id: Ic2397c3a145f39d0d41d1e74a7d18fce98606043\nReviewed-on: https://review.monogon.dev/c/monogon/+/2826\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "7661202fe654da6ea6403bce89157c4d678abf22",
      "tree": "aa48910ef8bcd14a50d69ebb099e913a6965ab4a",
      "parents": [
        "7c8684b9e8aa4b0b16efd5f01a040a504a814ebc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 05 19:20:36 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 05 19:00:45 2024 +0000"
      },
      "message": "m/c/metroctl: fix update logic when errors happen\n\nError handling in the node status polling loop did not exit the current\niteration of the loop when an error was encountered due to missing\ncontrol flow statements. This caused the update command to panic when\nthe node state could not be retrieved.\n\nChange-Id: I802d3073ca0ce85248f6692360879b391ac64e7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2834\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0a8797d0dc8055b5c2c300570ca9297fee2cf86f",
      "tree": "d47e4d7e924e76250fa90f9e91b17b8bcc6981a2",
      "parents": [
        "5f5f3300dec2d65eb0321a19f789cfdd65c12c17"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 04 18:58:47 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 05 18:40:23 2024 +0000"
      },
      "message": "m/cli/metroctl: add flag for k8s context name\n\nChange-Id: I57b261e7fdb0ceef63f8ce5f098ecb322ed85874\nReviewed-on: https://review.monogon.dev/c/monogon/+/2825\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7006cafc58cbff6765726447d84df1cd1531d346",
      "tree": "63f1d3af24e02e69f1d63fbc38dd2fad0785b292",
      "parents": [
        "79ffbbe040d0db6c4ff6f8cdc84fe13d537e2bfe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 27 16:49:39 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 27 16:30:34 2024 +0000"
      },
      "message": "m/c/metroctl: split cmd_install for future changes\n\nChange-Id: I99119cc8f5e3728cf832427d1cad79f69fbd48bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2793\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "9ce4071f43ce45198b702176a84342e9a8fc6e90",
      "tree": "49eb5319403c5b381b1c7d31cd5ba57619eafd32",
      "parents": [
        "c51d47d2b9990eb2196f5790f85895987f67daf4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 13 21:54:46 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 14 15:07:52 2024 +0000"
      },
      "message": "mc/c/metroctl: implement simple update sequencing\n\nAdds support for the max-unavailable flag, specifying the number of\nnodes which can be concurrently in the update process.\n\nTo implement this, we now wait for the node to report as healthy again\nbefore considering the update complete.\n\nThis allows simple gradual cluster updates.\n\nChange-Id: If6aa44d1b8f12aadd77e35f16513a4af521fa356\nReviewed-on: https://review.monogon.dev/c/monogon/+/2770\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c51d47d2b9990eb2196f5790f85895987f67daf4",
      "tree": "d9264dfb89d98f993d7c243484b3f36039c15e35",
      "parents": [
        "9c4bece001c15d6ae4793016b2e3854627b2164c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 13 18:40:26 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 14 11:44:08 2024 +0000"
      },
      "message": "metroctl: use persisted CA certificate for node connections\n\nAfter the TOFU change (review/2744 and friends), we can now use the\npersisted CA certificate (or a CA certificate from TOFU) when connecting\nto node services.\n\nChange-Id: I103b558f4f7a3087f1f27fdc4ee7f7e2ec03a981\nReviewed-on: https://review.monogon.dev/c/monogon/+/2769\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2a1d1b2e90a44e140dd95a492de0c857287e071f",
      "tree": "392015b9ffa5f6f38da494c0a2fc519f16883113",
      "parents": [
        "5d556cae21803212ac72a3713ed449b412f777af"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:07:42 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:04 2024 +0000"
      },
      "message": "treewide: replace datafile pkg with rules_go/runfiles pkg\n\nrules_go/runfiles provides the same functionality as our datafile\npackage. This change also contains some specifics for the now active\nbzlmod, which replaces all WORKSPACE related behaviour. As example the\nWORKSPACE name is now always set to _main.\n\n\nChange-Id: I1a69c72b479330a627b402135670f218c297906f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2745\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "568c38c74f95612fc3c236539b037ebe490302ee",
      "tree": "8380bdc8956c3843cce7fae9cf4c700576d22d87",
      "parents": [
        "7eeef0f448a4ec1737e2e63961f24f51eec5deae"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:39 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: use TOFU CA for Kubernetes with node pinning hack\n\nNow that we have a persisted CA certificate in metroctl, we can use it\nwhen generating a kubeconfig to verify the cluster.\n\nThere\u0027s a catch though: the presented node certificates do not have any\n\u0027global\u0027 name (just per-node names), and we can\u0027t easily tell Kubernetes\nto trust any name from a given CA. Thus, we introduce a hack to pin the\nname of the node we\u0027re connecting to within the generated kubeconfig.\n\nChange-Id: Iea6aa5c0012c793fcb42a94c3c9bf35ea5787ab1\nReviewed-on: https://review.monogon.dev/c/monogon/+/2744\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7eeef0f448a4ec1737e2e63961f24f51eec5deae",
      "tree": "690afce7d61fed7284991d3622d2b4b7f5948c14",
      "parents": [
        "925ec3de7a8562ef478216c77dff68c8235aeabd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:15 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: implement TOFU for CA certificates\n\nThis implements trust-on-first-use (TOFU) for connecting to a Metropolis\ncluster.\n\nIf no locally persisted CA is available, one will be retrieved from the\ncluster. If it is then accepted, it will be persisted for future use.\n\nTo retrieve the Cluster CA certificate we implement a new\nunauthenticated call in the CuratorLocal service. The alternative would\nbe to include the CA certificate in the served TLS chain, but that would\nlikely cause some backwards compatibility problems with existing client\nsoftware.\n\nFull TOFU (with an SSH style prompt) will be performed when the user\nfirst takes ownership of a cluster. Otherwise, user credentials\nincluding a certificate will be present, which allows the process to be\nsimplified by just retrieving a remote CA and checking it against the\nsignature of the credentials.\n\nChange-Id: I20002399935c2f13adc4526f5cceddad84b36a8f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2743\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "925ec3de7a8562ef478216c77dff68c8235aeabd",
      "tree": "da40b46730911a514b5f03e842ab3b3951f8f9cf",
      "parents": [
        "0c2801516b5191472bd4bc1a07ab6f414a805b27"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:38:20 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/cli/metroctl: clean up RPC API\n\nThis removes a bunch of logic from the metroctl core RPC functions,\nforcing users (currently only other metroctl code) to use grpc.Dial and\nthe metropolis RPC library directly.\n\nWe also make the core functions take ConnectOptions structures where\nappropriate instead of passing around tons of arguments.\n\nChange-Id: I4d7aa232a659097da35027dfb9b87c58cbb4ab84\nReviewed-on: https://review.monogon.dev/c/monogon/+/2742\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0c2801516b5191472bd4bc1a07ab6f414a805b27",
      "tree": "ddcffa8351f934c0a7066a6341b8bc6888e90ab3",
      "parents": [
        "ad86a55c9c507478e2c4989f50912d7869164066"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:33:19 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/n/core/rpc: limit API footgun availability\n\nThis unifies the interface of the\nNew{Ephemeral,Authenticated}Credentials calls. They now use the same set\nof CredentialsOpt options which allows both calls to request a\nparticular verification of the remote side of the connection.\nNewEphemeralCredentials also now requires an explicit WantInsecure\noption which surfaces attempts to dial the cluster without CA/node\nverification.\n\nChange-Id: Ibb65cb0952f6ff2092a3f55fe1c5a31bd2b72b36\nReviewed-on: https://review.monogon.dev/c/monogon/+/2741\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7dbf18c1932b5c7945a2ba53d7580a6857cda5d3",
      "tree": "18b42442d4585153e7644e1250993122d523c8b2",
      "parents": [
        "d5cace605ffd48f89db25456b260c550621b8b4c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 31 22:39:42 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 21:04:03 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: add `node delete` command\n\nChange-Id: I804829efe3e78a56cd44915c8351272ffa5c670f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2276\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0ccc85ba1eb4e067dc3eea0dd58b9ab0ebf48d29",
      "tree": "82ed8db26475204d2b73f44626b751a474763883",
      "parents": [
        "8d64a3bad1f73197398b28dacecef57266980c1a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:59:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "metropolis/node: add version to status\n\nThis implements submitting the Node\u0027s version to its\u0027 Status report to\nthe control plane.\n\nThis version is then displayed to the user in metroctl.\n\nChange-Id: I70eadb9a7001b6e50931245e8a6274da2fbdc5bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2334\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e0c0617e33e3b9c9a69b150189b1b13c010de9e0",
      "tree": "9908902859bf7245a07e27cb0e6c621f65f15a1d",
      "parents": [
        "48f22ce3a1558ad9994de3bde93f38e1aa997812"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 19 12:28:16 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 26 10:01:57 2023 +0000"
      },
      "message": "go/clitable: factor out from metroctl\n\nWe need the same functionality in bmcli, so factor it out from metroctl\ninto a generic library.\n\nChange-Id: I3fb3dfaae44a64d204e9220f117f379c382c5c4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2172\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3b25cf7c486781e018795066c3337e73ac7e526b",
      "tree": "82e9b47b2ffb0614f811b57eb000c249942686d7",
      "parents": [
        "45d6f1821bf047dbe2a71b8d21401dfb60583285"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 17 16:58:10 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Aug 07 13:27:50 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: add update command\n\nChange-Id: Iab7f930923f8009e0e14f96fc64d336614b1251e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1937\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ad131883747f73e51526dd6f163df23b913f69ed",
      "tree": "e5dee1d605cf4df4c507529185a82b49dbb841b3",
      "parents": [
        "cb9f3d3d495b12e26772271e368340a38244d586"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 28 16:42:20 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 27 13:58:35 2023 +0000"
      },
      "message": "treewide: port everything to blockdev\n\nThis gets rid of most ad-hoc block device code, using blockdev for\neverything. It also gets rid of diskfs for everything but tests. This\nenables Metropolis to be installed on non-512-byte block sizes.\n\nChange-Id: I644b5b68bb7bed8106585df3179674789031687a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1873\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "394b67e4208e1b2f06e61ab7e69ae58f444a56d8",
      "tree": "76280f2c02e4afe2f9ace484f7fd61040326df47",
      "parents": [
        "4f28b9ed6387dc22225f5e60a78f91ab8e3d65bd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 19 17:34:34 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jul 20 10:54:36 2023 +0000"
      },
      "message": "m/cli/metroctl: implement buildkind\u003dlite\n\nUsers can now build metroctl with:\n\n   bazel build //metropolis/cli/metroctl --//metropolis/cli/metrocli:buildkind\u003dlite\n\nTo request a metroctl built without a direct dependency on the rest of\nMetropolis. Such a metroctl tool will not be able to run `genusb`\nwithout manually specifying a metropolis bundle and metropolis installer\nkernel.\n\nChange-Id: Ic8c135392a7d0ec3120e5dbed8fd6636de578633\nReviewed-on: https://review.monogon.dev/c/monogon/+/1947\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "46a45f941632de6ef0085eee373a6c3dad5e9f53",
      "tree": "07f2b51255011347175505c94c2a99ebdb0832c4",
      "parents": [
        "9508b12bba50625eaccadc4aacf908ba538e3dd6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 19 17:09:52 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jul 20 10:54:36 2023 +0000"
      },
      "message": "m/c/metroctl: move installer dependency to runfiles\n\nThis is the first step in not requiring a full Metropolis build to build\nmetroctl.\n\nThings are still actively coupled at build time, but the resulting\nbinary can now run without any embedded installer.\n\nChange-Id: I55fc53c57ac6d1d3e75a225e7d7c79bae5759b67\nReviewed-on: https://review.monogon.dev/c/monogon/+/1945\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f0ec0f670512f82b8e1428acd577ffe1693d1f8f",
      "tree": "690b280b94ed797149986fbbbd697ca216386235",
      "parents": [
        "e95007b7090921e2aa4fdc24fea3d23f1bda048e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 17 13:43:38 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 18 13:58:24 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: add cert export command\n\nTo scrape metrics we currently need the owner certificate in a usable format.\n\nChange-Id: Ic6695b14a764d71d9c7b698c113fe0109d5820bf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1932\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7d1a0dee36f43f232481eb7ca4ec5d520a526907",
      "tree": "f63118614604040cdea0edfbfd7b644a124e8cda",
      "parents": [
        "0300077941db0edfdcac0ae42e4a5dad3e8d3fd7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 05 01:17:15 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jul 05 09:31:04 2023 +0000"
      },
      "message": "m/cli/metroctl: implement `k8s configure` command\n\nChange-Id: I3da7a627b1ada462e62b739bde2073743262e23e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1905\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "634a3cf16ecf4cd551847185e7b539d16ad52d2d",
      "tree": "7653202205bd238b3d9d02c2bf87ae66e277d933",
      "parents": [
        "b37d7d8ef4e318c9d35d34eff79fa0a304ff35aa"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 20:01:33 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 19:19:16 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: dont segfault on missing status\n\nChange-Id: Ib1a594e0ccca0f6a993e651b62e8adcfb9dc1ea4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1814\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b37d7d8ef4e318c9d35d34eff79fa0a304ff35aa",
      "tree": "d9426085481415352c83263204c81e2796032eed",
      "parents": [
        "c09327c6393202f0b425313a18a834954aeba572"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 19:06:44 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 18:18:30 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: dont write hostPort and report correct context\n\nChange-Id: I9ddccf35cf7a1fe7ee839250ceab0925fe8f0138\nReviewed-on: https://review.monogon.dev/c/monogon/+/1811\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c09327c6393202f0b425313a18a834954aeba572",
      "tree": "80eebf9133ee9126295b1f3aa1a80578854b830a",
      "parents": [
        "1600d9b3aa84c3259a3e8355cba7702825924b6d"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 17:48:56 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 14 18:18:30 2023 +0000"
      },
      "message": "metropolis/cli/metroctl: set storage security policy inside installer\n\nWithout it the installed metropolis node will fail initialization\n\nChange-Id: I137107260fc7c4f50052791f58454dd07b98c29c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1809\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "1600d9b3aa84c3259a3e8355cba7702825924b6d",
      "tree": "89699bcfedda33bb6aa7a69a4a9b11d58e6009c6",
      "parents": [
        "98054a1ddb45d9e0246a0f7f7b93f9e90619a544"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 14 20:00:59 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 14 18:16:09 2023 +0000"
      },
      "message": "m/c/metroctl: add newline between unapproved nodes\n\nChange-Id: I1db00eb9396e597a4596ad2b491a75bbcebacd62\nReviewed-on: https://review.monogon.dev/c/monogon/+/1812\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3a3c517696210f23f2c1d74d766ddf5750a3f4b8",
      "tree": "f20c99b0329b5895948e1cef5991dde8e5483a79",
      "parents": [
        "fd6d4ebffd699ed87cd8bb41dd7a74e40cbe519c"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 01 19:54:17 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 06 01:46:23 2023 +0000"
      },
      "message": "m/c/metroctl/test: deflake test\n\nThis test was flaky as the node picked to run takeownership against was\ndependent on map key order. Only the first node runs the relevant\ncontrol plane services, thus if the second node was iterated over first,\nthe test broke. Fix this by using the NodeIDs slice to get deterministic\nordering and always pick the first node.\n\nChange-Id: Id4ac162a8295be4e84ad439ac5b70ff5a968af04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1784\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bdc803b54b55b61bb07cd75ba966320e42a9c3b7",
      "tree": "9313f3d0c542c80150301718ca94ed3e2a143b84",
      "parents": [
        "b78919e7708904f042756e280015786caecf668c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 27 10:55:09 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 18 08:20:57 2023 +0000"
      },
      "message": "metroctl: allow picking cluster TPM mode on bootstrap\n\nChange-Id: I3822a0daabdae381e817b0d52b50173889967ec8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1496\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e4a4ce1dbbc8abc8a0817f80fcb27437a9e6ca63",
      "tree": "1d2fc878f2e74e1e077dd8848c983c00e6ffcb6d",
      "parents": [
        "5df62bae21bd89f15321a54a33a2ff59f5cbdce8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:29:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 09:14:54 2023 +0000"
      },
      "message": "metropolis: finish implementing TPMMode\n\nThis wraps up the implementation of TPMMode in ClusterConfiguration,\nallowing operators to select whether nodes should or should not use\ntheir TPM, based on local availability.\n\nWe keep the default behaviour to require a TPM, as we\u0027d like to be\nsecure by default.\n\nChange-Id: Ic8ac76d88ecc9de51f58ca99c92daede79d78ad7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1495\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2cfafc9a4c34152dd93b58aa82df1720fb4dd6d6",
      "tree": "7a944999ab576f4b421651c2c4d513b0b572a1be",
      "parents": [
        "d0be371ea905c3729f98d91d255d775b7c5193d3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:42:47 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 13 14:03:02 2023 +0000"
      },
      "message": "metropolis/node/kubernetes: move worker services to KubernetesWorker nodes\n\nThis finalizes the Big Split. After this change, nodes will only run a\nkubelet (and related services) if they have a KubernetesWorker role\nattached.\n\nThe first node in a new cluster now starts out with KubernetesController\nand ConsensusMember. All joined nodes start with no roles attached.\n\nChange-Id: I25a059318450b7d2dd3c19f3653fc15367867693\nReviewed-on: https://review.monogon.dev/c/monogon/+/1380\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e012b728d98e51e6b5564873f10c06c4f4c81415",
      "tree": "65d21fa881c46451a2c8234ef10cd4283e2f85b5",
      "parents": [
        "cff8eb9db471c6dd85f92e1828ecd268c2737dda"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:49:04 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 04 16:51:11 2023 +0000"
      },
      "message": "metropolis: implement NodeManagement.Logs\n\nThis takes the implementation from the debug service, dusts it off a\nbit, adds tests and moves eerything to the new node mgmt service.\n\nChange-Id: Id3b70126a2551775d8328c0c4e424ec0e675f40f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1439\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "da11486352f2aaccfa271a8aaf06a3bef09b0a3a",
      "tree": "c5a4f5488061d4c0a8660014bc4f4838361ee4aa",
      "parents": [
        "bc7397214147701d6e70141ff70bf6e84f9aab62"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:46:42 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 30 14:19:03 2023 +0000"
      },
      "message": "metropolis/proto: move log-related types to common\n\nHaving them in API is kinda weird, especially as we\u0027re\ngenerating/parsing them from a few libraries already.\n\nChange-Id: I87b4b51f151443c60b87e3e50753c395fcf6e845\nReviewed-on: https://review.monogon.dev/c/monogon/+/1437\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b91938fe16d74272c14e13cad5c6bd8f82391bc4",
      "tree": "c70a0acf239851748611957bee9d0275740b56ed",
      "parents": [
        "b40c008a6842a232c18b955375d4f1432b32cd53"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:31:22 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:18:22 2023 +0000"
      },
      "message": "metropolis: stub out log service\n\nThe server side and client-side implementations are not quite ready yet,\nbut we\u0027re commiting this early so that we can start implementing more\nnode-local management RPCs.\n\nChange-Id: I81b615b0f77dc7750cc738d60ee4923c3182721b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1429\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "8535cb5bc5437960430ff94d3ea7280ccf931340",
      "tree": "57edb5cf064ad8b43aef52c1bbb974dd5cce7c26",
      "parents": [
        "30fd15406e2c9cba7391f6af96c775b313a115fa"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 14:15:08 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:18:22 2023 +0000"
      },
      "message": "m/n/core/rpc: implement node verification in authenticated connections\n\nThe current API of NewAuthenticatedCredentials is not easily extensible,\nso switch over to such an API now.\n\nThis then adds a WantRemoteNode option which verifies that the remote\nconnection is established to a node with a given ID.\n\nChange-Id: Ie9f6b33d8b032729181bae5591eba9856ea2f523\nReviewed-on: https://review.monogon.dev/c/monogon/+/1427\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    }
  ],
  "next": "cfbbbdba0e7fa60c87ea6119697dff4e5e84a6ee"
}
