Unverified Commit 2634ca82 authored by Franz Pletz's avatar Franz Pletz Committed by GitHub
Browse files

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

parents 674b4ebd 6c73e41a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
      );
+26 −4
Original line number Diff line number Diff line
@@ -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')")
      '';
  }
)