-
Notifications
You must be signed in to change notification settings - Fork 16
Description
I have a container and contains a Podman quadlet. This quadlet is configured with Pull=newer. The container doesn't embed the quadlet's image so I can keep my bootc/VM image small.
This seems to pose a problem for bcvk's ephemeral VMs however: per df -h the size of /var is only 780 MiB, but the container image I'm trying to pull for my quadlet is 2+ GiB, resulting in the pull failing due to insufficient disk space.
While bcvk libvirt related commands should allow you to work around that, those don't seem to work either. For example:
bcvk libvirt run --filesystem ext4 localhost/web:latest
This produces:
Creating libvirt domain 'web' (install source container image: localhost/web:latest)
INFO Creating base disk: "/home/yorickpeterse/.local/share/libvirt/images/bootc-base-26e4d8fee5fcae63.qcow2"
Connected (4 seconds elapsed), beginning installation...
Setting up temporary filesystems...
rm: cannot remove '/var/lib/containers/storage/overlay': Device or resource busy
Error:
0: Failed to find or create base disk
1: Failed to install bootc to base disk: "/home/yorickpeterse/.local/share/libvirt/images/bootc-base-26e4d8fee5fcae63.ecovti.tmp.qcow2"
2: SSH installation command failed with exit code: Some(1)
Location:
crates/kit/src/to_disk.rs:551
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
For comparison, building an image with bootc-image-builder and running it with qemu-system does work, though that's only because bootc-image-builder always forces a disk image size of 10 GiB, so it too would likely fail at some point given a sufficient amount of containers to pull in.
To resolve this, the default size of /var should probably be increased and an option for this should be exposed to the various ephemeral related commands, such that you could do something along the lines of bcvk ephemeral run-ssh web:latest --var-size=10G.