Open afbjorklund opened 5 months ago
Using mounts needs a special image (with sshfs), since 9p has been disabled in the kernel.
https://github.com/vrothberg/lima-fedora-bootc
One also needs to make sure to use an image with cloud-init included, and with ssh enabled
dnf install -y openssh-server cloud-init sshfs
As a workaround, it is possible to add the fuse-sshfs
package and reboot
https://docs.fedoraproject.org/en-US/bootc/dnf/#_using_dnf_at_runtime
Note, as a special case Fedora CoreOS (and similar) make /usr/local
writable with a symlink:
lrwxrwxrwx. 3 root root 15 Jan 31 13:55 /usr/local -> ../var/usrlocal
This enables the regular containerd (nerdctl-full) installation to work, even if /usr
is read-only...
Alternatively, one could change the guestInstallPrefix
to something else (and convince systemd)
lrwxrwxrwx. 3 root root 8 Jan 31 13:55 home -> var/home
lrwxrwxrwx. 3 root root 7 Jan 31 13:55 mnt -> var/mnt
lrwxrwxrwx. 3 root root 7 Jan 31 13:55 opt -> var/opt
lrwxrwxrwx. 3 root root 12 Jan 31 13:55 root -> var/roothome
The biggest downside is the enormous size and the hard-to-use, so in that sense it's like CoreOS et al...
But one can use ORAS for the storage, without switching over to the rest of the "bootable containers"?
Another related topic would be to support IPFS for storing images, and download them with ipfs get
It would be possible to only support the oras:
url, and not the rest of the bloatable containers.
Some other projects are using oci:
instead, so should probably adopt that (or rather support both)
Beyond the fancy specifications and the helpers (like oras
), it is just json:
https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget/
Description
There are some projects using "OCI Registry As Storage" (ORAS), to download their images.
They add a kernel to a container image, and thus making it into a virtual machine image and bootable.
One such Fedora/CentOS project is "bootc": https://docs.fedoraproject.org/en-US/bootc/
Unfortunately most images are read-only, which means that one needs to use an overlay or rpm-ostree.
The main difference for Lima, is that the actual image and digest is stored in a JSON manifest...
The image itself is stored in a "layer", which means it needs
oras
rather thancurl
to download.To be able to separate these images from a normal URL, an
oras://
scheme/prefix has been added.oras pull ghcr.io/centos/fedora-bootc-cloud-disk:eln
zstd -d fedora-bootc-cloud-eln.qcow2.zst
The base images are
docker://
images, that needs to be converted usingbootc-image-builder
FROM quay.io/fedora/fedora-bootc:40
FROM quay.io/centos-bootc/centos-bootc:stream9
Note: The "oras" scheme is also used by apptainer.org
One could look for
quay.io
as well, as a special case?