Merge pull request 'switch to nixos-facter for hardware-config' (#2747) from switch-to-nixos-facter into main

Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/2747
This commit is contained in:
Mic92
2025-01-15 13:59:49 +00:00
4 changed files with 15 additions and 17 deletions

View File

@@ -126,9 +126,9 @@
client.succeed("cp -r ${../..} test-flake && chmod -R +w test-flake")
client.fail("test -f test-flake/machines/test-install-machine/hardware-configuration.nix")
client.succeed("clan machines update-hardware-config --flake test-flake test-install-machine root@installer >&2")
client.succeed("test -f test-flake/machines/test-install-machine/hardware-configuration.nix")
client.succeed("clan machines update-hardware-config --backend nixos-facter --flake test-flake test-install-machine root@installer>&2")
client.succeed("test -f test-flake/machines/test-install-machine/facter.json")
client.succeed("clan machines update-hardware-config --backend nixos-generate-config --flake test-flake test-install-machine root@installer>&2")
client.succeed("test -f test-flake/machines/test-install-machine/hardware-configuration.nix")
client.succeed("clan machines install --debug --flake ${../..} --yes test-install-machine --target-host root@installer >&2")
try:
installer.shutdown()

View File

@@ -163,7 +163,8 @@ replace `[MACHINE_NAME]` with the name of the machine i.e. `jon` and `[HOSTNAME]
clan machines update-hardware-config jon
```
This command connects to the ip configured in the previous step, runs `nixos-generate-config` to detect hardware configurations (excluding filesystems), and writes them to `machines/jon/hardware-configuration.nix`.
This command connects to the ip configured in the previous step, runs [nixos-facter](https://github.com/nix-community/nixos-facter)
to detect hardware configurations (excluding filesystems), and writes them to `machines/jon/facter.json`.
### Step 3: Custom Disk Formatting

View File

@@ -7,7 +7,6 @@ let
inherit (lib)
filterAttrs
flatten
flip
mapAttrsToList
;
in
@@ -18,20 +17,18 @@ in
let
relevantFiles =
generator:
flip filterAttrs generator.files (_name: f: f.secret && f.deploy && (f.neededFor != "activation"));
filterAttrs (_name: f: f.secret && f.deploy && (f.neededFor != "activation")) generator.files;
allFiles = flatten (
flip mapAttrsToList vars.generators (
mapAttrsToList (
gen_name: generator:
flip mapAttrsToList (relevantFiles generator) (
fname: file: {
mapAttrsToList (fname: file: {
name = fname;
generator = gen_name;
neededForUsers = file.neededFor == "users";
inherit (generator) share;
inherit (file) owner group;
}
)
)
}) (relevantFiles generator)
) vars.generators
);
in
allFiles;

View File

@@ -237,5 +237,5 @@ def register_update_hardware_config(parser: argparse.ArgumentParser) -> None:
"--backend",
help="The type of hardware report to generate.",
choices=["nixos-generate-config", "nixos-facter"],
default="nixos-generate-config",
default="nixos-facter",
)