diff options
authorJörg Thalheim <joerg@thalheim.io>2019-12-29 21:44:21 +0000
committertv <tv@krebsco.de>2019-12-30 14:15:08 +0100
commitea7e0c3a35e94eec5242d9344db9bc4d54056497 (patch)
parent402c9cac2595f2219efb8bb51becd337bbcb7965 (diff)
writeDeploy: add crossDeploy argument
2 files changed, 14 insertions, 0 deletions
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
### `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,
@@ -70,6 +71,8 @@ in
${rebuild ([
+ ] ++ lib.optionals crossDeploy [
+ "--no-build-nix"
] ++ lib.optionals (buildTarget' != target') [
"--build-host" "${buildTarget'.user}@${buildTarget'.host}"
"--target-host" "${target'.user}@${target'.host}"