Did anyone try to just switch to the Ubuntu kernel on those?
I believe the default Ubuntu kernel works fine on Cavium hardware (or virtual hardware) and if you switch to it, then you’ll get ZFS support built-in and full AppArmor support.
We do regular LXD tests on arm64 machines using Ubuntu 16.04, so we know it’s all working fine, so long as you run the right kernel (we test on bare-metal and VMs on APM CPUs)
That’s unfortunate considering that most arm64 VMs I’ve played with so far had a very familiar UEFI based firmware with grub and all the other bits you’d normally expect on a Linux server.
According to https://community.online.net/t/official-linux-kernel-new-modules-optimizations-hacks/226 they are OK to receive changes to the kernel configuration. Specifically, it says on that page If you are missing some kernel modules or optimizations, give us info about your needs (the best would be .config lines) At the end of that page, a user reported that xz compression was not present in the kernel (an issue with snaps) and it was resolved in a week.
Unfortunately neither ZFS nor AppArmor are something you can do with just config changes. Both are rather complex and big patchsets to apply to the kernel sources before you can turn on the needed config options.
For AppArmor that delta is slowly being upstreamed so eventually that won’t be a problem.
For ZFS that’s unlikely to ever change due to the licence difference.
Scaleway uses the term “bootscript” to describe a set of kernel and initrd (https://www.scaleway.com/docs/bootscript-and-how-to-use-it/). A user cannot set up a custom “bootscript” but can only use one of the provided bootscripts (also, kexec is not enabled currently on the ARM64 kernel).
The way forward would be to have a git repo (or source tarball) with the Ubuntu Linux kernel source(with ZFS and Apparmor included), and ask kindly Scaleway to produce a bootscript for that kernel. Which git repo/source tarball would you suggest to use?
btrfs is one of the best storage backends and should be fine so long as you don’t expect quotas to work in any kind of useful way and aren’t using a complex RAID setup which btrfs still has some issue running without the occasional crash and data loss.
Indeed, for simplicity, it is OK to try out btrfs instead of ZFS. In my post I show that it is possible to get ZFS to compile on the ARM64, with quite a bit of involvement.