!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
31 Jan 2022
@github:maunium.net@github:maunium.net [zhaofengli/colmena] zhaofengli closed issue #50: Nixpkgs fails to build on unstable 19:34:49
1 Feb 2022
@github:maunium.net@github:maunium.net [zhaofengli/colmena] lheckemann opened issue #52: Excessive output when terminal isn't tall enough

When too many lines of progress indication are being printed, scrollback will explode. It looks mostly fine if you're not scrolling back:

but if you make the terminal taller or scroll up, you'll see a problem:

This can drown out valuable output from the build phase or similar.

A simple way to reproduce this is to run colmena apply keys with the following hive.nix, in a terminal less than 20 lines tall:

with import <nixpkgs> {};
lib.genAttrs (map (n: "host${toString n}") (lib.range 1 20)) (name: {
  deployment.targetHost = "dummy.invalid";
  boot.isContainer = true;
  deployment.keys.block-deployment = {
    keyCommand = ["sleep" "infinity"];
  };
})
07:28:06
@github:maunium.net@github:maunium.net [zhaofengli/colmena] lheckemann opened issue #53: Cannot deploy to a host without internet

If for some reason the deployment target doesn't have an internet connection but does have binary caches enabled, copying the system closure will fail rather than falling back to copying directly.

20:08:07
3 Feb 2022
@schnecfk:ruhr-uni-bochum.deCRTified joined the room.00:13:20
@schnecfk:ruhr-uni-bochum.deCRTifiedIs there a specific reason on why colmena diverges from the "standard" flake output schema? (For reference: https://nixos.wiki/wiki/Flakes#Output_schema )02:06:21
@schnecfk:ruhr-uni-bochum.deCRTified * Is there a specific reason for why colmena diverges from the "standard" flake output schema? (For reference: https://nixos.wiki/wiki/Flakes#Output_schema )02:07:27
@buckley310:matrix.orgBuckleybecause colmena was created before flakes were stable02:07:42
@buckley310:matrix.orgBuckley(if i had to guess)02:07:49
@buckley310:matrix.orgBuckleycolmena just got flakes support in June02:08:44
@schnecfk:ruhr-uni-bochum.deCRTified
In reply to @buckley310:matrix.org
because colmena was created before flakes were stable
At least the flakes series on tweag is older than the first commit of colmena and documents the output schema in a similar way
02:10:20
@schnecfk:ruhr-uni-bochum.deCRTifiedI am asking because I'm trying to move my config to flakes and have a hard time with home-manager+NUR. At the same time, I can't really use other people's flake configurations as it's not properly (?) using flakes (this here is in theory exactly what I need, but I can't apply it: https://discourse.nixos.org/t/importing-nur-home-manager-modules-in-nix-flakes/16457/2 )02:12:02
@schnecfk:ruhr-uni-bochum.deCRTified * I am asking because I'm trying to move my config to flakes and have a hard time with home-manager+NUR. At the same time, I can't really use other people's flake configurations as it's not properly (?) using flakes (this here is in theory exactly what I need down to the module I want to import, but I can't apply it: https://discourse.nixos.org/t/importing-nur-home-manager-modules-in-nix-flakes/16457/2 )02:12:24
@buckley310:matrix.orgBuckley
In reply to @buckley310:matrix.org
So I'm curious. In my setup my servers all exist inside of my flake outputs.nixosConfigurations, and my outputs.colmena is just a stub that consumes nixosConfigurations and emits a colmena configuration. Is anyone else doing it this way, or just me? I really like the portability of keeping my hosts in nixosConfigurations
see also
02:12:29
@schnecfk:ruhr-uni-bochum.deCRTifiedMatrix won't show the reply, but the raw message (View source) is readable. I'll dig it up in the history02:13:59
@buckley310:matrix.orgBuckleytldr, my hosts are in nixosConfigurations, and my colmena output just translates that02:15:19
@buckley310:matrix.orgBuckleybecause i already had a flake with my servers 🤔02:15:31
@schnecfk:ruhr-uni-bochum.deCRTifiedFound it02:15:34
@schnecfk:ruhr-uni-bochum.deCRTifiedIt looks perfect for me, as I also want another possible flake output (to generate sd images for my SBCs with the same config)02:16:16
@schnecfk:ruhr-uni-bochum.deCRTifiedThanks, that's really useful 🙂02:16:22
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @schnecfk:ruhr-uni-bochum.de
Is there a specific reason for why colmena diverges from the "standard" flake output schema? (For reference: https://nixos.wiki/wiki/Flakes#Output_schema )
It's because Colmena needs to inject its own modules for deployment.* options as well as module arguments (nodes, name). This is also consistent with the way NixOps implements its flakes support (outputs.nixopsConfigurations).
02:16:35
@zhaofeng:zhaofeng.liZhaofeng LiIt also provides a clear upgrade path for users using legacy hive.nix to flakes02:17:13
@schnecfk:ruhr-uni-bochum.deCRTified Oh, that explains a lot. In that case, it might be great to document the shim-method that Buckley posted, as it should give "the best of both worlds" 02:17:50
@buckley310:matrix.orgBuckleythere has actually been an update since then as well, i have a custom module to store my deployment options, but you dont actually need that anymore, as the colmena flake exposes its modules as an output now02:18:27
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @zhaofeng:zhaofeng.li
It also provides a clear upgrade path for users using legacy hive.nix to flakes

Also regarding upgrading to flakes, note that Colmena can auto-call if hive.nix evaluates to a function, allowing you to do things like this:

{ pkgs ? import <nixpkgs> { system = "x86_64-linux"; } }: # or how you pin your nixpkgs
{
  meta = { ... };
}

and importing it like outputs.colmena = import ./hive.nix { pkgs = ...; }; in your flake. You can then deploy with either flake.nix and hive.nix during your transition period.

02:27:38
@zhaofeng:zhaofeng.liZhaofeng Li If the current directory contains both flake.nix and hive.nix, then flake.nix is always preferred 02:28:12
@zhaofeng:zhaofeng.liZhaofeng Li * If the current directory contains both flake.nix and hive.nix, then flake.nix is always preferred if you don't specify a config file explicitly 02:29:39
@schnecfk:ruhr-uni-bochum.deCRTifiedThat iirc fails as I previously imported channels directly all over the place 😅 So my goal is indeed to have a flake config without such a transition configuration 02:33:48
@winterqt:nixos.devWinter (she/her) joined the room.03:46:59
@janejasperous:one.ems.hostJane Jasperous
In reply to @phaer:matrix.org

Jane Jasperous:
Does this work for you?

colmena.my-host = { name, nodes, ... }:
{
   imports = [ self.nixosConfigurations.my-host ];
}; 

(if you get an error that deployment options are undefined, import colmena.nixosModules.deploymentOptions in your nixosConfiguration)

no exactly,
14:27:34
@janejasperous:one.ems.hostJane Jasperous
        deployment.allowLocalDeployment = true;
        nixpkgs.system = self.nixosConfigurations.x2100.config.nixpkgs.system;
        imports = self.nixosConfigurations.x2100.extraArgs.modules ;
      };
14:28:23

Show newer messages


Back to Room ListRoom Version: 6