at 18.03-beta 2.2 kB view raw
1import ./make-test.nix ({ pkgs, ...} : rec { 2 name = "simple"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ offline ]; 5 }; 6 7 nodes = { 8 node1 = 9 { config, pkgs, ... }: 10 { 11 services = { 12 etcd = { 13 enable = true; 14 listenPeerUrls = ["http://0.0.0.0:7001"]; 15 initialAdvertisePeerUrls = ["http://node1:7001"]; 16 initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"]; 17 }; 18 }; 19 20 services.fleet = { 21 enable = true; 22 metadata.name = "node1"; 23 }; 24 25 networking.firewall.allowedTCPPorts = [ 7001 ]; 26 }; 27 28 node2 = 29 { config, pkgs, ... }: 30 { 31 services = { 32 etcd = { 33 enable = true; 34 listenPeerUrls = ["http://0.0.0.0:7001"]; 35 initialAdvertisePeerUrls = ["http://node2:7001"]; 36 initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"]; 37 }; 38 }; 39 40 services.fleet = { 41 enable = true; 42 metadata.name = "node2"; 43 }; 44 45 networking.firewall.allowedTCPPorts = [ 7001 ]; 46 }; 47 }; 48 49 service = builtins.toFile "hello.service" '' 50 [Unit] 51 Description=Hello World 52 53 [Service] 54 ExecStart=/bin/sh -c "while true; do echo \"Hello, world\"; /var/run/current-system/sw/bin/sleep 1; done" 55 56 [X-Fleet] 57 MachineMetadata=name=node2 58 ''; 59 60 testScript = 61 '' 62 startAll; 63 $node1->waitForUnit("fleet.service"); 64 $node2->waitForUnit("fleet.service"); 65 66 $node2->waitUntilSucceeds("fleetctl list-machines | grep node1"); 67 $node1->waitUntilSucceeds("fleetctl list-machines | grep node2"); 68 69 $node1->succeed("cp ${service} hello.service && fleetctl submit hello.service"); 70 $node1->succeed("fleetctl list-unit-files | grep hello"); 71 $node1->succeed("fleetctl start hello.service"); 72 $node1->waitUntilSucceeds("fleetctl list-units | grep running"); 73 $node1->succeed("fleetctl stop hello.service"); 74 $node1->succeed("fleetctl destroy hello.service"); 75 ''; 76})