!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
3 Aug 2025
@jonhermansen:matrix.orgjonhermansenAh, I finally figured it out. But I needed to build latest colmena locally to apply. Or else I got this error: "The colmenaHive output (schema v0.5) isn't compatible with this version of Colmena" I saw there was a request for a new Colmena release, are there any plans to do that?23:07:25
4 Aug 2025
@jonhermansen:matrix.orgjonhermansen I got it sorted on my end. But I have to carry this in my Nix config just so I can deploy through Colmena.

  nixpkgs.overlays = [
    (self: super: {
      colmena = super.colmena.overrideAttrs (old: rec {
        patches = [ ];
        src = super.fetchFromGitHub {
          owner = "zhaofengli";
          repo = "colmena";
          rev = "5e0fbc4dbc50b3a38ecdbcb8d0a5bbe12e3f9a72";
          hash = "sha256-vwu354kJ2fjK1StYmsi/M2vGQ2s72m+t9pIPHImt1Xw=";
        };
        cargoDeps = self.rustPlatform.fetchCargoVendor {
          inherit src;
          hash = "sha256-v5vv66x+QiDhSa3iJ3Kf7PC8ZmK1GG8QdVD2a1L0r6M=";
        };
      });
    })
  ];
01:40:54
@jonhermansen:matrix.orgjonhermansen I got it sorted on my end. But I have to carry this in my Nix config just so I can deploy through Colmena without relying on a manually compiled version.

nixpkgs.overlays = [
    (self: super: {
      colmena = super.colmena.overrideAttrs (old: rec {
        patches = [ ];
        src = super.fetchFromGitHub {
          owner = "zhaofengli";
          repo = "colmena";
          rev = "5e0fbc4dbc50b3a38ecdbcb8d0a5bbe12e3f9a72";
          hash = "sha256-vwu354kJ2fjK1StYmsi/M2vGQ2s72m+t9pIPHImt1Xw=";
        };
        cargoDeps = self.rustPlatform.fetchCargoVendor {
          inherit src;
          hash = "sha256-v5vv66x+QiDhSa3iJ3Kf7PC8ZmK1GG8QdVD2a1L0r6M=";
        };
      });
    })
  ];
01:41:12
@zsuper:matrix.orgzsuperthis does limit you to machines that are connected to the network via ethernet right? i was about to try this with an old laptop of mine, but i realized that nixos-anywhere does not support Wifi installation03:11:24
@zsuper:matrix.orgzsuper-1 day of research 😭03:41:47
@zhaofeng:zhaofeng.liZhaofeng Li You don't need to manually make the overlay. You can either use colmena.overlays.default or take the package from colmena.packages.x86_64-linux.colmena directly. I do think it's worth it to have an example in the docs (which is busted right now) even though it follows the common flake pattern, another entry in the todo list 04:13:06
@zhaofeng:zhaofeng.liZhaofeng LiIn this case, probably not, but you can always do the manual way of connecting wifi and ssh'ing in04:14:22
@zhaofeng:zhaofeng.liZhaofeng LiPrior to nixos-anywhere I was using this script: https://gist.github.com/zhaofengli/e986fa7688d6c16872b86c6ae6215c9b04:15:43
@zhaofeng:zhaofeng.liZhaofeng Li *

You don't need to manually make the overlay. You can either use colmena.overlays.default or take the package from colmena.packages.x86_64-linux.colmena directly. I do think it's worth it to have an example in the docs (which is busted right now) even though it follows the common flake pattern, another entry in the todo list

Another useful command is nix flake show github:zhaofengli/colmena which shows what a flake exports

04:17:26
@zsuper:matrix.orgzsuper

gotcha. but im trying to run with the target laptop connected to ethernet (which i verified with ip a) and im still running into the error where

06:52:04
@zsuper:matrix.orgzsuper *

gotcha. but im trying to run with the target laptop connected to ethernet (which i verified with ip a) and im still running into the error where

ssh: connect to host thinkpad port 22: Connection timed out
06:52:17
@zsuper:matrix.orgzsuper *

gotcha. but now im trying to run with the target laptop connected to ethernet (which i verified with ip a) and im still running into the error where

