| 4 Feb 2022 |
Buckley | before 22.05 | 17:53:17 |
CRTified | 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 |
Buckley | did you read somewhere that the extraArgs thing got deprecated? if so ill get on solving this, since ill need to eventually anyway | 17:54:55 |
CRTified | I think I've read it somewhere | 17:55:31 |
CRTified | I'll try to find it again | 17:55:35 |
CRTified | It got really late last night đ
| 17:55:44 |
Buckley | heh | 17:56:28 |
Buckley | i like how literally a couple hours ago i said something like i dont think nixosConfigurations would break xD | 17:57:02 |
Zhaofeng Li | Looks like args and extraArgs was deprecates here:
https://github.com/NixOS/nixpkgs/pull/148315 | 17:58:29 |
Zhaofeng Li | * Looks like args and extraArgs was deprecated here:
https://github.com/NixOS/nixpkgs/pull/148315 | 17:58:52 |
Zhaofeng Li | But setting _module.args should be equivalent | 17:59:27 |
CRTified | 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 |
CRTified | So it looks like I'd need to filter it in that case? đ¤ | 18:05:29 |
CRTified | Can't really filter it âšī¸ Equality of lambdas is a bit hard as a problem đ | 18:16:06 |
Jane Jasperous | I get this exactly error using extraArgs.modules | 18:31:05 |
Buckley | okay i updated my deployment stuff. https://github.com/buckley310/nixos-config/blob/master/lib/deploy.nix | 18:45:47 |
Buckley | 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 |
Buckley | 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 |
Buckley | ./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 |
Buckley | * ./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 |
CRTified | 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 |
Buckley | 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 |
Buckley | i dont know of a better way at this moment | 18:54:30 |
CRTified | Yes, of course. I'd just be worried that one of the evals behaves slightly different somehow | 18:54:36 |
Buckley | they behaved slightly differently before :) | 18:55:26 |
Buckley | probably due to the impure build or something, they would produce different store paths for the systems than nixos-rebuild --flake would | 18:56:08 |
aanderse | 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 | 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 | 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 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 |