| 7 May 2022 |
Zhaofeng Li | Wanja Hentze: Somehow I didn't get notified of this message. If you are interested in doing that, please send a PR! | 01:17:22 |
dantefromhell | yeah I feel there's this recursive dependency on nix all over the nix ecosystem 🤯🤮 | 01:25:48 |
CRTified | In reply to @dantefromhell:matrix.org Hi, I just stumbled over colmena when research tools to deploy Nix from flakes onto a variety of machines (laptop, VMs, servers, Raspberry).
One thing I couldnt figure out though if it's possible to automate the initial nix install (incl partitioning) with colmena? For systems which you provision externally ("dd a ready-to-go-image on an sd-card", you could also define your config while importing sd-image-aarch64.nix from nixpkgs. Then, you could build the config.system.build.sdImage-attribute and use the resulting image on your device 🙂 | 02:03:26 |
CRTified | at least for the sd-card, this would also include partitioning | 02:04:00 |
David Arnold (blaggacao) | Zhaofeng Li: I recently had a chat with Rom Garbas who mentioned that nix might have a builtin nix apply in stock that would make the part of colmena's current eval.nix and similar techniques, but I'd assume with better eval cache properties. Currently that facility is not really exposed, but it's what used for nix bundle. We should sharpen our intelligence on this and prepare for it. | 02:28:00 |
David Arnold (blaggacao) | Maybe we can even ask for exposure of said nix apply | 02:28:24 |
David Arnold (blaggacao) | * Zhaofeng Li: I recently had a chat with Rok Garbas who mentioned that nix might have a builtin `nix apply` in stock that would make the part of colmena's current `eval.nix` and similar techniques, but I'd assume with better eval cache properties. Currently that facility is not really exposed, but it's what used for `nix bundle`. We should sharpen our intelligence on this and prepare for it. | 02:28:43 |
Zhaofeng Li | Any links to docs on this nix apply? | 02:29:50 |
David Arnold (blaggacao) | Afaic, it's not exposed anywhere yet. I can ask for more details next week. | 02:32:48 |
David Arnold (blaggacao) | I assume the main benefit is that the cache integrity of the flake is not destroyed. | 02:33:09 |
David Arnold (blaggacao) | Ot came up during a discussion about nix-eval-cavhe. | 02:33:22 |
David Arnold (blaggacao) | * Ot came up during a discussion about nix-eval-cache. | 02:33:31 |
David Arnold (blaggacao) | Maybe this? https://github.com/NixOS/nix/blob/master/src/nix/bundle.cc#L78 | 02:37:29 |
David Arnold (blaggacao) | Anyway, the design pattern is pretty similar / the same. | 02:38:03 |
Zhaofeng Li | Taking a look in a bit, thanks 👍 | 02:44:01 |
David Arnold (blaggacao) | Looks like that is the function, the counterpart is pretty simple: https://github.com/NixOS/bundlers/blob/master/flake.nix | 02:48:42 |
David Arnold (blaggacao) | So in essence, one flake.is "wrapped around" the other. | 02:49:00 |
David Arnold (blaggacao) | * So in essence, one flake is "wrapped around" the other. | 02:49:10 |
David Arnold (blaggacao) | You could also think of it in terms of 'passing arguments to flakes'. | 02:49:37 |
David Arnold (blaggacao) | Or 'flake inheritence' | 02:49:51 |
dantefromhell | CRTified: The downside is this woukd only work with raspberrys plus I dont use the SD-Cards (long term reliability) since USB boot is now possible. | 10:41:56 |
dantefromhell | From research it feels possible to get NixOS LIVE booted on all devices (kexec, pxe, usb sticks) so my hope is to build something nix-based from there for installation & management. | 10:46:14 |
CRTified | In reply to @dantefromhell:matrix.org CRTified: The downside is this woukd only work with raspberrys plus I dont use the SD-Cards (long term reliability) since USB boot is now possible. You are free to create arbitrary layouts, so you can dd it on other media, too. I'm using RockPis and boot them from NVMe :) But I get your point, the same thing for x86 might be a bit more effort I think | 10:47:07 |
dantefromhell | The first issue I recognized with colmena is the hostname match check for local deploys.
That breaks fresh installs and machine renames, no? | 10:47:21 |
dantefromhell | CRTified: the dd approach is also suboptimal with differing disc size. it needs some post-processing... | 10:48:47 |
CRTified | The aarch64 installer image autoresizes on boot | 10:49:21 |
dantefromhell | CRTified: and stuff like ZFS raidZ might be impossible (would need to test) | 10:50:17 |
CRTified | https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/sd-card/sd-image.nix#L242-L267 here's what's done to expand on boot | 10:51:01 |
Zhaofeng Li | In reply to @dantefromhell:matrix.org The first issue I recognized with colmena is the hostname match check for local deploys. That breaks fresh installs and machine renames, no? When renaming machines, you can override which node apply-local selects with --node. For fresh installs, you need to run the activation script when chrooted into the new root (ex: the external script I linked) and the normal logic doesn't work. | 18:21:34 |
| 8 May 2022 |
dantefromhell | * yeah I feel there's this recursive dependency on nix all over the nix ecosystem | 11:20:53 |