From 6becf62164a504a5cccc64cbaadc06a729c0077f Mon Sep 17 00:00:00 2001 From: Jermeiah S Date: Thu, 19 Jun 2025 16:07:55 -0400 Subject: [PATCH] feat: isolate deploy module --- modules/flake/deploy.nix | 33 +++++++++++++++++-------------- modules/nixos/common/deployrs.nix | 10 ++++++++++ modules/nixos/common/ssh.nix | 5 +---- 3 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 modules/nixos/common/deployrs.nix diff --git a/modules/flake/deploy.nix b/modules/flake/deploy.nix index 0af10de..d5f1f3e 100644 --- a/modules/flake/deploy.nix +++ b/modules/flake/deploy.nix @@ -6,21 +6,25 @@ let nixpkgs nixos-anywhere ; + inherit (nixpkgs) lib; genNode = hostName: nixosCfg: let - # inherit (self.hosts.${hostName}) address hostPlatform remoteBuild; - # inherit (deploy-rs.lib.${hostPlatform}) activate; - system = self.nixosConfigurations."${hostName}".pkgs.system; - address = self.nixosConfigurations."${hostName}".config.deploy.address; + deploy = nixosCfg.config.deploy; + system = nixosCfg.pkgs.system; in { - # inherit address; - hostname = address; - profiles.system.path = deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.${hostName}; + 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 = @@ -44,13 +48,12 @@ in deploy = deploy-rs.apps.${system}.deploy-rs; }; }; - flake = { - deploy = { - autoRollback = false; - magicRollback = true; - user = "root"; - remoteBuild = true; - nodes = lib.mapAttrs genNode (self.nixosConfigurations or { }); - }; + + flake.deploy = { + autoRollback = false; + magicRollback = true; + user = "root"; + remoteBuild = true; + nodes = lib.mapAttrs genNode deployableNodes; }; } diff --git a/modules/nixos/common/deployrs.nix b/modules/nixos/common/deployrs.nix new file mode 100644 index 0000000..40fbb0e --- /dev/null +++ b/modules/nixos/common/deployrs.nix @@ -0,0 +1,10 @@ +{ lib, config, ... }: +{ + options.deploy = { + enable = lib.mkEnableOption "enable deployrs module"; + address = lib.mkOption { + type = lib.types.str; + default = config.networking.hostName; + }; + }; +} diff --git a/modules/nixos/common/ssh.nix b/modules/nixos/common/ssh.nix index 8d7f703..d2de754 100644 --- a/modules/nixos/common/ssh.nix +++ b/modules/nixos/common/ssh.nix @@ -1,9 +1,6 @@ { lib, config, ... }: { - options.deploy.address = lib.mkOption { - type = lib.types.str; - default = config.networking.hostName; - }; + config = { services.openssh.enable = true; security = {