at 23.05-pre 1.4 kB view raw
1import ../make-test-python.nix ( 2 { pkgs, lib, ... }: 3 let 4 inherit (pkgs) writeTextDir python3 curl; 5 webroot = writeTextDir "index.html" "<h1>Hi</h1>"; 6 in 7 { 8 name = "podman-dnsname"; 9 meta = { 10 maintainers = with lib.maintainers; [ roberth ] ++ lib.teams.podman.members; 11 }; 12 13 nodes = { 14 podman = { pkgs, ... }: { 15 virtualisation.podman.enable = true; 16 virtualisation.podman.defaultNetwork.dnsname.enable = true; 17 }; 18 }; 19 20 testScript = '' 21 podman.wait_for_unit("sockets.target") 22 23 with subtest("DNS works"): # also tests inter-container tcp routing 24 podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg") 25 podman.succeed( 26 "podman run -d --name=webserver -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin -w ${webroot} scratchimg ${python3}/bin/python -m http.server 8000" 27 ) 28 podman.succeed("podman ps | grep webserver") 29 podman.succeed(""" 30 for i in `seq 0 120`; do 31 podman run --rm --name=client -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg ${curl}/bin/curl http://webserver:8000 >/dev/console \ 32 && exit 0 33 sleep 0.5 34 done 35 exit 1 36 """) 37 podman.succeed("podman stop webserver") 38 podman.succeed("podman rm webserver") 39 40 ''; 41 } 42)