From ad6c2dea6a38e31e62ff41ecb1bcbc8d2bb58db4 Mon Sep 17 00:00:00 2001 From: Jens Nolte Date: Tue, 15 Dec 2020 02:40:12 +0100 Subject: nixos/nixos-container: Always apply extraVeth ip configuration Fixes that `containers..extraVeths.` configuration was not always applied. When configuring `containers..extraVeths.` and not configuring one of `containers..localAddress`, `.localAddress6`, `.hostAddress`, `.hostAddress6` or `.hostBridge` the veth was created, but otherwise no configuration (i.e. no ip) was applied. nixos-container always configures the primary veth (when `.localAddress` or `.hostAddress` is set) to be the containers default gateway, so this fix is required to create a veth in containers that use a different default gateway. To test this patch configure the following container and check if the addresses are applied: ``` containers.testveth = { extraVeths.testveth = { hostAddress = "192.168.13.2"; localAddress = "192.168.13.1"; }; config = {...}:{}; }; ``` --- nixos/modules/virtualisation/nixos-containers.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'nixos/modules/virtualisation/nixos-containers.nix') diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix index 26398afb3cf..757d73421b8 100644 --- a/nixos/modules/virtualisation/nixos-containers.nix +++ b/nixos/modules/virtualisation/nixos-containers.nix @@ -56,10 +56,10 @@ let ip -6 route add $HOST_ADDRESS6 dev eth0 ip -6 route add default via $HOST_ADDRESS6 fi - - ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} fi + ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} + # Start the regular stage 1 script. exec "$1" '' @@ -223,8 +223,8 @@ let ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"} ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"} fi - ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} fi + ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)} '' ); -- cgit 1.4.1