diff options
Diffstat (limited to 'nixos/tests/flannel.nix')
-rw-r--r-- | nixos/tests/flannel.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/nixos/tests/flannel.nix b/nixos/tests/flannel.nix new file mode 100644 index 00000000000..7615732c20c --- /dev/null +++ b/nixos/tests/flannel.nix @@ -0,0 +1,57 @@ +import ./make-test-python.nix ({ lib, ...} : { + name = "flannel"; + + meta = with lib.maintainers; { + maintainers = [ offline ]; + }; + + nodes = let + flannelConfig = { pkgs, ... } : { + services.flannel = { + enable = true; + backend = { + Type = "udp"; + Port = 8285; + }; + network = "10.1.0.0/16"; + iface = "eth1"; + etcd.endpoints = ["http://etcd:2379"]; + }; + + networking.firewall.allowedUDPPorts = [ 8285 ]; + }; + in { + etcd = { ... }: { + services = { + etcd = { + enable = true; + listenClientUrls = ["http://0.0.0.0:2379"]; # requires ip-address for binding + listenPeerUrls = ["http://0.0.0.0:2380"]; # requires ip-address for binding + advertiseClientUrls = ["http://etcd:2379"]; + initialAdvertisePeerUrls = ["http://etcd:2379"]; + initialCluster = ["etcd=http://etcd:2379"]; + }; + }; + + networking.firewall.allowedTCPPorts = [ 2379 ]; + }; + + node1 = flannelConfig; + node2 = flannelConfig; + }; + + testScript = '' + start_all() + + node1.wait_for_unit("flannel.service") + node2.wait_for_unit("flannel.service") + + node1.wait_until_succeeds("ip l show dev flannel0") + ip1 = node1.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'") + node2.wait_until_succeeds("ip l show dev flannel0") + ip2 = node2.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'") + + node1.wait_until_succeeds(f"ping -c 1 {ip2}") + node2.wait_until_succeeds(f"ping -c 1 {ip1}") + ''; +}) |