!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
25 Jan 2022
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt Is there a way to pass the flake inputs on to all machine configs? I'd like to do things like imports = [ "${inputs.nixos-mailserver}/default.nix" ]; in my machine configs. 15:39:18
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt Additionally I'd like to be able to access the flakeInfo of the nixpkgs used to build the individual machine. I currently have the problem that the system version metadata is basically useless (nixos-version says 21.11pre-git and nixos-version --hash doesn't know anything). 15:41:47
@buckley310:matrix.orgBuckleycould be done with an overlay15:42:26
@buckley310:matrix.orgBuckley
In reply to @buckley310:matrix.org

the stub:

colmena =
    { meta.nixpkgs = nixpkgs.legacyPackages."x86_64-linux"; } //
    builtins.mapAttrs
      (name: value: {
        nixpkgs.system = value.config.nixpkgs.system;
        imports = value.extraArgs.modules ++ [
          ({ config, ... }: { inherit (config.sconfig) deployment; })
        ];
      })
      (nixosConfigurations);
FWIW, my colmena machines have the correct nixpkgs info instead of the pre-git thing, because i build them in nixosConfigurations and then shim them into colmena
15:45:59
@buckley310:matrix.orgBuckley
$ nixos-version 
21.11.20211229.8588b14 (Porcupine)
15:46:43
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt
In reply to @buckley310:matrix.org

the stub:

colmena =
    { meta.nixpkgs = nixpkgs.legacyPackages."x86_64-linux"; } //
    builtins.mapAttrs
      (name: value: {
        nixpkgs.system = value.config.nixpkgs.system;
        imports = value.extraArgs.modules ++ [
          ({ config, ... }: { inherit (config.sconfig) deployment; })
        ];
      })
      (nixosConfigurations);
hm, why do you set nixpkgs.system again? Shouldn't imports already take care of that?
17:41:43
@buckley310:matrix.orgBuckleyi originally thought so, but if i remove that line my pi doesnt deploy right17:42:22
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetztI also don't see how that will play along with use of meta.nodeNixpkgs17:42:25
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string 17:44:49
@0x4a6f:matrix.org[0x4A6F]

Linux Hackerman: something along this in flake outputs?

    colmena.defaults = {
      system.nixos.version = "nixos-${nixpkgs.shortRev}";
    };
17:45:10
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt
In reply to @linus.heckemann:matrix.mayflower.de
that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string
[0x4A6F]: that also has ^ this problem
17:45:36
@buckley310:matrix.orgBuckley
In reply to @linus.heckemann:matrix.mayflower.de
that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string
not sure. i dont use meta.nodePackages.
17:46:04
@buckley310:matrix.orgBuckley
In reply to @linus.heckemann:matrix.mayflower.de
that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string
* not sure. i dont use meta.nodeNixpkgs
17:46:42
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @linus.heckemann:matrix.mayflower.de
that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string
Hmm, interesting. Do you have a minimal repro? Or I can try doing it sometime today
18:26:09
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @linus.heckemann:matrix.mayflower.de
Is there a way to pass the flake inputs on to all machine configs? I'd like to do things like imports = [ "${inputs.nixos-mailserver}/default.nix" ]; in my machine configs.
You can pass the inputs using either meta.specialArgs.inputs = inputs; or _module.args.inputs = inputs; in a node config
18:27:23
@zhaofeng:zhaofeng.liZhaofeng Li Then inputs will be available as a NixOS module parameter. You can also go the overlays way, though. 18:28:09
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt
In reply to @zhaofeng:zhaofeng.li
You can pass the inputs using either meta.specialArgs.inputs = inputs; or _module.args.inputs = inputs; in a node config
I tried the latter, it resulted in infinite recursion in combination with imports = [ inputs.nixos-mailserver ];
19:36:43
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetztmaybe specialArgs doesn't have that problem though? I'll give it a try19:36:59
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetztalso, a feature I'd like in colmena: the ability to pass in nixos evaluations rather than nixos configs. That would open up a lot of possibilities, including a nixus-like system where the whole deployment can be made of nixos modules too. Not sure if that goes within the "vision" of colmena though, and if not that's fine --- I don't want colmena to succumb to feature creep either :)19:48:12
@ma27:nicht-so.sexyma27 joined the room.22:52:02
26 Jan 2022
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @github:maunium.net
[zhaofengli/colmena] JCapucho opened issue #50: Nixpkgs fails to build on unstable

Hi, I'm using colmena with a flake to build a node that uses the nixos-unstable branch of nixpkgs (commit is https://github.com/NixOS/nixpkgs/commit/689b76bcf36055afdeb2e9852f5ecdd2bf483f87), but it's failing to build.

In the start of the log I see a warning with

capucho-nixos | trace: warning: The following Nixpkgs configuration keys set in meta.nixpkgs will be ignored: path

Which leads me to believe that the issue might be caused by ignoring the path attribute introduced in https://github.com/NixOS/nixpkgs/pull/153594

Here's the log of running colmena build --show-trace --verbose log.txt

For those using Colmena with nixpkgs unstable, have you encountered problems related to split doc builds? If so, could you test if the current main and this 0.2 backport branch fix the problem?
02:22:33
@zhaofeng:zhaofeng.liZhaofeng LiAdmittedly I ran into the problem a couple of weeks ago in my setup when I rebased against master, but there were comments about it blocking the channel so I disabled it locally without looking closer. Then I kind of forgot about it 🙁02:24:54
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt
In reply to @linus.heckemann:matrix.mayflower.de
maybe specialArgs doesn't have that problem though? I'll give it a try
same problem :/
07:39:34
@zhaofeng:zhaofeng.liZhaofeng Li What does your imports looks like? 07:50:22
@zhaofeng:zhaofeng.liZhaofeng Li * What does your imports look like? 07:50:33
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @linus.heckemann:matrix.mayflower.de
I tried the latter, it resulted in infinite recursion in combination with imports = [ inputs.nixos-mailserver ];
Oh right, you probably want inputs.nixos-mailserver.nixosModule
07:50:50
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt
{ config, pkgs, inputs, ... }:

{
  imports =
    [
      inputs.nixos-mailserver.nixosModule
    ];
08:29:28
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetztalso causes infinite recursion08:29:36
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetzt I believe this is because inputs depends on the closure of nixos modules in the system, but the closure of nixos modules depends on inputs (because inputs is used right there in imports). 08:30:24
@linus.heckemann:matrix.mayflower.deLinux Hackerman is moving: @linus:schreibt.jetztinputs would have to be passed in "from outside" and can't be defined within a module.08:30:40

Show newer messages


Back to Room ListRoom Version: 6