Merge master into staging-next
This commit is contained in:
commit
ef2abc20bc
27 changed files with 179 additions and 53 deletions
|
@ -633,6 +633,7 @@
|
|||
./services/networking/dnsdist.nix
|
||||
./services/networking/dnsmasq.nix
|
||||
./services/networking/ncdns.nix
|
||||
./services/networking/nomad.nix
|
||||
./services/networking/ejabberd.nix
|
||||
./services/networking/epmd.nix
|
||||
./services/networking/ergo.nix
|
||||
|
|
126
nixos/modules/services/networking/nomad.nix
Normal file
126
nixos/modules/services/networking/nomad.nix
Normal file
|
@ -0,0 +1,126 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.nomad;
|
||||
format = pkgs.formats.json { };
|
||||
in
|
||||
{
|
||||
##### interface
|
||||
options = {
|
||||
services.nomad = {
|
||||
enable = mkEnableOption "Nomad, a distributed, highly available, datacenter-aware scheduler";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.nomad;
|
||||
defaultText = "pkgs.nomad";
|
||||
description = ''
|
||||
The package used for the Nomad agent and CLI.
|
||||
'';
|
||||
};
|
||||
|
||||
extraPackages = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra packages to add to <envar>PATH</envar> for the Nomad agent process.
|
||||
'';
|
||||
example = literalExample ''
|
||||
with pkgs; [ cni-plugins ]
|
||||
'';
|
||||
};
|
||||
|
||||
dropPrivileges = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether the nomad agent should be run as a non-root nomad user.
|
||||
'';
|
||||
};
|
||||
|
||||
enableDocker = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable Docker support. Needed for Nomad's docker driver.
|
||||
|
||||
Note that the docker group membership is effectively equivalent
|
||||
to being root, see https://github.com/moby/moby/issues/9976.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = format.type;
|
||||
default = {
|
||||
# Agrees with `StateDirectory = "nomad"` set below.
|
||||
data_dir = "/var/lib/nomad";
|
||||
};
|
||||
description = ''
|
||||
Configuration for Nomad. See the <link xlink:href="https://www.nomadproject.io/docs/configuration">documentation</link>
|
||||
for supported values.
|
||||
'';
|
||||
example = literalExample ''
|
||||
{
|
||||
# A minimal config example:
|
||||
server = {
|
||||
enabled = true;
|
||||
bootstrap_expect = 1; # for demo; no fault tolerance
|
||||
};
|
||||
client = {
|
||||
enabled = true;
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
##### implementation
|
||||
config = mkIf cfg.enable {
|
||||
environment = {
|
||||
etc."nomad.json".source = format.generate "nomad.json" cfg.settings;
|
||||
systemPackages = [ cfg.package ];
|
||||
};
|
||||
|
||||
systemd.services.nomad = {
|
||||
description = "Nomad";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
restartTriggers = [ config.environment.etc."nomad.json".source ];
|
||||
|
||||
path = cfg.extraPackages ++ (with pkgs; [
|
||||
# Client mode requires at least the following:
|
||||
coreutils
|
||||
iproute
|
||||
iptables
|
||||
]);
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = cfg.dropPrivileges;
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
ExecStart = "${cfg.package}/bin/nomad agent -config=/etc/nomad.json";
|
||||
KillMode = "process";
|
||||
KillSignal = "SIGINT";
|
||||
LimitNOFILE = 65536;
|
||||
LimitNPROC = "infinity";
|
||||
OOMScoreAdjust = -1000;
|
||||
Restart = "on-failure";
|
||||
RestartSec = 2;
|
||||
# Agrees with the default `data_dir = "/var/lib/nomad"` in `settings` above.
|
||||
StateDirectory = "nomad";
|
||||
TasksMax = "infinity";
|
||||
User = optionalString cfg.dropPrivileges "nomad";
|
||||
} // (optionalAttrs cfg.enableDocker {
|
||||
SupplementaryGroups = "docker"; # space-separated string
|
||||
});
|
||||
unitConfig = {
|
||||
StartLimitIntervalSec = 10;
|
||||
StartLimitBurst = 3;
|
||||
};
|
||||
};
|
||||
|
||||
# Docker support requires the Docker daemon to be running.
|
||||
virtualisation.docker.enable = mkIf cfg.enableDocker true;
|
||||
};
|
||||
}
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "gallery_dl";
|
||||
version = "1.16.1";
|
||||
version = "1.16.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "51d789aac43013e25c1fad553f214cb1f43b1ae02e0651b640f102c5b9280aea";
|
||||
sha256 = "5926794d7a602cb9d4edf0a2094b266b790033db0a62689fa01e5272d7388587";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "JPype1";
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "62ca03e7f7963ba4ac1065ee48ff661f752b3db3c23549ed8933ab40196a3157";
|
||||
sha256 = "f210646127d24be73cfc6d807e2cda1c6b2ab39b7a293008e8b46367af6f2204";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "ROPGadget";
|
||||
version = "6.3";
|
||||
version = "6.4";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0v34w88if3p4vn46aby24msfnxj6znmkf4848n4d24jnykxcsqk9";
|
||||
sha256 = "51d7cbdf51ac8b3f3f00bc0d4ae44433ef58d3bf5495efb316ec918654f1e6c3";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ capstone ];
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiowinreg";
|
||||
version = "0.0.3";
|
||||
version = "0.0.4";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0gxhx9m45yyr1rmgs7f1jchkgxk2zipk9g3s5ix90d267in8hsn9";
|
||||
sha256 = "956278a90ef6958f9e2392891b2a305273f695b15b14489cd2097197d6cbe155";
|
||||
};
|
||||
|
||||
# Project doesn't have tests
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "asyncwhois";
|
||||
version = "0.2.2";
|
||||
version = "0.2.3";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "59ed35fbe646491b6c3e1dcf6db9b4870c3d44c6c023a1c3badd6226551d7b7e";
|
||||
sha256 = "95df90d5be581e3c69398abc6a3ec69a4e568852d9d6df4582bfcc0e22ffb3bb";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "0.15.2";
|
||||
version = "0.15.3";
|
||||
pname = "authlib";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lepture";
|
||||
repo = "authlib";
|
||||
rev = "v${version}";
|
||||
sha256 = "0jsqh2nirx3xifsakqdpd3wpdig6czavv3yj4lyqz3wh9xjpvswg";
|
||||
sha256 = "1lqicv8awyygqh1z8vhwvx38dw619kgbirdn8c9sc3qilagq1rdx";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ cryptography requests ];
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "avea";
|
||||
version = "1.5.1";
|
||||
version = "1.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "k0rventen";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "13s21dnhbh10dd60xq2cklp5jyv46rpl3nivn1imcswp02930ihz";
|
||||
sha256 = "1dirf0zdf4hb941w1dvh97vsvcy4h3w9r8jwdgr1ggmhdf9kfx4v";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "avro";
|
||||
version = "1.10.0";
|
||||
version = "1.10.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "bbf9f89fd20b4cf3156f10ec9fbce83579ece3e0403546c305957f9dac0d2f03";
|
||||
sha256 = "b3a405df5aa8654b992d2aca7b80482b858a1919a44dc0b10a682162e8ee340a";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "axis";
|
||||
version = "42";
|
||||
version = "43";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kane610";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1144zkgyf63qlw4dfn1zqcbgaksmxvjc4115jhzi98z0fkvlk34p";
|
||||
sha256 = "1p9yfixsrkw7rxbvgybcb653rbqv0x18wzqkh620g193snm9sgm2";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "cftime";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "8d6a1144f43b9d7a180d7ceb3aa8015b7133c615fbac231bed184a91129f0207";
|
||||
sha256 = "77fd86e69b234d41fa8634d627e9e9ee0501c2a8a95268c2b524d38e0a33f090";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "chalice";
|
||||
version = "1.21.7";
|
||||
version = "1.21.9";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "22512bccb9b881b8d5a33bd45c7ad539dee60f2f8685a5ed8afd5000a962b0f8";
|
||||
sha256 = "312f88838c8ea4b4ac79dce0e5b4ba3125130ca66ea99a4694f535501dca95e3";
|
||||
};
|
||||
|
||||
checkInputs = [ watchdog pytest hypothesis mock ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "check-manifest";
|
||||
version = "0.45";
|
||||
version = "0.46";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "636b65a3b685374ad429ff22fe213966765b145f08bc560c8d033b604c7bee4c";
|
||||
sha256 = "5895e42a012989bdc51854a02c82c8d6898112a4ab11f2d7878200520b49d428";
|
||||
};
|
||||
|
||||
# Test requires filesystem access
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "databricks-connect";
|
||||
version = "7.3.5";
|
||||
version = "7.3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "c720298b05648f5de8f17de03f93d60ffb30c2d55ce2750e63c17c341a8de5e4";
|
||||
sha256 = "e3f72ba94c8da6b5aae44ca6133a46206e378609ec0aefadfbdc9a3722afd8d1";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-debian";
|
||||
version = "0.1.38";
|
||||
version = "0.1.39";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "a352bb5f9ef19b0272078f516ee0ec42b05e90ac85651d87c10e7041550dcc1d";
|
||||
sha256 = "6cca96239b5981f5203216d2113fea522477628607ed0a8427e15094a792541c";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ chardet six ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "evdev";
|
||||
version = "1.3.0";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0kb3636yaw9l8xi8s184w0r0n9ic5dw3b8hx048jf9fpzss4kimi";
|
||||
sha256 = "8782740eb1a86b187334c07feb5127d3faa0b236e113206dfe3ae8f77fb1aaf1";
|
||||
};
|
||||
|
||||
buildInputs = [ linuxHeaders ];
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "genpy";
|
||||
version = "2016.1.3";
|
||||
version = "2021.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1c11726f1e8ace8bbdfc87816403c9a59f53a8c3d45c99187ae17c9725d87a91";
|
||||
sha256 = "9bc062fa98c5c466ff464d8974be81a6bf67af9247b5e5176215ad1e81a6cdac";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-cloud-bigquery";
|
||||
version = "2.6.1";
|
||||
version = "2.6.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1vs4im0fixmszh6p77icys9g7fymwmkfc6va0ng9kpjv1h6gv68z";
|
||||
sha256 = "1c940bf190a681d80b6f6cd7541924ad411de5f0585b2c8c5e420ab750e2024d";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-crc32c";
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "googleapis";
|
||||
repo = "python-crc32c";
|
||||
rev = "v${version}";
|
||||
sha256 = "0vbidg9yrv9k8xvk8rl43lsf4cg3dci4a9k4srwwrchbxivz1gr6";
|
||||
sha256 = "103lqs42b01p6nydjz4id72x7hsrpjyv7g06vrphm8c5g1wa3zp1";
|
||||
};
|
||||
|
||||
buildInputs = [ crc32c ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "identify";
|
||||
version = "1.5.11";
|
||||
version = "1.5.13";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "b2c71bf9f5c482c389cef816f3a15f1c9d7429ad70f497d4a2e522442d80c6de";
|
||||
sha256 = "70b638cf4743f33042bebb3b51e25261a0a10e80f978739f17e7fd4837664a66";
|
||||
};
|
||||
|
||||
# Tests not included in PyPI tarball
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "isbnlib";
|
||||
version = "3.10.4";
|
||||
version = "3.10.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "f5bfbc362e2a73dfc82449ac459b59a7f6b20bcebf82f6bd87d773dc45073646";
|
||||
sha256 = "cb3b400b37a73cf4a0bc698be2ea414e78ff117867baed9313aa8c97596e1b98";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "jupyterhub-systemdspawner";
|
||||
version = "0.14";
|
||||
version = "0.15.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "080dd9cd9292266dad35d1efc7aa1af0ed6993d15eadc79bd959d1ee273d1923";
|
||||
sha256 = "b6e2d981657aa5d3794abb89b1650d056524158a3d0f0f706007cae9b6dbeb2b";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "kerberos";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "19663qxmma0i8bfbjc2iwy5hgq0g4pfb75r023v5dps68zfvffgh";
|
||||
sha256 = "cdd046142a4e0060f96a00eb13d82a5d9ebc0f2d7934393ed559bac773460a2c";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ kerberos ];
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "keyrings.alt";
|
||||
version = "4.0.1";
|
||||
version = "4.0.2";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "cd23d4c6930b5271134ac815d868164cb6d0d2252ee6dcb07fadfca26caaa230";
|
||||
sha256 = "cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
|
|||
homepage = "https://github.com/Wulfsta/psw";
|
||||
license = with licenses; [ asl20 /* or */ mit ];
|
||||
maintainers = with maintainers; [ wulfsta ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,21 +6,21 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gdu";
|
||||
version = "2.3.0";
|
||||
version = "3.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dundee";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1dc0z6daxpbid2ilpms0dw76qyyc84gx0bcqsx0b3s5p5p154xzq";
|
||||
sha256 = "0sfb8bxvdd8r05d0bgfcaw6dpbky7f4fgf0dbly7k7sgl29hkafy";
|
||||
};
|
||||
|
||||
vendorSha256 = "18a3qwshz8jmw0j29qvmzarxig0kj1n0fnmlx81qzswsyl85kncv";
|
||||
vendorSha256 = "0w3k23kly8g9mf8a300xz6bv7g1m2nlp5f112k4viyi9zy6vqbv0";
|
||||
|
||||
buildFlagsArray = [ "-ldflags=-s -w -X main.AppVersion=${version}" ];
|
||||
buildFlagsArray = [ "-ldflags=-s -w -X github.com/dundee/gdu/build.Version=${version}" ];
|
||||
|
||||
# analyze/dev_test.go: undefined: processMounts
|
||||
doCheck = !stdenv.isDarwin;
|
||||
# tests fail if the version is set
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Disk usage analyzer with console interface";
|
||||
|
|
Loading…
Reference in a new issue