On Wed, Jan 11, 2023 at 09:24:09AM -0800, Andrea Bolognani wrote:
On Wed, Jan 11, 2023 at 04:42:49PM +0000, Daniel P. Berrangé wrote:
> On Wed, Jan 11, 2023 at 08:24:08AM -0800, Andrea Bolognani wrote:
> > I think we might need to weaken these relationship from Requires to
> > Wants, as that should still ensure that the corresponding sockets are
> > activated for standard deployments without making more specialized
> > ones (e.g. without virtlockd) impossible.
>
> Weakening it to Wants means that virtqemud will still startup even
> if virtlogd fails to start. This is bogus because any attempt jto
> start a guest will then fail due to inability to connect to
> virtlogd's socket.
>
> Users trying to run in non-standard configurations can put in a
> systemd unit file override. They already need to edit the virtqemud
> configuration, so editting the unit file to match isn't a terrible
> burden.
I'm thinking of KubeVirt, which is the scenario I'm most familiar
with, and in that case virtlogd is used but virtlockd isn't.
Adding an override to remove the Requires=virtlockd.socket would
indeed not be a big deal, but if we keep the relationships as they
are then the libvirt-daemon-driver-qemu package needs to depend on
the libvirt-daemon-driver-lock to keep it functional. So KubeVirt
will not be able to avoid installing virtlockd despite not using it.
The ironic part is that libvirt-daemon-driver-qemu doesn't depend on
libvirt-daemon-plugin-lockd, so you will have virtlockd ready to go
even while potentially missing the corresponding plugin! And, even
better, also when you have configured storage locking, but have
chosen the sanlock backend instead of the virtlockd one!
Based on the fact that virtlogd is opt-out and virtlockd is opt-in,
can we leave the Requires=virtlogd.socket relationship alone and add
a dependency on libvirt-daemon-log to libvirt-daemon-driver-qemu,
while at the same time demoting the Requires=virtlockd.socket to a
Want and *not* adding a dependency on libvirt-daemon-lock?
Yes, the virtlockd one is a bit inconsistent. Since we don't have
it enabled by default, we don't need it as a Requires clause either.
> > Similarly, I think we're missing Wants for
virtstoraged.socket,
> > virtnetworkd.socket, virtsecretd.socket and so on.
>
> We didn't bother with those since it is harmless either way. The
> distro unit file presets will configure those sockets to be started
> on boot if modular daemons are desired. If a user overrides this
> that's fine, we'll just fail to start a guest that has a config
> setting that requires them.
The same can be said of virtlockd. So I think we should either add
all the missing Want relationships, or drop the one for virtlockd.
We need to fix the Fedora presets, since I notice we missed the
virtlockd.socket / virtlogd.socket presets. This was harmless
while a Requires existed. If we fix the presets, we can drop the
virtlockd requires.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|