From d3ba1493075f6cfb811ae5f0af749f6e1ac166d0 Mon Sep 17 00:00:00 2001 From: Mahe Tardy Date: Thu, 11 Apr 2024 15:18:54 +0200 Subject: [PATCH] README: add some details about the arm64 builds Signed-off-by: Mahe Tardy --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index fb7bfddf..76c909d9 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,30 @@ results in images for the `bpf-next` version be build. ### Can I completely disable builds for a PR? Yes, you can use the `gha-builds/justdont` label. + +### How does the arm64 builds works? + +The build of LVH and the kernel can be done using cross-compilation which +simplifies a lot the build of multi-arch images. Unfortunately, the part that +build the images relies libguestfs that cannot work as of now for different +target architectures than the host architecture. However switching to use only +mmdebstrap, which can easily cross-build images, and get rid of libguestfs +would solve this duality. + + +```mermaid +flowchart TD + subgraph "cross compilation" + A[kernel builder] --> B[kernel images] + E[little vm helper] + end + subgraph "native build" + C[root builder] --> D[root images] + B & D & E --> F[kind] + end +``` + +As of now, each steps to build an image (the left on the diagram above), for +example kind, are built on native runners and produce arch specific images +(with the `-` suffix in the tag), a multi-arch tag is then produced, +merging the architecture specific images, for the final result ease of use.