Commit graph

253 commits

Author SHA1 Message Date
Zhaofeng Li
08f9caa24c Start work on 0.3.0 2021-11-18 15:41:39 -08:00
Zhaofeng Li
dd66ce30e0
Release 0.2.0
This is release 0.2.0, the first stable release of Colmena!

---

Colmena is a simple, stateless NixOS deployment tool modeled
after NixOps and morph. In particular, it is built from the
ground up to support parallelization of the steps in the
deployment process.

This release contains the following features:

- Node Tagging
- Local Deployment
- Secrets
- Ad Hoc Evaluation
- Nix Flakes Support
- Parallelism

We now have a User Manual at <https://zhaofengli.github.io/colmena/0.2>
containing tutorials, sample configurations as well as a
complete listing of supported deployment options.

Signed-off-by: Zhaofeng Li <hello@zhaofeng.li>
2021-11-18 15:41:11 -08:00
Zhaofeng Li
65a8cd5c87 flake.lock: Update nixpkgs 2021-11-18 15:41:02 -08:00
Zhaofeng Li
47ccc6c9c4 nix/info.rs: Update message about nixUnstable for 21.11 2021-11-18 15:41:02 -08:00
Zhaofeng Li
5c96044ffa .github: Fix wrong output in copy 2021-11-18 13:30:36 -08:00
Zhaofeng Li
052c6795f2 .github: Fix substitution in manual deployment 2021-11-18 13:23:56 -08:00
Zhaofeng Li
2957b31e4e manual: Fix manualFast 2021-11-18 13:18:38 -08:00
Zhaofeng Li
ee8ae7dd21 Move closer to release 2021-11-18 13:15:20 -08:00
Zhaofeng Li
c271780b63 Improve error reporting 2021-11-18 13:15:20 -08:00
Zhaofeng Li
fae58994e4 Prepare for 0.2.0 release 2021-11-18 13:15:20 -08:00
Zhaofeng Li
e5665775b2 Preserve elapsed time in store path listing after build
Fixes #36.
2021-11-18 01:38:58 -08:00
Zhaofeng Li
b751209f60 .gitattribute: Don't count the vendored highlight.js in language stats
It made Colmena appear as if it's a JavaScript project :P
2021-11-18 01:10:44 -08:00
Zhaofeng Li
0eca2c3571 [ci skip] manual: s/Documentation/Manual 2021-11-17 22:40:02 -08:00
Zhaofeng Li
50300dc0e7 default.nix: Fix CI failure 2021-11-17 22:33:30 -08:00
Zhaofeng Li
810885af81 README.md: Point at unstable manual 2021-11-17 22:26:24 -08:00
Zhaofeng Li
e25c40c84f .gitignore: How come this wasn't ignored 2021-11-17 22:26:07 -08:00
Zhaofeng Li
80a71d9023 cli.rs: Point user at manual 2021-11-17 22:21:00 -08:00
Zhaofeng Li
1ac5fd0f9b default.nix: Exclude manual from source 2021-11-17 22:21:00 -08:00
Zhaofeng Li
1f738c8014 .github: Add Cachix cache 2021-11-17 22:21:00 -08:00
Zhaofeng Li
b891094b39 .github: Add workflow to build and deploy manual 2021-11-17 22:21:00 -08:00
Zhaofeng Li
4497ef296e Add manual
We finally have some real documentation :)
2021-11-17 22:21:00 -08:00
Zhaofeng Li
c42c97d2f6 Add internal command to render CLI usage text for manual 2021-11-17 22:21:00 -08:00
Zhaofeng Li
1535857acc Also disallow pinning to a Nixpkgs lambda in Flakes
Somehow missed this one *shrugs*
2021-11-17 22:21:00 -08:00
Zhaofeng Li
0828bc3025 .github: Update test matrix 2021-11-16 22:11:57 -08:00
Zhaofeng Li
006cb2c5ee eval.nix: Make the uninitialized nixpkgs error more informative 2021-11-16 21:01:40 -08:00
Zhaofeng Li
f716daa3a1 Migrate to indicatif 0.7 beta
Now there is no need for the ugly hack where we drove the spinner
in a separate thread :)
2021-11-16 21:01:33 -08:00
Zhaofeng Li
7d15d08d6d Add test command for progress spinners 2021-11-16 21:01:33 -08:00
Zhaofeng Li
86eeeece3c command: Rename introspect to eval 2021-10-28 17:27:30 -07:00
Zhaofeng Li
f7eb121260 Disallow uninitialized meta.nixpkgs in Flakes 2021-10-28 17:10:58 -07:00
Zhaofeng Li
765f42fa24 introspect: Support actually instantiating the expression 2021-10-28 14:09:35 -07:00
Zhaofeng Li
fac91c524b Cargo.lock: Update 2021-10-28 14:09:35 -07:00
Zhaofeng Li
6991c91943 .github: Bump actions 2021-10-28 14:09:35 -07:00
Zhaofeng Li
58f2bf391f src/util.rs: No need to list 2021-10-28 14:09:35 -07: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
b48753239a hive.rs: Canonicalize flake path
Relative paths are no longer allowed in newer Nix versions.
2021-10-25 21:53:38 -07:00
Zhaofeng Li
f8feb40cbd flake.lock: Update nixpkgs 2021-10-25 21:47:43 -07:00
Zhaofeng Li
6d6e33fcd4 nix: Remove unneeded ok() 2021-10-23 20:49:14 -07:00
Zhaofeng Li
d5f5ed6abb
Merge pull request #35 from bjornfor/dynamically-select-user
Allow selecting ssh user dynamically
2021-10-23 20:47:56 -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
d0c89302be .github: Fix job :/ 2021-09-19 22:05:51 -07:00
Zhaofeng Li
1d6ec530ca .github: Add job to test flake-compat build 2021-09-19 22:03:39 -07:00
Zhaofeng Li
6f5d7aa29b flake.nix: Clean up and add overlay 2021-09-19 22:03:39 -07:00
Zhaofeng Li
37b43cd6d7 eval.nix: Support autocall for hive configuration 2021-08-26 19:59:22 -07:00
Zhaofeng Li
7cc6552ee3 hive.rs: Remove unwrap in builder_args() 2021-08-26 19:59:22 -07:00
Zhaofeng Li
886b4c9dea default.nix: Use cargoLock.lockFile
Support for directly passing the Cargo.lock was added in
<https://github.com/NixOS/nixpkgs/pull/122158>.
2021-08-26 13:21:18 -07:00
Zhaofeng Li
db563caad9 .envrc: Use nix-direnv with use flake 2021-08-26 13:15:04 -07:00
Zhaofeng Li
7b69946d98 Ensure key ownerships are set correctly
Depending on when keys are uploaded (`deployment.keys.<name>.uploadAt`):

`pre-activation`:
We set the ownerships in the uploader script opportunistically and
continue if the user/group does not exist. Then, in the activation
script, we set the ownerships of all pre-activation keys.

`post-activation`:
We set the ownerships in the uploader script and fail if the
user/group does not exist.

The ownerships will be correct regardless of which mode is in use.

Fixes #23. Also a more complete solution to #10.
2021-08-26 12:54:41 -07:00
Zhaofeng Li
e98a66bc2e Cargo.lock: Update 2021-08-25 09:51:48 -07:00
Zhaofeng Li
24339bcca7 Add deployment.keys.<name>.uploadAt
This mirrors the functionality recently added in morph and allows
for the uploading of keys after system profile activation.

Fixes #10.
2021-08-24 23:25:46 -07:00
Zhaofeng Li
e788fb02d0 LICENSE: Add contributors 2021-08-01 14:20:14 -07:00