)]}'
{
  "log": [
    {
      "commit": "218d708b0dffe7a8516d97b13b2cd0f4b91fd756",
      "tree": "4884e81008c897e385411598021656daa266bf1c",
      "parents": [
        "c25ca5d06e3c006987b77350e3f55cccd358e117"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:48:37 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:07:47 2023 +0000"
      },
      "message": "m/n/core/curator: fix another crash in IssueCertificates\n\nWe should have a no-go check for this, this should\u0027ve been easily found.\n\nChange-Id: I1c22e0436da1c71dffc6494a5d5b1867879e17c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1394\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c25ca5d06e3c006987b77350e3f55cccd358e117",
      "tree": "cd00ee88800059299481cc7e006feccbafffae32",
      "parents": [
        "6b7731ee4017d5f412fa487c12b5fcab1b91cd44"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:29:05 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:35:54 2023 +0000"
      },
      "message": "m/n/core/curator: fix crash in IssueCertificates\n\nChange-Id: Ib0e1f08bfcc2e70cd638f0863450508d10ab9a93\nReviewed-on: https://review.monogon.dev/c/monogon/+/1393\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6b7731ee4017d5f412fa487c12b5fcab1b91cd44",
      "tree": "b47ce1057e5034690d6ee42862a6acdd79ce91eb",
      "parents": [
        "d02f2166634fd8c2ef3433ab7212088802cc7f89"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:58:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:35:41 2023 +0000"
      },
      "message": "m/n/core: hide verbose supervisor logs from console\n\nChange-Id: I617c4b966caa35253ba53407fbfadc6615b50822\nReviewed-on: https://review.monogon.dev/c/monogon/+/1388\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d02f2166634fd8c2ef3433ab7212088802cc7f89",
      "tree": "92d7a6eaf0dc07ba4ac53d07deaa325218281e62",
      "parents": [
        "1ec1fe9f8af947c972f803d778f95d145606a6d0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:57:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:34:11 2023 +0000"
      },
      "message": "m/n/core: fix crash on exit\n\nThe current code crashes on exit if a console wasn\u0027t opened.\n\nChange-Id: I7fc235953fe04b8ea924a380e7eb9195a8883d6d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1387\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1ec1fe9f8af947c972f803d778f95d145606a6d0",
      "tree": "d63a4b0dc55dfd582bb20dcdd47011a501d4ed2c",
      "parents": [
        "fe39cc21b69bb9fd9f641dfc6b3514386cbb0d4c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:29:28 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:32:41 2023 +0000"
      },
      "message": "m/pkg/socksproxy: fix fd leak\n\nChange-Id: I4e5f9e937b85a46a9c4ee2e79f4bdcea06858d59\nReviewed-on: https://review.monogon.dev/c/monogon/+/1386\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fe39cc21b69bb9fd9f641dfc6b3514386cbb0d4c",
      "tree": "2c4ff1bc567bb6b5e276bef2028fc196cbc37f2b",
      "parents": [
        "e88ffe9af09b2740bfe0c47ec1efae0380d4f706"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 14:21:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:21:21 2023 +0000"
      },
      "message": "m/n/c/curator: implement IssueCertificate for Kubernetes Workers\n\nThis is not yet used in this change, but will be very soon.\n\nChange-Id: I0283941f15211515537d2b23e0c8cd72dc2d77c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1378\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e88ffe9af09b2740bfe0c47ec1efae0380d4f706",
      "tree": "da2fac1e9bd4343250bc01c1bff81062d7ee60a7",
      "parents": [
        "e6719b379b19ad4439b5fd38da035a3043008d97"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 13:38:46 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:04:17 2023 +0000"
      },
      "message": "m/n/kubernetes: factor out generating KPKI, support multiple endpoints in Kubeconfig\n\nChange-Id: I0e648c24ffa134314a03715575d1af1b925fd450\nReviewed-on: https://review.monogon.dev/c/monogon/+/1377\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e6719b379b19ad4439b5fd38da035a3043008d97",
      "tree": "e3008346b5b32b327c7537451aeaabbf5b144bb7",
      "parents": [
        "ac43801262f2ef399c4b61172823d6d88ec3575e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:57:50 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:04:07 2023 +0000"
      },
      "message": "m/n/core: do not show minit error on failure\n\nChange-Id: I42018ea1d177c5a49c827242a6c8be93363e49bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1389\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ac43801262f2ef399c4b61172823d6d88ec3575e",
      "tree": "d4df4f7dc8121d53432d860c4e234484adafa1f4",
      "parents": [
        "439c1b0485e58600b3fce4e97da9fa362b1de099"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:01:29 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 08:32:21 2023 +0000"
      },
      "message": "m/n/core/cluster: don\u0027t cry wolf about missing nodeparams sources\n\nChange-Id: I4498b122dc5c63af89b2c9909250dfc0b6dae732\nReviewed-on: https://review.monogon.dev/c/monogon/+/1390\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5d6cdf4891f5a0662e5485b5fd34039d7bb1f664",
      "tree": "4e44e0444adb3c770e545dcfcacd3cdd00ccf40c",
      "parents": [
        "d85a40ab6fa79efca11b02522b89855952226f33"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:11:05 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 12:18:03 2023 +0000"
      },
      "message": "m/n/c/core/cluster: notify whenever storage takes longer than 5 seconds to mount\n\nFixes: https://github.com/monogon-dev/monogon/issues/139\nChange-Id: I86398e51cee90c2c5a5a3cb943d85bd09ea311b8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1382\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d85a40ab6fa79efca11b02522b89855952226f33",
      "tree": "408907867ea99dbc07a5d61ec70b2c8478a57414",
      "parents": [
        "d6fee31d519a22720ae0342e02ccdba405b62ded"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:14:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:57:36 2023 +0000"
      },
      "message": "m/n/kubernetes/service: only note lack of reconciliation every 10 seconds\n\nChange-Id: I6e070325daa265e2e0a65bc5f5e69cc5c9869a04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1384\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d6fee31d519a22720ae0342e02ccdba405b62ded",
      "tree": "b440f3b977eabe81de0ee24f99f385d710dfd84d",
      "parents": [
        "c64ba1ec847af9314790d8f13ff9ead06a9be45c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:11:48 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:57:32 2023 +0000"
      },
      "message": "m/n/c/roleserve/controlplane: wrap tpm errors\n\nChange-Id: I0ec10b6065c529b7772a884fd48c7c6f7b5df0bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1383\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c64ba1ec847af9314790d8f13ff9ead06a9be45c",
      "tree": "d5e0fbb008fe2ac950241ff53770aeee4e7b3df8",
      "parents": [
        "e013f1b87807b7c0eb7440cec41e568ef288b499"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 19:15:13 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "go/net/tinylb: init\n\nThis implements tinylb, a tiny round-robin load balancer for\nnet.Conn/net.Listener protocols.\n\nThis will be used to loadbalance connections to Kubernetes apiservers\nbefore cluster networking is available.\n\nChange-Id: I48892e1fe03e0648df60c674e7394ca69b32932d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1369\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e013f1b87807b7c0eb7440cec41e568ef288b499",
      "tree": "14fee72b90e222cd7ad2b4b865bf8c7637a4fd5e",
      "parents": [
        "6fdca3f2e8b60f53f69c8cd39a02109cc47059ac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 11:49:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "m/n/core/localstorage: add helper functions for PKIDirectory\n\nChange-Id: I2798b9d6fcaedcf7a5e8e01e322797ebb8a1389d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1376\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "6fdca3f2e8b60f53f69c8cd39a02109cc47059ac",
      "tree": "f875b3e103037078ece4842fcdd77cbb87d7a6cf",
      "parents": [
        "f71fe9278055d5a892448554aa7c59862256db7d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 17:47:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "m/n/kubernetes: start splitting, run apiproxy\n\nThis begins the process to split the Kubernetes service into a\ncontroller and a worker service.\n\nFirst, we rename the existing service to a Controller, create a Worker\nservice, and make the Worker service run our new tinylb-based apiserver\nloadbalancer.\n\nWe also make the roleserver aware of this change by making it spawn both\nthe controller and worker services according to roles.\n\nWe will move services to the Worker in follow up change requests.\n\nChange-Id: I76e98baa0603ad5df30b5892dd69154b895b35fa\nReviewed-on: https://review.monogon.dev/c/monogon/+/1374\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f71fe9278055d5a892448554aa7c59862256db7d",
      "tree": "4e94d3394eb60e6a6144545cc37dcf85560c951d",
      "parents": [
        "d09c58f33c523c9395446122fc552c58dbab80cc"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 01:10:37 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 10:43:52 2023 +0000"
      },
      "message": "m/installer: log to tty0 and ttyS0\n\nWithout this we only log to whatever the default system console is.\n\nChange-Id: I64b43f8617f3b8752332209b511ea470848c4481\nReviewed-on: https://review.monogon.dev/c/monogon/+/1381\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d09c58f33c523c9395446122fc552c58dbab80cc",
      "tree": "c1438cddc469da77cf1640e672894e99123bb827",
      "parents": [
        "ce19acc9d66055d912287d9f1f26c08d3df55aa8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:25:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 17:56:13 2023 +0000"
      },
      "message": "m/test/launch: do not pipe node logs to stdout in //:launch-multi2\n\nChange-Id: I9e74ca8d6121725b9d38c910f80759c3c6b932a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1372\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ce19acc9d66055d912287d9f1f26c08d3df55aa8",
      "tree": "6aedbe2ab0aef40955f3d416013ff59e1aec0139",
      "parents": [
        "1f8cad7568ad2e8e539fe44f1b2d51e1f2a19fd5"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:28:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 17:56:08 2023 +0000"
      },
      "message": "m/n/kubernetes: make CSI provisioner more debuggable\n\nChange-Id: I22292e627ceac0d41a7711964517a53e63636c3e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1379\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1f8cad7568ad2e8e539fe44f1b2d51e1f2a19fd5",
      "tree": "ed38d5ecb2f775c73c0ac8c23a68e610ce261591",
      "parents": [
        "d174e556db5e2ad25e406babf34442a529756081"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 16:58:10 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:39:39 2023 +0000"
      },
      "message": "m/{cli,test/launch}: integrate launch/cluster with metroctl\n\nThis makes test-launch2 (and possibly later any other code that uses the\nlaunch/cluster library) tell the user that they can connect to the newly\nlaunched cluster using metroctl, either by using specific flags, or\nusing a wrapper script, or using kubectl.\n\nChange-Id: I54035ee02f3cbab3d17f46b1f1685b91aab275a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1373\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d174e556db5e2ad25e406babf34442a529756081",
      "tree": "27627eb19faf5d3f9eb18bdeceff7cdc57ebc122",
      "parents": [
        "c1cb37ce9c43b1eae0325d2dbc0c480185f3d981"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 10:49:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 15:37:05 2023 +0000"
      },
      "message": "m/n/core/localstorage: remove unused PKI options\n\nChange-Id: Ifa6011fe7ab2868fac93483d0988c772c6f6fdf4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1375\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c1cb37ce9c43b1eae0325d2dbc0c480185f3d981",
      "tree": "16127799671c8aaf6ee3bb2548bc8579fd1d719b",
      "parents": [
        "7457ee940f2fff2df6e6eef89dcfbd3a9c67cfb9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:33 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 13:30:48 2023 +0000"
      },
      "message": "m/n/core/consensus: log etcd into sub-DN and wait for DNS resolvability\n\nThis lets us distrnguish between things that etcd logs (which is often\nextremely verbose) what our own consensus service says.\n\nIt also makes the consensus service wait for DNS resolvability before\nattempting to join an existing cluster, which makes etcd startup much\ncleaner (as etcd will itself crash if it cannot immediately resolve its\nExistingPeers in startup).\n\nChange-Id: Icc6a5a40fc56733cc24ccd88af0a73feba4f6922\nReviewed-on: https://review.monogon.dev/c/monogon/+/1356\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e25b3a4154cd71c1efd4e26760f4e14d27ad005b",
      "tree": "51d8974c74b742f5fe6e26e7154789007f10da4b",
      "parents": [
        "3600690988cd075c4e775018bcc9d0f345dd3e86"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:07:53 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 16:18:08 2023 +0000"
      },
      "message": "m/pkg/{logtree,supervisor}: support Benchmarks in test helpers\n\nChange-Id: I811356ac50dd9588412c280a87ad6e5c4be1e2cd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1368\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3600690988cd075c4e775018bcc9d0f345dd3e86",
      "tree": "3a2c20f519667ae15591aea1245e98697a1d7f58",
      "parents": [
        "0b3aac94581f63b3024b261fa6a9f298d0cca52b"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:16:57 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 14:09:21 2023 +0000"
      },
      "message": "m/n/c/rpc/resolver: correctly close watcher on context cancel\n\nWithout this change, a watcher can be stuck forever closing a connection\nto a resolver if that resolver has already exited due to its context\nbeing canceled.\n\nChange-Id: I99dc0f04ff840128879721d3e6368c07345564b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1371\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf33f6805a7842a1aa7fac377468d9ca54f8d05b",
      "tree": "4b5dbdc5d1e533278c8cdb7c0a3442c377d48285",
      "parents": [
        "fe5192dc5369ab47be1552a6935f9cb745d9f837"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:16:16 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 23:31:51 2023 +0000"
      },
      "message": "m/cli/metroctl: allow specifying --endpoints\u003dmultiple,values\n\nChange-Id: Ib7088c91d0e501e0925b6a8793a521dad58cd2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1370\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fe5192dc5369ab47be1552a6935f9cb745d9f837",
      "tree": "f41853b28d396a6fb1fbd9b6a9f5d16e679d0c59",
      "parents": [
        "356cbf3e49af75d9cccf92fd8d0a3236727f6761"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:33:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:23:27 2023 +0000"
      },
      "message": "m/n/core/cluster: clean up\n\nThe cluster.Manager structure got heavily refactored over its life, and\nwe ended up with a whole bunch of stuff that wasn\u0027t even being used.\nLet\u0027s clean that up.\n\nWe also change the oneway logic to use a channel instead of a locked\nboolean.\n\nChange-Id: I3e8158ad5938be1636efc9d7fad7eb6d6e953ccf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1354\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "356cbf3e49af75d9cccf92fd8d0a3236727f6761",
      "tree": "a8865bc1422fdde0d8f5a63f8e7e100156dccfeb",
      "parents": [
        "f9bdf3126488a2728e265a2b28cba564c8072e04"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:52:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:22:24 2023 +0000"
      },
      "message": "m/n/kubernetes: run reconciler before starting more services\n\nThis makes sure we successfully ran the reconciler at least once before\nattempting to running more than the apiserver. It saves us from a whole\nbunch of services complaining about not having the right permissions to\n(yet) access the cluster.\n\nChange-Id: I605eae9d6bbcc16a9dcb971caa26ee56a06e5d5b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1358\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9bdf3126488a2728e265a2b28cba564c8072e04",
      "tree": "fb0c4b0b1de6bf314c397ddf264fe9338e5aaec7",
      "parents": [
        "53a85f7e9f68cfc50721e94de717b1973be2b858"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:54:49 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:05:05 2023 +0000"
      },
      "message": "m/installer/test: undo leftover test comment\n\nThis was introduced by review/1365, and it was just done for testing.\nUndoing this should not undo the flakiness fix.\n\nChange-Id: I7e3096f6b09b2cbd3f3f75dfb4b3602ddfae0959\nReviewed-on: https://review.monogon.dev/c/monogon/+/1367\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b76b8d19c05e5df546e2b2dc08f6cdbec2a9ead0",
      "tree": "d04ffe4c6866be5139dbc87424d14cac2baea6cd",
      "parents": [
        "05f813bf2d311f94dbc8021a85b37ff7c2e33242"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:46:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:04:59 2023 +0000"
      },
      "message": "m/n/core/consensus: work around etcd dial timeout\n\nObserved in an E2E test:\n\n  consensus  ready to serve client requests\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: when getting bootstrap\n             client: context deadline exceeded\n  supervisor rescheduling supervised node root.role.controlplane.launcher.consensus\n             with backoff 681.402139ms\n  consensus  data absent, bootstrapping.\n  consensus  Bootstrapping PKI: starting etcd...\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: failed to start etcd:\n             listen tcp127.0.0.1:7834: bind: address already in use\n\nI\u0027m not sure what caused the original timeout of the client. Let\u0027s bump\nit to two seconds instead of one.\n\nIn addition, let\u0027s also properly stop the bootstrap etcd server on\nfailure, instead of letting it run forever and preventing any subsequent\netcd server from starting up.\n\nChange-Id: Icbcc31cb1e0b9e619360cbd71c5ee81396c79724\nReviewed-on: https://review.monogon.dev/c/monogon/+/1352\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "05f813bf2d311f94dbc8021a85b37ff7c2e33242",
      "tree": "861772847ef842bbdc362224c442a7679b8b10f2",
      "parents": [
        "cc4e96aed59648a3c4ac3faf3755deff4bb7f656"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:58:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/e2e: use concise-style logging\n\nMaking our test logs look like LogEntry.ConciseString() means we have\nsignificantly more readable test logs.\n\nChange-Id: I0b1eab6a5a837bb2001f3b32779c23df2feaa381\nReviewed-on: https://review.monogon.dev/c/monogon/+/1362\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cc4e96aed59648a3c4ac3faf3755deff4bb7f656",
      "tree": "95f6ddc310733ba68f457c95bae3a329c9328ebe",
      "parents": [
        "3b098239a4b40f7082d56f888590c2942990e72c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:14 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/nanoswitch: use concise logging\n\nChange-Id: I89a355a771140a5e8726603c2171bd4822ce1308\nReviewed-on: https://review.monogon.dev/c/monogon/+/1361\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3b098239a4b40f7082d56f888590c2942990e72c",
      "tree": "1df2cc725de2bb912923fe266ec532b216f19642",
      "parents": [
        "367ee27b50654bc37358d9172aed7c3d19a32dac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:02 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "metropolis/node: use concise logging in tty0/ttyS1\n\nChange-Id: I28ad4418a05a7962d61160583b2e210f73ff8c51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1360\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "367ee27b50654bc37358d9172aed7c3d19a32dac",
      "tree": "354e4e01616adbf92be250eacd28e66e2e97dd4e",
      "parents": [
        "ce4af2b7dbae61a81c791c30fe0a161b3ff8b7d9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:50:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/pkg/logtree: implement concise stringification\n\nThis adds a new method on LogEntry: ConciseString(). It\u0027s designed to\nbe used in cases where we want to display the log line on some\nlimited-width (and likely non-interactive) log console, like TTY\nconsoles in Metropolis.\n\nThis is a bit too Metropolis-specific to my liking (we hardcode some\nlogic related to the layout of root.role.*), but it\u0027ll do for now.\n\nChange-Id: I1079b8b19a3c304fcc5077ce6b4c69887a34d7ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/1359\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "05cf33dbfcc86f26f3771a5f489bfd6c78b8cdcf",
      "tree": "623584088f8922fc37f1662d1c957c1e1ad2d169",
      "parents": [
        "f2f85f5827b9df558606403d9451087873249265"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:50:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/installer/test: attempt to fix heisenbug\n\nChange-Id: Ib4dae5bec7c99b88d5b9d4e5ac90ece09fdc7c77\nReviewed-on: https://review.monogon.dev/c/monogon/+/1365\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f2f85f5827b9df558606403d9451087873249265",
      "tree": "646fff1411bff4f9a294f347d6576305171412f7",
      "parents": [
        "0164c717e7ca2420f86043283f4c56867734ecce"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:51:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:14 2023 +0000"
      },
      "message": "m/n/core: make startup errors more readable\n\nPreviously, fatal startup errors in the cluster manager/enrolment would\nget logged as general supervisor runnable errors, which is not very\nuser friendly.\n\nThis reworks error handling in main.go to switch over logging to an\nalternative \u0027fatal\u0027 channel as soon as an error is detected, and use it\nto clearly log that error.\n\nFixes issues/77\n\nChange-Id: Id73ee49f6bc5b4306dd67ede3a588f08dd2b33da\nReviewed-on: https://review.monogon.dev/c/monogon/+/1355\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0164c717e7ca2420f86043283f4c56867734ecce",
      "tree": "f75f52391d5db410cb081f04f372d34da26bf30b",
      "parents": [
        "9dd92d90074fbab1a15b07da9ccc0afab70a5f30"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:01 2023 +0000"
      },
      "message": "m/p/supervisor: provide more concise logs on runnable exit\n\nChange-Id: Iba99bdf5d516e0edad6da40951d61894acf0b70b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1357\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "9dd92d90074fbab1a15b07da9ccc0afab70a5f30",
      "tree": "4914a511ce3cfc2afa7143b75cedae2a46f2b11b",
      "parents": [
        "37110c360f012c10f3b9456a0eb282eefd3275b3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 14:29:07 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:27:36 2023 +0000"
      },
      "message": "m/pkg/event: implement Pipe helper\n\nThis simplifies some of the roleserver code, and is possible now that\nevent values are strongly typed.\n\nChange-Id: I0a22ff97fe4304d35cc9cee105e98bc224d1433b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1323\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "37110c360f012c10f3b9456a0eb282eefd3275b3",
      "tree": "0d8ade7c95d54a576d88e53fb5e8ca9ee76c8f29",
      "parents": [
        "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:57:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 16:55:28 2023 +0000"
      },
      "message": "m/pkg/event: make type-safe\n\nThis is a fairly large change which makes use of Go type parameters\n(“generics”) to make the event library (and its memory/etcd\nimplementations) type safe.\n\nSince we now have the event.Value interface strongly typed, we also move\noptions which were implementation-specific (like BacklogOnly)\nto be part of that interface, instead of the previously type-asserted\nspecific implementations. Use of options that are not handled by a\nparticular implementation is a runtime error. Expressing this in the\ntype system is probably not worth the effort.\n\nWe also implement Filter to allow offloading some of the functionality previously implemented in type assertion wrappers into the library itself.\n\nIn the end, this ends up removing a bunch of type assertion code, at\nthe cost of a fairly sweeping change. Unfortunately, some of this is due\nto IntelliJ suddenly deciding to reformat comments.\n\nChange-Id: I1ca6d93db1b5c4055a21af3fb9e5e3d425c0d86e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1322\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe",
      "tree": "f71839e80a77bb094c9836a399ebc2e0f99e4854",
      "parents": [
        "591d808678b9770bd579509928997dc5494806e8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:29:17 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/p/logtree: do not emit broken klog entries\n\nAny invalid line parsed to the klog parser would turn into a big INVALID\nbeing emitted to the console, as the emitted log entry had neither a\nleveled nor raw logline attached.\n\nChange-Id: Ia6d620ea56d2112d11e2d3edcd6c762c58de6c50\nReviewed-on: https://review.monogon.dev/c/monogon/+/1339\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "591d808678b9770bd579509928997dc5494806e8",
      "tree": "3afd01fdd280f279610160141c6ef1b02debb119",
      "parents": [
        "cf23ebc1afc53f93d56a0fd33209db7b033a991a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:26:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/test/e2e: stop downloading container images\n\nHaving tests rely on The Internet isn\u0027t great, having tests rely on the\nDockercorp registry is even worse. Instead, let\u0027s test everything using\nthe preseed_test image.\n\nChange-Id: Ib82ce266592e9c6d2f0d4597abcc114c12746b1f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1338\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf23ebc1afc53f93d56a0fd33209db7b033a991a",
      "tree": "23395adcd31b1ec31377de20ca46f5e98b9ff242",
      "parents": [
        "bfc280739cdbae950611e5d35a1adb5cd0f58feb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:02:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 16:36:18 2023 +0000"
      },
      "message": "m/cli/metroctl: factor out some helper functions\n\nWe will need these to create metroctl-compatible configs from\n//metropolis/cluster/launch.\n\nChange-Id: I2705afefb62b7e1b35c87d9753c4ca9c7f534c26\nReviewed-on: https://review.monogon.dev/c/monogon/+/1324\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "bfc280739cdbae950611e5d35a1adb5cd0f58feb",
      "tree": "8e86b9bcaa33f3cb3dd5950a556ecf0641f58c02",
      "parents": [
        "15f7f637d6885b471f52fd0aa04d04998366a7f9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:56:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 09:29:09 2023 +0000"
      },
      "message": "m/node/core: fix up resolver keepalives\n\nWe set up keepalives in the resolver to quickly detect that a Curator is\nnot longer available.\n\nThis fixes two bugs related to their use:\n\n 1. When the resolver\u0027s curator connection dies (eg. when we get kicked\n    off by the curator for keepaliving too often), we recreate it fully\n    and thus lose any \u0027keepalive backoff\u0027 state that the client\n    connection carries, thereby not letting that keepalive bachoff\n    mechanism kick in as intended.\n 2. The server-side limits for client keepalives were simply too low\n    compared to what the resolver library wants to use.\n\nChange-Id: If2e53e20a1462e9f71a3723b92d346aff795d84c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1321\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "15f7f637d6885b471f52fd0aa04d04998366a7f9",
      "tree": "b1884808d565ce0736993939f4f6b482aab0874d",
      "parents": [
        "e00a89da1c62e20c2528dadb0543a4578680b073"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:17:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 20:07:36 2023 +0000"
      },
      "message": "metropolis: rename KubernetesWorker to KubernetesController, add no-op KubernetesWorker\n\nThis is in preparation for actually splitting the Kubernetes service\ninto a control plane and data plane / worker. The new Worker service is\na no-op: it can be enabled/disabled, but has no practical effect.\n\nSince we plan on keeping the control plane stuff mostly as is, and add\nsplit worker functionality as a new codebase, it makes sense to rename\nthe existing role to Controller, and createa brand new Worker one (to\nmake future diffs smaller).\n\nChange-Id: I79de3219f3c190d38469a0a8d7371820471c100d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1325\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2d284b5718ad0948e7ef5afc5905f36701f4a3ab",
      "tree": "1525231844ed4fb336e9cf3b0b252008f4f44393",
      "parents": [
        "7922d41e98a28458e17e4ff33c9ece0d9ff6578a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 08 17:05:12 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/takeover/e2e: add takeover end-to-end test\n\nThis adds an end-to-end test to the takeover system.\nIt launches a QEMU VM running a Debian Cloud Image which is configured\nvia cloud-init to accept SSH access from the test.\nIt connects to that VM via SSH, copies the takeover binary under test\nto it via SFTP and launches it.\nIt passes a test TakeoverInit message to it, performs basic sanity\nchecking on the response and then looks on the serial port for a flag\nmesage that the agent has started.\n\nChange-Id: I8edce6163259da305bb43660a2d70474f7f11612\nReviewed-on: https://review.monogon.dev/c/monogon/+/1262\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "b033b380387a999b7ad19f9d001c42ec570c8945",
      "tree": "6093a955f5c08f29e6590fb71781849d100a3e0e",
      "parents": [
        "d8290c8082f752f52d0ba1c765f668e2992bc5d4"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 20:06:36 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 22:29:46 2023 +0000"
      },
      "message": "*: fix gomodproxy compatibility\n\nThis is necessary for the source to be fetchable from third-party Go\nprojects (currently via a replace directive, as source.monogon.dev isn\u0027t\ngo-getable). Otherwise, `go mod tidy` complains:\n\nreading https://sum.golang.org/lookup/github.com/monogon-dev/monogon@v0.0.0-20230223122556-665b10937eb8: 404 Not Found\n\tserver response:\n\tnot found: create zip: build/analysis/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/classify.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort_test.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/testdata/README.md: case-insensitive file name collision: \"BUILD\" and \"build\"\n\t[Truncated: too long.]\n\nChange-Id: If5947be74f7dfcf4ba4bd79c4dc37589f324b891\nReviewed-on: https://review.monogon.dev/c/monogon/+/1223\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "1cf17953163089f6b90d0922bff0994e06c95e29",
      "tree": "cfcef14d8530761d9b0a18adf266262898ede7c6",
      "parents": [
        "d026b37c2a27d414821f860ccd0effb522be1ce4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 17:41:59 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 14 10:03:25 2023 +0000"
      },
      "message": "pkg/bootparam: add bootparam pkg\n\nThis adds the bootparam package which can marshal and unmarshal the Linux\nkernel command line into boot parameters and a rest section passed to\ninit.\n\nThis is a very quirky format, thus there is a fuzz testing harness\nagainst the reference implementation from the kernel included to verify\ncorrectness.\n\nA set of weird edge cases is rejected by Unmarshal instead of parsing\nto nonsensical data as the reference implementation does to save on\ncomplexity in the parser.\n\nChange-Id: I6debfa67e69ae8db4e0356f34ecb127ea27d18de\nReviewed-on: https://review.monogon.dev/c/monogon/+/1125\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d026b37c2a27d414821f860ccd0effb522be1ce4",
      "tree": "223512570e3c0857d7f34e3ee588d21163b213b0",
      "parents": [
        "a01b4ee048e27dc05452912d25d6f718fb263c61"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 19:38:45 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 21:01:06 2023 +0000"
      },
      "message": "m/n/build: fix incorrect device number\n\nThe device node major number for our console device is wrong.\nThe major number for the console device is 5, not 1 as seen in\nDocumentation/admin-guide/serial-console.rst.\n\nI stumbled upon this when looking at this spec as a reference for an\nissue with an unrelated device.\n\nChange-Id: Icbae264d2b4a5dc8770cb1e15e33d56c504a50c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1126\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3ccf69641de62c68a5740d8194d4f0776052dd63",
      "tree": "8a35f1aa01076a35890862f90c186da7fe4ebeda",
      "parents": [
        "d266812c63eb25cf9a586297785add76f5b1f073"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jan 23 17:01:40 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Feb 09 12:00:00 2023 +0000"
      },
      "message": "go/net/psample: init\n\nThis adds a minimal golang implementation facilitating network packet\nsampling based on \u0027psample\u0027 kernel module.\n\nMetropolis kernel configuration was modified both in order for this\nchange to be testable in a ktest, as well as to make sure Metropolis\nwill be able to run the included code.\n\nChange-Id: Ie6a4721455f26644b6be01aa6190cf87f21355f3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1102\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f220b2923c0d8bcf760d1c86af51041371633617",
      "tree": "21a7b7915b25f2ee619de0973720068da9f72072",
      "parents": [
        "68961c3e99c5045bd50f6b91fca9469e47475f2e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jan 31 16:52:53 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Feb 01 18:08:48 2023 +0000"
      },
      "message": "*: use a vishvananda/netlink fork by Monogon\n\nThis switches Metropolis over to a Monogon-maintained fork of\nvishvananda/netlink.\n\nThe package was modified to support the \u0027sample\u0027 action in packet\nfilters. This is required for the upcoming change enabling network\nanalytics through local packet capture.\n\nMetropolis\u0027 dhcp4c had to be modified to match the vishvananda/netlink\nversion referenced by this change.\n\nChange-Id: I2dd0799a009618f8543904252b85ff63ddd560c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1109\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "97f212c1d25424a099b6a2ff52e0464a2755f11e",
      "tree": "f5da74b0ac98113b684f51c98946d405fbeacb77",
      "parents": [
        "6294854ace5e06e3b731878544eb39f5351de66d"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 21 19:06:34 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 24 16:16:59 2023 +0000"
      },
      "message": "build/ci: mark supervisor and e2e tests as flaky\n\nChange-Id: I56459eac238d3ecc5c8429226cab1c32ceb2e0c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1088\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "bc93c2b50690e66712d80e4da5837554588ca065",
      "tree": "68842095e93b11649cdc23da3bb4a6ef24f9dc8a",
      "parents": [
        "e1ebf729194f3673ea0638f0aceb90cb70de23aa"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 13:12:23 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: migrate to CC toolchains and Bazel 5.4.0\n\nChange-Id: Iff3c0ddda4413dd0c5fa657a5b7813223e98611e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1079\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e2a302a9062d3ebfc33ad83dd382653e067ca009",
      "tree": "55165c3da49a1f7b4604c4db85b59bb305011718",
      "parents": [
        "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 15:39:18 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "metropolis/test/launch: convert :launch to a test\n\n\"bazel run\" simply executes the binary outside the sandbox, so swtpm\nand other dependencies from the sandbox sysroot won\u0027t be available.\n\nIf swtpm is installed on the host, running the _bin target still works,\nbut it\u0027s better to point contributors to something that works\nout of the box.\n\nThis is a temporary workaround. Tests have timeouts and take the global\nBazel server lock. The correct solution is a static swtpm build\nwhich can run outside the sandbox.\n\nChange-Id: Icf7bf5cc44825df676d37a75ea9c1e135de14fef\nReviewed-on: https://review.monogon.dev/c/monogon/+/1078\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bffdda85d7750c9a9a34289a79281edeae1d73ef",
      "tree": "09bd64e59e1ed5a2dd3db9e4336b449158ba8fa0",
      "parents": [
        "6c9535b36d033ac647b1cf4fca2a29e8c260a79f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 10 05:00:36 2023 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 19 17:32:52 2023 +0000"
      },
      "message": "m/p/scsi: add SCSI package\n\nThis adds a SCSI package to interact with SCSI devices.\nIt implements a subset of commands from the SPC-5 and SBC-4 standard\nuseful for discovery and health assessment.\nA follow-up will add SAT (SCSI-to-ATA translation) support.\n\nChange-Id: I7f084d26f11d9c951f51051040160e351cf5594c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1066\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "acfad5b4d130084d58235a1eae54f4c51f936e44",
      "tree": "ecfbf0e9635fa4a6ef49b524c914834eb195f986",
      "parents": [
        "af5086bfe505940699203d158ffa89307f28ebde"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:05:25 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 13:54:47 2023 +0000"
      },
      "message": "m/test/launch/cluster: add pcap dump\n\nDump all network traffic by default to help debug failed tests.\n\nChange-Id: I5466639fa00501373690bd95452b85b61fb5b172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1076\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "af5086bfe505940699203d158ffa89307f28ebde",
      "tree": "3ec03923903f2a5f9262f1b9ee79b6e80158520b",
      "parents": [
        "20a036ee94d0999ab632de4f9c2d1feff192d72b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:12:42 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:44:48 2023 +0000"
      },
      "message": "m/test/launch: print qemu options at startup\n\nChange-Id: I35b234301e7c06a910127a4cf2c1573d23af45a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1077\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "20a036ee94d0999ab632de4f9c2d1feff192d72b",
      "tree": "47b90debe3873ee1d8075ffac1995f3769bdae31",
      "parents": [
        "afb925b446e4f13a05a36f1d87e6b8a1f5a2e27a"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 00:17:19 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:37:51 2023 +0000"
      },
      "message": "Fix some typos/grammar/variable shadows\n\nChange-Id: I43e78ec7931399c4f60f431d659953f084db7172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1074\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "12450d28a5a841994df41bb7c37c24d53a2c80d2",
      "tree": "4d986fcb759755fa81ebb4a6ef9bf98db916a3bb",
      "parents": [
        "fba5da0d552a7406276be9bacc87c79108698669"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 20 13:06:19 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "pkg/smbios: fix error calculating memory size\n\nThere were two errors in the memory size calculation.\nOne was that if the high bit is set the unit is KiB, otherwise MiB, not\nthe other way around.\nThe other one was that I extracted the bit, but failed to shift it to\nthe right position. So I took the time to stop this bit twiddling and\nadded some constants and a good old-fashioned if.\n\nChange-Id: I0bce8f7607981e62120365374458425f3c663b51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1000\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fba5da0d552a7406276be9bacc87c79108698669",
      "tree": "fbb6f9eb26f86bfb3e7aa8ba524a29bafe76ec12",
      "parents": [
        "189495ac490e93770a88affdce25b8f2087cb193"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 15 11:20:47 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "pkg/nvme: add NVMe package\n\nThis adds a NVMe package for performing various low-level operations on\nNVMe devices. Only the most important (to us) calls are implemented as\nNVMe has a vast API surface.\n\nChange-Id: I532894c3c2eb780309993a1688226c92c91cdedf\nReviewed-on: https://review.monogon.dev/c/monogon/+/999\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4abeb13b0c1f26148daf14f430de17cd5eacf351",
      "tree": "1e27894c1fa0b93a9345800df370c8e5e2156c17",
      "parents": [
        "f9c65e9e588c44e019d6b8836275493abe298a2e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Oct 11 11:32:19 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Dec 20 11:28:11 2022 +0000"
      },
      "message": "cloud/bmaas/server: init\n\nThis adds the BMaaS server alongside its first functionality: serving an\nAgent heartbeat API.\n\nThis allows (untrusted) Agents to communicate with the rest of the\nsystem by submitting heartbeats which may include a hardware report.\n\nThe BMaaS server will likely grow to implement further functionality as\ndescribed in its README.\n\nChange-Id: I1ede02121b3700079cbb11295525f4c167ee1e7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/988\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9c65e9e588c44e019d6b8836275493abe298a2e",
      "tree": "623c0d0e36c62d0593dbd6cc73ed3c629bf0466a",
      "parents": [
        "68ca370db4bb8314ac7598ce3b9c90194bde47a8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 22 12:50:56 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 29 12:22:31 2022 +0000"
      },
      "message": "pkg/smbios: add SMBIOS package\n\nThis adds a new SMBIOS package which contains common structures from\nSMBIOS as well as corresponding parsers.\nI originally explored an approach where I manually designed optimized Go\ntypes for each structure, but that would have led to a huge amount of\ncode that reading a structure of this type would cause if done\nliterally. I also considered code generation, but if the generated types\nare to be close to the manually-designed ones it would be an incredibly\ncomplex piece of code as well.\nFinally I went with a design based on reflection which is much more\ncompact than the first two and consists of plain Go code at the expense\nsome niceness in the types.\nI called the current types SomeTypeRaw in case I want to come back later\nintroduce a small layer mapping the current structures into nicer ones.\nBut for our current purposes the raw ones are good enough already.\n\nThis has been tested against our deployment targets, but as the SMBIOS\ndata contains uniquely identifying information these small tests are not\npart of this CL. Sadly I haven\u0027t found any public SMBIOS test-cases.\n\nChange-Id: I55d746ada0801de456f2a0eb961821abd9d58fa2\nReviewed-on: https://review.monogon.dev/c/monogon/+/983\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "0123a1c948100c040c1924e50dc1e05a9cd523a7",
      "tree": "0e99c3903f18cca4e97c60f3595b4fee5924ca1d",
      "parents": [
        "35e8d79e695b290d371d82dbcc5b15cea429d424"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 24 18:41:48 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Oct 26 15:46:46 2022 +0000"
      },
      "message": "m/p/kexec: add auxiliary EFI handling\n\nThis makes kexec do auxiliary handling related to EFI. If a system is\nbooted using EFI and has an ACPI Root System Description Pointer (RDSP)\ni.e. just about every modern system, the pointer to that structure needs\nto be passed to the kexec\u0027ed kernel on its command line.\nOtherwise various EFI-related functionality breaks, like accessing\nEFI variables which causes a kernel crash.\n\nLogically I think this functionality belongs to kexec as callers\nshouldn\u0027t need to be aware of kexec specifics and every caller\npotentially running on EFI needs this functionality.\n\nChange-Id: Iec7ad4c3c0a7e5c31d738d307ff0e10aac02ab11\nReviewed-on: https://review.monogon.dev/c/monogon/+/960\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "ee17d8303258980270587755f75dc4b6412e3a31",
      "tree": "25e30e22a95527592b8d596dc8da5e6f7b6b63ab",
      "parents": [
        "ce3d810f4fde5e00aba7539a4d12ebe82d65b672"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 18 12:02:45 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 24 16:30:56 2022 +0000"
      },
      "message": "m/p/gpt: add GPT package\n\nThis introduces our own GPT package. It will be used for provisioning\nand Metropolis images.\n\nChange-Id: I905cd5d540673fd4b69c01d8975f98b88e24edd4\nReviewed-on: https://review.monogon.dev/c/monogon/+/956\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "5486a9cf8c7092a213bfda0b52681c156fe87cbb",
      "tree": "458c972750c2a47ff4697ac11fe3c27b421fb8ff",
      "parents": [
        "d1bc4a61ebcebe25fc45fbaba577867a6f293b97"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 16:49:30 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:32:54 2022 +0000"
      },
      "message": "m/p/kexec: add minimal kexec library\n\nThis adds a minimal kexec library which wraps the kexec_file_load\nsyscall in a Go-style interface.\n\nChange-Id: Ia69b47ec6a305b19b238f30a7515aabdccb44bb9\nReviewed-on: https://review.monogon.dev/c/monogon/+/903\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d1bc4a61ebcebe25fc45fbaba577867a6f293b97",
      "tree": "373e0119dca4af4b8d3002008296ec1e7e8da0e6",
      "parents": [
        "4c50f99747ed78f74924e7ff9724fe4486ca2ec9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 16:45:18 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:32:54 2022 +0000"
      },
      "message": "m/n/build: fix fsspec rules duplicating specs\n\nCurrently if a rule which outputs an fsspec outputs both a DefaultInfo\nas well as an FSSpecInfo provider and both are propulated, the fsspec\ncore implementation will use both instead of only using the FSSpecInfo.\nThis leads to spurious errors when the fsspec consumers detect duplicate\nfiles.\nThis change makes the fsspec rule ignore the DefaultInfo provider if a\nFSSpecInfo provider exists on an input label.\n\nChange-Id: Iec8975200380889732c840ff16d17f791fa1ba83\nReviewed-on: https://review.monogon.dev/c/monogon/+/902\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "4c50f99747ed78f74924e7ff9724fe4486ca2ec9",
      "tree": "c14cf22e92ea70b109b067997ca152cf0ff3b68a",
      "parents": [
        "1b28e1b92989e827087bc6b594a411e10328e00a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 18:43:01 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:53 2022 +0000"
      },
      "message": "m/c/metroctl: reformat\n\nThis appeases my IntelliJ.\n\nChange-Id: I61fa3bea6d5e79eafc25a94880a630fad99c0524\nReviewed-on: https://review.monogon.dev/c/monogon/+/885\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "bd2ce6dcffa271d8ef00bceda1a89fc34d1d0f3d",
      "tree": "d40ddca810272927e140a369866be45adde0e150",
      "parents": [
        "4c078788121339beb45cad8b2ac2a24dac55cb93"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Fri Jul 22 00:00:13 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 06 13:59:45 2022 +0000"
      },
      "message": "m/p/fat32: add fat32 package\n\nThe fat32 package is a write-only implementation of the FAT32\nfilesystem. It works quite unlike a normal file system by first\ndetermining the entire disk layout and then sequentially writing\nout everything. This allows it to have a fully streaming output without\nneeding to seek at all.\nBecause all IO is sequential the implementation is extremely fast and\ncan potentially even leverage things like the copy_file_range syscall.\nThis means however that all files and readers need to be prepared ahead\nof time, it is not possible to make decisions during the writing\nprocess.\nIt is also possible to generate \"right-sized\" filesystems by not\nspecifying an explicit block count. In that case the resulting image\nwill contain exactly as many clusters as needed.\n\nChange-Id: I49bf2ce09b26a7d628a39a0dd0745bca61c1c4da\nReviewed-on: https://review.monogon.dev/c/monogon/+/841\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "4c078788121339beb45cad8b2ac2a24dac55cb93",
      "tree": "5715fd4141c472ec269ad36a15cfeeca2229ef26",
      "parents": [
        "e15fee1b7f2258fb677e824ad1e30fdf81279495"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 19:03:53 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: accept multiple node IDs in approve\n\nThis makes possible to issue commands of the form\n\"metroctl approve [NodeID, ...]\" instead of\n\"metroctl approve NodeID\".\n\nChange-Id: Ic5b4b3240aa0ff811aa3b52fb5f82b3966320dd9\nReviewed-on: https://review.monogon.dev/c/monogon/+/852\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e15fee1b7f2258fb677e824ad1e30fdf81279495",
      "tree": "c0b3ee3c658370a6e3922a4532b2fca8240266d5",
      "parents": [
        "b838e05983828a443390479691dba3de086bcb53"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 18:48:40 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement add, remove role commands\n\nThis adds commands accomodating node role modification.\n\nChange-Id: I3532081fa5e7ce521c3bd90cc4ebf46fec4bf168\nReviewed-on: https://review.monogon.dev/c/monogon/+/851\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b838e05983828a443390479691dba3de086bcb53",
      "tree": "14eef15338691f9764f3e93452bc27fc0834f29c",
      "parents": [
        "9c315f1116567df934cf7fce5f3f341c70cb9b66"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 18:08:10 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement the \"describe\" command\n\nThis implements metroctl\u0027s \"describe\".\n\ncmd.TerminateIfFound was adjusted to meet new test needs.\n\nChange-Id: If86f35bc648d99396e7d5be48ab459d6b13334ce\nReviewed-on: https://review.monogon.dev/c/monogon/+/850\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9c315f1116567df934cf7fce5f3f341c70cb9b66",
      "tree": "d02e8e879f226dffc657e7483795ba58cc2236ee",
      "parents": [
        "db75e21d4826eac4e0177995dff64c9ff6a64064"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 11 16:31:22 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/api: UpdateNodeRoles: identify by node IDs\n\nThis adds the possibility of identifying nodes through their node IDs\non top of their public keys.\n\nChange-Id: I4028832773acb11faf306144fece923e6c51d20d\nReviewed-on: https://review.monogon.dev/c/monogon/+/849\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "db75e21d4826eac4e0177995dff64c9ff6a64064",
      "tree": "52199cdff810e06ca271a8d1e6f05a88b343277f",
      "parents": [
        "2f7790dfe7a93f5f048e914d0c1d61af61dbdfba"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 04 17:31:34 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement the \"list\" command\n\nlist prints node IDs of existing nodes.\n\nIf no positional arguments are passed, or the only positional argument\nequals \"all\", all existing nodes will be processed.\n\nOtherwise, if any positional arguments are used, the output set will\nbe limited to node IDs matching the positional arguments. Nonexistent\nnodes will not be listed.\n\nThe node set can be further narrowed with an optional CEL node filter\nexpression, set with the new --filter flag.\n\nThe output format can be adjusted using the --format (-f) flag.\nCurrently, only plaintext output is available.\n\nThe output will be saved to a file, if a path is specified with the\n--output (-o) flag.\n\nChange-Id: I44d57ad52805924673354c70e54cd299a88ad75f\nReviewed-on: https://review.monogon.dev/c/monogon/+/848\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "2f7790dfe7a93f5f048e914d0c1d61af61dbdfba",
      "tree": "5bf39f6d0c3a13b97a617b752789c2bf2764e60c",
      "parents": [
        "6cdc976f681edc51f68454a76e7d7af64417ca7e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Sat Aug 06 16:10:42 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/cmd: handle exiting processes\n\nRunCommand was seen waiting for the line that would trigger its\nsupplied predicate function even after the managed process exited,\nwhich is deemed a bad strategy.\n\nChange-Id: I5fa5add1daf3c4f0c69f72f5b5859e88f7bc2679\nReviewed-on: https://review.monogon.dev/c/monogon/+/847\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6cdc976f681edc51f68454a76e7d7af64417ca7e",
      "tree": "dfcfa01566c2c82f41616cdc654937a3fbee0e31",
      "parents": [
        "18a67b033fd8ccd5dacb7c7e1f0c1a9c21eb0a6b"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Aug 03 17:15:01 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/cmd: use predicates in RunCommand\n\nThis generalizes RunCommand by making it accept any completion\npredicate function.\n\nChange-Id: Ic6b911244aaecd16c01000050fca618a8c8e09d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/846\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "18a67b033fd8ccd5dacb7c7e1f0c1a9c21eb0a6b",
      "tree": "b12e3ad0838cc56c509d7d381d119888bbff69ff",
      "parents": [
        "fed8fe5222c929b9ac5d5ccc0c0b95a8532cf892"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Aug 02 13:37:50 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: move common impl to m/c/m/core\n\nThis moves the implementation shared between CLI commands into metroctl\ncore package.\n\nChange-Id: I93624a07356accf3441f02e6ecd8e91d5b71e66e\nReviewed-on: https://review.monogon.dev/c/monogon/+/843\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "fed8fe5222c929b9ac5d5ccc0c0b95a8532cf892",
      "tree": "fdff787672761a817889b204ca6686565e65484a",
      "parents": [
        "1846450067dc73e906f77a41e7e8f23095dc45e7"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 16:19:35 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: exercise the takeownership command\n\nThis introduces a new test harness together with a test exercising\ntakeownership.\n\nChange-Id: I998506093c25e489d8cb2810e90b4c94530bf4a6\nReviewed-on: https://review.monogon.dev/c/monogon/+/839\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "1846450067dc73e906f77a41e7e8f23095dc45e7",
      "tree": "141ce55ffe297fa273203b8e04b7db44f42918af",
      "parents": [
        "b2cac08ef541db9969425fe5ef1c04660679e180"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 16:18:26 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: takeownership: use cluster resolver\n\nThis updates takeownership to use the new cluster resolver.\n\nChange-Id: I9fd546eb07a8909dc6c7fafd682ad6c4ab936151\nReviewed-on: https://review.monogon.dev/c/monogon/+/838\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b2cac08ef541db9969425fe5ef1c04660679e180",
      "tree": "6331eebaeba6b8f728234f07957bb25cc381290d",
      "parents": [
        "073a1c562f386ac9b33d5361a380098e5d3fdd74"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 14:55:43 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 11 11:32:14 2022 +0000"
      },
      "message": "m/c/metroctl: log resolver state\n\nThis makes metroctl log the resolver\u0027s output, given the --verbose flag\nis provided.\n\nChange-Id: If4578341b733b7ba0ae86bc31dac2f841e75e1ad\nReviewed-on: https://review.monogon.dev/c/monogon/+/836\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "fab7d46b81250f0b3dab0a588f414b2eb4ac6fc4",
      "tree": "eeb9de8c3769f830fdb138b53a39911a97e4e18b",
      "parents": [
        "8234c16354a5723aafab7ab24f0b833dc00c926d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 18 20:15:25 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 25 10:37:46 2022 +0000"
      },
      "message": "m/n/c/l/crypt: improve zeroing speed\n\nThis improves zeroing speed by a lot by mapping the integrity device\nwithout journal for zeroing. This halves IOPS requirements as well as\nmaking IO mostly sequential (instead of random with the journal).\nThis also bumps the write block size to 256 times the block size which\nexperimentally seems to reliably fill up the write queue while not being\ntoo big.\nAsynchronous IO (io_uring) doesn\u0027t perform better here, at least on not\ndisks which aren\u0027t insanely fast.\n\nChange-Id: Ia8fbed35cd0c8978209fa24dc7615bc71ff1ba2f\nReviewed-on: https://review.monogon.dev/c/monogon/+/840\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "8234c16354a5723aafab7ab24f0b833dc00c926d",
      "tree": "02a4df42d3ddaced5a7ffcc63ff0dcc3626cad4f",
      "parents": [
        "e5053ed77b4fcfce6f88e2f8f0e98a0581b795cb"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 17:05:50 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 09:23:42 2022 +0000"
      },
      "message": "m/c/metroctl: add configurable credentials path\n\nThis lets metroctl users provide an alternative path to their cluster\ncredentials. This will be used by the upcoming metroctl test harness.\n\nChange-Id: I49647e3b9d038c230b9678ebb73ba19da038a6d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/833\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf92f409655c4f4bc22eaa5d17f543d69e8c411b",
      "tree": "f0db9b6b5d73e168954544af951754a082b34493",
      "parents": [
        "28800ad9a591c8a9dbbba4f21de51d8e07443b1e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 15:08:48 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/p/api: use protobuf.Timestamp in LogEntry\n\nThis updates LogEntry to use google.protobuf.Timestamp.\nSee: issue #129.\n\nChange-Id: I937800aa91e86690da0d06f743e720c2d474ad0a\nReviewed-on: https://review.monogon.dev/c/monogon/+/832\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "28800ad9a591c8a9dbbba4f21de51d8e07443b1e",
      "tree": "4ea4604d271543acaf928a987e2c6b3937bc435f",
      "parents": [
        "f777496512bc553faeb5e17c818a118c6a057817"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 14:56:02 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/p/common: use protobuf.Timestamp in NodeStatus\n\nThis updates NodeStatus to use google.protobuf.Timestamp.\nSee: issue #129.\n\nChange-Id: I7902908a885a909d5ad6e232333037add5fb02e2\nReviewed-on: https://review.monogon.dev/c/monogon/+/831\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "f777496512bc553faeb5e17c818a118c6a057817",
      "tree": "d2065bdd76de2941fcb6b81b48847eb83bf5cfec",
      "parents": [
        "b1e7ee4984d057ca1aeacd8e0d1489aa700cdf0c"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 12:26:55 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/c/metroctl: introduce proxyAddr parameter\n\nThis enables metroctl to interact with the cluster over a SOCKS5 proxy.\n\nChange-Id: I73a59b01cecec7b5988ca57d7ff71179da260949\nReviewed-on: https://review.monogon.dev/c/monogon/+/830\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b1e7ee4984d057ca1aeacd8e0d1489aa700cdf0c",
      "tree": "6e0780e12d525cbf6393771af8100204e9668110",
      "parents": [
        "f1234a9528f700bc3c44a45fe19d5a743da29af5"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 08 12:19:02 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/c/metroctl: use the global endpoints parameter\n\nThis makes the takeownership command use the global --endpoints\nparameter instead of its positional argument.\n\nChange-Id: I1ddb27fb1cbb5b299c97b6c0bca26883c9a51329\nReviewed-on: https://review.monogon.dev/c/monogon/+/829\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "f1234a9528f700bc3c44a45fe19d5a743da29af5",
      "tree": "26fd08130af2338c02b657eae8497454056e505d",
      "parents": [
        "cce1f0d12155fbaa4011ab459844575cd360036b"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Jun 22 13:57:38 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jul 11 12:09:15 2022 +0000"
      },
      "message": "m/p/cmd: implement RunCommand\n\nThis implements a new utility function RunCommand, based on existing\nm/installer/test implementation.\n\nRunCommand will be used in the upcoming metroctl test implementation.\n\nChange-Id: Ieb98acada7e7408249da0e289861674e80b4d581\nReviewed-on: https://review.monogon.dev/c/monogon/+/789\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "c6316c89203c78c4925b35a54dc177df08b5bd26",
      "tree": "607c2e5d3310fa953c215386a2b88845c4de6a38",
      "parents": [
        "6e7c2ac97b63d18d4a18d04a67c7d2082cd4cffc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 07 15:17:47 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 07 15:22:10 2022 +0000"
      },
      "message": "m/handbook: change over tag to metropolis-v0.1\n\nIt was decided to tag the release metropolis-v0.1, not v0.1.\n\nChange-Id: Ia697af0b47861f00b9a69072778f45b627d45dd0\nReviewed-on: https://review.monogon.dev/c/monogon/+/827\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6e7c2ac97b63d18d4a18d04a67c7d2082cd4cffc",
      "tree": "91e3fc2ed774fdfc353e0026c175035395e2013c",
      "parents": [
        "916619b4bd67bd3f0debdccc5c4e3a42315b6fc6"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 16:02:03 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 15:04:07 2022 +0000"
      },
      "message": "m/handbook: add a chapter on the demo cluster\n\nChange-Id: Ie00a9635207a6ef6a7e1b0241279c185970a92e0\nReviewed-on: https://review.monogon.dev/c/monogon/+/826\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "916619b4bd67bd3f0debdccc5c4e3a42315b6fc6",
      "tree": "6595649cd3c3f4290bd6ff7d05cd291de69c6818",
      "parents": [
        "c437dc40ca06702f1241cf774391aba9e6e9d48f"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jun 30 15:56:32 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 12:21:09 2022 +0000"
      },
      "message": "m/handbook: add a chapter on Cluster API\n\nFor what it\u0027s worth, here\u0027s my attempt at writing down pieces of\ninformation that could be of interest to potential users, based on\nthe current implementation.\n\nChange-Id: I92062f103888340e9823551ed8af87741f3e4165\nReviewed-on: https://review.monogon.dev/c/monogon/+/807\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c437dc40ca06702f1241cf774391aba9e6e9d48f",
      "tree": "82690cf90c66ccc81a5b6cf9d3a88319111c419e",
      "parents": [
        "d5f2f7a0f5c84715c3b61f3e411c3eebc0e03e61"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 13:01:43 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 12:21:02 2022 +0000"
      },
      "message": "m/c/metroctl: implement the approve command\n\nThis adds a command to approve new nodes, and list nodes pending\napproval.\n\nChange-Id: I8f91d6e549c1eae298c5a4a6f11b53ae70a77f79\nReviewed-on: https://review.monogon.dev/c/monogon/+/825\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d5f2f7a0f5c84715c3b61f3e411c3eebc0e03e61",
      "tree": "21db9115ef94166e0b334b2910bbd0a11a69db4f",
      "parents": [
        "ac3324bb1d7ed8dd088aebf2fabc054dd7f8d046"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jul 05 18:48:56 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 07 11:17:20 2022 +0000"
      },
      "message": "m/c/metroctl: implement multi-node installation\n\nThis enables metroctl to include the ClusterRegister part of\nNodeParameters in generated installer images, making it possible for\nnewly installed nodes to join an existing cluster.\n\nChange-Id: I648207d70a4bec2ed7acf42e02f2b2c93319f559\nReviewed-on: https://review.monogon.dev/c/monogon/+/822\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "1dc567e8f342e0e410a4fe7beb149bf66eb34a56",
      "tree": "3ace3e556e159355f6d5aa0da7b90da7267604b7",
      "parents": [
        "20d1dd1fdae016c19fcdf9607ab1503f1a45722a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Jul 01 01:24:47 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Jul 06 11:08:28 2022 +0000"
      },
      "message": "m/n/c/r/resolver: enable keepalive on updaters\n\nThis prevents the resolver from getting stuck waiting for TCP timeout\nwhen the node it\u0027s connected to partitions. This was observed a few times in manual testing when restarting nodes.\n\nChange-Id: I7126888b77e9e1dfbcfcfc009f04639e65119fa6\nReviewed-on: https://review.monogon.dev/c/monogon/+/815\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "20d1dd1fdae016c19fcdf9607ab1503f1a45722a",
      "tree": "9c6aa6c757bac73b705a715801dda8aed12f9d16",
      "parents": [
        "7a510198b10c0b78f87c74a76e429097a757373d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Fri Jul 01 12:21:42 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jul 06 09:36:46 2022 +0000"
      },
      "message": "m/c/metroctl: automatically set up kubeconfig\n\nWhen running takeownership this automatically sets up the necessary\nkubeconfig configuration to make sure kubectl can access the cluster.\n\nChange-Id: I135bfda2a13ea169a41506d3615d4e8a0bb0ea21\nReviewed-on: https://review.monogon.dev/c/monogon/+/818\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "7a510198b10c0b78f87c74a76e429097a757373d",
      "tree": "3f5acc9f346b977de524017ae61346811ec24ddd",
      "parents": [
        "adb98f9d02a0b2c6b5def344d421a79ab9c6b37e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 04 15:31:38 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jul 05 11:33:43 2022 +0000"
      },
      "message": "m/c/metroctl: embed installer and add argument for bundle\n\nThis embeds the installer in metroctl for easier distribution and adds\nan option for passing a bundle path explicitly.\n\nFor the MVP this allows users to download metroctl and a bundle\nseparately and make an installer out of them.\n\nChange-Id: I00f481c30a2e843d336248aad0dc4030d03c4576\nReviewed-on: https://review.monogon.dev/c/monogon/+/821\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "237cf4076e4314ea98f4d47e9557857ef73f554b",
      "tree": "2c4a6f8e62958469f84b5e948faace8bd8e3441e",
      "parents": [
        "d57ef1c61a520fa251ede0b4ef2491b8c3ebd3b8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 04 12:14:37 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 04 14:03:05 2022 +0000"
      },
      "message": "m/p/pki: set correct authority key identifier\n\nThe current code sets the AuthorityKeyId of a signed certificate to the\nparent\u0027s AuthorityKeyId while it should set it to the parent\u0027s\nSubjectKeyId. This worked as we do not currently use intermediate CAs.\n\nChange-Id: I74dae8b50fd32d2b158ed95ccf918a6a38a1c699\nReviewed-on: https://review.monogon.dev/c/monogon/+/819\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "d57ef1c61a520fa251ede0b4ef2491b8c3ebd3b8",
      "tree": "75e52624d70b3351fb5a8c26394acbfd19c785f2",
      "parents": [
        "5f8414dd1409f96b3f70e621a5189b11c68cddcc"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 01 12:22:33 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Jul 01 11:26:42 2022 +0000"
      },
      "message": "m: remove references to LUK, GUK\n\nThis unifies the unlock key nomenclature throughout the repository:\n- Local Unlock Key becomes a Node Unlock Key\n- Global Unlock Key becomes a Cluster Unlock Key\n\nChange-Id: I674ad68a50b3845705f3e2c57952fc7fba5be665\nReviewed-on: https://review.monogon.dev/c/monogon/+/816\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5f8414dd1409f96b3f70e621a5189b11c68cddcc",
      "tree": "c12fabd2ff9f7ebc8cd070a7d2f4fe93806950e3",
      "parents": [
        "867107d6f8ab9e237f476c290c21381829e18e22"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Jun 24 13:02:11 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Jul 01 10:40:50 2022 +0000"
      },
      "message": "m/n/core: fix panic logging\n\nWe fix a few issues:\n\n 1. Logging to the runtime file descriptors didn\u0027t work for some\n    reason. Opening the FD(s) manually works.\n 2. We didn\u0027t log into consoles.\n 3. We didn\u0027t return errors/results correctly. RawSyscall performs its\n    own \u0027\u003e0\u0027 check on a syscall result and routes the result to either\n    the first or last return value. We need to undo this check to return\n    the same unified argument as runtime.write expects and\n    runtime.write1 provides.\n\nChange-Id: Ie718a47139dd0f700d53466a1250593025c9dcbd\nReviewed-on: https://review.monogon.dev/c/monogon/+/809\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "867107d6f8ab9e237f476c290c21381829e18e22",
      "tree": "960baa15e8239c96d742c257be91d06821a0bc00",
      "parents": [
        "fcc5115636da2fcc27d4707c908b8aa2bb0162d0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Jul 06 12:55:26 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Jul 01 10:31:50 2022 +0000"
      },
      "message": "handbook: structure, introduction, chapter 3 root\n\nThis is a first pass at the Metropolis Handbook. We write out the\nexpected outline of the documentation, and start filling in some\nchapters.\n\nThe introduction pages and Chapter 1 are a high-level overview of what\nMetropolis is and how it\u0027s expected to be used.\n\nChapter 3 will delve deep into the technical details of how Metropolis\nis implemented. For now, the introduction/overview section of that\nchapter is written.\n\nChange-Id: Ic16aa91ed9a127f4f3791eeaf8d7f5e1a24b1018\nReviewed-on: https://review.monogon.dev/c/monogon/+/453\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "58ddc0981614e7582a3ad5a505d64e4c48cd2800",
      "tree": "3060609a9e68a4a032c133330c5f2f18218e52be",
      "parents": [
        "5bb8a33c73eb418729227e071af6777703913a65"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 30 18:23:33 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 30 17:55:07 2022 +0000"
      },
      "message": "m/n/c/r/resolver: allow disabling curator updater\n\nThis allows some resolvers to not attempt to contact the cluster for\ncurator node updates. We use this in the Join and Register resolvers as\nthey don\u0027t have permission to access this data anywa.\n\nWe also generalize Resolver options into a proper WithX setup. We also\nuse this opportunity to move the resolver creation in node code outside\nof the roleserver, as it should have been in the first place.\n\nChange-Id: I1cc227711d784e07959371873029e09fc8cd1b99\nReviewed-on: https://review.monogon.dev/c/monogon/+/808\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5bb8a33c73eb418729227e071af6777703913a65",
      "tree": "243c70849397b0a708864eb2b7a3d02ec5d41f4e",
      "parents": [
        "b43d0f0765916e029db8f784e44659fc8468e945"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 23 17:41:33 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 30 15:55:44 2022 +0000"
      },
      "message": "m/t/launch: use cluster resolver\n\nThis makes the cluster launch framework use a resolver to connect to\ncluster nodes after credential escrow has been performed.\n\nChange-Id: I09b0ec50bdb758e0c91e505a3c51839bb274f959\nReviewed-on: https://review.monogon.dev/c/monogon/+/797\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b43d0f0765916e029db8f784e44659fc8468e945",
      "tree": "f19bd58546b20c3a4c19eab62492e454a7f230a8",
      "parents": [
        "fcfebbc0a05f8e5186b259b334463afdb358e299"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 23 17:32:10 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 30 15:55:44 2022 +0000"
      },
      "message": "m/node: use resolver for intra-cluster connections\n\nThis replaces all instances of \u0027just connect to the first node for now\u0027\nwith usage of a proper leader-aware cluster resolver.\n\nThis isn\u0027t tested yet, as all of this will be exercised in an E2E test.\n\nChange-Id: I9f6bfb49ff9ae0dd70ac1a3131c5ee021d9bb5a5\nReviewed-on: https://review.monogon.dev/c/monogon/+/796\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "fcfebbc0a05f8e5186b259b334463afdb358e299",
      "tree": "4856e7ea62d94f063405a6ac4edb1b2bd1799146",
      "parents": [
        "b401d635b65ce03c798f679f81d8ab602d7e61e8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 23 16:50:27 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jun 30 15:36:45 2022 +0000"
      },
      "message": "m/n/c/rpc: make resolver leader-aware\n\nThis is a fairly large change which makes the resolver only contact the\ncurrent leader of the control plane, not all nodes in a round-robin\nfashion.\n\nThis resolver isn\u0027t yet used by the cluster, the tests, or metroctl -\nbut that will come in upcoming CLs.\n\nWe also move the resolver to a subpackage of rpc, in preparation for\nmoving it into a package path designed to be depended upon by users.\n\nChange-Id: I230853bbf552fbde947de05f95de37cea93a168c\nReviewed-on: https://review.monogon.dev/c/monogon/+/795\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bbb873d19c7b0b981c6d00e78c1d25544835b500",
      "tree": "ee0d0420f53aed79197f35491bc5e72a7d61d0c1",
      "parents": [
        "2a64fff55720780c1702d1013be2a80575d80aa7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Jun 24 14:22:39 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 28 10:26:11 2022 +0000"
      },
      "message": "m/p/event/etcd: better handle update coalescing\n\nI wasn\u0027t able to replicate this in a test, but sometimes etcd sends\nmultiple events relating to the same key within a single entry in the\nwatch channel. I assume this happens when the etcd watcher client is not\nreading from the server fast enough.\n\nAnyway, when that happened, we\u0027d get a panic about duplicate keys in a\nnon-ranged call because of a logic bug in the entry coalescing (in which\nwe would not coalesce multiple updates to the same key, just updates\nwith the same key and value). Now we coalesce these too, and the bug\nseems to be gone.\n\nChange-Id: I36234cc1104ec96a38ad1566b9df75532df44bba\nReviewed-on: https://review.monogon.dev/c/monogon/+/800\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    }
  ],
  "next": "2a64fff55720780c1702d1013be2a80575d80aa7"
}
