43 lines
1.4 KiB
Nix
43 lines
1.4 KiB
Nix
|
import ./make-test-python.nix (
|
||
|
{ pkgs, lib, ... }:
|
||
|
let
|
||
|
inherit (pkgs) writeTextDir python3 curl;
|
||
|
webroot = writeTextDir "index.html" "<h1>Hi</h1>";
|
||
|
in
|
||
|
{
|
||
|
name = "podman-dnsname";
|
||
|
meta = {
|
||
|
maintainers = with lib.maintainers; [ roberth ] ++ lib.teams.podman.members;
|
||
|
};
|
||
|
|
||
|
nodes = {
|
||
|
podman = { pkgs, ... }: {
|
||
|
virtualisation.podman.enable = true;
|
||
|
virtualisation.podman.defaultNetwork.dnsname.enable = true;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
testScript = ''
|
||
|
podman.wait_for_unit("sockets.target")
|
||
|
|
||
|
with subtest("DNS works"): # also tests inter-container tcp routing
|
||
|
podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
|
||
|
podman.succeed(
|
||
|
"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"
|
||
|
)
|
||
|
podman.succeed("podman ps | grep webserver")
|
||
|
podman.succeed("""
|
||
|
for i in `seq 0 120`; do
|
||
|
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 \
|
||
|
&& exit 0
|
||
|
sleep 0.5
|
||
|
done
|
||
|
exit 1
|
||
|
""")
|
||
|
podman.succeed("podman stop webserver")
|
||
|
podman.succeed("podman rm webserver")
|
||
|
|
||
|
'';
|
||
|
}
|
||
|
)
|