fix: Add more verbose comments on why we are now using `systemd-timesyncd | time-daemon` dependency
We depend on systemd-timesyncd OR time-daemon virtual package which will result in systemd-timesyncd
being installed. The OR time-daemon virtual package allows user to switch to a different time daemon
in the future without breaking the dependency chain.
Revert "fix: depend on time-damon virtual package instead of systemd-timesyncd to allow for switching of time daemon without breaking the dependency chain"
This reverts commit 8958b0bb8f3f8a426e88467486b2887aa8e7c5e4.
fix: depend on time-damon virtual package instead of systemd-timesyncd to allow for switching of time daemon without breaking the dependency chain
systemd-timesyncd previously recommended by systemd but to allow for switching of time daemon systemd-timesyncd cannot be a hard dependency otherwise the ubuntu-cloud-minimal package will be removed.
Here we depend on virtual package time-daemon which will result in systemd-timesyncd being installed given that systemd-timesyncd has the highest priority of the package that provide time-daemon (openntpd, ntpsec, systemd-timesyncd, chrony). Depending on time-daemon instead of systemd-timesyncd directly allows us to switch to a different time daemon in the future without breaking the dependency chain.
fix: Ensure that it is possible to swap time daemon when using the cloud-minimal seed
Prior to this change when trying to swap time daemon, for chrony for example, then
ubuntu-cloud-minimal package would be removed - thus leaving many packages listed as autoremovable.
If we update cloud-minimal seed to have a dependency on any time-daemon but with systemd-timesyncd
as the default, then it is possible to swap time daemons without issue and the dependencies of
ubuntu-cloud-minimal remain satisfied so it will not be removed.
This was previously pulled in as Recommends of ubuntu-server. But
with the switch to our new seed, we not only have stopped using
ubuntu-server, we've also stopped using Recommends. So adding
lxd-agent-loader explicitly as a dependency as it's needed for
running LXD VM images and as a further note, LXD as VM uses the
download cloud image, so this has to be seeded in cloud-minimal.
This is required by bare metal servers using minimized cloud images booting initramfsless
and ensures that any microcode updates are applied during boot.
This is likley only ever used by bare metal servers but it does not impact VMs so it is
safe to add to the cloud minimal seed for all mantic+ minimized cloud image builds.
microcode-initrd has been a dependency of the linux-aws kernel for a long time and has
not been thoroughly tested in VMs and bare metal instances.