Commit 7fc77ff
Changed files (5)
modules
flake
gen-configuration
hosts
chaser-pardofelis
modules/flake/gen-configuration/deploy-rs.nix
@@ -0,0 +1,47 @@
+{
+ lib,
+ config,
+ inputs,
+ self,
+ ...
+}: let
+ prefix = config.flake.meta.host.prefix;
+ hostsMeta = config.flake.meta.host.hosts;
+ collectHostsModules = modules:
+ lib.filterAttrs
+ (name: _:
+ (lib.hasPrefix prefix name)
+ && (hostsMeta.${lib.removePrefix prefix name}.deploy))
+ modules;
+in {
+ flake.deploy.nodes =
+ lib.pipe
+ (collectHostsModules config.flake.modules.nixos)
+ [
+ (lib.mapAttrs' (
+ name: value: {
+ name = lib.removePrefix prefix name;
+ inherit value;
+ }
+ ))
+ (lib.mapAttrs' (
+ name: _: {
+ inherit name;
+ value = {
+ hostName = name;
+ profiles.system = {
+ user = "root";
+ path =
+ inputs.deploy-rs.lib.${hostsMeta.${name}.system}.activate.nixos
+ self.nixosConfigurations.${name};
+ };
+ };
+ }
+ ))
+ ];
+ flake.checks =
+ builtins.mapAttrs (
+ system: deployLib: deployLib.deployChecks self.deploy
+ )
+ inputs.deploy-rs.lib;
+}
modules/flake/meta.nix
@@ -26,6 +26,10 @@
type = types.str;
description = "Public host key of the host.";
};
+ deploy = lib.mkEnableOption {
+ default = false;
+ description = "Whether to deploy the host using deploy-rs.";
+ };
};
};
modules/hosts/chaser-pardofelis/default.nix
@@ -6,11 +6,13 @@
flake.meta.host.hosts.pardofelis = {
system = "x86_64-linux";
hostPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEuT/WkeA7btTeATmWJ2O9f/A6FI0Gl/1KjPGfHbWD5C root@pardofelis";
+ deploy = true;
};
flake.modules.nixos."hosts/pardofelis" = {
imports =
(with config.flake.modules.nixos; [
core
+ user-hpcesia
user-root
])
++ (
flake.lock
@@ -57,6 +57,28 @@
"type": "github"
}
},
+ "deploy-rs": {
+ "inputs": {
+ "flake-compat": "flake-compat_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "utils": "utils"
+ },
+ "locked": {
+ "lastModified": 1756719547,
+ "narHash": "sha256-N9gBKUmjwRKPxAafXEk1EGadfk2qDZPBQp4vXWPHINQ=",
+ "owner": "serokell",
+ "repo": "deploy-rs",
+ "rev": "125ae9e3ecf62fb2c0fd4f2d894eb971f1ecaed2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "serokell",
+ "repo": "deploy-rs",
+ "type": "github"
+ }
+ },
"disko": {
"inputs": {
"nixpkgs": [
@@ -114,6 +136,22 @@
}
},
"flake-compat_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1733328505,
+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
@@ -205,7 +243,7 @@
},
"flake-utils_2": {
"inputs": {
- "systems": "systems"
+ "systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
@@ -536,7 +574,7 @@
},
"pre-commit-hooks": {
"inputs": {
- "flake-compat": "flake-compat_2",
+ "flake-compat": "flake-compat_3",
"gitignore": "gitignore",
"nixpkgs": [
"vaultix",
@@ -562,7 +600,7 @@
"nixpkgs": [
"nixpkgs"
],
- "utils": "utils"
+ "utils": "utils_2"
},
"locked": {
"lastModified": 1758268340,
@@ -582,6 +620,7 @@
"inputs": {
"catppuccin": "catppuccin",
"colmena": "colmena",
+ "deploy-rs": "deploy-rs",
"disko": "disko",
"distro-grub-themes": "distro-grub-themes",
"flake-parts": "flake-parts",
@@ -696,7 +735,40 @@
"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"
+ }
+ },
"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"
+ }
+ },
+ "utils_2": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
flake.nix
@@ -7,6 +7,9 @@
colmena.url = "github:zhaofengli/colmena";
colmena.inputs.nixpkgs.follows = "nixpkgs";
+ deploy-rs.url = "github:serokell/deploy-rs";
+ deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
+
disko.url = "github:nix-community/disko/v1.11.0";
disko.inputs.nixpkgs.follows = "nixpkgs";