ALPHA: wire is a tool to deploy nixos systems wire.althaea.zone/
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

small doc updates

+36 -29
+2 -2
doc/guides/apply.md
··· 23 23 The simplest way to apply is simply running: 24 24 25 25 ```sh 26 - wire apply switch 26 + $ wire apply switch 27 27 ``` 28 28 29 29 Which will `switch` to each node's NixOS system in your hive and push ··· 110 110 Use the `--on` argument to specify which nodes in your hive to apply: 111 111 112 112 ```sh 113 - wire apply --on node-a 113 + $ wire apply --on node-a 114 114 ``` 115 115 116 116 Further examples, including how you can utilise tags, can be found on the [Targeting Nodes](./targeting) page.
+1 -1
doc/guides/flakes/nixos-rebuild.md
··· 26 26 the `nixosConfigurations`-es that also match a node in the hive. 27 27 28 28 ``` 29 - ❯ nix run ~/Projects/wire#wire-small -- show 29 + $ wire show 30 30 Hive { 31 31 nodes: { 32 32 Name(
+1 -1
doc/guides/flakes/overview.md
··· 24 24 ::: 25 25 26 26 ``` 27 - ❯ nix flake show 27 + $ nix flake show 28 28 git+file:///some/path 29 29 └───wire: unknown 30 30 ```
+2 -2
doc/guides/parallelism.md
··· 1 1 --- 2 2 comment: true 3 3 title: Use Parallelism 4 - description: A deeper dive into parallelism with wire Tool. 4 + description: How to use parallelism with wire Tool. 5 5 --- 6 6 7 7 # {{ $frontmatter.title }} ··· 17 17 controlled with the `-p` / `--parallel` argument. 18 18 19 19 ```sh 20 - wire apply -p <NUMBER> 20 + $ wire apply -p <NUMBER> 21 21 ``` 22 22 23 23 ## Interaction with Nix's `max-jobs`
+17 -4
doc/guides/targeting.md
··· 14 14 example: 15 15 16 16 ```sh 17 - wire apply switch --on node-a,node-b 17 + $ wire apply switch --on node-a,node-b 18 18 ``` 19 19 20 20 Will switch-to-configuration on node a, and node b. 21 21 22 + ## Reading from Stdin 23 + 24 + Passing `--on -` will read whitespace-seperated nodes and tags from stdin. This 25 + can be combined with normal `--on` usage. 26 + 27 + For example: 28 + 29 + ```sh 30 + $ echo "node-a node-b" | wire apply --on @other --on - 31 + ``` 32 + 33 + Will apply on `node-a`, `node-b`, and all nodes with the tag `@other`. 34 + 22 35 ## Tag Basics 23 36 24 37 Nodes can have _tags_, which allows you to easily target multiple, related ··· 57 70 For example, to deploy only nodes with the `cloud` tag, use 58 71 59 72 ```sh 60 - wire apply --on @cloud 73 + $ wire apply --on @cloud 61 74 ``` 62 75 63 76 ## Further Examples ··· 73 86 You can mix tags and node names with `--on`: 74 87 75 88 ```sh 76 - wire apply --on @cloud node-5 89 + $ wire apply --on @cloud --on node-5 77 90 ``` 78 91 79 92 This will deploy all nodes in `@cloud`, alongside the node `node-5`. ··· 83 96 You can specify many tags together: 84 97 85 98 ```sh 86 - wire apply --on @cloud @on-prem 99 + $ wire apply --on @cloud @on-prem 87 100 ``` 88 101 89 102 This is a union between `@cloud` and `@on-prem`.
+13 -19
doc/tutorial/overview.md
··· 30 30 31 31 ### Features 32 32 33 - | Features | wire | Colmena | 34 - | ---------------------------------- | ------------------ | ------------------ | 35 - | Node Tagging | :white_check_mark: | :white_check_mark: | 36 - | Secret Management | :white_check_mark: | :white_check_mark: | 37 - | Parallel Evaluation | :white_check_mark: | :white_check_mark: | 38 - | Node Tagging | :white_check_mark: | :white_check_mark: | 39 - | Remote Builds | :white_check_mark: | :white_check_mark: | 40 - | Key Services | :white_check_mark: | :white_check_mark: | 41 - | Pipeline Support | :white_check_mark: | :x:[^2] | 42 - | Non-Root Deployments[^4] | :white_check_mark: | :x:[^3] | 43 - | `--flake` accepts flakerefs | :white_check_mark: | :x: | 44 - | REPL & Eval expressions | :x: | :white_check_mark: | 45 - | Adhoc remote command execution[^5] | :x: | :white_check_mark: | 33 + | Features | wire | Colmena | 34 + | ------------------------------------------------------------- | ------------------ | ------------------ | 35 + | [Node Tagging](/guides/targeting.html#tag-basics) | :white_check_mark: | :white_check_mark: | 36 + | [Secret Management](/guides/keys.html) | :white_check_mark: | :white_check_mark: | 37 + | [Parallel Deployment](/guides/parallelism.html) | :white_check_mark: | :white_check_mark: | 38 + | Remote Builds | :white_check_mark: | :white_check_mark: | 39 + | [Key Services](/guides/keys.html#using-keys-with-services) | :white_check_mark: | :white_check_mark: | 40 + | [Pipeline Support](/guides/targeting.html#reading-from-stdin) | :white_check_mark: | :x:[^2] | 41 + | [Non-Root Deployments](/guides/non-root-user) | :white_check_mark: | :x:[^3] | 42 + | `--path` accepts flakerefs | :white_check_mark: | :x: | 43 + | REPL & Eval expressions | :x: | :white_check_mark: | 44 + | Adhoc remote command execution[^4] | :x: | :white_check_mark: | 46 45 47 46 [^2]: You need to write custom nix code to use Colmena hive metadata inside environments like CI pipelines, bash scripting, etc., which requires a knowledge of its internals. Recently it agained the [eval feature](https://colmena.cli.rs/unstable/features/eval.html) which has improved the situation since wire was first started. 48 47 49 48 [^3]: See https://github.com/zhaofengli/colmena/issues/120 50 49 51 - [^4]: 52 - You may deploy with _any_ user who can login through SSH, whether they be 53 - `wheel` or not. You may need to enter your password multiple times for the various elevated 54 - steps wire needs to perform. 55 - 56 - [^5]: wire lacks an equivalent to `colmena exec`. 50 + [^4]: wire lacks an equivalent to `colmena exec`. 57 51 58 52 ### Speed 59 53