7 Commits

Author SHA1 Message Date
03b371650c refactor(role): Copy unit files instead of symlinking them
On each target machine we're storing the Git repo that has our unit
files underneath '/opt/git'. Prior to this commit we used to place
symlinks from '/etc/systemd/system' into the appropriate '/opt/git'
subdir. On most machines this worked fine, however, on some we
encountered a race condition on system start.

Sometimes '/opt/git' is not the same file system as '/'. If that's
the case chances are that systemd initializes the system and fails to
access a unit file at '/opt/git' because that file system is just
barely not yet visible early in the boot process.

For a timer unit for example this could result in enabling the unit
and upon reboot seeing that the unit no longer existed in systemd's
world view e.g. via 'systemctl list-timers' even though the symlink
at '/etc/systemd/system' still pointed to an '/opt/git' subdir when
inspected manually seconds after boot. journalctl, however, would
clearly confirm that at system initialization the symlink target was
inaccessible.

We could fiddle around with delaying boot until '/opt/git' and its
descendants are visible but the sane solution is to just not rely on
a separate file system for important stuff such as unit files. We now
copy unit files to '/etc/systemd/system' instead of symlinking them.
2025-06-04 01:26:15 +02:00
33e3ebea6f refactor(role): Move pacman pkg cache underneath boot dataset 1.0.3 2025-04-09 03:15:02 +02:00
b21d28587f refactor(role): Typo 1.0.2 2025-04-07 00:25:50 +02:00
2afbfaedcd feat(role): Never extract a mirrorlist 1.0.1 2025-04-07 00:21:34 +02:00
40e5a17e34 fix(role): Include can happen multiple times 2025-04-07 00:21:17 +02:00
cf55d8b20e feat(role): Initial commit 1.0.0 2025-04-03 00:12:58 +02:00
3e9b2ba91a Initial commit 2025-04-02 21:46:09 +00:00