about summary refs log tree commit diff
path: root/labernix/tests/heinrich.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-03-18 01:12:15 +0100
committeraszlig <aszlig@redmoonstudios.org>2015-03-18 01:12:15 +0100
commit692b0772223074133c5fe74d84ea727fb00499e3 (patch)
treed3d20d087665377ef0f7622e66bd6557fbaebcc9 /labernix/tests/heinrich.nix
parent0182c32769f18926489847bb21636e7b394b5b30 (diff)
parent6b857eebbafba660cc57b19bd11f6484c91f8fd7 (diff)
Subtree-merge labernix into vuizvui.
This is the first step of generalizing the configurations into a big
repository where people can track their NixOS configurations and write
modules.

In the next few steps I'm going to gradually refactor everything in
labernix/ into the main tree and factor out personal stuff into separate
namespaces.

Also, this will involve a license change from APACHE-2.0 to GPL-3.0.
Diffstat (limited to 'labernix/tests/heinrich.nix')
-rw-r--r--labernix/tests/heinrich.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/labernix/tests/heinrich.nix b/labernix/tests/heinrich.nix
new file mode 100644
index 00000000..c524835e
--- /dev/null
+++ b/labernix/tests/heinrich.nix
@@ -0,0 +1,51 @@
+import ./make-test.nix {
+  name = "heinrich";
+
+  nodes = let
+    common = { lib, ... }: {
+      networking.useNetworkd = true;
+      systemd.network.netdevs."40-eth0".netdevConfig = {
+        Name = "eth0";
+        Kind = "dummy";
+      };
+    };
+  in {
+    heinrich = {
+      imports = [ common ../machines/heinrich.nix ];
+      virtualisation.vlans = [ 1 8 14 ];
+      heinrich.internalInterface = "eth1";
+      heinrich.externalInterface = "eth2";
+    };
+    hotelturm = { lib, ... }: {
+      imports = [ common ];
+      virtualisation.vlans = [ 8 ];
+      networking.useDHCP = false;
+      networking.interfaces.eth1.ip4 = lib.singleton {
+        address = "10.11.77.16";
+        prefixLength = 24;
+      };
+    };
+    moritz = { lib, ... }: {
+      imports = [ common ];
+      virtualisation.vlans = [ 14 ];
+      networking.useDHCP = false;
+      networking.interfaces.eth1.ip4 = lib.singleton {
+        address = "192.168.0.1";
+        prefixLength = 24;
+      };
+    };
+    client = {
+      imports = [ common ];
+      virtualisation.vlans = [ 1 ];
+    };
+  };
+
+  testScript = ''
+    startAll;
+    $heinrich->waitForUnit("dnsmasq.service");
+    $client->waitForUnit("network-interfaces.target");
+    $client->waitForUnit("network.target");
+
+    $client->succeed("ip addr >&2");
+  '';
+}