tinkerbell / hook

In-memory Operating System Installation Environment for Executing Tinkerbell Workflows
Apache License 2.0
103 stars 51 forks source link

Use a multiarch manifest kernel #138

Closed mmlb closed 2 years ago

mmlb commented 2 years ago

Description

Changes the kernel referenced in hook.yaml to one that is actually a multiarch manifest.

Why is this needed

The previous kernel being used had only had the amd64 flavor available on quay. Linuxkit has no sanity check to ensure the fetched image platform matches the one specified in the command line args. Thus the recent builds of hook all have an x86_64 kernel for both amd64 and arm64 images.

How Has This Been Tested?

Ran make dist for both this PR and main and then file on the kernel files:

$ git rev-parse --short main
d30dc22
$ git rev-parse --short HEAD
66e4a14
$ file out/sha-*/rel/vmlinuz-*
out/sha-66e4a14/rel/vmlinuz-aarch64: Linux kernel ARM64 boot executable Image, little-endian, 4K pages
out/sha-66e4a14/rel/vmlinuz-x86_64:  Linux kernel x86 boot executable bzImage, version 5.10.85-linuxkit (root@buildkitsandbox) #1 SMP Mon Jun 20 17:04:15 UTC 2022, RO-rootFS, swap_dev 0XA, Normal VGA
out/sha-d30dc22/rel/vmlinuz-aarch64: Linux kernel x86 boot executable bzImage, version 5.10.85-linuxkit (root@buildkitsandbox) #1 SMP Thu Jan 13 09:38:18 UTC 2022, RO-rootFS, swap_dev 0X9, Normal VGA
out/sha-d30dc22/rel/vmlinuz-x86_64:  Linux kernel x86 boot executable bzImage, version 5.10.85-linuxkit (root@buildkitsandbox) #1 SMP Thu Jan 13 09:38:18 UTC 2022, RO-rootFS, swap_dev 0X9, Normal VGA

How are existing users impacted? What migration steps/scripts do we need?

Hook arm64 builds have the correct kernel for the arch and thus should boot.