50 lines
1.1 KiB
Nix
50 lines
1.1 KiB
Nix
{ deployment-hosts, description, ... }:
|
|
|
|
{ self, nixpkgs, fudo-nixos, fudo-secrets, ... }:
|
|
with nixpkgs.lib;
|
|
let
|
|
|
|
build-timestamp = self.sourceInfo.lastModified;
|
|
|
|
# helpers = import ./helpers.nix { lib = nixpkgs.lib; };
|
|
|
|
# syslib = import (fudo-nixos + /lib/system.nix) { lib = nixpkgs.lib; };
|
|
|
|
# networks = syslib.networks (fudo-nixos + /config/networks);
|
|
|
|
# deployment-hosts = getAttrs hostnames fudo-nixos.fudoHosts;
|
|
|
|
pkgs-for = system: import nixpkgs {
|
|
inherit system;
|
|
config = {
|
|
allowUnfree = true;
|
|
permittedInsecurePackages = [
|
|
"openssh-with-gssapi-8.4p1"
|
|
];
|
|
overlays = [
|
|
(import (fudo-pkgs + /overlay.nix))
|
|
(import (fudo-nixos + /lib/overlay.nix))
|
|
];
|
|
};
|
|
};
|
|
|
|
host-config = let
|
|
networks = fudo-nixos.fudoNetworks;
|
|
in import ./deployment-config.nix {
|
|
inherit build-timestamp networks pkgs-for;
|
|
};
|
|
|
|
in {
|
|
inherit nixpkgs;
|
|
|
|
network = {
|
|
inherit description;
|
|
enableRollback = true;
|
|
};
|
|
} // mapAttrs (hostname: hostOpts: {
|
|
imports = [
|
|
(host-config hostname hostOpts)
|
|
fudo-nixos.nixosConfigurations.${hostname}
|
|
];
|
|
}) deployment-hosts
|