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?
> 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.
--
Andrea Bolognani / Red Hat / Virtualization