tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
nixos/tests: add test for custom nomad state directory
Phillip Cloud
5 years ago
de71f5b5
5ce4ce61
+56
-12
1 changed file
expand all
collapse all
unified
split
nixos
tests
nomad.nix
+56
-12
nixos/tests/nomad.nix
···
2
2
{ lib, ... }: {
3
3
name = "nomad";
4
4
nodes = {
5
5
-
server = { pkgs, lib, ... }: {
5
5
+
default_server = { pkgs, lib, ... }: {
6
6
networking = {
7
7
interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [{
8
8
address = "192.168.1.1";
···
30
30
enableDocker = false;
31
31
};
32
32
};
33
33
+
34
34
+
custom_state_dir_server = { pkgs, lib, ... }: {
35
35
+
networking = {
36
36
+
interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [{
37
37
+
address = "192.168.1.1";
38
38
+
prefixLength = 16;
39
39
+
}];
40
40
+
};
41
41
+
42
42
+
environment.etc."nomad.custom.json".source =
43
43
+
(pkgs.formats.json { }).generate "nomad.custom.json" {
44
44
+
region = "universe";
45
45
+
datacenter = "earth";
46
46
+
};
47
47
+
48
48
+
services.nomad = {
49
49
+
enable = true;
50
50
+
dropPrivileges = false;
51
51
+
52
52
+
settings = {
53
53
+
data_dir = "/nomad/data/dir";
54
54
+
server = {
55
55
+
enabled = true;
56
56
+
bootstrap_expect = 1;
57
57
+
};
58
58
+
};
59
59
+
60
60
+
extraSettingsPaths = [ "/etc/nomad.custom.json" ];
61
61
+
enableDocker = false;
62
62
+
};
63
63
+
64
64
+
systemd.services.nomad.serviceConfig.ExecStartPre = "${pkgs.writeShellScript "mk_data_dir" ''
65
65
+
set -euxo pipefail
66
66
+
67
67
+
${pkgs.coreutils}/bin/mkdir -p /nomad/data/dir
68
68
+
''}";
69
69
+
};
33
70
};
34
71
35
72
testScript = ''
36
36
-
server.wait_for_unit("nomad.service")
73
73
+
def test_nomad_server(server):
74
74
+
server.wait_for_unit("nomad.service")
37
75
38
38
-
# wait for healthy server
39
39
-
server.wait_until_succeeds(
40
40
-
"[ $(nomad operator raft list-peers | grep true | wc -l) == 1 ]"
41
41
-
)
76
76
+
# wait for healthy server
77
77
+
server.wait_until_succeeds(
78
78
+
"[ $(nomad operator raft list-peers | grep true | wc -l) == 1 ]"
79
79
+
)
42
80
43
43
-
# wait for server liveness
44
44
-
server.succeed("[ $(nomad server members | grep -o alive | wc -l) == 1 ]")
81
81
+
# wait for server liveness
82
82
+
server.succeed("[ $(nomad server members | grep -o alive | wc -l) == 1 ]")
83
83
+
84
84
+
# check the region
85
85
+
server.succeed("nomad server members | grep -o universe")
86
86
+
87
87
+
# check the datacenter
88
88
+
server.succeed("[ $(nomad server members | grep -o earth | wc -l) == 1 ]")
89
89
+
45
90
46
46
-
# check the region
47
47
-
server.succeed("nomad server members | grep -o universe")
91
91
+
servers = [default_server, custom_state_dir_server]
48
92
49
49
-
# check the datacenter
50
50
-
server.succeed("[ $(nomad server members | grep -o earth | wc -l) == 1 ]")
93
93
+
for server in servers:
94
94
+
test_nomad_server(server)
51
95
'';
52
96
}
53
97
)