!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
13 Apr 2023
@void68:matrix.orgvoidhi there, I am trying to move from morph to colmena, having some trouble00:13:27
@void68:matrix.orgvoidits always the same trouble with these tools, i want to access nodes inside modules yet fail.00:13:46
@void68:matrix.orgvoidis nodes always provided cos in one of my modules if I define {pkgs, config, options, lib, nodes, ...}: I get attribute nodes missing.00:14:42
@void68:matrix.orgvoidprolly Im doing something wrong.00:15:23
@void68:matrix.orgvoidtried config._module.args.nodes still no luck ;(00:17:28
@void68:matrix.orgvoidit is maybe the case where I need to pass the args manually since this module is buried deep inside a config with imports = [ (import ./some-module) ];00:18:59
@zhaofeng:zhaofeng.liZhaofeng LiIt should be present. Just making sure: It's not a submodule, right?00:28:40
@void68:matrix.orgvoidit is a chain of modules imported by import = [ some-module.nix ];00:32:01
@void68:matrix.orgvoidbasically it is a module that scans all other hosts in nodes to get a list and do something else with data from their configs.00:33:46
@void68:matrix.orgvoiddata is similar to config.networking.hostName etc.00:34:11
@void68:matrix.orgvoidnot sure what the problem is.00:34:26
@void68:matrix.orgvoid
                                                                                                                                              
[ERROR]   stderr)           227|     in commonAttrs // {                                                                                                                                                                                       
[ERROR]   stderr)           228|       drvPath = assert condition; drv.drvPath;                                                                                                                                                                
[ERROR]   stderr)              |       ^                                                                                                                                                                                                       
[ERROR]   stderr)           229|       outPath = assert condition; drv.outPath;                                                                                                                                                                
[ERROR]   stderr)                                                                                                                                                                                                                              
[ERROR]   stderr)        … while calling the 'derivationStrict' builtin                                                                                                                                                                        
[ERROR]   stderr)                                                                                                                                                                                                                              
[ERROR]   stderr)          at //builtin/derivation.nix:9:12: (source not available)                                                                                                                                                            
[ERROR]   stderr)                                                                                                                                                                                                                              
[ERROR]   stderr)        (stack trace truncated; use '--show-trace' to show the full trace)                                                                                                                                                    
[ERROR]   stderr)                                                                                                                                                                                                                              
[ERROR]   stderr)        error: attribute 'nodes' missing                                                                                                                                                                                      
[ERROR]   stderr)                                                                                                                                                                                                                              
[ERROR]   stderr)        at /nix/store/da6z64a7773wyhpnb1ih888c9fz4a4pr-source/lib/modules.nix:507:28:                                                                                                                                         
[ERROR]   stderr)                                                                                                                                                                                                                              
[ERROR]   stderr)           506|         builtins.addErrorContext (context name)                                                                                                                                                               
[ERROR]   stderr)           507|           (args.${name} or config._module.args.${name})                                                                                                                                                       
[ERROR]   stderr)              |                            ^                                                                                                                                                                                  
[ERROR]   stderr)           508|       ) (lib.functionArgs f);                                                                                                                                                                                 
[ERROR]  failure) Child process exited with error code: 1                                                                                                                                                                                      
[ERROR] Failed to complete requested operation - Last 1 lines of logs:                                                                                                                                                                         
[ERROR]  failure) Child process exited with error code: 1                                             
00:36:41
@void68:matrix.orgvoidI did tackle the problem in morph by re-evalling as in the following:00:38:51
@void68:matrix.orgvoid
                                                                                                                                                                          
        _coreMachines = import "${super.morph.lib}/eval-machines.nix" {                                                                                                                                                                        
          networkExpr = ../../network.nix;                                                                                                                                                                                                     
        };                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                               
         coreMachines = if config._module.args ? nodes                                                                                                                                                                                        
                        then config._module.args.nodes                                                                                                                                                                                        
                        else _coreMachines.nodes;                  
00:39:16
@void68:matrix.orgvoidbut I bet there is a better soln.00:39:34
@void68:matrix.orgvoidhmm, it seems to be triggered by a call from a container config imported by containers.some-container = { .. config = {config, pkgs, lib, ...}: { .. } }00:59:10
@void68:matrix.orgvoidin the container config, nodes is missing.00:59:28
@void68:matrix.orgvoidOK, fixed.01:16:33
@void68:matrix.orgvoidadded _module.args.nodes = nodes; in container configs. prolly nobody is gonna hit that anyways.01:16:53
@void68:matrix.orgvoidthnx.01:16:55
@zhaofeng:zhaofeng.liZhaofeng LiYeah, containers are evaluated in a separate evalConfig01:22:27
@void68:matrix.orgvoidthis actually tells me nodes should be a tree with containers as branches.01:23:27
@void68:matrix.orgvoidanyway, later.01:23:35
@void68:matrix.orgvoidRedacted or Malformed Event02:41:14
@void68:matrix.orgvoidRedacted or Malformed Event02:41:21
@void68:matrix.orgvoid * looking for an example, I basically want my hydra to build every host.02:41:47
@void68:matrix.orgvoid * looking for an example, I basically want my hydra to build every node.02:41:58
@void68:matrix.orgvoidRedacted or Malformed Event02:42:23
@void68:matrix.orgvoidRedacted or Malformed Event02:42:38
@void68:matrix.orgvoid *
{ machine }:                                                                                                                                                                                                                                   
{ ... }:                                                                                                                                                                                                                                       
let                                                                                                                                                                                                                                            
  nixpkgs = import <nixpkgs> {};                                                                                                                                                                                                               
  # Evaluate a morph network.                                                                                                                                                                                                                  
  evaluateMorph = networkExpr: import "${nixpkgs.morph.lib}/eval-machines.nix" {                                                                                                                                                               
    inherit networkExpr;                                                                                                                                                                                                                       
  };                                                                                                                                                                                                                                           
  morphResult = evaluateMorph ../network.nix;                                                                                                                                                                                                  
in {                                                                                                                                                                                                                                           
  "${machine}" = morphResult.nodes.${machine}.config.system.build.toplevel;                                                                                                                                     
}  
02:42:55

Show newer messages


Back to Room ListRoom Version: 6