Commit graph

35 commits

Author SHA1 Message Date
Zhaofeng Li
4037b61a2b apply: Fix typo in help 2022-06-03 23:51:32 -07:00
Zhaofeng Li
1be16d552d apply: Add --reboot flag
Fixes #46.
2022-05-22 02:15:33 -07:00
Zhaofeng Li
26b2203da9 Update deps 2022-03-07 22:02:04 -08:00
Zhaofeng Li
cf9a72a1d4 nix: Add initial nix-eval-job integration
A DrvSetEvaluator is able to evaluate attribute sets of derivations,
streaming results as they come in.
2022-01-22 17:50:53 -08:00
Zhaofeng Li
31fd1e49ac Move nix::{NixResult, NixError} to error::{ColmenaResult, ColmenaError} 2022-01-08 01:20:36 -08:00
Zhaofeng Li
da7907c874 General code cleanup 2022-01-05 14:01:05 -08:00
Zhaofeng Li
81e2982bbb Migrate to clap 0.3 2022-01-03 10:37:03 -08:00
Zhaofeng Li
98897bf4de 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.
2022-01-01 16:41:35 -08:00
Zhaofeng Li
7757a0e45d command/apply: Use verbose output when goal is "dry-activate"
It doesn't make sense to use the spinners since you can't see
the full output from the activation script.

Fixes #44.
2021-12-04 01:03:26 -08:00
Zhaofeng Li
a42e8c5bf0 Misc cleanup 2021-11-23 14:12:01 -08:00
Zhaofeng Li
0cb3f8e968 Redesign deployment process (again)
We now ship Events from different parts of the deployment process
via a channel to a job monitor.
2021-11-21 00:11:37 -08:00
Zhaofeng Li
c271780b63 Improve error reporting 2021-11-18 13:15:20 -08:00
Zhaofeng Li
0e0a1e84f0 Make flake resolution (slightly) less terrible
Instead of using `path:` which always copies the entire directory,
we now try to resolve the Flake URI using `nix flake metadata` which
may give us a `git+file:`.
2021-10-25 23:38:10 -07:00
Zhaofeng Li
e50ba82bf2 Add basic Flakes support
Co-authored-by: Alex Zero <joseph@marsden.space>
2021-06-29 01:02:43 -07:00
Zhaofeng Li
22ae18f5e7 Exit with non-zero code if any node fails to deploy
The exit codes are in flux and should not be relied upon.

Fixes #28.
2021-05-24 00:15:38 -07:00
Zhaofeng Li
99ba8db335
Merge pull request #21 from jasonrm/machines-file
eval.nix: Adds meta.machinesFile option that is passed to Nix as builder option
2021-05-07 16:25:36 -07:00
Jason R. McNeil
3ee97c2a76 apply: Add deployment.replaceUnknownProfiles option and --force-replace-unknown-profiles switch
If `deployment.replaceUnknownProfiles` is set to false, a diverged hive
config (in a shared git repo for example) won't result in accidentally
undoing another applied configuration profile.

The deployment option is set to true so that fiction is minimized from
aggressive garbage collection, first time profile application and low
contention hives.
2021-04-10 13:42:38 -07:00
Jason R. McNeil
e0465567b2 eval.nix: Adds meta.machinesFile option that is passed to Nix as builders argument 2021-04-09 23:54:13 -07:00
Zhaofeng Li
610a725ba2 Add --keep-result to create GC roots for profiles
This resembles the behavior of morph.

Reference: #18
2021-03-17 14:59:57 -07:00
Zhaofeng Li
9eae937b42 apply: Disable configuration of build process limit 2021-02-17 08:09:15 -08:00
Zhaofeng Li
d9d9bf48f6 apply.rs: Remove unused build limit flag 2021-02-09 22:33:45 -08:00
Zhaofeng Li
78a6825be6 Add exec command 2021-02-09 22:07:10 -08:00
Zhaofeng Li
1c9e7cdb83 Allow customization of SSH configurations 2021-02-09 21:02:00 -08:00
Zhaofeng Li
a2fa8f1da7 Clean up logging / progress display 2021-02-09 19:28:45 -08:00
Zhaofeng Li
8934726664 More fixes to key deployment and logging 2021-02-09 14:57:11 -08:00
Zhaofeng Li
84aa165aef Refactoring and deployment.keys implementation
More refactoring of the deployment process, as well as an initial
implementation of `deployment.keys`.

Fixes #2.
2021-02-08 19:00:29 -08:00
Zhaofeng Li
ade2095919 Remove unused --no-build-substitutes
Ended up not implementing this.
2021-01-24 17:26:50 -08:00
Zhaofeng Li
506b894be6 Redesign deployment process
Now evaluation can be automatically split into chunks based on available
RAM. All three stages of the deployment process (evaluate, build,
apply) can happen concurrently.

Fixes #1.
2021-01-24 14:08:48 -08:00
Zhaofeng Li
f3bf3dc492 Allow disabling --use-substitutes and --gzip during copying 2021-01-13 12:20:34 -08:00
Zhaofeng Li
2cb429ed8d Minor fixes to CLI help messages 2021-01-01 20:45:41 -08:00
Zhaofeng Li
60d6475897 Traverse up to find hive.nix by default, and other CLI ergonomics fixes 2020-12-29 12:02:50 -08:00
Zhaofeng Li
ed52e259aa Add support for --show-trace 2020-12-28 21:35:43 -08:00
Zhaofeng Li
45b6568164 Support per-node Nixpkgs overrides and local deployment
Also renamed the `network` key to `meta`.
2020-12-19 15:10:22 -08:00
Zhaofeng Li
d0ed138ef0 Refactoring and other stuff 2020-12-18 01:28:02 -08:00
Zhaofeng Li
e092ba5bb1 Initial commit 2020-12-15 20:23:02 -08:00