Support building on target nodes
This partially addresses #33, and allows Colmena to be used more easily on bandwidth-constrained hosts and macOS. With `deployment.buildOnTarget = true;` deployment works fine from macOS without designated builders, except when IFD is involved.
This commit is contained in:
parent
872f944743
commit
98897bf4de
15 changed files with 326 additions and 47 deletions
|
@ -67,6 +67,11 @@ let
|
|||
|
||||
See https://nixos.org/manual/nix/stable/#chap-distributed-builds
|
||||
for the machine specification format.
|
||||
|
||||
This option is ignored when builds are initiated on the remote nodes
|
||||
themselves via `deployment.buildOnTarget` or `--build-on-target`. To
|
||||
still use the Nix distributed build functionality, configure the
|
||||
builders on the target nodes with `nix.buildMachines`.
|
||||
'';
|
||||
default = null;
|
||||
apply = value: if value == null then null else toString value;
|
||||
|
@ -138,6 +143,26 @@ let
|
|||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
buildOnTarget = lib.mkOption {
|
||||
description = ''
|
||||
Whether to build the system profiles on the target node itself.
|
||||
|
||||
When enabled, Colmena will copy the derivation to the target
|
||||
node and initiate the build there. This avoids copying back the
|
||||
build results involved with the native distributed build
|
||||
feature. Furthermore, the `build` goal will be equivalent to
|
||||
the `push` goal. Since builds happen on the target node, the
|
||||
results are automatically "pushed" and won't exist in the local
|
||||
Nix store.
|
||||
|
||||
You can temporarily override per-node settings by passing
|
||||
`--build-on-target` (enable for all nodes) or
|
||||
`--no-build-on-target` (disable for all nodes) on the command
|
||||
line.
|
||||
'';
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
tags = lib.mkOption {
|
||||
description = ''
|
||||
A list of tags for the node.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue