Make sure sylva-growparts unit is executed at the right time
Closes #163
Relates to sylva-projects/sylva-core#2899
In the current setup, sylva-growpart.service is part of multi-user.target, this means many services ( including cloud-init and rke2 ) can start before it finishes.
There are multiple targets to choose from if we want to have it scheduled earlier in the boot process: https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html.
sysinit.target seems to be the most logical for what we want to do.
Since we want our unit to be executed before basic.target, we need to explicitly define its dependencies.
systemctl list-dependencies multi-user.target
multi-user.target
● ├─chrony.service
● ├─console-setup.service
● ├─dbus.service
○ ├─dmesg.service
○ ├─e2scrub_reap.service
○ ├─grub-common.service
○ ├─grub-initrd-fallback.service
○ ├─kube-api-vip-dnat.service
● ├─networkd-dispatcher.service
● ├─rke2-server.service
● ├─rpcbind.service
● ├─rsyslog.service
● ├─ssh-keygen.service
● ├─ssh.service
● ├ <------------------------------ (sylva-growparts.service used to be here)
● ├─systemd-ask-password-wall.path
● ├─systemd-logind.service
● ├─systemd-networkd.service
○ ├─systemd-update-utmp-runlevel.service
● ├─systemd-user-sessions.service
● ├─tuned.service
● ├─basic.target
● │ ├─-.mount
● │ ├─tmp.mount
● │ ├─var-tmp.mount
● │ ├─var.mount
● │ ├─paths.target
● │ ├─slices.target
● │ │ ├─-.slice
● │ │ └─system.slice
● │ ├─sockets.target
● │ │ ├─dbus.socket
● │ │ ├─dm-event.socket
● │ │ ├─iscsid.socket
● │ │ ├─rpcbind.socket
● │ │ ├─ssh.socket
● │ │ ├─systemd-initctl.socket
● │ │ ├─systemd-journald-dev-log.socket
● │ │ ├─systemd-journald.socket
○ │ │ ├─systemd-pcrextend.socket
● │ │ ├─systemd-sysext.socket
● │ │ ├─systemd-udevd-control.socket
● │ │ └─systemd-udevd-kernel.socket
● │ ├─sysinit.target
● │ │ ├─blk-availability.service
● │ │ ├─dev-hugepages.mount
● │ │ ├─dev-mqueue.mount
● │ │ ├─keyboard-setup.service
● │ │ ├─kmod-static-nodes.service
○ │ │ ├─ldconfig.service
● │ │ ├─lvm2-lvmpolld.socket
● │ │ ├─lvm2-monitor.service
○ │ │ ├─open-iscsi.service
● │ │ ├─proc-sys-fs-binfmt_misc.automount
● │ │ ├─setvtrgb.service
● │ │ ├─sylva-growparts.service <-------------------------(it has moved here)
● │ │ ├─sys-fs-fuse-connections.mount
● │ │ ├─sys-kernel-config.mount
● │ │ ├─sys-kernel-debug.mount
● │ │ ├─sys-kernel-tracing.mount
● │ │ ├─systemd-ask-password-console.path
● │ │ ├─systemd-binfmt.service
○ │ │ ├─systemd-firstboot.service
○ │ │ ├─systemd-hwdb-update.service
○ │ │ ├─systemd-journal-catalog-update.service
● │ │ ├─systemd-journal-flush.service
● │ │ ├─systemd-journald.service
○ │ │ ├─systemd-machine-id-commit.service
● │ │ ├─systemd-modules-load.service
○ │ │ ├─systemd-pcrmachine.service
○ │ │ ├─systemd-pcrphase-sysinit.service
○ │ │ ├─systemd-pcrphase.service
○ │ │ ├─systemd-pstore.service
● │ │ ├─systemd-random-seed.service
○ │ │ ├─systemd-repart.service
● │ │ ├─systemd-resolved.service
● │ │ ├─systemd-sysctl.service
○ │ │ ├─systemd-sysusers.service
○ │ │ ├─systemd-timesyncd.service
● │ │ ├─systemd-tmpfiles-setup-dev-early.service
● │ │ ├─systemd-tmpfiles-setup-dev.service
● │ │ ├─systemd-tmpfiles-setup.service
○ │ │ ├─systemd-tpm2-setup-early.service
○ │ │ ├─systemd-tpm2-setup.service
● │ │ ├─systemd-udev-trigger.service
● │ │ ├─systemd-udevd.service
○ │ │ ├─systemd-update-done.service
● │ │ ├─systemd-update-utmp.service
● │ │ ├─cryptsetup.target
● │ │ ├─integritysetup.target
● │ │ ├─local-fs.target
● │ │ │ ├─-.mount
● │ │ │ ├─boot-efi.mount
● │ │ │ ├─home.mount
● │ │ │ ├─opt.mount
○ │ │ │ ├─systemd-fsck-root.service
● │ │ │ ├─systemd-remount-fs.service
● │ │ │ ├─tmp.mount
● │ │ │ ├─var-lib-kubelet.mount
● │ │ │ ├─var-lib-rancher-rke2-agent-containerd.mount
● │ │ │ ├─var-lib-rancher-rke2-server-db.mount
● │ │ │ ├─var-log-audit.mount
● │ │ │ ├─var-log.mount
● │ │ │ ├─var-tmp.mount
● │ │ │ └─var.mount
● │ │ ├─swap.target
● │ │ └─veritysetup.target
● │ └─timers.target
● │ ├─apt-daily-upgrade.timer
● │ ├─apt-daily.timer
● │ ├─dpkg-db-backup.timer
● │ ├─e2scrub_all.timer
● │ ├─fstrim.timer
● │ ├─motd-news.timer
● │ └─systemd-tmpfiles-clean.timer
● ├─cloud-init.target
● │ ├─cloud-config.service
● │ ├─cloud-final.service
● │ ├─cloud-init-hotplugd.socket
● │ ├─cloud-init-local.service
● │ └─cloud-init.service
● ├─getty.target
○ │ ├─getty-static.service
● │ ├─getty@tty1.service
● │ └─serial-getty@ttyS0.service
● ├─nfs-client.target
○ │ ├─auth-rpcgss-module.service
● │ ├─rpc-statd-notify.service
● │ └─remote-fs-pre.target
● └─remote-fs.target
● └─nfs-client.target
○ ├─auth-rpcgss-module.service
● ├─rpc-statd-notify.service
● └─remote-fs-pre.target
Edited by Jonathan GAYVALLET