With Debian 12+ the interactive zkCli.sh is completely broken, failing
to load the JLine module regardless of what is done, and no one in the
project seems to care about that.
Instead let's swap this out for the (non-interactive) GO-based zkcli of
https://github.com/go-zkcli/zkcli instead, as this suits our needs
nicely.
This helps work around apt issues when running from the oneshot
update-pvc-daemons playbook. On a new install, this will be OK. On an
upgrade, the apt tasks will fail OK but then the verification that
pvc-client-cli will ensure that things are actually sane before
proceeding.
This conditional will ensure that, the first time pvc.conf is installed
(or, subsequent times, until it stabilizes), the legacy configs will not
be removed. Then, on the next run in which pvc.conf does not change,
they will be removed.
This should provide a safety valve during a 0.9.83 update with the
update-pvc-daemons playbook: if the update succeeds, on the next run,
the legacy configs will be purged; otherwise, they will still be present
and can be used for fallback just in case.
This probably isn't needed, but just in case I'd rather be safe.
Ensures that configurations are always updated whenever the daemons are.
This will be necessary for 0.9.83 with the fundamental change from
pvcXd.yaml to pvc.conf configuration formats, while also ensuring that
future daemon updates also include any configuration changes that may be
pending in the group_vars.
Needed because ceph-mgr seems to crash frequently under Debian 12 when
adding or removing OSDs. The default settings do not restart it
properly, so this override does.
If microcode was missing, checking the other two would be UNKN and thus
not restart. But, if microcode *is* present, we want to restart for
either of the other two as well.
So separate into 3 distinct checks and restart if any one is changed.