summary refs log tree commit diff
path: root/nixos/tests/podman/dnsname.nix
blob: 3768ae79e0676cf1afa7a2f38c263feb812aa4c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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")

    '';
  }
)