Re: What are https://src.fedoraproject.org/container ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jun 12, 2021 at 08:00:15AM -0400, Neal Gompa wrote:
> At build-time, libguestfs copies the content of the kernel package
> along with binaries of various filesystem tools into itself to run a
> custom appliance for manipulating VMs. The Fedora-based libguestfs
> package can handle Btrfs even on RHEL because it relies on the
> binaries of the Fedora kernel and filesystem utilities instead of the
> RHEL ones. It will run QEMU and boot up *its* VM to manipulate VM
> stuff. That's even how guestfish works for mounting VM disks on the host.

So it's a bit more subtle than this.

Normally libguestfs will build the appliance at runtime, using files
from the host.  It is then run it using qemu + the latest kernel image
found in /boot or /lib/modules (so not necessarily the host kernel,
but it might be).  The process is described here:

  https://rwmj.wordpress.com/2014/03/08/supermin-version-5/

This has the advantage that you don't have to ship the appliance at
all (which is usually about ~300 MB, so quite a saving), and security
updates are handled automatically.  Instead we ship only this in the
RPM:

  $ du -sh /usr/lib64/guestfs/supermin.d/
  2.3M /usr/lib64/guestfs/supermin.d/

However ... containers.  There's all kinds of weirdness / brokenness
with containers (and especially when you combine them with Kubernetes)
which makes this harder to do:

 - usually limited or unpredictable space on /var/tmp so we have
   nowhere to build and cache the appliance (but shlepping around
   hundreds of megabytes of the same appliance in the container? totes fine!
   go figure ...)

 - "bazel" doesn't build an RPM database or run %post scripts, so it
   makes something that looks a bit like a container running Fedora,
   but is quite broken, in particular supermin can't work

 - missing/broken kernel packages

My colleague is currently building a container-based version of
libguestfs which does indeed work a lot more like Neal describes
above.  There will be a pre-built appliance, updated every so often
(hopefully often enough that security issues won't be too much of a
problem).  It'll get downloaded -- all hundreds of megabytes --
through the usual container distribution channels.

This is actually why I was interested in the question originally since
I was wondering if there was duplicated effort going on.

I should stress this is only for containers.  supermin will continue
to be used in regular Fedora.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux