Files
nixpkgs/nixos/tests/ntpd-rs.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

76 lines
1.9 KiB
Nix

{ lib, ... }:
{
name = "ntpd-rs";
meta = {
maintainers = with lib.maintainers; [ fpletz ];
};
nodes = {
client = {
services.ntpd-rs = {
enable = true;
metrics.enable = false;
useNetworkingTimeServers = false;
settings = {
source = [
{
mode = "server";
address = "server";
}
];
synchronization = {
minimum-agreeing-sources = 1;
};
};
};
};
server = {
networking.firewall = {
allowedTCPPorts = [
9975
];
allowedUDPPorts = [
123
];
};
services.ntpd-rs = {
enable = true;
metrics.enable = true;
settings = {
observability = {
metrics-exporter-listen = "[::]:9975";
};
server = [
{ listen = "[::]:123"; }
];
};
};
};
};
testScript =
{ nodes, ... }:
''
start_all()
for machine in (server, client):
machine.wait_for_unit('multi-user.target')
machine.succeed('systemctl is-active ntpd-rs.service')
client.fail('systemctl is-active ntpd-rs-metrics.service')
server.succeed('systemctl is-active ntpd-rs-metrics.service')
server.wait_for_open_port(9975)
client.succeed('curl http://server:9975/metrics | grep ntp_uptime_seconds')
server.fail('curl --fail --connect-timeout 2 http://client:9975/metrics | grep ntp_uptime_seconds')
client.succeed("ntp-ctl status | grep server:123")
server.succeed("ntp-ctl status | grep '\[::\]:123'")
client.succeed("grep '^mode = \"server\"' $(systemctl status ntpd-rs | grep -oE '/nix/store[^ ]*ntpd-rs.toml')")
server.succeed("grep '^mode = \"pool\"' $(systemctl status ntpd-rs | grep -oE '/nix/store[^ ]*ntpd-rs.toml')")
'';
}