On Fri, Jul 14, 2023 at 12:41:52PM +0200, Laszlo Ersek wrote:
> On 7/14/23 11:29, Richard W.M. Jones wrote:
> > On Thu, Jul 13, 2023 at 07:10:45PM +0200, Laszlo Ersek wrote:
> >> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2184967
> >>
> >> This series makes both backends prefer passt over slirp for appliance
> >> networking, if QEMU or libvirt (respectively) is recent enough, and
> >> passt is installed.
> >>
> >> My test setup is:
> >>
> >> $ virt-builder fedora-38
> >>
> >> Then, each test run looks like this:
> >>
> >> Terminal#1:
> >>
> >> $ ./run rescue/virt-rescue --network --ro -a fedora-38.img
> >>
> >> Terminal#2:
> >>
> >> - check if "passt" is running (ps -ef, pgrep, ...), provided it *should*
> >>   be running
> >>
> >> Terminal#1:
> >>
> >>> <rescue> ping -c 3 8.8.8.8
> >>> <rescue> ip neighbor
> >>> <rescue> ip addr
> >>> <rescue> ip route
> >>
> >> Expected results (in the above order), always on the "eth0" lines:
> >> - all three pings succeed (get replies)
> >> - 52:56:00:00:00:02
> >> - 169.254.2.15/16
> >> - default via 169.254.2.2
> > 
> > Another good test (and the one that really matters) would be something
> > like this on Terminal #1 ...
> > 
> >> <rescue> chroot /sysroot bash
> >> <rescue> dnf install emacs
> > 
> > (or some other package).  If dnf can see the Fedora repositories
> > despite the network setup being slightly wonky, that will mean that
> > virt-customize should work.
> 
> I've been actually thinking about another Clevis+Tang test, but my
> original test environment for that is gone (gone with my RHEL7 laptop...) :/
> 
> But, given that I build all v2v projects from source, I can run my
> "virt-builder" binary from guestfs-tools such that it pick up my
> just-build libguestfs. And so I've now run:
> 
> $ rm -f fedora-37.img
> $ LIBGUESTFS_BACKEND=libvirt virt-builder --update fedora-37
> $ rm -f fedora-37.img
> $ LIBGUESTFS_BACKEND=direct  virt-builder --update fedora-37
> 
> I've verified that "passt" gets launched in both cases. And, the updates
> do complete:
> 
> [   4.4] Downloading: http://builder.libguestfs.org/fedora-37.xz
> [   5.2] Planning how to build this image
> [   5.2] Uncompressing
> [  10.8] Opening the new disk
> [  17.3] Setting a random seed
> [  17.3] Updating packages
> [ 166.5] Setting passwords
> virt-builder: Setting random password of root to VbTWjwUIVAVAXFLV
> [ 167.3] SELinux relabelling
> [ 176.7] Finishing off
>                    Output file: fedora-37.img
>                    Output size: 6.0G
>                  Output format: raw
>             Total usable space: 5.9G
>                     Free space: 4.0G (67%)
> 
> [   3.4] Downloading: http://builder.libguestfs.org/fedora-37.xz
> [   4.2] Planning how to build this image
> [   4.2] Uncompressing
> [   9.9] Opening the new disk
> [  14.2] Setting a random seed
> [  14.2] Updating packages
> [ 224.8] Setting passwords
> virt-builder: Setting random password of root to tT0YGZ9adqTMXzYR
> [ 225.6] SELinux relabelling
> [ 234.6] Finishing off
>                    Output file: fedora-37.img
>                    Output size: 6.0G
>                  Output format: raw
>             Total usable space: 5.9G
>                     Free space: 4.0G (67%)
> 
> > It's good that this work has found a bunch of libvirt bugs!
> 
> Passt is meant to replace slirp, so its different mission statement
> ("make the guest networking env resemble the host one as much as
> possible") is justified and welcome; but for the libguestfs appliance, I
> figured we'd want to hide any slirp/passt differences, preferably with
> both the direct and libvirt backends. (For example, the rsync test case,
> which is already restricted to the direct backend, would break due to
> those differences.) So that requires digging into a bunch of corner cases.
> 
> It's difficult to know where to draw the line: if a different host IP
> address (as seen by the guest) breaks our rsync test case, then maybe a
> different host MAC address, or different guest IP address, might break
> something else, for someone else. They might have some custom shell
> script they run in the appliance. So who can say how pedantically we
> should imitate the slirp environment?... Close imitation was never the
> intent in the libvirt enablement (and justifiedly so, again, I think),
> but using just the defaults definitely broke our rsync test case at least.

We should concentrate on making virt-customize work.  The rsync case
(and API) is weird and not worth worrying about at this point.  If it
breaks that might in a way be better -- we can then justify removing
it after a few releases.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to