From ea7e0c3a35e94eec5242d9344db9bc4d54056497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 29 Dec 2019 21:44:21 +0000 Subject: writeDeploy: add crossDeploy argument --- README.md | 11 +++++++++++ pkgs/krops/default.nix | 3 +++ 2 files changed, 14 insertions(+) diff --git a/README.md b/README.md index 88bc7e4..58156b1 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,17 @@ This requires the building machine to have ssh access to the target. To build the system on the same machine, that runs the krops command, set up a local ssh service and set the build host to localhost. +### `crossDeploy` (optional, defaults to false) + +Use this option if target host architecture is not the same as the build host +architecture as set by `buildHost` i.e. deploying to aarch64 from a x86_64 +machine. Setting this option will disable building & running nix in the wrong +architecture when running `nixos-rebuild` on the deploying machine. It is +required to set `nixpkgs.localSystem.system` in the NixOS configuration to the +architecture of the target host. This option is only useful if the build host +also has remote builders that are capable of producing artifacts for the deploy +architecture. + ### `fast` (optional, defaults to false) Run `nixos-rebuild switch` immediately without building the system diff --git a/pkgs/krops/default.nix b/pkgs/krops/default.nix index 700066e..16ef936 100644 --- a/pkgs/krops/default.nix +++ b/pkgs/krops/default.nix @@ -48,6 +48,7 @@ in writeDeploy = name: { backup ? false, buildTarget ? null, + crossDeploy ? false, fast ? false, force ? false, source, @@ -70,6 +71,8 @@ in ''} ${rebuild ([ "switch" + ] ++ lib.optionals crossDeploy [ + "--no-build-nix" ] ++ lib.optionals (buildTarget' != target') [ "--build-host" "${buildTarget'.user}@${buildTarget'.host}" "--target-host" "${target'.user}@${target'.host}" -- cgit v1.2.3