nomad: add optional nvml support
This commit is contained in:
parent
bc1b117218
commit
2aabde2c52
5 changed files with 56 additions and 20 deletions
|
@ -1,7 +1,11 @@
|
||||||
{ callPackage, buildGoPackage }:
|
{ callPackage
|
||||||
|
, buildGoPackage
|
||||||
|
, nvidia_x11
|
||||||
|
, nvidiaGpuSupport
|
||||||
|
}:
|
||||||
|
|
||||||
callPackage ./generic.nix {
|
callPackage ./generic.nix {
|
||||||
inherit buildGoPackage;
|
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
|
||||||
version = "0.11.8";
|
version = "0.11.8";
|
||||||
sha256 = "1dhh07bifr02jh2lls8fv1d9ra67ymgh8qxqvpvm0cd0qdd469z1";
|
sha256 = "1dhh07bifr02jh2lls8fv1d9ra67ymgh8qxqvpvm0cd0qdd469z1";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
{ callPackage, buildGoPackage }:
|
{ callPackage
|
||||||
|
, buildGoPackage
|
||||||
|
, nvidia_x11
|
||||||
|
, nvidiaGpuSupport
|
||||||
|
}:
|
||||||
|
|
||||||
callPackage ./generic.nix {
|
callPackage ./generic.nix {
|
||||||
inherit buildGoPackage;
|
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
|
||||||
version = "0.12.9";
|
version = "0.12.9";
|
||||||
sha256 = "1a0ig6pb0z3qp7zk4jgz3h241bifmjlyqsfikyy3sxdnzj7yha27";
|
sha256 = "1a0ig6pb0z3qp7zk4jgz3h241bifmjlyqsfikyy3sxdnzj7yha27";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
{ callPackage, buildGoPackage }:
|
{ callPackage
|
||||||
|
, buildGoPackage
|
||||||
|
, nvidia_x11
|
||||||
|
, nvidiaGpuSupport
|
||||||
|
}:
|
||||||
|
|
||||||
callPackage ./generic.nix {
|
callPackage ./generic.nix {
|
||||||
inherit buildGoPackage;
|
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
|
||||||
version = "1.0.1";
|
version = "1.0.1";
|
||||||
sha256 = "07k81csyxhgc7bgn297zlqyvc55qb5fmiavi7dk81rdpg5m2zjvv";
|
sha256 = "07k81csyxhgc7bgn297zlqyvc55qb5fmiavi7dk81rdpg5m2zjvv";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
{ stdenv, buildGoPackage, fetchFromGitHub, version, sha256 }:
|
{ lib
|
||||||
|
, buildGoPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, version
|
||||||
|
, sha256
|
||||||
|
, nvidiaGpuSupport
|
||||||
|
, patchelf
|
||||||
|
, nvidia_x11
|
||||||
|
}:
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
pname = "nomad";
|
pname = "nomad";
|
||||||
|
@ -14,23 +22,33 @@ buildGoPackage rec {
|
||||||
inherit rev sha256;
|
inherit rev sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = lib.optionals nvidiaGpuSupport [
|
||||||
|
patchelf
|
||||||
|
];
|
||||||
|
|
||||||
# ui:
|
# ui:
|
||||||
# Nomad release commits include the compiled version of the UI, but the file
|
# Nomad release commits include the compiled version of the UI, but the file
|
||||||
# is only included if we build with the ui tag.
|
# is only included if we build with the ui tag.
|
||||||
# nonvidia:
|
preBuild =
|
||||||
# We disable Nvidia GPU scheduling on Linux, as it doesn't work there:
|
let
|
||||||
# Ref: https://github.com/hashicorp/nomad/issues/5535
|
tags = [ "ui" ] ++ lib.optional (!nvidiaGpuSupport) "nonvidia";
|
||||||
preBuild = let
|
tagsString = lib.concatStringsSep " " tags;
|
||||||
tags = ["ui"]
|
in
|
||||||
++ stdenv.lib.optional stdenv.isLinux "nonvidia";
|
''
|
||||||
tagsString = stdenv.lib.concatStringsSep " " tags;
|
|
||||||
in ''
|
|
||||||
export buildFlagsArray=(
|
export buildFlagsArray=(
|
||||||
-tags="${tagsString}"
|
-tags="${tagsString}"
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
# The dependency on NVML isn't explicit. We have to make it so otherwise the
|
||||||
|
# binary will not know where to look for the relevant symbols.
|
||||||
|
postFixup = lib.optionalString nvidiaGpuSupport ''
|
||||||
|
for bin in $out/bin/*; do
|
||||||
|
patchelf --add-needed "${nvidia_x11}/lib/libnvidia-ml.so" "$bin"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
homepage = "https://www.nomadproject.io/";
|
homepage = "https://www.nomadproject.io/";
|
||||||
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
|
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
|
|
@ -6129,12 +6129,18 @@ in
|
||||||
# with different versions we pin Go for all versions.
|
# with different versions we pin Go for all versions.
|
||||||
nomad_0_11 = callPackage ../applications/networking/cluster/nomad/0.11.nix {
|
nomad_0_11 = callPackage ../applications/networking/cluster/nomad/0.11.nix {
|
||||||
buildGoPackage = buildGo114Package;
|
buildGoPackage = buildGo114Package;
|
||||||
|
inherit (linuxPackages) nvidia_x11;
|
||||||
|
nvidiaGpuSupport = config.cudaSupport or (!stdenv.isLinux);
|
||||||
};
|
};
|
||||||
nomad_0_12 = callPackage ../applications/networking/cluster/nomad/0.12.nix {
|
nomad_0_12 = callPackage ../applications/networking/cluster/nomad/0.12.nix {
|
||||||
buildGoPackage = buildGo114Package;
|
buildGoPackage = buildGo114Package;
|
||||||
|
inherit (linuxPackages) nvidia_x11;
|
||||||
|
nvidiaGpuSupport = config.cudaSupport or (!stdenv.isLinux);
|
||||||
};
|
};
|
||||||
nomad_1_0 = callPackage ../applications/networking/cluster/nomad/1.0.nix {
|
nomad_1_0 = callPackage ../applications/networking/cluster/nomad/1.0.nix {
|
||||||
buildGoPackage = buildGo115Package;
|
buildGoPackage = buildGo115Package;
|
||||||
|
inherit (linuxPackages) nvidia_x11;
|
||||||
|
nvidiaGpuSupport = config.cudaSupport or (!stdenv.isLinux);
|
||||||
};
|
};
|
||||||
|
|
||||||
notable = callPackage ../applications/misc/notable { };
|
notable = callPackage ../applications/misc/notable { };
|
||||||
|
|
Loading…
Reference in a new issue