nixos/kernel: replace boot.isContainer with boot.kernel.enable

Changed files
+7 -2
nixos
modules
system
activation
boot
virtualisation
+1 -1
nixos/modules/system/activation/top-level.nix
···
# Containers don't have their own kernel or initrd. They boot
# directly into stage 2.
-
${optionalString (!config.boot.isContainer) ''
+
${optionalString config.boot.kernel.enable ''
if [ ! -f ${kernelPath} ]; then
echo "The bootloader cannot find the proper kernel image."
echo "(Expecting ${kernelPath})"
+4 -1
nixos/modules/system/boot/kernel.nix
···
###### interface
options = {
+
boot.kernel.enable = mkEnableOption (lib.mdDoc "the Linux kernel. This is useful for systemd-like containers which do not require a kernel.") // {
+
default = true;
+
};
boot.kernel.features = mkOption {
default = {};
···
];
})
-
(mkIf (!config.boot.isContainer) {
+
(mkIf config.boot.kernel.enable {
system.build = { inherit kernel; };
system.modulesTree = [ kernel ] ++ config.boot.extraModulePackages;
+2
nixos/modules/virtualisation/container-config.nix
···
config = mkIf config.boot.isContainer {
# Disable some features that are not useful in a container.
+
boot.kernel.enable = false;
+
nix.optimise.automatic = mkDefault false; # the store is host managed
powerManagement.enable = mkDefault false;
documentation.nixos.enable = mkDefault false;