infra/nixos/hosts/default.nix

54 lines
1.2 KiB
Nix

{inputs, ...}: let
systems = makeSystems ["silver"];
inherit (inputs.nixpkgs) lib;
makeSystems = systems:
lib.listToAttrs (lib.map (name: {
inherit name;
value = import ./${name} {inherit inputs;};
})
systems);
makeNixosConfigurations = systems:
lib.mapAttrs (name: system:
lib.nixosSystem {
inherit (system) system;
modules =
system.modules
++ [
{
_module.args = {
inherit inputs;
};
}
../modules
];
})
systems;
makeDeployRsNodes = systems:
lib.mapAttrs
(name: system: {
hostname = system.deployment.host;
profiles.system = {
sshUser = system.deployment.user;
sshOpts = ["-p" "${toString system.deployment.port}"];
remoteBuild = system.deployment.buildOnTarget;
magicRollback = true;
path =
inputs.deploy-rs.lib.${system.system}.activate.nixos
inputs.self.nixosConfigurations.${name};
};
})
systems;
in {
nixosConfigurations = makeNixosConfigurations systems;
deploy.nodes = makeDeployRsNodes systems;
}