about summary refs log tree commit diff
path: root/nixos/tests
diff options
context:
space:
mode:
authorJaka Hudoklin <jakahudoklin@gmail.com>2014-12-07 21:52:52 +0100
committerJaka Hudoklin <jakahudoklin@gmail.com>2014-12-07 21:52:52 +0100
commitb7092dc95cbb6d1c77f078c5dd87200cfe62eb3a (patch)
tree043e7a578014e7fbdbf0ab46fdb766b0f097bb65 /nixos/tests
parent8bb6fdc4f9c9bd6f61a62dfd57180d394ced6fc8 (diff)
downloadnixlib-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.nix73
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");
+    '';
+}