!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
1 Dec 2022
@linus:schreibt.jetztLinux Hackermanyeah this doesn't look like an issue with the deployment (which is colmena's job), but with the configuration14:26:39
@hexa:lossy.networkhexa changed their display name from hexa (22.11 now) to hexa.14:38:47
@ask-yourself:matrix.org@ask-yourself:matrix.org
In reply to @linus:schreibt.jetzt
if you set deployment.buildOnTarget for a machine, or pass --build-on-target on the command line, it will instead build directly on the host that's being deployed (though in the case of your workstation it will still end up being built on your workstation because that's what's being deployed)
Ok, yes I see. This makes a lot of sense, thank you.
16:57:29
@whentze:matrix.orgWanja Hentzehow are you folks coping with long NixOS eval times when using colmena?17:40:42
@whentze:matrix.orgWanja Hentzeany practical tricks I can pull to make my hive eval faster?17:40:55
@zhaofeng:zhaofeng.liZhaofeng LiHave you tried `--evaluator streaming`? It makes evaluation actually parallel using nix-eval-jobs. It's not the default yet but may be soon17:54:22
@ask-yourself:matrix.org@ask-yourself:matrix.org

I'm trying to switch to use doas instead of sudo, but I'm getting this:

.dotfiles on  main [!+] ⊥ doas colmena apply-local
error: getting the HEAD of the Git tree '/home/isaac/.dotfiles' failed with exit code 1:
       error: executing 'git': No such file or directory

(use '--show-trace' to show detailed location information)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ChildFailure { exit_code: 1 }', src/command/apply_local.rs:95:55
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I've tried adding deployment.privilegeEscalationCommand = ["doas"]; but still same result.

18:54:45
@linus:schreibt.jetztLinux Hackerman
In reply to @zhaofeng:zhaofeng.li
Have you tried `--evaluator streaming`? It makes evaluation actually parallel using nix-eval-jobs. It's not the default yet but may be soon
has the eval-node-limit heuristic improved? Without an explicit limit it at least used to completely blow my laptop up
18:56:02
@linus:schreibt.jetztLinux Hackerman
In reply to @ask-yourself:matrix.org

I'm trying to switch to use doas instead of sudo, but I'm getting this:

.dotfiles on  main [!+] ⊥ doas colmena apply-local
error: getting the HEAD of the Git tree '/home/isaac/.dotfiles' failed with exit code 1:
       error: executing 'git': No such file or directory

(use '--show-trace' to show detailed location information)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ChildFailure { exit_code: 1 }', src/command/apply_local.rs:95:55
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I've tried adding deployment.privilegeEscalationCommand = ["doas"]; but still same result.

This is because nix tries to call git as part of the flake evaluation, and presumably it's not on PATH for root when using doas (maybe it is with sudo?)
18:57:05
@linus:schreibt.jetztLinux Hackerman does just colmena apply-local work now? 18:57:42
@linus:schreibt.jetztLinux HackermanBecause running the evaluation as your user makes sense18:57:50
@linus:schreibt.jetztLinux Hackerman
In reply to @linus:schreibt.jetzt
does just colmena apply-local work now?
as in, I think setting privilegeEscalationCommand should make it work
18:58:16
@ask-yourself:matrix.org@ask-yourself:matrix.org I never use colmena apply-local. I always need to do sudo colmena-apply local (I thought this was normal!). Yes, sudo colmena-apply local currently works, yes. 18:59:52
@ask-yourself:matrix.org@ask-yourself:matrix.org

Also this is current doas conf:

{user, ...}: {
  security = {
    doas = {
      enable = true;
      extraRules = [
        {
          keepEnv = true;
          noPass = true;
          users = ["${user}"];
        }
      ];
    };
    sudo.enable = true;
  };
}

19:00:22
@linus:schreibt.jetztLinux Hackermanwith privilegeEscalationCommand set, it should work without sudo or doas, and colmena should invoke whichever it is19:00:49
@linus:schreibt.jetztLinux Hackermanand not evaluate or build as root, which is good because that's not necessary19:01:01
@ask-yourself:matrix.org@ask-yourself:matrix.org deployment.privilegeEscalationCommand = ["doas"]; is also set. 19:01:03
@linus:schreibt.jetztLinux Hackerman right, then try plain colmena apply-local 19:01:17
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @linus:schreibt.jetzt
has the eval-node-limit heuristic improved? Without an explicit limit it at least used to completely blow my laptop up
There hasn't been any change to the heuristic which assumes a constant memory size for each node. We can probably make the number bigger if people keep running into things like this. It's bit difficult to estimate the memory usage to evaluate a "typical" condig
19:01:31
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @ask-yourself:matrix.org
deployment.privilegeEscalationCommand = ["doas"]; is also set.
colmena apply-local --sudo should work
19:01:40
@ask-yourself:matrix.org@ask-yourself:matrix.org

The output of colmena apply-local is:

.dotfiles on  main [!+] ⊥ colmena apply-local
[WARN ] Colmena was not started by root. This is probably not going to work.
[WARN ] Hint: Add the --sudo flag.
warning: Git tree '/home/isaac/.dotfiles' is dirty
[INFO ] Using flake: git+file:///home/isaac/.dotfiles
warning: Git tree '/home/isaac/.dotfiles' is dirty
warning: Git tree '/home/isaac/.dotfiles' is dirty
        🕖 7s 2 succeeded
desktop ✅ 6s Evaluated desktop
        ❌ 7s Failed: Child process exited with error code: 1
desktop ✅ 6s Evaluated desktop
desktop ✅ 0s Built "/nix/store/cagxgr77kc1ip1f31fx9y1f5xq23mk68-nixos-system-desktop-23.05pre-git"
desktop ✅ 0s Pushed system closure
desktop ❌ 0s Activation failed: Child process exited with error code: 1
[ERROR] Failed to deploy to desktop - Last 3 lines of logs:
[ERROR]  created)
[ERROR]    state) Running
[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
[ERROR] -----
[ERROR] Operation failed with error: Child process exited with error code: 1
19:01:54
@linus:schreibt.jetztLinux Hackermanoops, never mind what I said then19:01:56
@ask-yourself:matrix.org@ask-yourself:matrix.org
In reply to @zhaofeng:zhaofeng.li
colmena apply-local --sudo should work
This should work even after I turn of sudo for this machine?
19:02:29
@ask-yourself:matrix.org@ask-yourself:matrix.org(And yes it does work, thank you.)19:02:50
@zhaofeng:zhaofeng.liZhaofeng LiIt uses the privilegeEscalationCommand configured in the config19:02:52
@zhaofeng:zhaofeng.liZhaofeng Li`apply-local` doesn't run the escalation command by default. It seems a bit rude to do so, given that sudo cache exists and Colmena may end up doing dangerous things without prompt. Better make it explicit I guess.19:03:36
@linus:schreibt.jetztLinux Hackerman gosh frick, I wanted to test if the problem still exists and yes it very much does lol 19:04:00
@zhaofeng:zhaofeng.liZhaofeng Li* There hasn't been any change to the heuristic which assumes a constant memory size for each node. We can probably make the number bigger if people keep running into things like this. It's bit difficult to estimate the memory usage to evaluate a "typical" config19:05:19
@ask-yourself:matrix.org@ask-yourself:matrix.org Zhaofeng Li: colmena apply-local --sudo doesn't work once sudo is turned off though, and I want to turn sudo off. 19:05:42
@linus:schreibt.jetztLinux HackermanHm, would it be appropriate to set the OOM score adjustment for the nix-eval-jobs process to avoid this kind of thing?19:06:28

Show newer messages


Back to Room ListRoom Version: 6