diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix index cd481212db2d..d1a1383e45b0 100644 --- a/nixos/modules/services/computing/slurm/slurm.nix +++ b/nixos/modules/services/computing/slurm/slurm.nix @@ -46,7 +46,7 @@ let # in the same directory as slurm.conf etcSlurm = pkgs.symlinkJoin { name = "etc-slurm"; - paths = [ configFile cgroupConfig plugStackConfig ]; + paths = [ configFile cgroupConfig plugStackConfig ] ++ cfg.extraConfigPaths; }; in @@ -239,6 +239,17 @@ in ''; }; + extraConfigPaths = mkOption { + type = with types; listOf path; + default = []; + description = '' + Slurm expects config files for plugins in the same path + as slurm.conf. Add extra nix store + paths that should be merged into same directory as + slurm.conf. + ''; + }; + }; @@ -303,6 +314,7 @@ in serviceConfig = { Type = "forking"; + KillMode = "process"; ExecStart = "${wrappedSlurm}/bin/slurmd"; PIDFile = "/run/slurmd.pid"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; diff --git a/nixos/tests/slurm.nix b/nixos/tests/slurm.nix index 7f9c266cbff6..b4458d8d0954 100644 --- a/nixos/tests/slurm.nix +++ b/nixos/tests/slurm.nix @@ -63,6 +63,12 @@ in { ensurePermissions = { "slurm_acct_db.*" = "ALL PRIVILEGES"; }; name = "slurm"; }]; + extraOptions = '' + # recommendations from: https://slurm.schedmd.com/accounting.html#mysql-configuration + innodb_buffer_pool_size=1024M + innodb_log_file_size=64M + innodb_lock_wait_timeout=900 + ''; }; }; @@ -95,6 +101,7 @@ in { subtest "can_start_slurmdbd", sub { $dbd->succeed("systemctl restart slurmdbd"); $dbd->waitForUnit("slurmdbd.service"); + $dbd->waitForOpenPort(6819); }; # there needs to be an entry for the current