at 23.11-pre 2.6 kB view raw
1import ./make-test-python.nix ( 2 { lib, ... }: { 3 name = "nomad"; 4 nodes = { 5 default_server = { pkgs, lib, ... }: { 6 networking = { 7 interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [{ 8 address = "192.168.1.1"; 9 prefixLength = 16; 10 }]; 11 }; 12 13 environment.etc."nomad.custom.json".source = 14 (pkgs.formats.json { }).generate "nomad.custom.json" { 15 region = "universe"; 16 datacenter = "earth"; 17 }; 18 19 services.nomad = { 20 enable = true; 21 22 settings = { 23 server = { 24 enabled = true; 25 bootstrap_expect = 1; 26 }; 27 }; 28 29 extraSettingsPaths = [ "/etc/nomad.custom.json" ]; 30 enableDocker = false; 31 }; 32 }; 33 34 custom_state_dir_server = { pkgs, lib, ... }: { 35 networking = { 36 interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [{ 37 address = "192.168.1.1"; 38 prefixLength = 16; 39 }]; 40 }; 41 42 environment.etc."nomad.custom.json".source = 43 (pkgs.formats.json { }).generate "nomad.custom.json" { 44 region = "universe"; 45 datacenter = "earth"; 46 }; 47 48 services.nomad = { 49 enable = true; 50 dropPrivileges = false; 51 52 settings = { 53 data_dir = "/nomad/data/dir"; 54 server = { 55 enabled = true; 56 bootstrap_expect = 1; 57 }; 58 }; 59 60 extraSettingsPaths = [ "/etc/nomad.custom.json" ]; 61 enableDocker = false; 62 }; 63 64 systemd.services.nomad.serviceConfig.ExecStartPre = "${pkgs.writeShellScript "mk_data_dir" '' 65 set -euxo pipefail 66 67 ${pkgs.coreutils}/bin/mkdir -p /nomad/data/dir 68 ''}"; 69 }; 70 }; 71 72 testScript = '' 73 def test_nomad_server(server): 74 server.wait_for_unit("nomad.service") 75 76 # wait for healthy server 77 server.wait_until_succeeds( 78 "[ $(nomad operator raft list-peers | grep true | wc -l) == 1 ]" 79 ) 80 81 # wait for server liveness 82 server.succeed("[ $(nomad server members | grep -o alive | wc -l) == 1 ]") 83 84 # check the region 85 server.succeed("nomad server members | grep -o universe") 86 87 # check the datacenter 88 server.succeed("[ $(nomad server members | grep -o earth | wc -l) == 1 ]") 89 90 91 servers = [default_server, custom_state_dir_server] 92 93 for server in servers: 94 test_nomad_server(server) 95 ''; 96 } 97)