!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
3 Feb 2022
@winterqt:nixos.devWinter (she/her)i misread your original answer23:55:02
@winterqt:nixos.devWinter (she/her)apologies23:55:04
@winterqt:nixos.devWinter (she/her) so why is impurity needed when using flakes? 23:55:42
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
so it is impure?
Yes, and we could make it work with pure-eval if we change our setup. The major obstable is that we have a separate eval.nix file that contains our logic, and that file is the entrypoint of the evaluation.
23:56:25
4 Feb 2022
@winterqt:nixos.devWinter (she/her)ah, i see now.00:01:28
@zhaofeng:zhaofeng.liZhaofeng Li ... and to expand on that, you can play around with the machinery like nix-instantiate --eval --pure-eval anything.nix and also --restrict-eval which is more relaxed and allows for things in the NIX_PATH to be accessed, but it seems that the pure-eval is never intended to be used like this outside of the new Flake-based nix CLI 00:06:16
@winterqt:nixos.devWinter (she/her)got it00:16:20
@winterqt:nixos.devWinter (she/her)Zhaofeng Li: why do you exit with 0 when the file doesn't exist in https://github.com/zhaofengli/colmena/pull/51/files#diff-c5cb072f3843e65103369a68e92494e5ab2915080d0930c0c4fd6b7cb2620a96R502?00:16:51
@winterqt:nixos.devWinter (she/her)doesn't this defeat the point of the services00:16:58
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
Zhaofeng Li: why do you exit with 0 when the file doesn't exist in https://github.com/zhaofengli/colmena/pull/51/files#diff-c5cb072f3843e65103369a68e92494e5ab2915080d0930c0c4fd6b7cb2620a96R502?
The service is supposed to die when it doesn't exist. The activation of the service is triggered by the path unit.
00:19:00
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
Zhaofeng Li: why do you exit with 0 when the file doesn't exist in https://github.com/zhaofengli/colmena/pull/51/files#diff-c5cb072f3843e65103369a68e92494e5ab2915080d0930c0c4fd6b7cb2620a96R502?
* The service is supposed to die when the key file ceases to exist. The activation of the service is triggered by the path unit.
00:19:12
@zhaofeng:zhaofeng.liZhaofeng Li * The service is supposed to die when the key file doesn't exist or ceases to exist. The activation of the service is triggered by the path unit. 00:19:36
@winterqt:nixos.devWinter (she/her)
In reply to @zhaofeng:zhaofeng.li
The service is supposed to die when the key file doesn't exist or ceases to exist. The activation of the service is triggered by the path unit.
got it.
why Restart = "on-failure"; btw?
00:27:38
@winterqt:nixos.devWinter (she/her)like, when would it want to be restarted? if inotifywait fails?00:27:53
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
like, when would it want to be restarted? if inotifywait fails?
Yes
00:28:02
@winterqt:nixos.devWinter (she/her)got it, thanks00:28:22
@zhaofeng:zhaofeng.liZhaofeng LiYou can also take a look at NixOps' implementation which uses inotifywait both ways: https://github.com/NixOS/nixops/blob/ce1c57ec104636954296c229468bb65fa4ec7f8d/nix/keys.nix#L234-L26200:28:54
@zhaofeng:zhaofeng.liZhaofeng LiIf the key file doesn't exist, the service is stuck in "activating" (ExecStartPre) with an infinite timeout00:29:39
@winterqt:nixos.devWinter (she/her)
In reply to @zhaofeng:zhaofeng.li
If the key file doesn't exist, the service is stuck in "activating" (ExecStartPre) with an infinite timeout
so did you go the path unit route for simplicity?
00:33:43
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
so did you go the path unit route for simplicity?
Yeah, feels cleaner to me, though path units don't support deactivation so I still ended up doing an inotifywait in the service itself.
00:35:57
@linus.heckemann:matrix.mayflower.deLinux Hackerman
In reply to @buckley310:matrix.org
because colmena was created before flakes were stable
Flakes still isn't stable.
08:39:16
@linus.heckemann:matrix.mayflower.deLinux HackermanThat's why it's guarded behind experimental-features, breaking changes can still happen.08:45:39
@buckley310:matrix.orgBuckleyThat' true.15:17:37
@buckley310:matrix.orgBuckleyI just mean like, the output attribute name for machine configs probably isnt going to change anymore now, so that aspect has stabilized 15:18:35
@buckley310:matrix.orgBuckleyBut yeah, flakes, totally not officially "stable" yet.15:19:04
@schnecfk:ruhr-uni-bochum.deCRTified Buckley: Regarding your colmena/nixosConfigurations-shim, how did you get it working at all? My flakes don't have an extraArgs.modules attribute, so I seem to be missing something. The configs build properly with nixos-rebuild --flake .#hostname build 17:46:12
@buckley310:matrix.orgBuckley Each machine should have the extraArga attribute, not the flake itself. Not sure if that’s what you mean 17:47:23
@schnecfk:ruhr-uni-bochum.deCRTified
In reply to @buckley310:matrix.org
So I'm curious. In my setup my servers all exist inside of my flake outputs.nixosConfigurations, and my outputs.colmena is just a stub that consumes nixosConfigurations and emits a colmena configuration. Is anyone else doing it this way, or just me? I really like the portability of keeping my hosts in nixosConfigurations
imports = value.extraArgs.modules;

This does not work, due to extraArgs.modules missing

17:48:19
@buckley310:matrix.orgBuckley

what happens if you run these terminal commands in your repo?

$ nix repl
nix-repl> :lf .
nix-repl> nixosConfigurations.<hostname>.extraArgs.modules
17:49:41
@schnecfk:ruhr-uni-bochum.deCRTified

Same error as when running colmena build:

error: attribute 'modules' missing

       at «string»:1:1:

            1| nixosConfigurations.mailbox.extraArgs.modules
             | ^
            2|


17:50:33

Show newer messages


Back to Room ListRoom Version: 6