Commit eccf478
Changed files (3)
modules/flake/deploy-rs.nix
@@ -0,0 +1,59 @@
+{
+ den,
+ inputs,
+ self,
+ lib,
+ ...
+}: let
+ # TODO: Standalone Home Manager deploy profile
+ allHosts = lib.mergeAttrsList (lib.attrValues den.hosts);
+ deployableHosts =
+ lib.filterAttrs
+ (
+ n: v:
+ v.hasAspect den.aspects.core.openssh.access
+ && !(v.hasAspect den.aspects.core.installer)
+ )
+ allHosts;
+in {
+ flake-file.inputs.deploy-rs = {
+ url = "github:serokell/deploy-rs";
+ inputs.nixpkgs.follows = "nixpkgs";
+ inputs.flake-compat.follows = "flake-compat";
+ };
+
+ flake.deploy.nodes =
+ lib.mapAttrs (name: host: {
+ hostname = host.hostName;
+ profilesOrder = ["system"];
+ profiles.system = {
+ path =
+ inputs.deploy-rs.lib.${host.system}.activate.${host.class}
+ self."${host.class}Configurations".${name};
+ sshUser = "hpcesia";
+ user = "root";
+ interactiveSudo = true;
+ };
+ })
+ deployableHosts;
+
+ flake.checks =
+ builtins.mapAttrs (
+ system: deployLib: deployLib.deployChecks self.deploy
+ )
+ inputs.deploy-rs.lib;
+
+ den.schema.flake-parts.includes = [
+ {
+ devshell = {system, ...}: {
+ commands = [
+ {
+ name = "deploy";
+ package = inputs.deploy-rs.packages.${system}.deploy-rs;
+ help = "Deploy profiles to remote servers";
+ }
+ ];
+ };
+ }
+ ];
+}
flake.lock
@@ -104,6 +104,30 @@
"type": "github"
}
},
+ "deploy-rs": {
+ "inputs": {
+ "flake-compat": [
+ "flake-compat"
+ ],
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "utils": "utils"
+ },
+ "locked": {
+ "lastModified": 1781627888,
+ "narHash": "sha256-5yHuAh9k7rT7rtf3uRaXkiUyYvQE9oaCgzhprLm2mr8=",
+ "owner": "serokell",
+ "repo": "deploy-rs",
+ "rev": "6d3087eedff75a715b40c0e124ba15d2dd7bec28",
+ "type": "github"
+ },
+ "original": {
+ "owner": "serokell",
+ "repo": "deploy-rs",
+ "type": "github"
+ }
+ },
"devshell": {
"inputs": {
"nixpkgs": [
@@ -282,7 +306,7 @@
"nixpkgs": [
"nixpkgs"
],
- "systems": "systems",
+ "systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
@@ -419,6 +443,7 @@
"root": {
"inputs": {
"den": "den",
+ "deploy-rs": "deploy-rs",
"devshell": "devshell",
"disko": "disko",
"flake-compat": "flake-compat",
@@ -451,6 +476,21 @@
"type": "github"
}
},
+ "systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@@ -472,6 +512,24 @@
"type": "github"
}
},
+ "utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
"vaultix": {
"inputs": {
"advisory-db": "advisory-db",
flake.nix
@@ -7,6 +7,13 @@
inputs = {
den.url = "github:denful/den";
+ deploy-rs = {
+ url = "github:serokell/deploy-rs";
+ inputs = {
+ flake-compat.follows = "flake-compat";
+ nixpkgs.follows = "nixpkgs";
+ };
+ };
devshell = {
url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs";