nixops/common/deployment.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