42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, ... }:
 | |
| 
 | |
| # See also: https://github.com/NixOS/nixpkgs/pull/112010
 | |
| # And: https://github.com/NixOS/nixpkgs/pull/115839
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| {
 | |
|   users = {
 | |
|     users."slurm-exporter" = {
 | |
|       description = "Prometheus slurm exporter service user";
 | |
|       isSystemUser = true;
 | |
|       group = "slurm-exporter";
 | |
|     };
 | |
|     groups = {
 | |
|       "slurm-exporter" = {};
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   systemd.services."prometheus-slurm-exporter" = {
 | |
|     wantedBy = [ "multi-user.target" ];
 | |
|     after = [ "network.target" ];
 | |
|     serviceConfig = {
 | |
|       Restart = mkDefault "always";
 | |
|       PrivateTmp = mkDefault true;
 | |
|       WorkingDirectory = mkDefault "/tmp";
 | |
|       DynamicUser = mkDefault true;
 | |
|       User = "slurm-exporter";
 | |
|       Group = "slurm-exporter";
 | |
|       ExecStart = ''
 | |
|         ${pkgs.prometheus-slurm-exporter}/bin/prometheus-slurm-exporter --listen-address "127.0.0.1:9341"
 | |
|       '';
 | |
|       Environment = [
 | |
|         "PATH=${pkgs.slurm}/bin"
 | |
|         # We need to specify the slurm config to be able to talk to the slurmd
 | |
|         # daemon.
 | |
|         "SLURM_CONF=${config.services.slurm.etcSlurm}/slurm.conf"
 | |
|       ];
 | |
|     };
 | |
|   };
 | |
| }
 |