!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
4 Feb 2022
@buckley310:matrix.orgBuckleybefore 22.0517:53:17
@schnecfk:ruhr-uni-bochum.deCRTified I tried manually to import everything under nixosConfigurations.mailbox but in most cases, I've hit either errors of "wrong type", infinite recursion or nixpkgs.pkgs does not exist 17:54:18
@buckley310:matrix.orgBuckleydid you read somewhere that the extraArgs thing got deprecated? if so ill get on solving this, since ill need to eventually anyway17:54:55
@schnecfk:ruhr-uni-bochum.deCRTified I think I've read it somewhere 17:55:31
@schnecfk:ruhr-uni-bochum.deCRTifiedI'll try to find it again17:55:35
@schnecfk:ruhr-uni-bochum.deCRTifiedIt got really late last night 😅17:55:44
@buckley310:matrix.orgBuckleyheh17:56:28
@buckley310:matrix.orgBuckleyi like how literally a couple hours ago i said something like i dont think nixosConfigurations would break xD17:57:02
@zhaofeng:zhaofeng.liZhaofeng Li

Looks like args and extraArgs was deprecates here:

https://github.com/NixOS/nixpkgs/pull/148315

17:58:29
@zhaofeng:zhaofeng.liZhaofeng Li* Looks like args and extraArgs was deprecated here: https://github.com/NixOS/nixpkgs/pull/14831517:58:52
@zhaofeng:zhaofeng.liZhaofeng LiBut setting _module.args should be equivalent17:59:27
@schnecfk:ruhr-uni-bochum.deCRTified

imports = value._module.args.modules; seems promising, but as I add colmena.nixosModules.deploymentOptions to the nixosSystem modules, I now get a duplicate definition warning:

error: The option `deployment.allowLocalDeployment' in `<unknown-file>' is already declared in `/nix/store/4ba8vi60ay3b68kgspyxd7bmxbsixar1-source/flake.nix'.
18:05:16
@schnecfk:ruhr-uni-bochum.deCRTifiedSo it looks like I'd need to filter it in that case? 🤔18:05:29
@schnecfk:ruhr-uni-bochum.deCRTifiedCan't really filter it â˜šī¸ Equality of lambdas is a bit hard as a problem 😀18:16:06
@janejasperous:one.ems.hostJane JasperousI get this exactly error using extraArgs.modules18:31:05
@buckley310:matrix.orgBuckleyokay i updated my deployment stuff. https://github.com/buckley310/nixos-config/blob/master/lib/deploy.nix18:45:47
@buckley310:matrix.orgBuckley

and for reference, this is how i use it.

let
      hosts = import ./hosts hardware self.nixosModule;
      deploy = sconfig.lib.deploy { inherit self hosts; };
in
{
      inherit (deploy) colmena;
      nixosConfigurations = builtins.mapAttrs (_: nixpkgs.lib.nixosSystem) hosts;
}
18:47:45
@buckley310:matrix.orgBuckley i had played with that strategy before, so i had it ready, just wasnt using it. basically instead of colmena consuming nixosConfigurations, just build my hosts as plain configs, and both nixosConfigurations and colmena consume that 18:49:27
@buckley310:matrix.orgBuckley

./hosts looks like

hardware: nixosModule:
with hardware;

let
  sys = system: mods: {
    inherit system;
    modules = [ nixosModule ] ++ mods;
  };

in
{
   host1 = sys "x86_64-linux" [ ./host1 ];
}
18:50:21
@buckley310:matrix.orgBuckley *

./hosts/default.nix looks like

hardware: nixosModule:
with hardware;

let
  sys = system: mods: {
    inherit system;
    modules = [ nixosModule ] ++ mods;
  };

in
{
   host1 = sys "x86_64-linux" [ ./host1 ];
}
18:50:31
@schnecfk:ruhr-uni-bochum.deCRTified
In reply to @buckley310:matrix.org
i had played with that strategy before, so i had it ready, just wasnt using it. basically instead of colmena consuming nixosConfigurations, just build my hosts as plain configs, and both nixosConfigurations and colmena consume that
What I dislike about that approach is that it feels like you'd lose the flake advantage, as it makes it easy for the colmena definition to diverge from the flake one
18:51:34
@buckley310:matrix.orgBuckley well its what ill go with for now. its easy enough to not diverge, granted im the only cook in the kitchen on this one 18:53:48
@buckley310:matrix.orgBuckleyi dont know of a better way at this moment18:54:30
@schnecfk:ruhr-uni-bochum.deCRTified Yes, of course. I'd just be worried that one of the evals behaves slightly different somehow 18:54:36
@buckley310:matrix.orgBuckleythey behaved slightly differently before :) 18:55:26
@buckley310:matrix.orgBuckleyprobably due to the impure build or something, they would produce different store paths for the systems than nixos-rebuild --flake would18:56:08
@aanderse:nixos.devaanderse

hey team i'm hoping someone can help me out here...
i'm attempting to create a colmena managed nixos server using flakes
warning this is my first attempt at using flakes 😄

here is my flake.nix:

{
  description = "test";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs";
  };

  outputs = { self, nixpkgs }: {
    colmena = {
      meta = {
        nixpkgs = import nixpkgs {
          system = "x86_64-linux";
        };
      };

      hetzner-test-01 = {
        imports = [
          ./hardware/hetzner-test-01.nix
        ];
      };
    };
  };
}

i'm running into a mountain of errors when i run colmena build

20:32:36
@aanderse:nixos.devaanderse

here is a snippet:

[ERROR] Cacheable portion of option doc build failed.
[ERROR] Usually this means that an option attribute that ends up in documentation (eg `default` or `description`) depends on the restricted module arguments `config` or `pkgs`.
[ERROR] 
[ERROR] Rebuild your configuration with `--show-trace` to find the offending location. Remove the references to restricted arguments (eg by escaping their antiquotations or adding a `defaultText`) or disable the sandboxed build for the failing module by setting `meta.buildDocsInSandbox = false`.
20:33:05
@aanderse:nixos.devaanderse

for reference hardware/hetzner-test-01.nix is pretty simple:

{ modulesPath, ... }: {
  # imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];

  boot.loader.grub.device = "/dev/sda";
  boot.initrd.kernelModules = [ "nvme" ];
  fileSystems."/" = {
    device = "/dev/sda1";
    fsType = "ext4";
  };
}
20:33:55
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @aanderse:nixos.dev

here is a snippet:

[ERROR] Cacheable portion of option doc build failed.
[ERROR] Usually this means that an option attribute that ends up in documentation (eg `default` or `description`) depends on the restricted module arguments `config` or `pkgs`.
[ERROR] 
[ERROR] Rebuild your configuration with `--show-trace` to find the offending location. Remove the references to restricted arguments (eg by escaping their antiquotations or adding a `defaultText`) or disable the sandboxed build for the failing module by setting `meta.buildDocsInSandbox = false`.
There was a bug that got fixed in 0.2.1 as well as in main: https://github.com/zhaofengli/colmena/issues/50
20:34:13

Show newer messages


Back to Room ListRoom Version: 6