!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

319 Members
A simple, stateless NixOS deployment tool - https://github.com/zhaofengli/colmena108 Servers

Load older messages


SenderMessageTime
6 Apr 2022
@schnecfk:ruhr-uni-bochum.deCRTifiedExactly00:00:53
@jhillyerd:matrix.org@jhillyerd:matrix.orgI guess that leaves the other half of my question, applying the same config to two different machines... I suppose I could just use nixos-rebuild with the flake and --target-host pointing at my test vm?00:02:52
@schnecfk:ruhr-uni-bochum.deCRTified

Something like this in your flake should give you the VMs as a nix build .#vm-hostname target:

  packages = with nixpkgs.lib;
    mapAttrs' (host: sys: {
      name = "vm-${host}";
      value = sys.config.system.build.vm;
    }) self.nixosConfigurations;
00:03:19
@schnecfk:ruhr-uni-bochum.deCRTifiedI'm doing something similar, by cross-compiling SD-Images for my aarch64 hosts00:03:39
@schnecfk:ruhr-uni-bochum.deCRTified(But there I'm filtering to check whether the sdImage build output exists)00:04:55
@jhillyerd:matrix.org@jhillyerd:matrix.org Oh nice. That would leave me with a script similar to nixos-rebuild build-vm ? 00:11:38
@schnecfk:ruhr-uni-bochum.deCRTifiedexactly00:11:43
@schnecfk:ruhr-uni-bochum.deCRTified Note that you don't need these packages - you can access that attribute directly like this: nix build .\#nixosConfigurations.<hostname>.config.system.build.vm 00:14:17
@schnecfk:ruhr-uni-bochum.deCRTified

Result looks like this:

$ find result/
result/
result/system
result/bin
result/bin/run-cottonbox-vm
00:15:03
@schnecfk:ruhr-uni-bochum.deCRTified (and the run-cottonbox-vm script spawns the qemu instance) 00:15:33
@jhillyerd:matrix.org@jhillyerd:matrix.orgCool. So it sounds like step 1 for me is to move my existing nixops into a flake, get the test vm running, then I can look at mapping the flake into colmena.00:22:51
@schnecfk:ruhr-uni-bochum.deCRTifiedYes, that's a plan00:23:55
@schnecfk:ruhr-uni-bochum.deCRTified jhillyerd: although I'm heading to bed now, feel free to ping me. I did exactly the same migration from nixops to colmena+flakes 00:40:19
@blaggacao:matrix.org@blaggacao:matrix.org joined the room.05:00:56
7 Apr 2022
@mikroskeem:d0.eeMark joined the room.08:17:39
8 Apr 2022
@schnecfk:ruhr-uni-bochum.deCRTified Sooo, building on the VM question: Did someone happen to stumble across a method of testing the whole deployment at once in VMs? Otherwise, I'll see whether I can build on the config.system.build.vm derivation and create a script that runs them in the same network 15:13:14
@zhaofeng:zhaofeng.liZhaofeng LiNot a real answer, but maybe you can take a look at the e2e tests that I have: https://github.com/zhaofengli/colmena/tree/main/integration-tests/apply18:10:53
@zhaofeng:zhaofeng.liZhaofeng LiBut yeah, I kind of want a nice setup to do something like that as well18:11:15
@schnecfk:ruhr-uni-bochum.deCRTified
In reply to @zhaofeng:zhaofeng.li
But yeah, I kind of want a nice setup to do something like that as well
I think it would generally be nice to have some place to collect useful snippets like the one I've posted in https://github.com/zhaofengli/colmena/issues/60
23:11:56
10 Apr 2022
@jhillyerd:matrix.org@jhillyerd:matrix.orgI finished porting my old nixops config to a standard (not colmena) flake. Next I need to figure out secrets, as the janky system I was using previously doesn't work with flakes. Does the colmena secret deployment system work with the pure build environment of flakes?00:23:40
@schnecfk:ruhr-uni-bochum.deCRTified If you use the config.system.build.vm-path for the flakes, then there is no implementation for "uploading" the keys. I did not look into doing that myself, but might need to do soon 00:30:33
@schnecfk:ruhr-uni-bochum.deCRTified * If you use e.g. the config.system.build.vm-path for the flakes, then there is no implementation for "uploading" the keys. I did not look into doing that myself, but might need to do soon 00:30:44
@schnecfk:ruhr-uni-bochum.deCRTified So keys are only uploaded if you're using colmena, but not with the built flakes 00:31:00
@blaggacao:matrix.org@blaggacao:matrix.orghttps://github.com/zhaofengli/colmena/pull/73 i wanted to quickly ping, to see if this is mergeable stuff. I think it's a neat ides to spin this further so that projecta can declare their local evaluator (which is great for lowering the magic) while still using upstream options and modules.00:37:14
@blaggacao:matrix.org@blaggacao:matrix.orgI think the next improvement to this PR would be to make the evaluator configurable, so that it doesn't need to be patched into the binary.00:38:12
@blaggacao:matrix.org@blaggacao:matrix.orgThat way people can modify the colmena interface at will and make it work for their code / project structure.00:38:52
@blaggacao:matrix.org@blaggacao:matrix.orgInstead of doing complicated transforms to match the expected interface.00:39:24
@jhillyerd:matrix.org@jhillyerd:matrix.org
In reply to @schnecfk:ruhr-uni-bochum.de
So keys are only uploaded if you're using colmena, but not with the built flakes
Thanks. I guess none of my services would start for local testing, so that's not really an option. 😕 I think I'll try agenix, that seems reasonable for homelab.
00:40:59
@blaggacao:matrix.org@blaggacao:matrix.org* https://github.com/zhaofengli/colmena/pull/73 i wanted to quickly ping, to see if this is mergeable stuff. I think it's a neat idea to spin this further so that projecta can declare their local evaluator (which is great for lowering the magic) while still using upstream options and modules.00:41:00
@jhillyerd:matrix.org@jhillyerd:matrix.orgThen again, I guess the host key would change for each VM... so maybe not.00:41:27

Show newer messages


Back to Room ListRoom Version: 6