Files
nixpkgs/nixos/tests/systemd-timesyncd.nix
Jamie Magee 1460350c4c nixos/timesyncd: migrate to RFC 42-style settings
Replace `services.timesyncd.extraConfig` with a freeform `services.timesyncd.settings.Time` submodule, rendered via `utils.systemdUtils.lib.settingsToSections`. `extraConfig` is removed via `mkRemovedOptionModule`.

`servers` and `fallbackServers` are kept as typed wrappers; they now bridge into `settings.Time.NTP` / `settings.Time.FallbackNTP` via `mkDefault` so users can still override them through `settings.Time`.

Adds `nixos/tests/systemd-timesyncd` to assert the rendered `timesyncd.conf` contents.
2026-06-04 16:56:31 +02:00

32 lines
952 B
Nix

{
name = "systemd-timesyncd";
meta = {
maintainers = [ ];
};
nodes.machine =
{ lib, ... }:
{
services.timesyncd = {
enable = lib.mkForce true;
servers = [ "ntp.example.com" ];
fallbackServers = [ "fallback.example.com" ];
settings.Time = {
PollIntervalMaxSec = "180";
RootDistanceMaxSec = "5";
};
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
with subtest("settings.Time renders timesyncd.conf"):
machine.succeed("grep -F '[Time]' /etc/systemd/timesyncd.conf")
machine.succeed("grep -F 'NTP=ntp.example.com' /etc/systemd/timesyncd.conf")
machine.succeed("grep -F 'FallbackNTP=fallback.example.com' /etc/systemd/timesyncd.conf")
machine.succeed("grep -F 'PollIntervalMaxSec=180' /etc/systemd/timesyncd.conf")
machine.succeed("grep -F 'RootDistanceMaxSec=5' /etc/systemd/timesyncd.conf")
'';
}