infra/nixos/hosts/default.nix

52 lines
1.1 KiB
Nix
Raw Normal View History

2024-10-13 15:16:39 -05:00
{inputs, ...}: let
2025-01-20 16:05:01 -06:00
systems = ["silver"];
2024-10-13 15:16:39 -05:00
inherit (inputs.nixpkgs) lib;
makeNixosConfigurations = systems:
2025-01-20 16:05:01 -06:00
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
];
};
2024-10-13 15:16:39 -05:00
})
2025-01-20 16:05:01 -06:00
systems);
2024-10-13 15:16:39 -05:00
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;
}