writeDeploy: add crossDeploy argument

This commit is contained in:
Jörg Thalheim 2019-12-29 21:44:21 +00:00 committed by tv
parent 402c9cac25
commit ea7e0c3a35
2 changed files with 14 additions and 0 deletions

View File

@ -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

View File

@ -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}"