diff options
author | Jaka Hudoklin <jakahudoklin@gmail.com> | 2014-12-07 21:52:52 +0100 |
---|---|---|
committer | Jaka Hudoklin <jakahudoklin@gmail.com> | 2014-12-07 21:52:52 +0100 |
commit | b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a (patch) | |
tree | 043e7a578014e7fbdbf0ab46fdb766b0f097bb65 /nixos/tests | |
parent | 8bb6fdc4f9c9bd6f61a62dfd57180d394ced6fc8 (diff) | |
download | nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.tar nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.tar.gz nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.tar.bz2 nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.tar.lz nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.tar.xz nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.tar.zst nixlib-b7092dc95cbb6d1c77f078c5dd87200cfe62eb3a.zip |
nixos: add fleet module
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/fleet.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/nixos/tests/fleet.nix b/nixos/tests/fleet.nix new file mode 100644 index 000000000000..4e006c00beed --- /dev/null +++ b/nixos/tests/fleet.nix @@ -0,0 +1,73 @@ +import ./make-test.nix rec { + name = "simple"; + + nodes = { + node1 = + { config, pkgs, ... }: + { + services = { + etcd = { + enable = true; + listenPeerUrls = ["http://0.0.0.0:7001"]; + initialAdvertisePeerUrls = ["http://node1:7001"]; + initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"]; + }; + }; + + virtualisation.fleet = { + enable = true; + metadata.name = "node1"; + }; + + networking.firewall.allowedTCPPorts = [ 7001 ]; + }; + + node2 = + { config, pkgs, ... }: + { + services = { + etcd = { + enable = true; + listenPeerUrls = ["http://0.0.0.0:7001"]; + initialAdvertisePeerUrls = ["http://node2:7001"]; + initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"]; + }; + }; + + virtualisation.fleet = { + enable = true; + metadata.name = "node2"; + }; + + networking.firewall.allowedTCPPorts = [ 7001 ]; + }; + }; + + service = builtins.toFile "hello.service" '' + [Unit] + Description=Hello World + + [Service] + ExecStart=/bin/sh -c "while true; do echo \"Hello, world\"; /var/run/current-system/sw/bin/sleep 1; done" + + [X-Fleet] + MachineMetadata=name=node2 + ''; + + testScript = + '' + startAll; + $node1->waitForUnit("fleet.service"); + $node2->waitForUnit("fleet.service"); + + $node2->waitUntilSucceeds("fleetctl list-machines | grep node1"); + $node1->waitUntilSucceeds("fleetctl list-machines | grep node2"); + + $node1->succeed("cp ${service} hello.service && fleetctl submit hello.service"); + $node1->succeed("fleetctl list-unit-files | grep hello"); + $node1->succeed("fleetctl start hello.service"); + $node1->waitUntilSucceeds("fleetctl list-units | grep running"); + $node1->succeed("fleetctl stop hello.service"); + $node1->succeed("fleetctl destroy hello.service"); + ''; +} |