1{ lib, pkgs, ... }:
2{
3 name = "systemd-initrd-credentials";
4
5 nodes.machine =
6 { pkgs, ... }:
7 {
8 virtualisation = {
9 qemu.options = [
10 "-smbios type=11,value=io.systemd.credential:cred-smbios=secret-smbios"
11 ];
12 };
13
14 boot.initrd.availableKernelModules = [ "dmi_sysfs" ];
15
16 boot.kernelParams = [ "systemd.set_credential=cred-cmdline:secret-cmdline" ];
17
18 boot.initrd.systemd = {
19 enable = true;
20 };
21 };
22
23 testScript = ''
24 machine.wait_for_unit("multi-user.target")
25
26 # Check credential passed via kernel command line
27 assert "secret-cmdline" in machine.succeed("systemd-creds --system cat cred-cmdline")
28
29 # Check credential passed via SMBIOS
30 assert "secret-smbios" in machine.succeed("systemd-creds --system cat cred-smbios")
31 '';
32}