let krops = builtins.fetchGit { url = "https://cgit.krebsco.de/krops/"; }; lib = import "${krops}/lib"; pkgs = import "${krops}/pkgs" { }; source = machine: lib.evalSource [{ config.file = toString ./machines; nixos-config.symlink = "config/${machine}/configuration.nix"; nixpkgs.git = { clean.exclude = [ "/.version-suffix" ]; ref = "973910f5c31b9ba6c171c33a8bd7199990b14c72"; # nixos-21.05 url = "https://github.com/NixOS/nixpkgs"; }; }]; mkTestConfig = hostname: { name = "test-${hostname}"; value = pkgs.krops.writeTest "test-${hostname}" { source = source hostname; target = lib.mkTarget { host = "localhost"; path = "/tmp/src"; }; force = true; # force create the sentinel file. }; }; mkTestsConfig = hostnames: builtins.listToAttrs (map mkTestConfig hostnames); mkDeploy = hostname: target: { ${hostname} = pkgs.krops.writeDeploy "deploy-${hostname}" { source = source hostname; inherit target; }; }; in {} // mkDeploy "core-services-01" "root@core01.rz.ens.wtf" // mkDeploy "remote-builder-01" "root@nix01.builders.rz.ens.wtf" // mkDeploy "public-cof" "root@beta.rz.ens.wtf" // mkTestsConfig [ "core-services-01" "remote-builder-01" "public-cof" ]