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
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