lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

nixos/tests/kea: migrate to runTest

Part of #386873

+187 -185
+1 -1
nixos/tests/all-tests.nix
··· 575 575 kavita = handleTest ./kavita.nix {}; 576 576 kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {}; 577 577 kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {}; 578 - kea = handleTest ./kea.nix {}; 578 + kea = runTest ./kea.nix; 579 579 keepalived = handleTest ./keepalived.nix {}; 580 580 keepassxc = handleTest ./keepassxc.nix {}; 581 581 kerberos = handleTest ./kerberos/default.nix {};
+186 -184
nixos/tests/kea.nix
··· 5 5 # that the nameserver can resolve the clients fqdn to the correct IP 6 6 # address. 7 7 8 - import ./make-test-python.nix ( 9 - { pkgs, lib, ... }: 10 - { 11 - meta.maintainers = with lib.maintainers; [ hexa ]; 8 + { 9 + pkgs, 10 + lib, 11 + ... 12 + }: 13 + { 14 + meta.maintainers = with lib.maintainers; [ hexa ]; 12 15 13 - name = "kea"; 16 + name = "kea"; 14 17 15 - nodes = { 16 - router = 17 - { config, pkgs, ... }: 18 - { 19 - virtualisation.vlans = [ 1 ]; 18 + nodes = { 19 + router = 20 + { config, pkgs, ... }: 21 + { 22 + virtualisation.vlans = [ 1 ]; 20 23 21 - networking = { 22 - useDHCP = false; 23 - firewall.allowedUDPPorts = [ 67 ]; 24 - }; 24 + networking = { 25 + useDHCP = false; 26 + firewall.allowedUDPPorts = [ 67 ]; 27 + }; 25 28 26 - systemd.network = { 27 - enable = true; 28 - networks = { 29 - "01-eth1" = { 30 - name = "eth1"; 31 - networkConfig = { 32 - Address = "10.0.0.1/29"; 33 - }; 29 + systemd.network = { 30 + enable = true; 31 + networks = { 32 + "01-eth1" = { 33 + name = "eth1"; 34 + networkConfig = { 35 + Address = "10.0.0.1/29"; 34 36 }; 35 37 }; 36 38 }; 39 + }; 37 40 38 - services.kea.dhcp4 = { 39 - enable = true; 40 - settings = { 41 - valid-lifetime = 3600; 42 - renew-timer = 900; 43 - rebind-timer = 1800; 41 + services.kea.dhcp4 = { 42 + enable = true; 43 + settings = { 44 + valid-lifetime = 3600; 45 + renew-timer = 900; 46 + rebind-timer = 1800; 44 47 45 - lease-database = { 46 - type = "memfile"; 47 - persist = true; 48 - name = "/var/lib/kea/dhcp4.leases"; 49 - }; 48 + lease-database = { 49 + type = "memfile"; 50 + persist = true; 51 + name = "/var/lib/kea/dhcp4.leases"; 52 + }; 50 53 51 - control-socket = { 52 - socket-type = "unix"; 53 - socket-name = "/run/kea/dhcp4.sock"; 54 - }; 54 + control-socket = { 55 + socket-type = "unix"; 56 + socket-name = "/run/kea/dhcp4.sock"; 57 + }; 58 + 59 + interfaces-config = { 60 + dhcp-socket-type = "raw"; 61 + interfaces = [ 62 + "eth1" 63 + ]; 64 + }; 55 65 56 - interfaces-config = { 57 - dhcp-socket-type = "raw"; 58 - interfaces = [ 59 - "eth1" 66 + subnet4 = [ 67 + { 68 + id = 1; 69 + subnet = "10.0.0.0/29"; 70 + pools = [ 71 + { 72 + pool = "10.0.0.3 - 10.0.0.3"; 73 + } 60 74 ]; 61 - }; 75 + } 76 + ]; 77 + 78 + # Enable communication between dhcp4 and a local dhcp-ddns 79 + # instance. 80 + # https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html#ddns-for-dhcpv4 81 + dhcp-ddns = { 82 + enable-updates = true; 83 + }; 84 + 85 + ddns-send-updates = true; 86 + ddns-qualifying-suffix = "lan.nixos.test."; 87 + }; 88 + }; 62 89 63 - subnet4 = [ 90 + services.kea.dhcp-ddns = { 91 + enable = true; 92 + settings = { 93 + forward-ddns = { 94 + # Configure updates of a forward zone named `lan.nixos.test` 95 + # hosted at the nameserver at 10.0.0.2 96 + # https://kea.readthedocs.io/en/kea-2.2.0/arm/ddns.html#adding-forward-dns-servers 97 + ddns-domains = [ 64 98 { 65 - id = 1; 66 - subnet = "10.0.0.0/29"; 67 - pools = [ 99 + name = "lan.nixos.test."; 100 + # Use a TSIG key in production! 101 + key-name = ""; 102 + dns-servers = [ 68 103 { 69 - pool = "10.0.0.3 - 10.0.0.3"; 104 + ip-address = "10.0.0.2"; 105 + port = 53; 70 106 } 71 107 ]; 72 108 } 73 109 ]; 74 - 75 - # Enable communication between dhcp4 and a local dhcp-ddns 76 - # instance. 77 - # https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html#ddns-for-dhcpv4 78 - dhcp-ddns = { 79 - enable-updates = true; 80 - }; 81 - 82 - ddns-send-updates = true; 83 - ddns-qualifying-suffix = "lan.nixos.test."; 84 110 }; 85 111 }; 86 - 87 - services.kea.dhcp-ddns = { 88 - enable = true; 89 - settings = { 90 - forward-ddns = { 91 - # Configure updates of a forward zone named `lan.nixos.test` 92 - # hosted at the nameserver at 10.0.0.2 93 - # https://kea.readthedocs.io/en/kea-2.2.0/arm/ddns.html#adding-forward-dns-servers 94 - ddns-domains = [ 95 - { 96 - name = "lan.nixos.test."; 97 - # Use a TSIG key in production! 98 - key-name = ""; 99 - dns-servers = [ 100 - { 101 - ip-address = "10.0.0.2"; 102 - port = 53; 103 - } 104 - ]; 105 - } 106 - ]; 107 - }; 108 - }; 109 - }; 112 + }; 110 113 111 - services.kea.ctrl-agent = { 112 - enable = true; 113 - settings = { 114 - http-host = "127.0.0.1"; 115 - http-port = 8000; 116 - control-sockets.dhcp4 = { 117 - socket-type = "unix"; 118 - socket-name = "/run/kea/dhcp4.sock"; 119 - }; 114 + services.kea.ctrl-agent = { 115 + enable = true; 116 + settings = { 117 + http-host = "127.0.0.1"; 118 + http-port = 8000; 119 + control-sockets.dhcp4 = { 120 + socket-type = "unix"; 121 + socket-name = "/run/kea/dhcp4.sock"; 120 122 }; 121 123 }; 124 + }; 122 125 123 - services.prometheus.exporters.kea = { 124 - enable = true; 125 - controlSocketPaths = [ 126 - "http://127.0.0.1:8000" 127 - ]; 128 - }; 126 + services.prometheus.exporters.kea = { 127 + enable = true; 128 + controlSocketPaths = [ 129 + "http://127.0.0.1:8000" 130 + ]; 129 131 }; 132 + }; 130 133 131 - nameserver = 132 - { config, pkgs, ... }: 133 - { 134 - virtualisation.vlans = [ 1 ]; 134 + nameserver = 135 + { config, pkgs, ... }: 136 + { 137 + virtualisation.vlans = [ 1 ]; 135 138 136 - networking = { 137 - useDHCP = false; 138 - firewall.allowedUDPPorts = [ 53 ]; 139 - }; 139 + networking = { 140 + useDHCP = false; 141 + firewall.allowedUDPPorts = [ 53 ]; 142 + }; 140 143 141 - systemd.network = { 142 - enable = true; 143 - networks = { 144 - "01-eth1" = { 145 - name = "eth1"; 146 - networkConfig = { 147 - Address = "10.0.0.2/29"; 148 - }; 144 + systemd.network = { 145 + enable = true; 146 + networks = { 147 + "01-eth1" = { 148 + name = "eth1"; 149 + networkConfig = { 150 + Address = "10.0.0.2/29"; 149 151 }; 150 152 }; 151 153 }; 154 + }; 152 155 153 - services.resolved.enable = false; 156 + services.resolved.enable = false; 154 157 155 - # Set up an authoritative nameserver, serving the `lan.nixos.test` 156 - # zone and configure an ACL that allows dynamic updates from 157 - # the router's ip address. 158 - # This ACL is likely insufficient for production usage. Please 159 - # use TSIG keys. 160 - services.knot = 161 - let 162 - zone = pkgs.writeTextDir "lan.nixos.test.zone" '' 163 - @ SOA ns.nixos.test nox.nixos.test 0 86400 7200 3600000 172800 164 - @ NS nameserver 165 - nameserver A 10.0.0.3 166 - router A 10.0.0.1 167 - ''; 168 - zonesDir = pkgs.buildEnv { 169 - name = "knot-zones"; 170 - paths = [ zone ]; 171 - }; 172 - in 173 - { 174 - enable = true; 175 - extraArgs = [ 176 - "-v" 158 + # Set up an authoritative nameserver, serving the `lan.nixos.test` 159 + # zone and configure an ACL that allows dynamic updates from 160 + # the router's ip address. 161 + # This ACL is likely insufficient for production usage. Please 162 + # use TSIG keys. 163 + services.knot = 164 + let 165 + zone = pkgs.writeTextDir "lan.nixos.test.zone" '' 166 + @ SOA ns.nixos.test nox.nixos.test 0 86400 7200 3600000 172800 167 + @ NS nameserver 168 + nameserver A 10.0.0.3 169 + router A 10.0.0.1 170 + ''; 171 + zonesDir = pkgs.buildEnv { 172 + name = "knot-zones"; 173 + paths = [ zone ]; 174 + }; 175 + in 176 + { 177 + enable = true; 178 + extraArgs = [ 179 + "-v" 180 + ]; 181 + settings = { 182 + server.listen = [ 183 + "0.0.0.0@53" 177 184 ]; 178 - settings = { 179 - server.listen = [ 180 - "0.0.0.0@53" 181 - ]; 182 185 183 - log.syslog.any = "info"; 186 + log.syslog.any = "info"; 184 187 185 - acl.dhcp_ddns = { 186 - address = "10.0.0.1"; 187 - action = "update"; 188 - }; 188 + acl.dhcp_ddns = { 189 + address = "10.0.0.1"; 190 + action = "update"; 191 + }; 189 192 190 - template.default = { 191 - storage = zonesDir; 192 - zonefile-sync = "-1"; 193 - zonefile-load = "difference-no-serial"; 194 - journal-content = "all"; 195 - }; 193 + template.default = { 194 + storage = zonesDir; 195 + zonefile-sync = "-1"; 196 + zonefile-load = "difference-no-serial"; 197 + journal-content = "all"; 198 + }; 196 199 197 - zone."lan.nixos.test" = { 198 - file = "lan.nixos.test.zone"; 199 - acl = [ 200 - "dhcp_ddns" 201 - ]; 202 - }; 200 + zone."lan.nixos.test" = { 201 + file = "lan.nixos.test.zone"; 202 + acl = [ 203 + "dhcp_ddns" 204 + ]; 203 205 }; 204 206 }; 207 + }; 205 208 206 - }; 209 + }; 207 210 208 - client = 209 - { config, pkgs, ... }: 210 - { 211 - virtualisation.vlans = [ 1 ]; 212 - systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; 213 - networking = { 214 - useNetworkd = true; 215 - useDHCP = false; 216 - firewall.enable = false; 217 - interfaces.eth1.useDHCP = true; 218 - }; 211 + client = 212 + { config, pkgs, ... }: 213 + { 214 + virtualisation.vlans = [ 1 ]; 215 + systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug"; 216 + networking = { 217 + useNetworkd = true; 218 + useDHCP = false; 219 + firewall.enable = false; 220 + interfaces.eth1.useDHCP = true; 219 221 }; 220 - }; 221 - testScript = 222 - { ... }: 223 - '' 224 - start_all() 225 - router.wait_for_unit("kea-dhcp4-server.service") 226 - client.systemctl("start systemd-networkd-wait-online.service") 227 - client.wait_for_unit("systemd-networkd-wait-online.service") 228 - client.wait_until_succeeds("ping -c 5 10.0.0.1") 229 - router.wait_until_succeeds("ping -c 5 10.0.0.3") 230 - nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3") 231 - router.log(router.execute("curl 127.0.0.1:9547")[1]) 232 - router.succeed("curl --no-buffer 127.0.0.1:9547 | grep -qE '^kea_dhcp4_addresses_assigned_total.*1.0$'") 233 - ''; 234 - } 235 - ) 222 + }; 223 + }; 224 + testScript = 225 + { ... }: 226 + '' 227 + start_all() 228 + router.wait_for_unit("kea-dhcp4-server.service") 229 + client.systemctl("start systemd-networkd-wait-online.service") 230 + client.wait_for_unit("systemd-networkd-wait-online.service") 231 + client.wait_until_succeeds("ping -c 5 10.0.0.1") 232 + router.wait_until_succeeds("ping -c 5 10.0.0.3") 233 + nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3") 234 + router.log(router.execute("curl 127.0.0.1:9547")[1]) 235 + router.succeed("curl --no-buffer 127.0.0.1:9547 | grep -qE '^kea_dhcp4_addresses_assigned_total.*1.0$'") 236 + ''; 237 + }