at master 1.2 kB view raw
1{ lib, ... }: 2{ 3 name = "containers-require-bind-mounts"; 4 meta.maintainers = with lib.maintainers; [ kira-bruneau ]; 5 6 nodes.machine = { 7 containers.require-bind-mounts = { 8 bindMounts = { 9 "/srv/data" = { }; 10 }; 11 config = { }; 12 }; 13 14 virtualisation.fileSystems = { 15 "/srv/data" = { 16 fsType = "tmpfs"; 17 options = [ "noauto" ]; 18 }; 19 }; 20 }; 21 22 testScript = '' 23 machine.wait_for_unit("default.target") 24 25 assert "require-bind-mounts" in machine.succeed("nixos-container list") 26 assert "down" in machine.succeed("nixos-container status require-bind-mounts") 27 assert "inactive" in machine.fail("systemctl is-active srv-data.mount") 28 29 with subtest("bind mount host paths must be mounted to run container"): 30 machine.succeed("nixos-container start require-bind-mounts") 31 assert "up" in machine.succeed("nixos-container status require-bind-mounts") 32 assert "active" in machine.succeed("systemctl status srv-data.mount") 33 34 machine.succeed("systemctl stop srv-data.mount") 35 assert "down" in machine.succeed("nixos-container status require-bind-mounts") 36 assert "inactive" in machine.fail("systemctl is-active srv-data.mount") 37 ''; 38}