lol

nixosTests.nomad: Use runTest

About 30% quicker to eval
Runs on macOS as a VM host

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