infra/nixos/hosts/default.nix

52 lines
1.1 KiB
Nix

{inputs, ...}: let
systems = ["silver"];
inherit (inputs.nixpkgs) lib;
makeNixosConfigurations = systems:
lib.listToAttrs (lib.map
(name: let
system = import ./${name} {inherit inputs;};
in {
inherit name;
value = 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;
}