nixos/boot/initrd-network: add option to enable udhcpc (#240406)
In some setups, and especially with sytemd-networkd becoming more widely used, networking.useDHCP is set to false. Despite this, it may be useful to have dhcp in the initramfs.
This commit is contained in:
parent
70bd808e81
commit
9d78971007
2 changed files with 18 additions and 5 deletions
|
@ -150,6 +150,8 @@ The module update takes care of the new config syntax and the data itself (user
|
|||
|
||||
- `wrapHelm` now exposes `passthru.pluginsDir` which can be passed to `helmfile`. For convenience, a top-level package `helmfile-wrapped` has been added, which inherits `passthru.pluginsDir` from `kubernetes-helm-wrapped`. See [#217768](https://github.com/NixOS/nixpkgs/issues/217768) for details.
|
||||
|
||||
- `boot.initrd.network.udhcp.enable` allows control over dhcp during stage 1 regardless of what `networking.useDHCP` is set to.
|
||||
|
||||
## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals}
|
||||
|
||||
- The `qemu-vm.nix` module by default now identifies block devices via
|
||||
|
|
|
@ -7,8 +7,8 @@ let
|
|||
cfg = config.boot.initrd.network;
|
||||
|
||||
dhcpInterfaces = lib.attrNames (lib.filterAttrs (iface: v: v.useDHCP == true) (config.networking.interfaces or {}));
|
||||
doDhcp = config.networking.useDHCP || dhcpInterfaces != [];
|
||||
dhcpIfShellExpr = if config.networking.useDHCP
|
||||
doDhcp = cfg.udhcpc.enable || dhcpInterfaces != [];
|
||||
dhcpIfShellExpr = if config.networking.useDHCP || cfg.udhcpc.enable
|
||||
then "$(ls /sys/class/net/ | grep -v ^lo$)"
|
||||
else lib.concatMapStringsSep " " lib.escapeShellArg dhcpInterfaces;
|
||||
|
||||
|
@ -79,13 +79,24 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
boot.initrd.network.udhcpc.enable = mkOption {
|
||||
default = config.networking.useDHCP;
|
||||
defaultText = "networking.useDHCP";
|
||||
type = types.bool;
|
||||
description = lib.mdDoc ''
|
||||
Enables the udhcpc service during stage 1 of the boot process. This
|
||||
defaults to {option}`networking.useDHCP`. Therefore, this useful if
|
||||
useDHCP is off but the initramfs should do dhcp.
|
||||
'';
|
||||
};
|
||||
|
||||
boot.initrd.network.udhcpc.extraArgs = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
description = lib.mdDoc ''
|
||||
Additional command-line arguments passed verbatim to udhcpc if
|
||||
{option}`boot.initrd.network.enable` and {option}`networking.useDHCP`
|
||||
are enabled.
|
||||
Additional command-line arguments passed verbatim to
|
||||
udhcpc if {option}`boot.initrd.network.enable` and
|
||||
{option}`boot.initrd.network.udhcpc.enable` are enabled.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue