)]}'
{
  "commit": "3b0c8dd5b5a4cb535f9d256a0b6b3676507eb3e4",
  "tree": "e568a2087ba4f8335a1e2ba10a8e01e9809b4de8",
  "parents": [
    "e0db72ca567b5142bb6a31d745b3bf78cd8eb53a"
  ],
  "author": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Mon Jun 23 10:32:07 2025 +0000"
  },
  "committer": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Wed Jun 25 15:37:52 2025 +0000"
  },
  "message": "m/test/launch: build image at runtime\n\nTest launch now builds the node disk image from the OCI image, instead\nof creating a qcow2 snapshot of the pre-built disk image. This speeds up\ntests and test cluster launch.\n\nThe OCI image is uncompressed and payloads are not verified, which\nenables the previously implemented copy_file_range optimization. If the\nhost file system supports reflinks, this has a similar effect as the\nqcow2 snapshot had previously: Building the image is very fast as the\nrootfs data is not copied on disk. On my machine, it takes 30 ms.\n\nThe build before launching a cluster is now faster: The MkImage step\ntaking 6 s is replaced by MkOCI taking 1 s. The majority of this time is\nspent by Bazel computing hashes of files. For MkImage, the generated\nfile was a 5 GB disk image consisting mostly of zeroes, which took a\nlong time to hash.\n\nAdditionally, the qcow2 layer added some overhead, which is now gone.\nThe HA e2e test previously took 103 s on my machine, now it takes 80 s.\n\nChange-Id: I0ce5059626cc682061c26ac3c8d11b752e641c60\nReviewed-on: https://review.monogon.dev/c/monogon/+/4294\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60368ffe60f472fb4268b936b2d446bf208e9287",
      "old_mode": 33188,
      "old_path": "metropolis/node/BUILD.bazel",
      "new_id": "ff24ccaa5c30c77b022e7f40f9403e31a1647d85",
      "new_mode": 33188,
      "new_path": "metropolis/node/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "492fdd4daa5b33399f7a1bba027e062778d9d002",
      "old_mode": 33188,
      "old_path": "metropolis/test/launch/BUILD.bazel",
      "new_id": "bbe3eb9a1f89677f7b2bb8ebb7ed89f77d5fd9ed",
      "new_mode": 33188,
      "new_path": "metropolis/test/launch/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "5ad4121b14791e987580b6bd9a56bd9800311aee",
      "old_mode": 33188,
      "old_path": "metropolis/test/launch/cluster.go",
      "new_id": "1e3f42b6079f867c3a23adb4a841f1a2ac60a71e",
      "new_mode": 33188,
      "new_path": "metropolis/test/launch/cluster.go"
    },
    {
      "type": "modify",
      "old_id": "759bf2892e4a2621f816f68c07167ee825827744",
      "old_mode": 33188,
      "old_path": "metropolis/test/launch/launch.go",
      "new_id": "3864eb28d2bc0b9a8ec49e732abf615b7c428710",
      "new_mode": 33188,
      "new_path": "metropolis/test/launch/launch.go"
    },
    {
      "type": "modify",
      "old_id": "30a88ae7e71b3d3528b41bd6ebaef248fa69889c",
      "old_mode": 33188,
      "old_path": "osbase/oci/osimage/osimage.go",
      "new_id": "ac9721aafac416093cc664837a3c76c6cbff3ffe",
      "new_mode": 33188,
      "new_path": "osbase/oci/osimage/osimage.go"
    }
  ]
}
