0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 13:40:28 +03:00

nixos/ntpd-rs: Handle configuring NTP pools (#403903)

This commit is contained in:
Franz Pletz 2025-05-08 18:28:32 +02:00 committed by GitHub
commit 2634ca8249
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 5 deletions

View file

@ -63,7 +63,7 @@ in
};
source = lib.mkIf cfg.useNetworkingTimeServers (
map (ts: {
mode = "server";
mode = if lib.strings.hasInfix "pool" ts then "pool" else "server";
address = ts;
}) config.networking.timeServers
);

View file

@ -11,7 +11,7 @@ import ./make-test-python.nix (
client = {
services.ntpd-rs = {
enable = true;
metrics.enable = true;
metrics.enable = false;
useNetworkingTimeServers = false;
settings = {
source = [
@ -27,11 +27,22 @@ import ./make-test-python.nix (
};
};
server = {
networking.firewall.allowedUDPPorts = [ 123 ];
networking.firewall = {
allowedTCPPorts = [
9975
];
allowedUDPPorts = [
123
];
};
services.ntpd-rs = {
enable = true;
metrics.enable = true;
settings = {
observability = {
metrics-exporter-listen = "[::]:9975";
};
server = [
{ listen = "[::]:123"; }
];
@ -48,8 +59,19 @@ import ./make-test-python.nix (
for machine in (server, client):
machine.wait_for_unit('multi-user.target')
machine.succeed('systemctl is-active ntpd-rs.service')
machine.succeed('systemctl is-active ntpd-rs-metrics.service')
machine.succeed('curl http://localhost:9975/metrics | grep ntp_uptime_seconds')
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')")
'';
}
)