| 19 Feb 2025 |
pcarrier | Any way to set custom attributes on my nodes, that I could then consume from the default config? | 12:53:52 |
kevinpthorne | https://nixos.wiki/wiki/NixOS_modules | 12:56:22 |
pcarrier | I'm not quite sure how to apply this here | 13:00:08 |
pcarrier | defaults = { foo = lib.mkOption { … } };
host = { foo = bar; }
doesn't work right?
| 13:00:56 |
pcarrier | ah, got it, thanks | 13:30:27 |
| @thesimplekid:matrix.org left the room. | 14:49:23 |
| sako -w- joined the room. | 18:13:40 |
pcarrier | Been stuck for a while with this error: https://gist.github.com/pcarrier/bc0173d20106cd178707f1955a1dafd8 | 19:19:35 |
pcarrier | Any ideas would be much appreciated | 19:19:40 |
gmacon | Looks like you need enable = config.roles ? etcd; since on the non-etcd hosts, config.roles will be an attrset that does not contain an etcd key, so you can't get the value of that key. Another option would be to ensure that roles always contains every possible role, but set to false for the roles this host doesn't have. | 20:18:22 |
pcarrier | well I thought I did exactly that through its default value | 20:19:22 |
pcarrier | options = {
roles = mkOption {
type = types.attrsOf types.bool;
default = {
bastion = false;
spawner = false;
etcd = false;
webserver = false;
};
};
};
| 20:20:05 |
pcarrier | that's OK, I'll switch to a single role per box | 20:22:35 |
pcarrier | perfect :) | 20:37:06 |
pcarrier | Redacted or Malformed Event | 20:43:00 |
pcarrier | * I'm trying to make nix run .#deploy args... run the colmena version as imported, can't find how to access the binary to put in a pkgs.writeShellScriptBin though | 20:43:20 |
gmacon | Ah; the assignment overrides the default value instead of being merged with it, you need types.submodule with each role having its own default to do that. | 20:48:17 |
kevinpthorne | From the cheap seats: Why not use an array of enum type? The kubernetes pkgs does it and makes it clean to check
Roles = [ “bastion” “etc” ]; for example | 20:50:11 |