git.iko.soy/typeable/nixpkgs
on master help sign in
nixos/nixos-container: Always apply extraVeth ip configuration

Fixes that `containers.<name>.extraVeths.<name>` configuration was not always applied. When configuring `containers.<name>.extraVeths.<name>` and not configuring one of `containers.<name>.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 = {...}:{}; }; ```

commitad6c2dea6a38e31e62ff41ecb1bcbc8d2bb58db4 authorJens Nolte <git@queezle.net> dateTue 15 Dec 2020, 02:40 (6 years ago) parentc898def
1 file changed+3−3
nixos/modules/virtualisation/nixos-containers.nix+3−3
nixos/modules/virtualisation/nixos-containers.nix+3−3
@@ -56,10 +56,10 @@ let
5656 ip -6 route add $HOST_ADDRESS6 dev eth0
5757 ip -6 route add default via $HOST_ADDRESS6
5858 fi
59−
60− ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
6159 fi
6260
61+ ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
62+
6363 # Start the regular stage 1 script.
6464 exec "$1"
6565 ''
@@ -223,8 +223,8 @@ let
223223 ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"}
224224 ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"}
225225 fi
226− ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
227226 fi
227+ ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
228228 ''
229229 );
230230