at 22.05-pre 1.8 kB view raw
1import ./make-test-python.nix ({ pkgs, lib, ...}: { 2 meta.maintainers = with lib.maintainers; [ hexa ]; 3 4 nodes = { 5 router = { config, pkgs, ... }: { 6 virtualisation.vlans = [ 1 ]; 7 8 networking = { 9 useNetworkd = true; 10 useDHCP = false; 11 firewall.allowedUDPPorts = [ 67 ]; 12 }; 13 14 systemd.network = { 15 networks = { 16 "01-eth1" = { 17 name = "eth1"; 18 networkConfig = { 19 Address = "10.0.0.1/30"; 20 }; 21 }; 22 }; 23 }; 24 25 services.kea.dhcp4 = { 26 enable = true; 27 settings = { 28 valid-lifetime = 3600; 29 renew-timer = 900; 30 rebind-timer = 1800; 31 32 lease-database = { 33 type = "memfile"; 34 persist = true; 35 name = "/var/lib/kea/dhcp4.leases"; 36 }; 37 38 interfaces-config = { 39 dhcp-socket-type = "raw"; 40 interfaces = [ 41 "eth1" 42 ]; 43 }; 44 45 subnet4 = [ { 46 subnet = "10.0.0.0/30"; 47 pools = [ { 48 pool = "10.0.0.2 - 10.0.0.2"; 49 } ]; 50 } ]; 51 }; 52 }; 53 }; 54 55 client = { config, pkgs, ... }: { 56 virtualisation.vlans = [ 1 ]; 57 systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; 58 networking = { 59 useNetworkd = true; 60 useDHCP = false; 61 firewall.enable = false; 62 interfaces.eth1.useDHCP = true; 63 }; 64 }; 65 }; 66 testScript = { ... }: '' 67 start_all() 68 router.wait_for_unit("kea-dhcp4-server.service") 69 client.wait_for_unit("systemd-networkd-wait-online.service") 70 client.wait_until_succeeds("ping -c 5 10.0.0.1") 71 router.wait_until_succeeds("ping -c 5 10.0.0.2") 72 ''; 73})