ssh: connect to host thinkpad port 22: Connection timed out
06:52:29
@zsuper:matrix.orgzsuperso im really confused if theres something up with my configuration06:52:44
@dantefromhell:matrix.orgdantefromhell
In reply to @zsuper:matrix.org
this does limit you to machines that are connected to the network via ethernet right? i was about to try this with an old laptop of mine, but i realized that nixos-anywhere does not support Wifi installation
fory raspberries I created a custom boot image on a usb stick that includes my wifi credentials. I boot that image to and run nixos-anywhere without kexec-ing.
that works reliable w/ wifi only systems
11:02:35
@zsuper:matrix.orgzsuperand disko will still take care of formatting for you right? because thats the main part about minimal installers that im still uncomfortable with15:21:00
@zsuper:matrix.orgzsuper i did figure out why this was happening though; turns out thinkpad was being resolved to a tailnet address due to the target machine being registered with tailscale 15:21:44
@zsuper:matrix.orgzsuperethernet installation was able to work, though i still did get port connection errors due to the IP address of the target machine being reassigned15:22:11
@zsuper:matrix.orgzsuper* after resolving this, ethernet installation was able to work, though i still did get port connection errors due to the IP address of the target machine being reassigned15:23:40
@jonhermansen:matrix.orgjonhermansen Thank you for the help! I'll try it out today, maybe I can open a PR too for the docs 15:52:43
@jonhermansen:matrix.orgjonhermansenAh, colmena.cli.rs is back!15:53:14
@dantefromhell:matrix.orgdantefromhell
In reply to @zsuper:matrix.org
and disko will still take care of formatting for you right? because thats the main part about minimal installers that im still uncomfortable with
yes. you can force this using nixos-anywheres --phases parameter. also rly helpful for testing 👍
18:46:43
5 Aug 2025
@sinan:sinanmohd.comsinan changed their profile picture.03:58:54
@sinan:sinanmohd.comsinan 03:58:56
6 Aug 2025
@freexploit:trafkin.com@freexploit:trafkin.comRedacted or Malformed Event14:38:37
@zsuper:matrix.orgzsuper actually yeah, im wondering the same thing. im using deploy-rs right now, but i like that colmena directly exposes the nixosConfigurations so i can debug them, unlike deploy-rs. however, i do really like the canary feature of deploy-rs, where it will magic rollback if the target becomes unreachable 18:25:27
@zsuper:matrix.orgzsuper * actually yeah, im wondering the same thing. im using deploy-rs right now, but i like that colmena directly exposes the nixosConfigurations so i can debug them, unlike deploy-rs. however, i do really like the canary feature of deploy-rs, where it will magic rollback if the target becomes unreachable. does colmena have something similar? 18:25:40
7 Aug 2025
@zsuper:matrix.orgzsuper

im thinking of making the switch to colmena soon, but seeing the use of the function colmena.lib.mkHive worries me. will i still be able to access the raw nixosConfiguration closure in the flake's outputs?

the reason i ask is because nixos-anywhere reads nixosConfigurations.<name> when remote installing to a new machine, and id like to write the spec for each node/machine once in the flake and then have its NixOS configuration attribute set accessible

06:15:10
@zsuper:matrix.orgzsuper

for example, with deploy-rs right now, i managed to write a helper function that allows me to define nodes like:

{
    deploy = {
      user = "root";
      sshUser = "root";
      nodes = self.armada.mkNodes {
        thinkpad = {
          hostname = "10.0.0.162";
          system = "x86_64-linux";
          modules = [
            ./modules/mc-server-host
            ./modules/cluster-server
            ./modules/starfish
          ];
        };
        t5 = {
          hostname = "10.0.0.249";
          system = "x86_64-linux";
          modules = [
            ./modules/cluster-agent
            ./modules/adguardhome
          ];
        };
        t4 = {
          hostname = "10.0.0.23";
          system = "x86_64-linux";
          modules = [
            ./modules/cluster-agent
          ];
        };
      };
    };

but this simply passes the inner arguments to lib.nixosSystem, which in turn gets passed to deploy.nodes.<name>.profiles.system.path. So this means I cannot access the "config" of thinkpad, for example

06:17:39
@zsuper:matrix.orgzsuperooh wait, colmena does have this exact feature!07:04:59
@zsuper:matrix.orgzsuperRTFM moment 😔07:05:09

Show newer messages


Back to Room ListRoom Version: 6