Nixos-Configuration/modules/flake/deploy.nix
Jermeiah S a9d7eb9cda
All checks were successful
/ check (push) Successful in 1m1s
/ deploy (push) Successful in 3m5s
test: should now build local [deploy]
2025-06-25 21:16:33 -04:00

59 lines
1.2 KiB
Nix

{ inputs, ... }:
let
inherit (inputs)
self
deploy-rs
nixpkgs
nixos-anywhere
;
inherit (nixpkgs) lib;
genNode =
hostName: nixosCfg:
let
deploy = nixosCfg.config.deploy;
system = nixosCfg.pkgs.system;
in
{
hostname = deploy.address;
profiles.system.path = deploy-rs.lib.${system}.activate.nixos nixosCfg;
};
# Filter out nodes where deploy.enable != true
deployableNodes = lib.filterAttrs (hostName: nixosCfg: nixosCfg.config.deploy.enable or false) (
self.nixosConfigurations or { }
);
in
{
perSystem =
{
system,
...
}:
{
apps = rec {
default = deploy;
# secrets = {
# type = "app";
# program = "${agenix.packages.${system}.agenix}/bin/agenix";
# meta.description = "";
# };
install = {
type = "app";
program = "${nixos-anywhere.packages.${system}.nixos-anywhere}/bin/nixos-anywhere";
meta.description = "";
};
deploy = deploy-rs.apps.${system}.deploy-rs;
};
};
flake.deploy = {
autoRollback = false;
magicRollback = true;
user = "root";
# remoteBuild = true;
nodes = lib.mapAttrs genNode deployableNodes;
};
}