51 lines
1.2 KiB
Nix
51 lines
1.2 KiB
Nix
|
# This test makes sure that lxd stops implicitly depending on iptables when
|
||
|
# user enabled nftables.
|
||
|
#
|
||
|
# It has been extracted from `lxd.nix` for clarity, and because switching from
|
||
|
# iptables to nftables requires a full reboot, which is a bit hard inside NixOS
|
||
|
# tests.
|
||
|
|
||
|
import ./make-test-python.nix ({ pkgs, ...} : {
|
||
|
name = "lxd-nftables";
|
||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||
|
maintainers = [ patryk27 ];
|
||
|
};
|
||
|
|
||
|
machine = { lib, ... }: {
|
||
|
virtualisation = {
|
||
|
lxd.enable = true;
|
||
|
};
|
||
|
|
||
|
networking = {
|
||
|
firewall.enable = false;
|
||
|
nftables.enable = true;
|
||
|
nftables.ruleset = ''
|
||
|
table inet filter {
|
||
|
chain incoming {
|
||
|
type filter hook input priority 0;
|
||
|
policy accept;
|
||
|
}
|
||
|
|
||
|
chain forward {
|
||
|
type filter hook forward priority 0;
|
||
|
policy accept;
|
||
|
}
|
||
|
|
||
|
chain output {
|
||
|
type filter hook output priority 0;
|
||
|
policy accept;
|
||
|
}
|
||
|
}
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
testScript = ''
|
||
|
machine.wait_for_unit("network.target")
|
||
|
|
||
|
with subtest("When nftables are enabled, lxd doesn't depend on iptables anymore"):
|
||
|
machine.succeed("lsmod | grep nf_tables")
|
||
|
machine.fail("lsmod | grep ip_tables")
|
||
|
'';
|
||
|
})
|