)]}'
{
  "log": [
    {
      "commit": "506b88652ae57ca4f85a51b9f51641bb50d875af",
      "tree": "3c9f18d07b1c925a814a090b9d446dd18e457d88",
      "parents": [
        "97f212c1d25424a099b6a2ff52e0464a2755f11e"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 14:54:13 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:13:14 2023 +0000"
      },
      "message": "commentwrap: ignore lines with URIs in them\n\nChange-Id: Iad0234ff59d74845bda35213deecf9719439d1aa\nReviewed-on: https://review.monogon.dev/c/monogon/+/1105\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7eeec65b849695e7bb1be072e6911694b8a02f54",
      "tree": "affecceb6edb6eb561a0970eb762684930b5e53e",
      "parents": [
        "a9580a7970010d14ccbfe86c22483eeae9b7c05c"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Fri Jan 20 21:16:08 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 23 11:03:52 2023 +0000"
      },
      "message": "third_party/sandboxroot: stabilize repo URLs\n\nMetalink output is not stable, pin mirrors instead. We need to\nset up our own caching proxy next, but this will do for now.\n\nChange-Id: Ibc6ea9672890d88022a9310afb92db824226351d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1087\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2aa8b184fcbc713d99bb7c3d868d1ab9df6f5b71",
      "tree": "6ee292c36be2008e8d2fc4d7af23157c17c0c981",
      "parents": [
        "bc93c2b50690e66712d80e4da5837554588ca065"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 23:31:43 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "third_party/rust: update rules_rust and deps\n\nThis is required for rules_rust to work with CC toolchains.\n\nChange-Id: I15f20c7bde09697fda248f7107be8bcd00e24d57\nReviewed-on: https://review.monogon.dev/c/monogon/+/1073\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@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": "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b",
      "tree": "02ead12ee79b10abfdd624071802acc771f6bb3e",
      "parents": [
        "bffdda85d7750c9a9a34289a79281edeae1d73ef"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Fri Jan 06 19:57:37 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: bring our own sandbox root\n\nThis change removes the build container and replaces it with a\nBazel-built Fedora 37 sysroot which is bind-mounted into the Bazel\nsandbox using --sandbox_add_mount_pair. The tools/bazel wrapper script\nautomatically (re-)generates the sysroot when needed.\n\nBoth Bazelisk and Bazel\u0027s native wrapper automatically run the\ntools/bazel script, which means that our build should now work without\nextra steps on any machine with a working Bazelisk setup and unpriv ns.\n\nThis fixes all kinds of weirdness caused by the previous podman setup\n(\"bazel run\"/container pushes, log access, weird podman bugs,\nbreaking the IDE plugin for any non-Monogon workspaces...).\n\nUsing the sandbox hash as an action var also ensures that the cache\nis invalidated whenever the ambient environment changes. Previously,\nBazel did not invalidate build steps when any host dependency changed.\nTo my knowledge, this was the only remaining cause for stale builds.\n\nIt also means we cannot depend on the host toolchain since it\nwon\u0027t be accessible in the sandbox, and anything that inspects the\nhost during analysis stage will fail. This currently means that\nrunning on a non-Fedora host won\u0027t work - we fix this next.\n\nAll RPMs are pinned and the sysroot is fully reproducible.\n\nOnce we upgrade to Bazel 5.x, we can take it further by enabling\n--experimental_use_hermetic_linux_sandbox and fully remove the\nremaining host paths from the sandbox for full hermeticity.\n\nIn a follow-up, we can clean up the CI image to only contain the\nminimum dependencies needed for Bazelisk and the agent.\n\nExisting IntelliJ users need to remove the -Dbazel.bep.path flag\nfrom their VM options.\n\nHandbook/Rust rules are disabled temporarily to keep CI green\n(requires a more recent rules_rust version).\n\nChange-Id: I1f17d57d985ff9d749bf3359f259d8ef52247c18\nReviewed-on: https://review.monogon.dev/c/monogon/+/1033\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "be326c24068009a0f8aa039f1fb5a004fbacae6a",
      "tree": "04bb044ad4aa292ac51ba7e8a402b519ad266fe6",
      "parents": [
        "acfad5b4d130084d58235a1eae54f4c51f936e44"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jan 04 20:42:59 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 21:45:48 2023 +0000"
      },
      "message": "*: add bazeldnf dependency\n\nThis adds https://github.com/rmohr/bazeldnf, a pure-Go RPM dependency\nresolver. Requires a dummy import for proper Go dependency resolution.\n\nChange-Id: I4d4e7716bfd7da7e3157f06dc1f1612c9e39c17e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1028\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "06f51944c154f10756796323b1cbde1ce5376c47",
      "tree": "cb616c969928dd53b79eaf6d81afef58edc189c1",
      "parents": [
        "12450d28a5a841994df41bb7c37c24d53a2c80d2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 20 13:06:53 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "third_party/linux: add memory hotplug\n\nWe need this for hardware reporting (and for running in VMs).\n\nChange-Id: I52dff73e0c945dcfde59b014a46c4efe15a133c2\nReviewed-on: https://review.monogon.dev/c/monogon/+/1001\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ce3d810f4fde5e00aba7539a4d12ebe82d65b672",
      "tree": "115369420532871a70e28e6985baf486321ecde8",
      "parents": [
        "a5baa87a6ca09502afb077b5fd74f0b374fecaf4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 18 12:04:43 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Oct 19 20:30:58 2022 +0000"
      },
      "message": "third_party/linux: add bonding\n\nFor our provisioning project we need bonding support, enable it in\nour kernel.\n\nChange-Id: I46c348c7c855be3a2c3a5db88840f4a7611a49fe\nReviewed-on: https://review.monogon.dev/c/monogon/+/957\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1e9d7d875a7bd10ab30d4b193badab9f76936aca",
      "tree": "aa51445504663ebe1ec348ec37d6f22bbb59be2b",
      "parents": [
        "bee272f2240dd33f9ec74666205349ced91d3f0a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Sep 15 18:45:44 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Sep 16 11:30:15 2022 +0000"
      },
      "message": "third_party: add lib/pq, cockroachdb and cockroachdb test server\n\nChange-Id: I0e32635fd9a9e063e53877213ff87ef6d881403d\nReviewed-on: https://review.monogon.dev/c/monogon/+/910\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "a9590fe2dcde11eed3b6e8cf1f7ac42a85c9854e",
      "tree": "ee7dca479c50df02a2eb39729d49ce402fd70924",
      "parents": [
        "f054486ae95df87cb0811df488bb47aebdac14da"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 13 13:51:41 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 14 11:45:15 2022 +0000"
      },
      "message": "third_party/go: add improbable-eng/grpc-web and klog\n\nThis is in preparation of implementing the cloud service boilerplate.\n\nChange-Id: I393057dfc3c0a5a4f0392e66b1be9eff306496cf\nReviewed-on: https://review.monogon.dev/c/monogon/+/905\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f054486ae95df87cb0811df488bb47aebdac14da",
      "tree": "195657113c01909686a9de30aa36d1ebc5014353",
      "parents": [
        "5486a9cf8c7092a213bfda0b52681c156fe87cbb"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 17:05:54 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:33:35 2022 +0000"
      },
      "message": "third_party/linux: improve kernel configuration\n\nThese configuration changes are required to boot the Metropolis kernel\nvia kexec on a PowerEdge R750.\n\nkexec needs to be enabled even if we\u0027re not using it as just using kexec\nto launch a kernel on an EFI machine requires a fixup performed only if\nthe target kernel is built with kexec enabled. Otherwise it crashes\nimmediately after mounting efivars by dereferencing a null pointer.\n\nbpfilter should be disabled because it needs a userspace helper (the\n.ko actually runs in userspacee) and we ship none of that, causing an\nerror-level log message on every boot.\nUntil we actually ship the required infrastructure disable it.\n\nirq_remap is required for x2apic, without it\nthe kernel can\u0027t even boot on that platform.\n\nintel_iommu is just a drive-by enable because the AMD IOMMU is already\nenabled and we want the protection.\n\nChange-Id: Iaf0012e8c0427114c56fc5d90a9748ebeb800a54\nReviewed-on: https://review.monogon.dev/c/monogon/+/904\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "1b28e1b92989e827087bc6b594a411e10328e00a",
      "tree": "6f15262ff5bbbc09b48e184ba59289ff5379ec92",
      "parents": [
        "46e72abb01d6bd4b39fd720680602bd6914e545a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 18:41:18 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:24 2022 +0000"
      },
      "message": "build/sqlc: implement simple sqlc/bindata rules\n\nThis is a first pass at implementing rules to generate sqlc stubs from\n.sql files and embed relevant migration files into bindata.\n\nThis is not yet used. The Go API is subject to change - especially the\nway migrations are laid out in the generated package will probably\nchange.\n\nChange-Id: I0873031603957a176ad4664c3b10768b791e0dd5\nReviewed-on: https://review.monogon.dev/c/monogon/+/884\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "46e72abb01d6bd4b39fd720680602bd6914e545a",
      "tree": "6b5b740ecc003b62db432f5b2b6b13a88dcb3c8a",
      "parents": [
        "bd2ce6dcffa271d8ef00bceda1a89fc34d1d0f3d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 15:13:22 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:24 2022 +0000"
      },
      "message": "third_party: add libpg_query and sqlc\n\nThis adds sqlc, a SQL query code generator for Go (and other languages).\nIt in turn requires pganalyze\u0027s libpg_query, which is a C library for\nparsing PostgreSQL queries.\n\nTo test:\n\n   $ bazel build @com_github_kyleconroy_sqlc//cmd/sqlc\n\nIn the future this will be used by Bazel rules to generate sources at\nbuild time.\n\nChange-Id: I369c9ab503e8ce6952fd3f73c233dd3d59922358\nReviewed-on: https://review.monogon.dev/c/monogon/+/882\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "073a1c562f386ac9b33d5361a380098e5d3fdd74",
      "tree": "7173e3adfb3b648d60258cc94b4ce33f6d9bac3e",
      "parents": [
        "fab7d46b81250f0b3dab0a588f414b2eb4ac6fc4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Aug 02 11:36:36 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Aug 04 15:48:57 2022 +0000"
      },
      "message": "workspace: add dosfstools\n\nThis adds dosfstools for its FAT32 fsck which is going to be used for\nthe FAT32 integration tests.\n\nChange-Id: Ie4ae13ad3a63581868fea69fa7d91a27044f1d3b\nReviewed-on: https://review.monogon.dev/c/monogon/+/842\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "e5053ed77b4fcfce6f88e2f8f0e98a0581b795cb",
      "tree": "70b259c9a023b389267064690131597ab2386ecd",
      "parents": [
        "ea0a2c862d41544cf58807b17daf6b3b4dfa12bc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jul 13 14:25:02 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 14 09:01:19 2022 +0000"
      },
      "message": "t/linux: enable LoadPin LSM\n\nThe LoadPin LSM ensures that the kernel only loads files for its own use\n(like firmware, modules, ...) from the root file system. This helps\nprevent attacks which overlay directories with mount points.\n\nChange-Id: Id7f8da0e6030e2a6d19fc25840063e6af56c389c\nReviewed-on: https://review.monogon.dev/c/monogon/+/835\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "961c7a25b6f1e7026ebac57e93501307945e98e4",
      "tree": "0eb67b5021801b6e6805d87de1ceba2e87308609",
      "parents": [
        "02bc7de3e9f6743f4713edcd83497a14ade48da2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 07 10:51:33 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 07 11:10:39 2022 +0000"
      },
      "message": "workspace: update main K8s to 1.24.2\n\nThis was missed in 801. Updating Kubernetes is currently very easy to\nscrew up (see #136 tracking improvements to this).\n\nChange-Id: Ia49ffba93cfdbb3e3111050f59e9dbb64b93361c\nReviewed-on: https://review.monogon.dev/c/monogon/+/823\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "adb98f9d02a0b2c6b5def344d421a79ab9c6b37e",
      "tree": "3e71b40b2ebb7c0ddae3667b58d9ee85a727526b",
      "parents": [
        "237cf4076e4314ea98f4d47e9557857ef73f554b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 04 14:09:41 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 04 15:32:37 2022 +0000"
      },
      "message": "workspace: support workspace-relative embeds in rules_go\n\nrules_go constrains itself by default to includes from the same\ndirectory or its subdirectories, just like the standard Go compiler.\nWith Bazel however including things from other packages is very common.\nAliases don\u0027t help as Bazel doesn\u0027t actually copy the artifacts for\nefficiency.\n\nThis patches rules_go to also accept Bazel-style embeds.\n\nChange-Id: I8fc9479492da00e463297e11b99ff2a9b88bbfde\nReviewed-on: https://review.monogon.dev/c/monogon/+/820\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "b401d635b65ce03c798f679f81d8ab602d7e61e8",
      "tree": "70424af5c52c281ff33fdc6d4ba32344fc286ce8",
      "parents": [
        "6107ed11f3d8a3da38a5461bde69341ccec9353b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 28 13:00:02 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 28 17:09:10 2022 +0000"
      },
      "message": "workspace: update etcd to 3.5.4\n\nVersions prior to 3.5.3 had critical issues, see\nhttps://github.com/etcd-io/etcd/releases/tag/v3.5.3 for more information\n\nChange-Id: I1137f0c7015cdcec55293ab3160fdbb37af34ebc\nReviewed-on: https://review.monogon.dev/c/monogon/+/803\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "6107ed11f3d8a3da38a5461bde69341ccec9353b",
      "tree": "4f97f017bb90765975be74d7f63d75f74a167100",
      "parents": [
        "6f852d5bdc4772b09cd894575950a24ab5c7dc91"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 28 12:56:28 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 28 17:09:10 2022 +0000"
      },
      "message": "workspace: update containerd and runc\n\nUpdates containerd and runc to their respective stable releases.\n\nChange-Id: I672a831115f46b33b971d1dcc6cf791c1e436603\nReviewed-on: https://review.monogon.dev/c/monogon/+/802\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "6f852d5bdc4772b09cd894575950a24ab5c7dc91",
      "tree": "0091abc1cd8546a660bf34fa7d648c98a8937e2f",
      "parents": [
        "bbb873d19c7b0b981c6d00e78c1d25544835b500"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 28 12:50:25 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 28 17:09:10 2022 +0000"
      },
      "message": "workspace: update Kubernetes to 1.24.2\n\nThis gets us to the latest stable Kubernetes release in preparation for\nour first release.\n\nChange-Id: I9a1d74c251c7e91254db70d38cf1074771965d33\nReviewed-on: https://review.monogon.dev/c/monogon/+/801\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "918d3e39ccf04b8a83d04ba54f6dfde271378385",
      "tree": "486572ee3f35871740777bbc5eba3763b635d85c",
      "parents": [
        "110434116ae3c5c8c3cb0f23f97aa3c26171a037"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon May 16 15:41:29 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu May 19 12:01:37 2022 +0000"
      },
      "message": "workspace: update cel-go to 0.11.4\n\nThis allows us to remove a patch which has been upstreamed.\nWhile I\u0027m at it let\u0027s also drop the patch fixing up the googleapis\nreferences and make Gazelle do the work as it does include the\nnecessary resolutions since 0.25.\n\nChange-Id: I66d6dae609661c311911144b82807ebddd8f3805\nReviewed-on: https://review.monogon.dev/c/monogon/+/684\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "110434116ae3c5c8c3cb0f23f97aa3c26171a037",
      "tree": "4495097a8343e28b3e52f8b0a9ed828ddfa5ae7d",
      "parents": [
        "f73d6f0fdf2983a2b578020c56e53f0f0aa91244"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon May 16 14:51:45 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu May 19 10:48:01 2022 +0000"
      },
      "message": "workspace: update CoreDNS to 1.9.2\n\nThis removes a patch that has gone upstream in the meantime.\n\nChange-Id: Ie7192e974f2444091c257ca12d97aa634d962ce7\nReviewed-on: https://review.monogon.dev/c/monogon/+/683\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "f2b7ab697885d2ccf7d7e624566c31f69550b7e8",
      "tree": "2310ba8534677e755e181bae9a21175572460228",
      "parents": [
        "ed6bcacf756182ee62d249e3675ff050dcbc6800"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed May 04 19:06:00 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed May 04 17:49:54 2022 +0000"
      },
      "message": "workspace: update to Kubernetes 1.24\n\nThis updates our Kubernetes to 1.24. nfproxy needed a small patch as\nK8s decided to gratuitously rename a utility method. CoreDNS also needed\na small patch because they implement an interface which had one method\nrenamed and deprecated by Kubernetes. This is going upstream as\nhttps://github.com/coredns/coredns/pull/5364. Kubernetes adopted runc\n1.1 upstream so we could drop our patch there.\n\nOverall this was fairly painless and took 1h16min including PRing and\nwriting this commit message.\n\nChange-Id: Icda6ad2df96364fd25f50443791147df40bb485c\nReviewed-on: https://review.monogon.dev/c/monogon/+/674\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "fdc3a2473e4ebfd77db342252e1088882e01b2d6",
      "tree": "addfe894acce55d3088764cc49a6c1c3cee55573",
      "parents": [
        "33ce3bcd5c4791cb66a3020b7792829c534c97c6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 06 15:56:38 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 19 08:01:17 2022 +0000"
      },
      "message": "third_party/go: fix `go mod tidy`\n\nThis makes our root repository somewhat more gomod-compliant, to the\npoint where we can run `go mod tidy` to manage dependencies.\n\nThe generated placeholder files turn their parent paths into enough of a\nGo package that the go tooling is appeased, but they are ignored by\nGazelle.\n\nIdeally, we will generate these placeholders automatically before\nrunning `go mod tidy` and gitignore them, but this will do as a first\npass.\n\nWe also remove some unused dependencies which got caught by `go mod\ntidy`.\n\nChange-Id: I81e7e92a45f22c8ef9c92207f67a5bd6cc773da5\nReviewed-on: https://review.monogon.dev/c/monogon/+/652\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "ee4bfdb9c59848d618975f24746c78b418e9aebc",
      "tree": "f84f251df9e2908667f27151794c90cf66965380",
      "parents": [
        "be74284cb84581b7217a934d2a771edb7c948223"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 06 15:30:52 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 06 17:18:39 2022 +0000"
      },
      "message": "build/fietsje: remove\n\nWe\u0027ve moved back to using go.mod as a source of truth, as our main large\ndepdency (Kubernetes) is now mostly gomod compatible.\n\nChange-Id: Ie6215b7330a7dcec7681fa3081437efb2be5bf77\nReviewed-on: https://review.monogon.dev/c/monogon/+/651\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "d13c1c64387ca9a83bb832a3faa5c4b07268d265",
      "tree": "0c0f534db4726e4400486aad25235e8c573d455e",
      "parents": [
        "79a1a8f9dd49afe8e0a2364c4586b8f39525b204"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 30 19:58:58 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 05 10:35:29 2022 +0000"
      },
      "message": "treewide: switch to gomod and bump everything\n\nThis switches version resolution from fietsje to gomod and updates\nall Go dependencies. It also bumps rules_go (required by gVisor) and\nswitches the Gazelle naming convention from go_default_xxx to the\nstandard Bazel convention of the default target having the package\nname.\n\nSince Kubernetes dropped upstream Bazel support and doesn\u0027t check in\nall generated files I manually pregenerated the OpenAPI spec. This\nshould be fixed, but because of the already-huge scope of this CL\nand the rebase complexity this is not in here.\n\nChange-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833\nReviewed-on: https://review.monogon.dev/c/monogon/+/639\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "fc2d0d8275a2596794f4f2d1d32b8a536854d825",
      "tree": "f868c35e5a72d1c9af108c8df7b8060077424b59",
      "parents": [
        "399ce5537c9d74b2335add19dcb6a4043d9468b5"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 31 14:36:17 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 31 13:10:50 2022 +0000"
      },
      "message": "workspace: bump Linux to 5.15.32\n\nBumps Linux to latest LTS patch release\n\nChange-Id: I40e6c4a7e161915d41a688e00cb4ca98553bf89f\nReviewed-on: https://review.monogon.dev/c/monogon/+/644\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "942f5e2188f67d78fe8da86f42e1902427792f2b",
      "tree": "b3465cd8996a224a678f12cf1d858173077dadd1",
      "parents": [
        "d3ce0ac027b205b1eeccbbcb062c9d417e205df4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 27 15:03:10 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 08 12:05:38 2022 +0000"
      },
      "message": "b/ci: update build container to Fedora 35\n\nFedora 32 is EOL since over half a year, update to the current stable\nFedora release.\n\ntoolchains: adds clang as it\u0027s no longer part of the llvm package,\nchanges toolchain path references to GCC 11, and rebuilds the sysroot.\n\nedk2: update to latest stable (old version cannot build with a newer\nminor version of Python 3) and patch to disable -Werror and make the\nnewer included Brotli version work as it natively includes BUILD\nfiles which need to be patched out to make the source files accessible.\n\nlinux: add patch to fix PVH ELF note entrypoint with binutils 2.32+ as\notherwise the .notes section gets emitted with broken alignment.\n\nm/t/launch: RunMicroVM is broken if SerialPort is not set with newer\nQEMU versions because fcntl(2) fails to interact with a broken file\ndescriptor. This is due to a confusion between nil interfaces and\ninterfaces containing a nil pointer causing Go to improperly pass the\nfile descriptor. Changing the type of SerialPort to the actual\ninterface resolves the issue.\n\nChange-Id: I03a8cbf4f80a7363794dad1ff62ccb57e778cac3\nReviewed-on: https://review.monogon.dev/c/monogon/+/529\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "d3ce0ac027b205b1eeccbbcb062c9d417e205df4",
      "tree": "b026e8c1b1d327531a739449b383ad21f8fd9c20",
      "parents": [
        "304d42c86f034386a957eaec36b0d254aef8dc76"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 03 12:51:21 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 08 11:52:07 2022 +0000"
      },
      "message": "m/n/b/fwprune: process links from metadata file\n\nThe linux-firmware repository has a metadata file called WHENCE which\ncontains mostly license and origin information, but critically it also\ncontains data for symbolic links which are not materialized inside the\nrepo itself. So we need to parse that file and create these symlinks\nourselves.\n\nChange-Id: I9e6973e60d6f06e844dc879f658c9dd1913c432d\nReviewed-on: https://review.monogon.dev/c/monogon/+/555\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "d348fd1c66194c0fff46e39a16131a7bd0e45707",
      "tree": "c2731c55a03e1fdd7f81f25c363345acc508ac73",
      "parents": [
        "b6aa3f7a4bb57fa3d29c846fcfcc6c0d267ae8b7"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Mar 04 12:11:46 2022 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Mar 04 14:59:11 2022 +0000"
      },
      "message": "t/linux: disable IMA\n\nThis disables IMA in the kernel config. Currently Metropolis doesn\u0027t\nutilize any of its features, since integrity is ensured in other ways.\n\nSee: https://github.com/monogon-dev/monogon/issues/107\nChange-Id: Icc0af8790ef30c2e0497b570abb403cadd89371f\nReviewed-on: https://review.monogon.dev/c/monogon/+/557\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "80deba52ce3d1ff3c60fa2901cbbb0135e40f90b",
      "tree": "659869cf80fae0c808d7caae2d8341669bd8e1c5",
      "parents": [
        "ac82c0d984cd23b4b35163b223c9ed0001df8f55"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Feb 24 17:07:13 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 01 19:32:09 2022 +0000"
      },
      "message": "m/node: build microcode payloads\n\nThis adds a builder for loadable microcode payloads for the Linux\nkernel and microcode for Intel and AMD CPUs. It also adds a rule\ngenerating a microcode payload for Metropolis at\n//metropolis/node:ucode but does not integrate it yet.\n\nChange-Id: I00145e4c983d9ff3e81881e92cbecc3e09392665\nReviewed-on: https://review.monogon.dev/c/monogon/+/546\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "17c4c8bb0feaa0395b31757c8186521ec3c0d723",
      "tree": "abcc2f8419659ac3f9dcb55a1c0c3de43f4008f0",
      "parents": [
        "b6a9d3c613847de99be456f17c6b18cc4d1c4e63"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 01 12:59:47 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 08 13:06:05 2022 +0000"
      },
      "message": "m/n/b/fwprune: adapt to fsspec and use\n\nThis modifies the fwprune tool to generate fsspecs instead of making\ncopies and makes it take a list of paths for suffix matching instead\nof a directory as input. It also adds the fsspec_linux_firmware rule\nwhich uses the utility to actually build a partial fsspec. Finally it\nintegrates the linux-firmware external repository and uses that rule\nto ship firmware in Metropolis.\n\nChange-Id: I0552995105eda84e63d7259040ad36d794079308\nReviewed-on: https://review.monogon.dev/c/monogon/+/534\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "b6a9d3c613847de99be456f17c6b18cc4d1c4e63",
      "tree": "65aa9692174230796bfcc30aba663d5063190d6b",
      "parents": [
        "26d5225a142057b6eb04cff9ba86173a6682b626"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 27 18:56:20 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 08 13:06:05 2022 +0000"
      },
      "message": "m/n/build: implement new fsspec infrastructure\n\nThis makes the node_initramfs and erofs_image use the new common fsspec\ninfrastructure. It also adds the fsspecs attribute to both which can\nlater be used to add arbitrary fsspecs.\n\nChange-Id: I384e04712c0a70f82c5c975911cbb1d0d5e6cabc\nReviewed-on: https://review.monogon.dev/c/monogon/+/530\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "8c2c771a750f30b3edf240fc8352e777795e989b",
      "tree": "f7a30cb1af95485dd83998ca674d89ceffeea4b9",
      "parents": [
        "e2bf5742fe984bfb920fcb8b745bb0c6ac4de4db"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jan 25 19:42:21 2022 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jan 31 16:31:41 2022 +0000"
      },
      "message": "m: enable dm-verity rootfs\n\nThis makes all the existing EFI unified kernel images boot from a\ndm-verity rootfs.\n\nChange-Id: Iac05942e40b81825252e84feb5c79c8ff215680a\nReviewed-on: https://review.monogon.dev/c/monogon/+/527\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "0e057feb0b5c932e1b86ba769ad92bfc9bfdcd65",
      "tree": "f4ee473eacbf446c85f553ad417a8e4902c07bb7",
      "parents": [
        "87bf0bf46c83f3a59536f577171985b4fa1db1eb"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 13 16:19:10 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 13 19:51:25 2022 +0000"
      },
      "message": "metropolis: use hybrid consoles\n\nThis enables two consoles, one on the serial port and one on the\non-screen EFI framebuffer, if it exists. It also enables quiet mode\nwhich stops Linux from logging purely informational messages to\nthe console making it hard to see our own output.\n\nChange-Id: I25499a1dda8cf0c566878ac24877bf19b64ddda6\nReviewed-on: https://review.monogon.dev/c/monogon/+/517\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "8cde7ae0efa7dbef5d4d17759df5fd0a274db6fc",
      "tree": "64c1943e0f23f368e433cd5566f5ab13880d9f46",
      "parents": [
        "705a4025b3a28f5ddc5c62d40d3011437a0199f0"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 13 14:10:10 2022 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 13 15:11:54 2022 +0000"
      },
      "message": "t/linux: enable USB and USB mass storage\n\nThis enables USB and USB mass storage in our kernel. This is necessary for\nthe installer to read data off of a USB drive.\n\nChange-Id: I6a78f1d4f4234234b05b26188ae022b543d6bf35\nReviewed-on: https://review.monogon.dev/c/monogon/+/512\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "9a66b18b911e4551c708b4b4fffbe9e89f19d232",
      "tree": "abbbaa0e3c2586fafc7797390aef6bc3a328f453",
      "parents": [
        "1de8b1845e75dc1e020df21b997b2d6fc66fb65e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Dec 22 20:33:12 2021 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Dec 24 15:30:09 2021 +0000"
      },
      "message": "t/linux: output modules.builtin.modinfo\n\nThis makes the linux_image rule provide modules.builtin.modinfo, a\nkernel image build side effect, in a separate output group.\n\nChange-Id: I1323089864831e0eefae42c6a0d02288abe179b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/507\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "144b786814f203ed2f2f9a4edfc30cefc5d8dd7c",
      "tree": "12f11f840239b33329c8bd854a550785e1eed0df",
      "parents": [
        "b309e3fa020ab70f169c0f2b4a63a9f68da775b7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Dec 17 17:30:14 2021 +0100"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Dec 20 16:31:30 2021 +0000"
      },
      "message": "third_party: goimports: apply import grouping patch\n\nThis allows developers to build //:goimports and point their IDE/editor\nto it to easily conform to the import style guide.\n\nWe also document how to run this tool in CODING_STANDARDS.md.\nIntegration with IntelliJ is TBD.\n\nChange-Id: I61e412162e51e513ec5888eda5221c9d145b6454\nReviewed-on: https://review.monogon.dev/c/monogon/+/493\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "dcfc6787c736ae3461138224a33c5d5c560df2ff",
      "tree": "5ce2f2719c320e0f77aa5c667ed8221e27a39ca2",
      "parents": [
        "43e2107d9b76e8c1df0974c3125878ca64f2bb61"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 30 05:27:48 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 30 19:38:46 2021 +0000"
      },
      "message": "build/proto_docs: add proto documentation generator\n\nThis adds an HTML documentation generator for our Protobuf files.\nIt consists of a new Bazel rule `proto_docs` which wraps protoc-gen-doc.\nprotoc-gen-doc itself and go-proto-validator which it includes need\nsome light patching because of dumbness in the Go Proto ecosystem that\ndoesn\u0027t exist in our Bazel build.\n\nThis just hooks up everything, it does not yet do anything custom like\nannotating our own authorization metadata or similar.\n\nChange-Id: If6fd7c777210fea700e49242b5339cfafe7c030d\nReviewed-on: https://review.monogon.dev/c/monogon/+/452\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "e65731049afb6fd49da80f064fa40a28c9d5741d",
      "tree": "21dcad96d01c15fe0d0044c6ff72fbc18ab9105a",
      "parents": [
        "c71efc9d3b6c9d626e752ec5e17ea6893a3fbe34"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 02 14:15:37 2021 +0100"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Nov 22 12:55:56 2021 +0000"
      },
      "message": "m/c/metroctl: add MVP disk/image-only installer\n\nThis adds a very minimalist metroctl install command.\nOnly supports boostrapping and a single owner key.\nBut good enough to set up a node.\n\nChange-Id: I9306a054b9540a3a0c70621f3f5d9cb34fc18d14\nReviewed-on: https://review.monogon.dev/c/monogon/+/417\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "531e2c25995933a2e3110f5a53852bdbb5a2a39c",
      "tree": "b8b8dd9d56e6aebb9eaab8225e5f31fc999d8db3",
      "parents": [
        "ed86976004c8a9d8d06e787ece3d59b04dba11f9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Nov 17 20:00:05 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 18 14:12:47 2021 +0000"
      },
      "message": "WORKSPACE: bump Linux to 5.15.2\n\nThis involves ripping out fsinfo because there now is quotactl_fd which\nhandles what we originally used fsinfo for. I also enabled a few new\ninteresting kernel features in the config like the Landlock LSM and\nKFENCE.\n\nChange-Id: Ic0a113893a437b2c8068d06984fdc386f34e6adb\nReviewed-on: https://review.monogon.dev/c/monogon/+/444\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "c2e3b1b7f29708fa136e9195645b31fce530c1f0",
      "tree": "94d45711f78c1c1cc859e251519838350ce91938",
      "parents": [
        "44d2ad428573bb20ee6be4b957b1abbacad50fcb"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Nov 11 11:06:41 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 16 12:47:21 2021 +0000"
      },
      "message": "WORKSPACE: bump rules_go go 0.29 and Go to 1.17.1\n\nThe changes to nogo are from rules_go being able to use go_library\ntargets as part toolchain definitions. gVisor needed to be bumped\nto be compatible with Go 1.17. It also needs a fix for us not having\nthe systemd cgroup controller.\n\nChange-Id: I058b5c68d97809a286fbe36df00e49e55874dfd5\nReviewed-on: https://review.monogon.dev/c/monogon/+/438\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b7f8e9a05f2e47e63b697ae93a9c72741aef98c1",
      "tree": "f47454e0d2b266674b520a3125884aca20ea5fa5",
      "parents": [
        "dc7e31c81095fe809e3bfe07bbda36a21f54464e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Oct 20 13:41:41 2021 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Nov 08 10:03:59 2021 +0000"
      },
      "message": "third_party/linux: expose PARTUUID through uevent\n\nThe kernel was patched to expose partition UUIDs.\n\nThis was inspired by a change [1] that didn\u0027t make it into mainline.\nThe patch is meant for internal use and would need to be adapted for\nmainlining due to recent changes in the part of codebase involved.\n\n[1] https://lkml.org/lkml/2017/10/10/1130\n\nChange-Id: Ie34bf6f46ba95e39c5d8589414f98f06435aaae2\nReviewed-on: https://review.monogon.dev/c/monogon/+/407\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "dc7e31c81095fe809e3bfe07bbda36a21f54464e",
      "tree": "20ac8760617b9aa18968b5fb7fad288aeabca6f4",
      "parents": [
        "d32d1eaec33b9b6e8a2ce6f207892d7a2b236382"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Oct 07 22:23:39 2021 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Nov 08 10:03:04 2021 +0000"
      },
      "message": "m/node: move kernel cmdline to the unified kernel image\n\nThe upcoming installer code relies on its own params.\n\nChange-Id: I6408ffa3f14ae184e05786a48b59499ac25d8928\nReviewed-on: https://review.monogon.dev/c/monogon/+/406\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "57479bb5c00df6127e592716b6d644c3c13d75e9",
      "tree": "db782aca2c0ea03fac70ab9d0cc89d30abf838ea",
      "parents": [
        "070ec4eb5f6853185209494455a9a7b751cf32e1"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 26 14:01:06 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 02 12:35:45 2021 +0000"
      },
      "message": "m/c/metroctl/core: add frontend-independent metroctl support pkg\n\nThis adds metroctl/core, a package which contains parts of metroctl\nwhich do significant amounts of work beyond just providing a CLI for\nthem.\nThis package is intended to be used for integrating with functions\nprovided by metroctl, for example for using them in integration tests\nor writing other frontends providing functionality similar to metroctl\n(like a GUI or webapp).\n\nChange-Id: I8a56bfbefce8d18c6c9be3349e3c7a15a699d009\nReviewed-on: https://review.monogon.dev/c/monogon/+/411\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nVouch-Run-CI: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "6adf8840e846b15b7b34151c3432c886b540f420",
      "tree": "c10422b27c730cdc7bdfb56e493aac784de5904a",
      "parents": [
        "2f9f3876dd51d6a3031220d578a18c98270c74a8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 05 13:39:11 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 05 16:00:31 2021 +0000"
      },
      "message": "m/c/metroctl: add skeleton and dependencies\n\nThis adds the skeleton for the Metropolis control command line,\nmetroctl. It currently consists of a single root command doing nothing\nand the dependency updates for viper, the library providing command\nline parsing and completion support.\nActual functionality will be in subsequent CLs.\n\nChange-Id: I73d0e2956d9550902a80295928e94cb32bb12cfc\nReviewed-on: https://review.monogon.dev/c/monogon/+/337\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "5d40c67126d51ab1d78f44f51ec23cb75e9887fc",
      "tree": "9158b3c5c4a922c3e8759923c52a136ac206c229",
      "parents": [
        "296bde209e76f677dc0f38d003a27df83bcf0f5a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 28 15:06:37 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Sep 30 13:14:43 2021 +0000"
      },
      "message": "third_party/efistub: init\n\nAdds the EFI stub from systemd-boot, built using our new EFI toolchain.\nThis allows us to bundle kernels, command lines and other data into\nsingle EFI payloads and also sign them later.\n\nA rules to build these unified EFI payloads is coming later.\n\nChange-Id: I789e893ff88541f3dc9e7400ccd2565ae414e554\nReviewed-on: https://review.monogon.dev/c/monogon/+/335\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "296bde209e76f677dc0f38d003a27df83bcf0f5a",
      "tree": "c4afb8f42d8856bca4cafedbd022f9b61967022b",
      "parents": [
        "605efbe76a4317b50bc5499041784f303a9bdc37"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 28 15:04:40 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Sep 30 13:14:43 2021 +0000"
      },
      "message": "third_party/gnuefi: init\n\nAdds GNU EFI, not for the hacky trampolines but for the EFI headers\nand the standard library.\nThe \"canonical\" EDK II headers are extremely hard to use so almost\neveryone not inside the EDK II uses these.\n\nChange-Id: I1189bb4c0897e9fed0da3e6471092d7fb09646cb\nReviewed-on: https://review.monogon.dev/c/monogon/+/334\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "e306d780504ae3ddfad3eb852c7adc5ec9757d89",
      "tree": "3e8e2c7a21430777db525c9ed4717a2cab1c114a",
      "parents": [
        "d7d6e0284de38cbeeb185ca17c0853b4b2c10ee9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 01 13:01:06 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 06 09:05:40 2021 +0000"
      },
      "message": "m/n/time: add time service\n\nThis adds a bare-minimum time service based on chrony/NTP for keeping\nthe system clock and RTC on Metropolis nodes accurate.\n\nIt also introduces a UID/GID registry in the Metropolis node code\nas this is the first unprivileged service to run on the node itself.\n\nIt does not yet use a secure time source, this is tracked as #73.\n\nChange-Id: I873971e6d3825709bc8c696e227bece4cfbda93a\nReviewed-on: https://review.monogon.dev/c/monogon/+/319\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "68dcee136984e2e16b7682e0c0758c1df831a84c",
      "tree": "56e89baa3ba3a88b23fe7acf6929c357107509e4",
      "parents": [
        "40025ff859d65f1a50ae38b20841f9e0a908050b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Aug 31 13:12:07 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 01 10:33:47 2021 +0000"
      },
      "message": "third_party/chrony: support dropping privileges\n\nEnables the configuration flags to build with privdrop and\ncapabilities support and adds the libcap dependency.\n\nThis makes chrony capable of running without root privileges.\n\nChange-Id: Ia80dcde80cc7a72c47a1fd30ab4dfb21c902f737\nReviewed-on: https://review.monogon.dev/c/monogon/+/318\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "40025ff859d65f1a50ae38b20841f9e0a908050b",
      "tree": "4a81af38eea054baf3cada86a1a94a572096e683",
      "parents": [
        "031243f5a276726080a92410f7d3503e5870ed49"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Aug 31 13:06:02 2021 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 01 10:33:39 2021 +0000"
      },
      "message": "third_party/cap: initialize\n\nThis adds libcap which is needed for any chance at running chrony as non-root.\n\nUpstream contains a multi-stage codegen based on various external utilities\nwhich has been replaced by a clean Go script. Upstream is capable of also\nusing gperf to generate hash tables for faster lookups, but due to the\nextremely low amount of items (~40) and the additional complexity this is\nnot enabled.\n\nThis is not tested standalone, but it has been tested with chrony.\n\nChange-Id: I638f6aea98158cd2e2838531a5a6125e724838f5\nReviewed-on: https://review.monogon.dev/c/monogon/+/317\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "8ff4b7c6f20c9dda91c0eefc524e9bb6c3bff52d",
      "tree": "6e455a4fe977b47492cc8f1db58b1c5288225036",
      "parents": [
        "158e9a415a72bfacfdf9f46eb06b30486680299f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Aug 17 19:21:18 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Aug 20 09:02:55 2021 +0000"
      },
      "message": "third_party/chrony: initialize\n\nFirst pass at building chrony. Minimal functionality, notably skipped\nfeatures are:\n\n - PRIVDROP (requires libcap)\n - NTS (requires gnutls)\n\nDo we need anything else?\n\nTested with:\n\n    $ bazel build \u0027@chrony//:chrony\u0027 --crosstool_top\u003d//build/toolchain/musl-host-gcc:musl_host_cc_suite\n    $ file bazel-bin/external/chrony/chrony\n    bazel-bin/external/chrony/chrony: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped\n    $ bazel-bin/external/chrony/chrony -v\n    chronyd (chrony) version 4.1-monogon (NTP RTC SCFILTER ASYNCDNS)\n\nChange-Id: I56ac15a23e5741c0428580268cf40ae7744078d4\nReviewed-on: https://review.monogon.dev/c/monogon/+/293\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cbf1fa97307024b1f0c60c88e8ebf968a42bf980",
      "tree": "728f661bb449220c98556fdd0635714db750ac9c",
      "parents": [
        "e7bb94c0b2b2a7694c8985c5da80e814a51c4bdf"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jul 02 17:28:50 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jul 02 18:16:43 2021 +0000"
      },
      "message": "third_party/rust: initialize, add mdbook\n\nAs we want to use [mdbook](https://github.com/rust-lang/mdBook) to build\ndocumentation, we now have to pull it into the monorepo, alongside\nsupport for Rust in general.\n\nTesting plan: bazel run //third_party/rust:cargo_bin_mdbook. The CI\nshould also pick this up now.\n\nChange-Id: I6cf5d02d926bb0de61a5c882828accd35f3a1076\nReviewed-on: https://review.monogon.dev/c/monogon/+/201\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "dd7b2d22fb0e13547505bacd862b92bf56a35983",
      "tree": "ef18d20d2688a62bdf80147ec343e05789ac6cae",
      "parents": [
        "76003f807b24a22476b14bc308939fc62e1ad6a2"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jul 02 17:13:22 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jul 02 16:28:59 2021 +0000"
      },
      "message": "third_party/go: add package missing from dependency graph\n\nThis is a Windows-specific package being pulled in by github.com/spf13/cobra.\n\nWe don\u0027t need it, and we don\u0027t ever build it (it\u0027s behind a select()\ngate depending on the Windows platform), but its lack causes us to not\nbe able to perform Bazel queries against anything that stumbles upon\nthis select statement.\n\nNotably, things like ibazel don\u0027t work without the ability to query\ndependencies of a target. In theory, cquery could be used of query (and\ncquery would know that it\u0027s not running on a windows platform and not\nattempt to resolve the missing package). This might happen some day,\nbut:\n\n  1) cquery currently does not support the buildfiles() function, which\n     is needed by tools like ibazel to find not only source/data/target\n     dependencies for a taret, but also every BUILD/.bzl file that\n     influenced that target.\n\n     See: https://github.com/bazelbuild/bazel-watcher/issues/305#issuecomment-627312885\n\n  2) It\u0027s generally good practice to not have missing objects in our\n     dependency graph, I think. We will sooner or later start using this\n     data in CI and other automation, and it might be useful to make an\n     assumption, at some point, that we don\u0027t ever have a broken\n     target dependency graph.\n\nTesting plan: the following now works:\n\n   bazel query \u0027deps(set(//...))\u0027 --output\u003dxml\n\nChange-Id: Ic45e293b868b0aaa707f31384b4b24626ba23e29\nReviewed-on: https://review.monogon.dev/c/monogon/+/200\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "6ebdc418f3c4799c12368e34ea78dc9c9757fb54",
      "tree": "55dcecf2fda5b992c703dea87ef2cea495f6ffe0",
      "parents": [
        "67483ded56f26ced15581d7a87314d776cf5ecb0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri May 21 16:25:55 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri May 28 15:53:36 2021 +0000"
      },
      "message": "RFC: build/analysis: add commentwrap\n\nThis adds a Go analyzer which limits the length of comment lines to 80\ncharacters.\n\nRationale:\n\nMonogon currently follows gofmt style. Gofmt in itself is already quite\nopinionated, but one thing it explicitly does not check for is maximum\nline length.\n\nThis implements a limit for the maximum length of a comment line in Go\nsource within Monogon. It explicitly does not limit code line length, as\nthese can be handled much more easily by soft reflows.\n\nThe tool used, github.com/corverroos/commentwrap, will now be\nautomatically ran by our nogo pass, and prevent any line of commnets\nwithin Go to be longer than 80 characters, with the exception of:\n\n - cgo/generate directives\n - TODOs\n - indented comments (eg. sample code or long URLs)\n\nDownsides:\n\n1. We have to reformat the entire codebase. CR/67 does this.\n\n2. We end up with a bulk Git commit that will pollute Git history. A\n   followup CR attempts to resolve this by using Git\u0027s ignoreRevsFile\n   functionality.\n\n3. There\u0027s currently no integration with IntelliJ and no way to\n   automatically reformat code. If this RFC gets approved, a follow up\n   CR will be created that adds integration/automation to make this\n   easier to work against.\n\nOpen questions:\n\n1. Is 80 characters the right limit? I, personally, quite like it, but\n   am willing to compromise on line length.\n\nChange-Id: I063d64596ca5ef038a8426c6b9f806b65c18451e\nReviewed-on: https://review.monogon.dev/c/monogon/+/66\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "acae1ef4088e0e9579d7c35b2f7ce1de21c5ac22",
      "tree": "761455858b1e1491981d1d58dc093ca93402d541",
      "parents": [
        "7b73537d3fe08f5bbca741c7abbd95115ac2e6c2"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed May 19 11:31:40 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed May 19 11:28:32 2021 +0000"
      },
      "message": "*: replace nxt -\u003e monogon\n\nThese are hopefully the last leftovers from the nxt monorepo.\n\nThis change breaks existing build containers and IntelliJ setups, and\nunfortunately thrashes developer workstation Bazel caches.\n\nRunning `scripts/bin/destroy_container.sh \u0026\u0026\nscripts/bin/create_container.sh` and then following the IntelliJ setup\nguide in //README.md should be enough to fix everything.\n\nDid that locally and was able to set up a fully working IntelliJ\nIDE against this change.\n\nChange-Id: I090f4e4f2ea03998569a4ea3d1aa4cd4ec570f8a\nReviewed-on: https://review.monogon.dev/c/monogon/+/61\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "6feb746cfafeedb600ae12e22be910ad376b30a5",
      "tree": "6b8f67cc7f183cfaa3b533a20d069abd1e7f3b07",
      "parents": [
        "99d210d48afc2207ffb4064c58068faa9449a981"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue May 18 15:49:15 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue May 18 15:37:38 2021 +0000"
      },
      "message": "build/ci: add presubmit Jenkinsfile\n\nThis implements a basic presubmit Jenkinsfile which should be consumed\n(in this CR already) by CI machinery running against review.monogon.dev.\n\nThis presubmit exercises the same build targets as the old, internal\nPhabricator CI. The build executing agents are based off of the \u0027monogon\nbuilder\u0027 Docker image defined within build/Dockerfile. A follow up CR\nwill remove the leftover of Phabricator CI machinery and explicitly\ndocument how that agent image is built and used.\n\nWe also reformat a generated .bzl file to remove a spurious copyright\nheader. This appeases Gazelle/Fietsje checks.\n\nFinally, we add a .gitignore which ignores build files to make the\nGazelle/Fietsje dirty checkout detection work correctly. The internal\nversion of the metropolis repository had an equivalent .gitignore which\nwasn\u0027t carried over during the initial migration into the Monogon\nmonorepo.\n\nChange-Id: Ib88b8b50dbc6fcd034757558697e6ae2334235b1\nReviewed-on: https://review.monogon.dev/c/monogon/+/26\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "f055a7fce0263a30fd2c853b5ed002a765fc23e8",
      "tree": "de2dc0daeebfc7ecce2b1987ffb13eb4f2475088",
      "parents": [
        "2666513457e8d7a282560a7090f35439ab9695ce"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Apr 13 16:22:33 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Apr 14 14:35:09 2021 +0200"
      },
      "message": "third_party/linux: build using unhermetic rule\n\nThis replaces ad-hoc genrules (for the node Linux image and the ktest\nimage) with a real Bazel rule with an attached transition which ensures\nwe end up with the same-ish configurations for all builds of an image.\n\nThis reduces rebuilds of the ktest Linux kernel, from three down to one.\n\nBefore: https://drive.google.com/file/d/1c6VmY2bqx9Pgs61TOUfgMi8Sn0WQeobu/view\n\nAfter: https://drive.google.com/file/d/13eO1rLhoBCMMRUKrmJz8QnhdAR3ctIGb/view\n\nWe also drive-by fix the Kubernetes CTS test suite to run on a single-node\nCluster (instead of failing early due to that being currently reworked).\n\nTest Plan: Build system refactor, following existing test.\n\nX-Origin-Diff: phab/D761\nGitOrigin-RevId: b5545ac5fd402fbf0340d941a90b9ea6ea0b6d43\n"
    },
    {
      "commit": "2666513457e8d7a282560a7090f35439ab9695ce",
      "tree": "328d8f62ddb665b6cd057272f7cae2713aa247ad",
      "parents": [
        "a105db57640d6abf6de368ec0c33a3a5b4f93893"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Apr 13 16:55:59 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Apr 13 19:51:33 2021 +0200"
      },
      "message": "Fix TCP BBR setting\n\nI previously set the TCP queuing discipline to BBR without actually compiling in BBR.\nSee T943. This actually builds in BBR and sets it as default in the kernel config, thus removing\nthe need to manually set it in userspace.\n\nTest Plan: CI\n\nBug: T943\n\nX-Origin-Diff: phab/D760\nGitOrigin-RevId: 779a709e4298ec59bfdcf462fe2f3563952204b6\n"
    },
    {
      "commit": "09c275bc489bc1de406be9a2e8f158eaa87b7c61",
      "tree": "31c62a93e37f6052aa99e2addacef6c060d75e85",
      "parents": [
        "37050126ef89ec30cc677c272471debe55ec0d69"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Mar 30 12:47:09 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Apr 13 11:04:05 2021 +0200"
      },
      "message": "Add ftrace support to DebugService\n\nThis allows us to do ad-hoc kernel-level tracing on a running Metropolis node.\nUseful for tracking down complex bugs.\n\nExample: `bazel run //metropolis/cli/dbg -- trace -function_graph_filter blkdev_* function_graph`\n\nTest Plan: Debug utility, manually tested\n\nX-Origin-Diff: phab/D748\nGitOrigin-RevId: 924eb795250412a73eb30c0eef4a8c1cc726e5fd\n"
    },
    {
      "commit": "37050126ef89ec30cc677c272471debe55ec0d69",
      "tree": "c64a64a622ec1c3e1e72fc12a6d4252c0e803cc1",
      "parents": [
        "2999427c182463840a339cf0e82885d8a3b6e79f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Mar 30 14:00:27 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Apr 13 11:04:01 2021 +0200"
      },
      "message": "Implement Block PVCs in our storage backend\n\nThis implements full support for Block PVCs in our Kubernetes storage backend.\nThe block PVCs are backed by files made available to the pods using loop devices and\nhave read-only and online expansion support.\n\nThis also requires a Kubernetes patch because they call losetup if block PVCs are used\nwith CSI to establish a form of lock on the backing block device. This lock is not\nexclusive and does absolutely nothing for our use case and could get very expensive\non dense machines so I removed it.\n\nTest Plan: Comes with E2E tests\n\nX-Origin-Diff: phab/D746\nGitOrigin-RevId: 430d3f445286c0d3498b2153df333a19f3fcab89\n"
    },
    {
      "commit": "9956e72c6c0b4f6436dc9493bc213965ee0cc191",
      "tree": "7842ac67432e3a187dda6a2dcb46d11088934159",
      "parents": [
        "dca59d924dac4345099e5acd99405b5451d29cdb"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Mar 24 18:48:55 2021 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Apr 13 11:03:53 2021 +0200"
      },
      "message": "Add Loop Device package\n\nThis adds Loop device support in our Linux kernel and adds a Go package for working with them.\nIt also drive-by adds a pre-mounted tmpfs to ktest as that is quite useful in a lot of situations.\n\nTest Plan: Comes with ktests.\n\nX-Origin-Diff: phab/D745\nGitOrigin-RevId: fa06bcdddc033efb136f56da3b4a91159273bf88\n"
    },
    {
      "commit": "339f97dc7ae48876f77b1195a8840f9369fb5d25",
      "tree": "126cb2059727f7bf4fe50adff74aeeb93e8c618b",
      "parents": [
        "fa99799583dfc3b485012dd0575287643f568b72"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Mar 31 22:16:52 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Thu Apr 01 18:58:27 2021 +0200"
      },
      "message": "third_party/go: add k8s.io/code-generator\n\nTest Plan: New dep. Used further down change stack.\n\nX-Origin-Diff: phab/D749\nGitOrigin-RevId: 4cd0cab36dbd2aa17f944ad6fb3bf90af638ebef\n"
    },
    {
      "commit": "fa99799583dfc3b485012dd0575287643f568b72",
      "tree": "8bde1e2205ef987181a1bbbb1c8f33fbd29e402d",
      "parents": [
        "55f01c3c338166f2ca7e67ae5d6c3ae6b7ac75c4"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Mar 23 17:29:42 2021 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Thu Apr 01 18:58:25 2021 +0200"
      },
      "message": "third_party/qemu: better explain tb_invalidate_phys_range patch\n\nAt a glance, this change looks somewhat scary, and might be interpreted\nas an attempt to backdoor qemu.\n\nThis better explains what\u0027s going on, and adds an extra always-firing\nassert to prove that there\u0027s nothing up our sleeves, and that this\nbranch should never be taken in the first place.\n\nTest Plan: Refactor, should be covered by tests.\n\nX-Origin-Diff: phab/D744\nGitOrigin-RevId: c86638cf9e90041d2ad19d26715c7d4dd5a43e98\n"
    },
    {
      "commit": "647cbb28101e628206562fa5c60e1ed8e5307e8a",
      "tree": "b4796da9b3f4c25d9fdc4ebc4137cdaa513b38fc",
      "parents": [
        "bb95ebd12f8777b1b653653bcb54a081b6c54771"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Mar 16 15:09:56 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Mar 16 15:09:56 2021 +0100"
      },
      "message": "Make QEMU build under musl\n\nQEMU and its glib dependency use a few very bespoke glibc extensions which\nmusl doesn\u0027t implement. This disables their use to make this build on both glibc and musl.\n\nTest Plan: `bazel build --crosstool_top\u003d//build/toolchain/musl-host-gcc:musl_host_cc_suite @qemu//:qemu-x86_64-softmmu` works\n\nX-Origin-Diff: phab/D738\nGitOrigin-RevId: 606f750be4259ca8fcc19f4c0cc0ddd54dff2090\n"
    },
    {
      "commit": "b60d9cb51462a82a89f9c16f5ca6b4541de6d450",
      "tree": "6d9d0debaa652988ecbae503c56748f9a17ed481",
      "parents": [
        "c4a3aab4c8d14d05b7e2448ab11897b6f9093046"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Feb 18 17:34:00 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Feb 18 17:34:00 2021 +0100"
      },
      "message": "Add C/C++ header rewriter\n\nThis adds a C/C++ header rewriter utility. See the top comment on a quick description of how it works.\nNo workspace rule is provided yet, that will come later.\n\nTest Plan: This is a build utility, doesn\u0027t really matter.\n\nX-Origin-Diff: phab/D705\nGitOrigin-RevId: 4bf274d8301f3a38a1ec7512bf310be9815fb647\n"
    },
    {
      "commit": "4e090357c4f1f3bae53a5f2feaf20ea5e1bbbe61",
      "tree": "335ec273335722befdeca623b8f3f787a2cd6571",
      "parents": [
        "0ed2f96a3a86aff2c9ce36289aa5d58a75f4d59b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Mar 17 17:44:41 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Mar 17 17:44:41 2021 +0100"
      },
      "message": "Add KVM device plugin\n\nThis adds a KVM device plugin for Kubernetes. This plugin allows for unprivileged access and granular\ncontrol of KVM access.\n\nTest Plan: Tested in subsequent revision\n\nX-Origin-Diff: phab/D739\nGitOrigin-RevId: 5cd738a47d24e7bfdc29bbd1a31537209e1ebf46\n"
    },
    {
      "commit": "0de189355c6afad6f677029d90fa40dee824141b",
      "tree": "3e926e04415d4310b120cc641e4cd7893c5a6b61",
      "parents": [
        "735119f8efcd1ce8689703fe455e39f2146b0b3e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Mar 11 00:36:48 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Mar 11 00:36:48 2021 +0100"
      },
      "message": "Add QEMU into the monorepo\n\nThis adds QEMU and all its dependencies into the monorepo. Enough features are enabled that\nthis QEMU should be both usable for running tests for Metropolis as well as running customer VMs in\ncontainers. Thus we can also get rid of the QEMU ambient dependency.\n\nAll dependencies have their includes fully rewritten as to be reusable without a huge effort. QEMU itself\nrelies on `includes` attributes since the patch would otherwise be enormous and it is a binary and thus\nany include path madness ends there.\n\nOverall though this is quite nice, the final QEMU build with full optimization is \u003c10MiB and has no further\nambient dependencies. It also has full io_uring support, which works very well with our 5.10 kernel.\nTPM support is also included.\n\nThis is not used anywhere, replacing the ambient dependency and shipping a container will be in an upcoming\nrevision.\n\nTest Plan:\nManually tested to run a Ubuntu cloud image with io_uring and virtio. Automated tests will follow as\npart of its roles in this repo.\n\nX-Origin-Diff: phab/D712\nGitOrigin-RevId: 9c2607d75c875b1d65346e3cdac1a5e08467ea33\n"
    },
    {
      "commit": "735119f8efcd1ce8689703fe455e39f2146b0b3e",
      "tree": "40fd14c0a07c12974d01d67997349917b40f5d69",
      "parents": [
        "ddd6caff9edac56dad727a79eb5b0faf4dbd6cb9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Mar 11 00:30:01 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Mar 11 00:30:01 2021 +0100"
      },
      "message": "Host toolchain minimal features\n\nTest Plan: Tested with QEMU and the existing codebase.\n\nX-Origin-Diff: phab/D713\nGitOrigin-RevId: ecfc94ab2b4880447c628fc2e41b5ed6234f90d8\n"
    },
    {
      "commit": "ddd6caff9edac56dad727a79eb5b0faf4dbd6cb9",
      "tree": "120710eb4a9acf0c3ad1086d9f6f6f3c850a0d70",
      "parents": [
        "bcae658f9530e95cde2ac931beacae71c9fb240e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Mar 04 17:16:04 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Mar 04 17:16:04 2021 +0100"
      },
      "message": "Build mkfs.xfs using rules_cc\n\nThis drops the old big genrule for mkfs.xfs and replaces it with a nice rules_cc build system\nwith the help of bazel_cc_fix generated patches and our musl-based toolchain.\nWhile we\u0027re at it I bumped the versions of all related dependencies to their latest stable release.\nThis also means pulling in ini.h which is a dependency of the new xfstools version.\n\nInstructions to regenerate the patches are included in the spec files.\n\nToolchain selection is done by the existing transition in our rootfs rule so we automatically get a musl-built\nstatic binary when building for the rootfs.\n\nTest Plan: Tested with E2E tests, should fail fairly catastrophically if something were wrong.\n\nX-Origin-Diff: phab/D708\nGitOrigin-RevId: 648a05cdd08cfa84a8a9f4c057c52446e7005631\n"
    },
    {
      "commit": "5999e92b2da34cbbd50391327ec01081a91866ee",
      "tree": "164e447b7d17e89f2b1046c3da51af141deaa08b",
      "parents": [
        "3a99c590543394ceb5260282ef8e924b44e8eef8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jan 27 18:53:54 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jan 27 18:53:54 2021 +0100"
      },
      "message": "Bump Linux kernel to 5.10\n\nThis bumps our Linux kernel to 5.10. There\u0027s one minor fix in fsinfo accounting for the fact that strings are\nnow null-terminated. While debugging this I also drive-by fixed a minor typing issue in quotactl.go.\n\nThis drops support for the old initramfs loading method (which was the driving force for the EROFS changes)\nas refactors in the kernel made the patch we carried until now non-viable. Nothing uses it anymore, everything is\neither a microvm-style machine which doesn\u0027t use EFI and thus doesn\u0027t suffer from the issue or uses EROFS.\n\nTest Plan: No new functionality, should be covered by E2E tests.\n\nX-Origin-Diff: phab/D697\nGitOrigin-RevId: d8e40954abb66cb082eecbca372b94a7e40b84a8\n"
    },
    {
      "commit": "3a99c590543394ceb5260282ef8e924b44e8eef8",
      "tree": "e1b727a0c12b387e1bc12d71826405b8b588fa40",
      "parents": [
        "6b13bf1a98c4a612d13ae939e68802e77fb45474"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jan 26 19:57:21 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jan 26 19:57:21 2021 +0100"
      },
      "message": "Switch Metropolis to EROFS-based root filesystem\n\nThis gets rid of the old large initramfs and switches to an EROFS-based root\nfilesystem. It also drops the copy \u0026 remount compatibility code. As this filesystem is\nproperly read-only and not just ephemeral, this also brings various changes to the code\nto make systems compatible with that.\n\nTest Plan: Covered by E2E tests, also manually smoke-tested.\n\nX-Origin-Diff: phab/D696\nGitOrigin-RevId: 037f2b8253e7cff8435cc79771fad05f53670ff0\n"
    },
    {
      "commit": "2073ce34e57b0be3cedd39b8934869abb6f73582",
      "tree": "8c7f86cecb41848e0614da742935cc656be02239",
      "parents": [
        "7b82227c87f477e9d986d648b8ad63f4268dde3b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Feb 03 18:52:59 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Feb 03 18:52:59 2021 +0100"
      },
      "message": "Bump Bazel to 4.0.0\n\nThis bumps Bazel to 4.0.0 because we want to use ProtoModule. The update was relatively painless,\nno incompat-flags needed to be switched back off. `bazel_gazelle` is pinned on a master version\nsince they haven\u0027t released a Bazel 4-comaptible version yet and I have one patch against Kubernetes\u0027s\ninfra repo which is going upstream.\n\nTest Plan: Build system change, should be covered by existing tests\n\nX-Origin-Diff: phab/D701\nGitOrigin-RevId: 24f675e6ba33efb9f46191eccca95088d7d2d1f1\n"
    },
    {
      "commit": "7b82227c87f477e9d986d648b8ad63f4268dde3b",
      "tree": "bd4f8afb09a40f4217709f956c2344c67f95e660",
      "parents": [
        "378a4455aedda838f60c546e55199092f24952ed"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Feb 03 17:03:41 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Feb 03 17:03:41 2021 +0100"
      },
      "message": "Drop legacy kubelet log path\n\nIt looks like the Kubernetes update broke E2E tests on the EROFS stack because of some change\nto how the legacy log dir is handled. Kubelet currently just crashes because it can\u0027t mkdir\n/var/log/containers. This directory is apparently only used by fluentd for log collection in upstream\nE2E tests and with dockershim, both of which we don\u0027t care about. So let\u0027s just nuke it.\n\nTest Plan: Fixes things on top of the EROFS stack\n\nX-Origin-Diff: phab/D700\nGitOrigin-RevId: 45b7f76a61b7234845ab55fcfbc37a66f69fe065\n"
    },
    {
      "commit": "74e8e5c35fea1ec9ce13c8a2d16100bab45d42d9",
      "tree": "3ec734c4b86fed54a5039623c789dd4b805b3b6e",
      "parents": [
        "19eb0006edc79edc53fb53ea0eed67e93f4c8eba"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jan 26 14:00:50 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jan 26 14:00:50 2021 +0100"
      },
      "message": "Make containerd work with read-only root\n\nThis makes containerd work with a read-only root. There were a few config mistakes on our side which\ncaused it to write to the rootfs (mostly leftovers from the switch to /ephemeral) and a semi-hardcoded path\nin /var/lib/cni from containernetworking/cni. This is technically configurable, but it would require patching\nthree different repos (see diff message) and getting all of them to agree to take the change and wait for\nit to propagate to all repos (containerd is known to be slow to release stuff). So let\u0027s just hack in\nthis one-line diff for the time being.\n\nTest Plan: Should be covered by existing tests\n\nX-Origin-Diff: phab/D694\nGitOrigin-RevId: 0e8f5dbfb216539c16e64130af9fe1023722ae1b\n"
    },
    {
      "commit": "19eb0006edc79edc53fb53ea0eed67e93f4c8eba",
      "tree": "704a52ab75bde43409d80246cf23bce6b6be3467",
      "parents": [
        "842536b10bd1b11e62317940feef215442a8ecb4"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Jan 21 14:25:25 2021 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Jan 21 14:25:25 2021 +0100"
      },
      "message": "third_party: bump Kubernetes to 1.19.7\n\nThis... didn\u0027t exactly go well. Turns out a change between rc.1 and rc.2\nbroke our runc runtime by enabling seccomp by default for pod sandboxes.\n\nWe work around this by reverting this change, and filing T916 to solve\nthis soon.\n\nThis fixes T910 and T909.\n\nTest Plan: kube bump, CI should run e2e, didn\u0027t run CTS.\n\nBug: T910, T909\n\nX-Origin-Diff: phab/D691\nGitOrigin-RevId: 78afca77c294895859e0af9150128d82677d875b\n"
    },
    {
      "commit": "842536b10bd1b11e62317940feef215442a8ecb4",
      "tree": "264906157b5cd51ef39e952326b85da48b5bbb5b",
      "parents": [
        "f12bedfa4cd144c3abc4deac58405067d55f9c87"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jan 26 13:54:57 2021 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jan 26 13:54:57 2021 +0100"
      },
      "message": "Make Kubernetes work with read-only root\n\nThis makes Kubernetes work with a read-only root. There\u0027s two places where they hardcode\npaths: One is the DeviceManager socket path (/var/lib/kubelet/device-plugins/kubelet.sock), that one\nis easy to fix because KubeletRootDir is available one scope above. The other one is the pod logs dir\nwhich is too far removed from the main Kubelet config, so I just changed their hardcoded path to ours.\nThe first patch should be upstreamable, for the second one we\u0027d need to take a different approach to upstream.\n\nTest Plan: Should be covered by existing E2E tests.\n\nX-Origin-Diff: phab/D693\nGitOrigin-RevId: 4606ab228a24bd4a0274f8e3156123710a59f2aa\n"
    },
    {
      "commit": "f12bedfa4cd144c3abc4deac58405067d55f9c87",
      "tree": "ddbc408e424a0ea8e446bcf0022ee16278202d63",
      "parents": [
        "c3ad846e0eaf4cf008130a643ff247aa27531e17"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jan 15 16:58:50 2021 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jan 15 16:58:50 2021 +0100"
      },
      "message": "*: bump up Go dependencies\n\nThis started off as \u0027let\u0027s bump gVisor\u0027. However, pulling that thread\nresulted in quite a few things that also required bumping for the build\nto actually work. Here I come back from a day in the Bazel mines,\nbearing fruits of my labor.\n\nNotable changes:\n\n - bump up gVisor\n - bump up containerd\n - bump up Bazel\n - bump up rules_go, rules_docker, Gazelle\n - use google.golang.org/protobuf (the \u0027new\u0027 go proto package)\n - bump up gRPC (but not too much, as go-etcd is still straggling)\n\nNotable effects:\n\n - new gVisor supports TTY allocation (kubectl run -it\n   --image\u003dubuntu:20.04 ubuntu bash now works!)\n\nNotable notes:\n\n - gVisor shim has new been rolled into the main gVisor package and is\n   slightly easier to build (we can get rid of a bunch of patches).\n - Opencontainers\u0027 runtime-specs now follow containerd instead of gVisor\n - gVisor had to be taught to use the slightly newer runtime-specs via a\n   new patch.\n - go_rule() in Starlark is now deprecated, and we had to change our\n   Starlark rule definitions to use rule() instead. We also had to patch\n   gVisor to do that (as there hasn\u0027t yet been a release that rolled\n   this up).\n - Gazelle now supports different naming schemes for generated Go\n   targets - either the old //foo/bar:go_default_library scheme, or a\n   new and nicer //foo/bar:bar scheme. We currently force the usage of\n   the old scheme, as switching over is probably not going to be easy\n   (we use a lot of external Bazel files, and we have to wait for their\n   compatibility with the new scheme first).\n - New Bazel/rules_go sets a TMPDIR long enough to generate paths (via\n   ioutil.TempDir) to which sockets cannot be bound (108-byte limit).\n - The new protobuf API is incompatible with gogoproto. containerd/ttrpc\n   uses gogoproto, but we are smart enough to pull in the old protobuf\n   library as gogoproto\u0027s transitive dep. However, ttrpc also wants to\n   use some proto-generated grpc bits, and that doesn\u0027t work. We have to\n   pull in a ttrpc fork from a PR that hasn\u0027t yet been merged that fixes\n   this issue.\n\nTest Plan: Refactor only, should be covered by tests.\n\nX-Origin-Diff: phab/D689\nGitOrigin-RevId: 1188c0605d25e7f40307fab5fd96e7019f3a9171\n"
    },
    {
      "commit": "31370b07f0df2dc2765d812d4ce00a6b35185b16",
      "tree": "15563902eee9591083284441c8505b084b275d0a",
      "parents": [
        "313816f41244d7520eb2b6f8c231328ee5b7a4ef"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Jan 07 16:31:14 2021 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Jan 07 16:31:14 2021 +0100"
      },
      "message": "*: git.monogon.dev -\u003e source.monogon.dev\n\nThis implements T882, setting our (virtual) GOPATH to source.monogon.dev\nfor this repository.\n\nTest Plan: Refactor, CI only.\n\nX-Origin-Diff: phab/D686\nGitOrigin-RevId: c5e2309089948ffc3a98e68e2e0e1cbb157d3a36\n"
    },
    {
      "commit": "d9ed6560d5db2783252945e1dd3c2e4f908c019e",
      "tree": "7b90c06406fa071f1a7927c25d3526339a509758",
      "parents": [
        "0be9be88224dd87eedb10436b11615fa59862271"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Jan 07 16:06:44 2021 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Jan 07 16:06:44 2021 +0100"
      },
      "message": "build: remove cilium\n\nThis was used back when we were considering CIlium for our networking\nlayer. However, we abandoned that idea, and as such these are all\nunnecessary.\n\nTest Plan: Refactor, CI only.\n\nX-Origin-Diff: phab/D685\nGitOrigin-RevId: 30f296d7626d64cc1a07a73e4e7bbd18d9e9d933\n"
    },
    {
      "commit": "520c934288d32979ed54b7ffde74428e4583509b",
      "tree": "47fe9a4317e2a13789f4a8f855490ef98edc2065",
      "parents": [
        "6df7c4f6b2c9a896357cb6c4e236d588f4e23277"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Dec 22 10:58:41 2020 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Dec 22 10:58:41 2020 +0100"
      },
      "message": "sqlboiler: remove\n\nWe do not use any SQL anymore in this repository, so we do not need sqlboiler.\n\nTest Plan: Refactor, covered by CI.\n\nX-Origin-Diff: phab/D677\nGitOrigin-RevId: 1ed24f3d57774be14e6611582f691e73b1106ea9\n"
    },
    {
      "commit": "662b5b3119b0798980b887d1ef9fa1b5632aa7fb",
      "tree": "3e1fc4ab033530e6d579112ba500d2c6edb43368",
      "parents": [
        "39f2f691726dc6e0a291aa8609085b835a313dad"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Dec 21 13:49:00 2020 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Dec 21 13:49:00 2020 +0100"
      },
      "message": "smalltown -\u003e metropolis\n\nThis pass removes all mentions of Smalltown, both from code and comments,\nand replaces them with appropriate new terminology.\n\nTest Plan: Refactor, covered by CI.\n\nX-Origin-Diff: phab/D674\nGitOrigin-RevId: 04a94d44ef07d46f7821530da5614daefe16d7ea\n"
    },
    {
      "commit": "26d41999e0c71813648c16ad84bba810c3b9d593",
      "tree": "13b60089a6d8e40aab345820498e9e703ad41f7a",
      "parents": [
        "023093c104fbddc568e624949ec68a5722dcd180"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Dec 15 19:27:58 2020 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Dec 15 19:27:58 2020 +0100"
      },
      "message": "intellij: use Bazel-built goimports\n\nTest Plan: Tested the watcher, it fixed my code\n\nX-Origin-Diff: phab/D663\nGitOrigin-RevId: 0e06b3a4043e1671d8bb553312c8894d7c916933\n"
    },
    {
      "commit": "9601f26770e2aed2c8c37a490e936ce300b1a01d",
      "tree": "4d378d512ac02685b7eccbd8ef41ace024cef2d9",
      "parents": [
        "ede8a80d816f8c102ed4de13ba25512024582a75"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Dec 09 19:44:41 2020 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Dec 09 19:44:41 2020 +0100"
      },
      "message": "Implement DHCPv4 default callbacks\n\nThis implements common callbacks to manage interface IPs and\nroutes in the kernel from DHCPv4.\n\nTest Plan: New integration tests against our kernel via ktest.\n\nX-Origin-Diff: phab/D657\nGitOrigin-RevId: 3c39dddbd0e4151e6e902de150243296e6e459b4\n"
    },
    {
      "commit": "56a7ae643059875a074ab6e3ca92754520483edd",
      "tree": "b949c496629eea44dfb0407fc90bef5bcb9bf894",
      "parents": [
        "21b039bcd224dc0ba0050e7281cef8d73071d0a4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Oct 29 11:03:30 2020 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu Oct 29 11:03:30 2020 +0100"
      },
      "message": "Added DHCPv4 Client\n\nThis adds a bare-bones DHCPv4 client. Currently leases are handled by a single callback which\ncan then be used to implement option observers and other ways to deal with them.\n\nTest Plan: Some tests already here, more coming.\n\nX-Origin-Diff: phab/D645\nGitOrigin-RevId: 76fae7080cdd8ba59cf77368179cae0bc9c9c824\n"
    },
    {
      "commit": "5e4fc2d107722f748f90cad06601c1b20e0934fc",
      "tree": "3f29a0772e9182a7e7cc0073b61b00f58013e071",
      "parents": [
        "fa5c2fccc528b40f216687e02f0c1cd004e013d6"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Sep 22 18:35:15 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Sep 22 18:35:15 2020 +0200"
      },
      "message": "Add support for runc container runtime\n\nAdds the runc container runtime, its containerd shim, required Linux features and plumbs it into\nKubernetes using RuntimeClasses and containerd runtime selection. Also adds support for building C-based\ntargets as part of our initramfs.\n\nThe Bazel portion is a bit verbose but since label dicts cannot be reasonably concatenated and closures\nare prohibited in Starlark I see no better way.\n\nFor this to be usable for most images new Linux binfmt options have been added. The hashbang binfmt\nshouldn\u0027t have any negative impact, but binfmt_misc has a registry which is only namespaced if used\nwith user namespaces, which are currently not used and thus might represent an exploit vector. This\nis tracked in T864.\n\nTest Plan: New E2E tests covering this feature have been added.\n\nX-Origin-Diff: phab/D625\nGitOrigin-RevId: 1e7e27166135437b2965eca4dc238f3255c9b1ba\n"
    },
    {
      "commit": "fa5c2fccc528b40f216687e02f0c1cd004e013d6",
      "tree": "f39c24f681176b7bbf36fe6af304c6902124f552",
      "parents": [
        "4efaa019244db96128941965aa72c0e1371b0d2d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon Sep 28 13:32:12 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon Sep 28 13:32:12 2020 +0200"
      },
      "message": "Use CoreDNS for everything and make directives dynamic\n\nThis moves CoreDNS from Kubernetes to the network tree and uses\nit for OS-side resolution too. For this to work together with Kubernetes it now\ncontains a dynamic directive system which allows various parts of the OS\nto register and unregister directives at runtime. This system is used to hook\nKubernetes and DHCP-supplied DNS servers into the configuration.\n\nThis also enables the hosts plugin to resolve the local hostname from within\nCoreDNS to avoid querying external DNS servers for that (T773).\n\nTest Plan:\nCTS covers K8s-related tests, external resolution manually tested from\na container.\n\nBug: T860, T773\n\nX-Origin-Diff: phab/D628\nGitOrigin-RevId: f1729237f3d17d8801506f4d299b90e7dce0893a\n"
    },
    {
      "commit": "9e861a87775191faf1a027f603a0074446cd1319",
      "tree": "01fb624b542762594bad6e88d67c947263837769",
      "parents": [
        "5faa2fc7fb6266486183fdc1455e711079d33e37"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Sep 16 13:46:41 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Sep 16 13:46:41 2020 +0200"
      },
      "message": "//build/toolchain/musl-host-gcc: implement\n\nThis is a cc_toolchain which runs on x86 systems with Linux/gcc and\ntargets Smalltown via static musl builds.\n\nIt is currently unused, but can be tested by trying to build any\ncc_binary with\n--crosstool_top\u003d//build/toolchain/musl-host-gcc:musl_host_cc_suite .\n\nTest Plan: This has been tested manually by running it against a simple cc_binary. Another revision on top of this will attempt to build mkfs.xfs with it.\n\nX-Origin-Diff: phab/D623\nGitOrigin-RevId: ebdf51ee76d9d5a7fd94725c66ef53783f787df7\n"
    },
    {
      "commit": "a50e845df333a4d7531793e3fed61ca8411384f5",
      "tree": "d27ebc111fce076181d9ddda5c06882334f91823",
      "parents": [
        "ed0503cbe3c2d85d138f2604b87d73417be6c940"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Sep 09 17:09:27 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Sep 09 17:09:27 2020 +0200"
      },
      "message": "Introduce TPM event log infrastructure\n\nThis adds support for reading the local TPM event log and for parsing the\nresulting blob. Reading the log is implemented as part of our TPM library, but\nfor reading and processing the event log binary structure we rely on Google\u0027s\ngo-attestation. Since they don\u0027t separate their event log processing from the rest\nof the package, I imported the relevant files here directly.\n\nSince TPM event logs are really terrible (see included workarounds and\nhttps://github.com/google/go-attestation/blob/master/docs/event-log-disclosure.md)\nit\u0027s probably a bad idea to use them for anything where we can avoid it.\nSo this will likely only be used for EFI boot / secure boot attestation and\neverything we measure will be part of our TPM library with a much less insane format.\n\nTest Plan:\nManually smoke-tested using a custom fixture on a Ryzen 3000 fTPM.\nWe cannot really test this until we have a way of generating and loading\nsecure boot keys since an empty secure boot setup generates no events.\n\nX-Origin-Diff: phab/D622\nGitOrigin-RevId: e730a3ea69c4055e411833c80530f630d77788e4\n"
    },
    {
      "commit": "ed0503cbe3c2d85d138f2604b87d73417be6c940",
      "tree": "66fce41e479e22ba8a735fbcbb62d768c0307bd3",
      "parents": [
        "b9431c95082a3de6c87f96b700e69b72e4d87fdc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:21:25 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:21:25 2020 +0200"
      },
      "message": "Add Kubernetes CTS\n\nThis adds patches and build specifications for the Kubernetes Conformance Test Suite. This involves\ngating various cloud-specific tests behind the providerless flag (otherwise we\u0027d gain a ton of additional dependencies)\nand an additional 60MiB in test binary size.\nSince the CTS for weird reasons requires kubectl to be available in the path we first build a kubectl go_image and then\nstack the CTS on top of it. The output bundle is then preseeded for use.\n\nTest Plan: `bazel run //core/tests/e2e/k8s_cts`\n\nBug: T836\n\nX-Origin-Diff: phab/D615\nGitOrigin-RevId: 7d2cd780a3ffb63b217591c5854b4aec4031d83d\n"
    },
    {
      "commit": "b29e0b07048697a8e8b4b33adb98dd6d8e79eddf",
      "tree": "b0b9660a1a783aae391bafd1a9fbac56bcad5498",
      "parents": [
        "efb028fdc542dd2f19bf74a3be98506e7a15c7b7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:26:12 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:26:12 2020 +0200"
      },
      "message": "Add CoreDNS build\n\nThis adds CoreDNS and all relevant dependencies. Unused plugins are patched out\nto prevent excessive dependencies and binary size.\n\nTest Plan: `bazel build @com_github_coredns_coredns//:coredns`\n\nX-Origin-Diff: phab/D614\nGitOrigin-RevId: a897bc0e9f908218fd2f414d7e3b902c14e0a374\n"
    },
    {
      "commit": "efb028fdc542dd2f19bf74a3be98506e7a15c7b7",
      "tree": "778c7ccea019f423ca9f660125fe8898014aa9d8",
      "parents": [
        "8b0431a9d22b1f2bb8ab3e6eb66ffda5ca4a2ea9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:04:49 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:04:49 2020 +0200"
      },
      "message": "Allow applying patches before BUILD file generation\n\nThis adds support for patching Go dependencies before BUILD file generation and\nalso plumbs that support into fietsje. No actual prepatching is done in this revision.\n\nTest Plan: This has been used successfully in code built on top of it.\n\nX-Origin-Diff: phab/D612\nGitOrigin-RevId: 7013e5f98feb57ac64ff3dc79d1a9bb94e4152a8\n"
    },
    {
      "commit": "b682ba55d4a51babad2beebb470b0fef0e6067ca",
      "tree": "d94c2bb98f3a47896558d9cd4d2cc0271a4558c7",
      "parents": [
        "f85748717f32f0a74816de01b1e5f2e0104342c5"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jul 08 14:51:36 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jul 08 14:51:36 2020 +0200"
      },
      "message": "Add service proxy\n\nThis adds a service proxy based on nfproxy and changes to the service IP allocation to make it work.\nAlso adds support for masquerading outbound traffic for outbound network connectivity.\n\nTest Plan:\nCurrently manually tested by creating an alpine pod and running \u0027apk add curl \u0026\u0026 curl -k https://192.168.188.1:443/\u0027.\nWill be covered later by CTS.\n\nBug: T810\n\nX-Origin-Diff: phab/D580\nGitOrigin-RevId: cace863fd8c2f045560f8abf84c40cc77bc275d4\n"
    },
    {
      "commit": "f042e6f95bb7dc771bf79f309dbdf0b34da933da",
      "tree": "f18c60fb92202ce2d5ec7041c85579865a81509d",
      "parents": [
        "b876fc31f12628562a51c70668b318b9fc50478b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:46:09 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:46:09 2020 +0200"
      },
      "message": "Add Wireguard-based K8s pod networking\n\nThis adds a pod networking runnable based on Wireguard which watches all nodes\nand adds their K8s IPAM allocations as routes into the kernel \u0026 WireGuard. It only depends\non K8s and only performs direct routing.\n\nTest Plan: Manually tested by spinning up a two-node cluster and running two Alpine pods pinging eachother. Can be covered by E2E tests once we can do image preseeding for the test infra (T793).\n\nBug: T487\n\nX-Origin-Diff: phab/D573\nGitOrigin-RevId: ba3fc36f421fd75002f6cf8bea25ed6f1eb457b0\n"
    },
    {
      "commit": "b876fc31f12628562a51c70668b318b9fc50478b",
      "tree": "b7f4001c6ab56712dd26473b216e74222b1903f0",
      "parents": [
        "78fd97294dbc8bbf5ef1a490b2d7b7ad96fddcae"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 14 13:54:01 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 14 13:54:01 2020 +0200"
      },
      "message": "Update containerd to 1.4.0-beta.2 and K8s to 1.19.0-rc.0\n\nThis unbreaks bbolt (as part of containerd) on 1.14+ (see https://github.com/etcd-io/bbolt/pull/201 and\nhttps://github.com/etcd-io/bbolt/pull/220), pulls in my patch to ignore image-defined volumes\n(https://github.com/containerd/cri/pull/1504) and gets us some robustness fixes in containerd CNI/CRI integration\n(https://github.com/containerd/cri/pull/1405). This also updates K8s at the same time since they share a lot of\ndependencies and only updating one is very annoying. On the K8s side we mostly get the standard stream of fixes\nplus some patches that are no longer necessary.\n\nOne annoying on the K8s side (but with no impact to the functionality) are these messages in the logs of various\ncomponents:\n```\nW0714 11:51:26.323590       1 warnings.go:67] policy/v1beta1 PodSecurityPolicy is deprecated in v1.22+, unavailable in v1.25+\n```\nThey are caused by KEP-1635, but there\u0027s not explanation why this gets logged so aggressively considering the operators\ncannot do anything about it. There\u0027s no newer version of PodSecurityPolicy and you are pretty much required to use it if\nyou use RBAC.\n\nTest Plan: Covered by existing tests\n\nBug: T753\n\nX-Origin-Diff: phab/D597\nGitOrigin-RevId: f6c447da1de037c27646f9ec9f45ebd5d6660ab0\n"
    },
    {
      "commit": "78fd97294dbc8bbf5ef1a490b2d7b7ad96fddcae",
      "tree": "7ae5efa88e132d538d9ec185e6abddd9f46a0570",
      "parents": [
        "cca74b6b61a165e2d1679847731902eaed04bd94"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon Jul 13 17:01:42 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon Jul 13 17:01:42 2020 +0200"
      },
      "message": "Kubernetes volume \u0026 stamping fixes\n\nThis reenables the projected and downwardapi volume types, both of which are necessary for the CTS to pass\nand are derivatives of the configmap volume which we already support. This also fixes an issue where the stamping\ndefinitions for Kubernetes were not present on our main Kubernetes binary, which broke the CTS.\n\nTest Plan:\nVolumes will be covered by CTS (writing our own tests would be duplicate work), version was manually\ntested to be correct in `bazel run //core/cmd/dbg -- kubectl get nodes` since stamping is hard to test for.\n\nX-Origin-Diff: phab/D584\nGitOrigin-RevId: 403b6c845bc399fdd44ec3ba4ca26e2512a5bc98\n"
    },
    {
      "commit": "52f7f291c1987fe98bd10d3ad79d4a0c8772ad03",
      "tree": "eaf212647f9bab001e62bb35647255b5f107bd2e",
      "parents": [
        "3ff5af330857b2aadcdae9d9e6ca37b7e5d2c56e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:42:02 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:42:02 2020 +0200"
      },
      "message": "Add nanoswitch and cluster testing\n\nAdds nanoswitch and the `switched-multi2` launch target to launch two Smalltown instances on a switched\nnetwork and enroll them into a single cluster. Nanoswitch contains a Linux bridge and a minimal DHCP server\nand connects to the two Smalltown instances over virtual Ethernet cables. Also moves out the DHCP client into\na package since nanoswitch needs it.\n\nTest Plan:\nManually tested using `bazel run //:launch -- switched-multi2` and observing that the second VM\n(whose serial port is mapped to stdout) prints that it is enrolled. Also validated by `bazel run //core/cmd/dbg -- kubectl get node -o wide` returning two ready nodes.\n\nX-Origin-Diff: phab/D572\nGitOrigin-RevId: 9f6e2b3d8268749dd81588205646ae3976ad14b3\n"
    },
    {
      "commit": "2e30e88fe6afcf06bdd01478bc584619e91d4c1b",
      "tree": "c7e8a73330d170df708d8dc6de374d440411f224",
      "parents": [
        "5be29dda1d099e1d72636aec06bd3995f39ae4d8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 15:17:29 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 15:17:29 2020 +0200"
      },
      "message": "Add our own qboot firmware\n\nMy qboot fix (https://github.com/bonzini/qboot/pull/28) has (contrary to what I assumed based on the tests passing)\nnot made it into QEMU yet, so the firmware shipped by it is still affected. This fix not being there silently broke our ktests\nsince the return code processing can in weird conditions wrongly succeed. The fix for this will be another revision, same with\ncode that actually uses this. This is just the build.\n\nTest Plan: Build test: `bazel build @com_github_bonzini_qboot//:qboot-bin`. Also tested in subsequent code depending on it.\n\nX-Origin-Diff: phab/D569\nGitOrigin-RevId: b693220768bc8e39be21fd90eedc7ab79e9c4bcf\n"
    },
    {
      "commit": "c3ae7588e04e283a9ee798823ff590f2eb26e13f",
      "tree": "dca98f6ae4627ba043527f1a2de01fb3b740be44",
      "parents": [
        "3b544a960249e7000b4fd9ce36f118c261c467df"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Jun 08 17:15:26 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Jun 08 17:15:26 2020 +0200"
      },
      "message": "core/initramfs: add cilium, force static binaries\n\nThis adds a Bazel transition to the initramfs rule to ensure all\nbinaries that are part of it are built statically.\n\nTest Plan: tested by building the binary and checking all binaries are static\n\nX-Origin-Diff: phab/D557\nGitOrigin-RevId: 897b902c6b139fdffd1179caae757f5151ad7804\n"
    },
    {
      "commit": "140bddcbe1aac46b168f6fc2178eb9c3870a434c",
      "tree": "8719383a79e42b1334a53f88bdc015872cba66dd",
      "parents": [
        "e6030f696613983ea00fc93b9e8b826cea7a1e9a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jun 05 21:01:19 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jun 05 21:01:19 2020 +0200"
      },
      "message": "core: build initramfs using generic initramfs rule\n\nThis chips away at three different things:\n - it brings us closer to hermetic and cross-platform builds by not\n   depending on genrule/shell and lz4-the-tool\n - it generalizes initramfs building (allowing for more than one to be\n   built, if necessary)\n - sets the stage to use Bazel transitions [1] to force all included Go\n   binaries to be built in pure/static mode while allowing host Go\n   binaries to use cgo/dynamic linking if necessary, and hopefully also\n   allowing us to get rid of some BUILD patches that set pure\u003d\u0027on\u0027 in\n   go_binary calls (notably needed in Cilium and some existing\n   third_party dependencies).\n\n[1] - https://docs.bazel.build/versions/master/skylark/config.html#user-defined-transitions\n\nTest Plan: build machinery change, covered by existing tests\n\nX-Origin-Diff: phab/D554\nGitOrigin-RevId: a5561eb5ca16e6529b9a4a2b98352f579c424222\n"
    }
  ],
  "next": "3058b7ab4e220c37624e1204744f0b17efd920d5"
}
