A new start
This commit is contained in:
commit
f4e2368893
93 changed files with 7621 additions and 0 deletions
51
lib/deploy/default.nix
Normal file
51
lib/deploy/default.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
{ lib, inputs }:
|
||||
|
||||
let
|
||||
inherit (inputs) deploy-rs;
|
||||
in
|
||||
rec {
|
||||
## Create deployment configuration for use with deploy-rs.
|
||||
##
|
||||
## ```nix
|
||||
## mkDeploy {
|
||||
## inherit self;
|
||||
## overrides = {
|
||||
## my-host.system.sudo = "doas -u";
|
||||
## };
|
||||
## }
|
||||
## ```
|
||||
##
|
||||
#@ { self: Flake, overrides: Attrs ? {} } -> Attrs
|
||||
mkDeploy = { self, overrides ? { } }:
|
||||
let
|
||||
hosts = self.nixosConfigurations or { };
|
||||
names = builtins.attrNames hosts;
|
||||
nodes = lib.foldl
|
||||
(result: name:
|
||||
let
|
||||
host = hosts.${name};
|
||||
user = host.config.metacfg.user.name or null;
|
||||
inherit (host.pkgs) system;
|
||||
in
|
||||
result // {
|
||||
${name} = (overrides.${name} or { }) // {
|
||||
hostname = overrides.${name}.hostname or "${name}";
|
||||
profiles = (overrides.${name}.profiles or { }) // {
|
||||
system = (overrides.${name}.profiles.system or { }) // {
|
||||
path = deploy-rs.lib.${system}.activate.nixos host;
|
||||
} // lib.optionalAttrs (user != null) {
|
||||
user = "root";
|
||||
sshUser = user;
|
||||
} // lib.optionalAttrs
|
||||
(host.config.metacfg.security.doas.enable or false)
|
||||
{
|
||||
sudo = "doas -u";
|
||||
};
|
||||
};
|
||||
};
|
||||
})
|
||||
{ }
|
||||
names;
|
||||
in
|
||||
{ inherit nodes; };
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue