!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
4 Feb 2022
@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
@zhaofeng:zhaofeng.liZhaofeng Li It occurs in nixos-unstable with sandboxed documentation builds enabled, where documentation.nix uses modulesPath to strip off the prefixes of module paths 20:35:20
@aanderse:nixos.devaanderseshould i backport 0.2.1 to nixpkgs stable for you? 😄20:35:32
@aanderse:nixos.devaanderseoh20:35:58
@aanderse:nixos.devaandersenevermind... i see now20:36:02
@aanderse:nixos.devaanderseha20:36:03
@aanderse:nixos.devaanderse thank you so much Zhaofeng Li ! 20:36:18
@hexa:lossy.networkhexai'm too lazy to migrate from morph 😓20:37:10
@zhaofeng:zhaofeng.liZhaofeng Li Colmena should hopefully just work with your existing morph configs 20:38:43
@zhaofeng:zhaofeng.liZhaofeng Liyou do have to change how you pin nixpkgs, though20:39:05
@zhaofeng:zhaofeng.liZhaofeng Li * you do have to change how you pin nixpkgs, though: https://zhaofengli.github.io/colmena/unstable/tutorial/migration.html20:39:27
@aanderse:nixos.devaanderse hexa: i haven't used morph ... but i can't say enough good things about colmena
this project is a breath of fresh air after having to deal with nixops issues (no stable release on python3) for a while
20:39:33

Show newer messages


Back to Room ListRoom Version: 6