Files
nixos/flake/nixos.nix
2025-05-16 13:37:21 +08:00

35 lines
1.1 KiB
Nix

{ inputs, localLib }:
let
singles = [ "nas" "pc" "vps4" "vps6" "one" "srv3" "test" "test-pc" "test-pc-vm" ];
cluster = { srv1 = 3; srv2 = 2; };
deviceModules = builtins.listToAttrs
(
(builtins.map
(n: { name = n; value = [ { config.nixos.model.hostname = n; } ../modules ../devices/${n} ../devices/cross ]; })
singles)
++ (builtins.concatLists (builtins.map
(cluster: builtins.map
(node:
{
name = "${cluster.name}-${node}";
value =
[
{ config.nixos.model.cluster = { clusterName = cluster.name; nodeName = node; }; }
../modules
../devices/${cluster.name}
../devices/${cluster.name}/${node}
../devices/cross
];
})
(builtins.genList (n: "node${builtins.toString n}") cluster.value))
(localLib.attrsToList cluster)))
);
in builtins.mapAttrs
(_: v: inputs.nixpkgs.lib.nixosSystem
{
system = "x86_64-linux";
specialArgs = { topInputs = inputs; inherit localLib; };
modules = localLib.mkModules v;
})
deviceModules