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
bd4493da73
nix: Move eval.nix tests into /hive
2021-12-18 14:35:06 -08:00
Zhaofeng Li
eebded1786
Build each node individually
...
Now nodes that take a long time to build won't bottleneck the
deployment of other nodes in the same chunk.
Fixes #47 .
2021-12-07 23:13:31 -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
5c84134af3
Refactor node names
2021-11-20 23:34:52 -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
6d6e33fcd4
nix: Remove unneeded ok()
2021-10-23 20:49:14 -07:00
Bjørn Forsman
4106a73e75
Allow selecting ssh user dynamically
...
...by setting `deployment.targetUser = null`.
This allows sharing a deployment file (hive.nix/flake.nix) between
multiple admins, without having to use a shared root account.
2021-10-23 15:06:56 +02:00
Zhaofeng Li
67db0e73d1
Add check for Flakes support
2021-06-29 01:02:43 -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
960af8f793
Add deployment.privilegeEscalationCommand
...
This adds a NixOps-equivalent option for non-root deployment
on remote hosts.
Fixes #27 .
2021-05-24 00:15:38 -07:00
Zhaofeng Li
16ccdbc700
Better handling of killed processes
2021-04-28 15:09:40 -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
Zhaofeng Li
dbd66d7c7c
Add initial set of tests
2021-02-11 13:27:21 -08:00
Justinas Stankevicius
4c7f8eb838
keyCommand: on error, do not upload key, report
2021-02-11 21:16:56 +02:00
Zhaofeng Li
2886662e18
nix: Key names can contain one path component only
...
Well, I changed my mind and this should be cleaner.
2021-02-10 18:17:55 -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
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
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
1125eb6d1b
nix: Suppress GC warnings
...
The derivations and built closures are intentionally not added as GC
roots. Maybe we can provide an option for those who want GC roots
to be created.
2020-12-29 12:10:00 -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
d99089ad6b
nix: Set profile only with certain goals
2020-12-19 16:34:24 -08:00
Zhaofeng Li
2ad5027cee
nix: Also set the system profile...
2020-12-19 16:28:34 -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