Merge pull request #207163 from NixOS/rfc0125-improvements

nixos/activation/bootspec: make initrd optional, serialize system, precise extensions' type
This commit is contained in:
Ryan Lahfa
2022-12-23 00:43:29 +01:00
committed by GitHub
3 changed files with 32 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
#V1: {
system: string
init: string
initrd?: string
initrdSecrets?: string

View File

@@ -19,13 +19,15 @@ let
(builtins.toJSON
{
v1 = {
system = config.boot.kernelPackages.stdenv.hostPlatform.system;
kernel = "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}";
kernelParams = config.boot.kernelParams;
initrd = "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}";
initrdSecrets = "${config.system.build.initialRamdiskSecretAppender}/bin/append-initrd-secrets";
label = "NixOS ${config.system.nixos.codeName} ${config.system.nixos.label} (Linux ${config.boot.kernelPackages.kernel.modDirVersion})";
inherit (cfg) extensions;
} // lib.optionalAttrs config.boot.initrd.enable {
initrd = "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}";
initrdSecrets = "${config.system.build.initialRamdiskSecretAppender}/bin/append-initrd-secrets";
};
});
@@ -80,7 +82,7 @@ in
enable = lib.mkEnableOption (lib.mdDoc "Enable generation of RFC-0125 bootspec in $system/bootspec, e.g. /run/current-system/bootspec");
extensions = lib.mkOption {
type = lib.types.attrs;
type = lib.types.attrsOf lib.types.attrs; # <namespace>: { ...namespace-specific fields }
default = { };
description = lib.mdDoc ''
User-defined data that extends the bootspec document.