let krops = builtins.fetchGit { url = "https://cgit.krebsco.de/krops/"; }; lib = import "${krops}/lib"; pkgs = import "${krops}/pkgs" { }; source = _name: lib.evalSource [ { machine-config.file = toString ./.; } ]; command = targetPath: '' nix-shell -p git --run ' nix build '${targetPath}/machine-config#nixosConfigurations.$(hostname).config.system.build.toplevel' && \ nixos-rebuild switch --show-trace --build-host builder@loki --flake ${targetPath}/machine-config ' ''; createHost = name: target: pkgs.krops.writeCommand "deploy-${name}" { inherit command; source = source name; target = lib.mkTarget target; }; in { # Deployments # Run with: # nix-build ./krops.nix -A loki && ./result loki = createHost "loki" "root@loki"; drone = createHost "drone" "root@10.0.0.202"; proxy = createHost "proxy" "root@10.0.0.251"; gitea = createHost "gitea" "root@10.0.0.201"; }