!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
30 Jul 2022
@winterqt:nixos.devWinter (she/her)Interesting!07:43:09
@winterqt:nixos.devWinter (she/her) Although, keep in mind that other privilege escalation commands (doas comes to mind) may not give us that luxury. 07:43:33
@zhaofeng:zhaofeng.liZhaofeng LiI would assume it's the same, otherwise it won't play well with pipes and be insecure07:44:33
@winterqt:nixos.devWinter (she/her)Oh, fair point.08:03:05
@winterqt:nixos.devWinter (she/her) What even is there to use other than stdin/stdout in a console, though? ~~This is obviously magic.~~ 08:03:36
@winterqt:nixos.devWinter (she/her)I'll look into it later, I'm intrigued.08:03:44
@winterqt:nixos.devWinter (she/her) Zhaofeng Li: That begs the question: why passthrough the profile switch execution, then? Were you under the assumption that it would be needed for ? 08:04:30
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
What even is there to use other than stdin/stdout in a console, though? ~~This is obviously magic.~~
IIRC it uses /dev/console. There is a flag to make sudo use stdin though
08:06:51
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
Zhaofeng Li: That begs the question: why passthrough the profile switch execution, then? Were you under the assumption that it would be needed for ?
No, it was from way before apply-local was changed to escalate privileges during activation. passthrough() is just a simple way to execute commands with both stdin/stdout piped
08:08:27
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
What even is there to use other than stdin/stdout in a console, though? ~~This is obviously magic.~~
* IIRC it uses /dev/console. There is a flag to make sudo use stdin though (edit: it's -S)
08:10:23
@winterqt:nixos.devWinter (she/her)
In reply to @zhaofeng:zhaofeng.li
No, it was from way before apply-local was changed to escalate privileges during activation. passthrough() is just a simple way to execute commands with both stdin/stdout piped
Why was it needed for the profile switch, out of curiosity?
08:12:58
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @winterqt:nixos.dev
Why was it needed for the profile switch, out of curiosity?
It was one of the four custom methods that I have to "execute" the command and get back a ColmenaResult. It's just a simple version of Command::status() which needs two layers of checking (the outer Result and the exit code).
08:22:44
@duponin:alternativebit.frduponin set a profile picture.19:09:28
4 Aug 2022
@bl1nk:matrix.orgbl1nk changed their profile picture.04:31:26
6 Aug 2022
@swissrouting:matrix.orgSwiss Routing joined the room.22:00:09
7 Aug 2022
@swissrouting:matrix.orgSwiss RoutingIs there any way to do a healthcheck with colmena? I see some other deployment tools support this. All I want to do is make sure that if I push a new config that disables SSH access accidentally, this is caught and rolled back.15:37:30
@dantefromhell:matrix.orgdantefromhell
In reply to @swissrouting:matrix.org
Is there any way to do a healthcheck with colmena? I see some other deployment tools support this. All I want to do is make sure that if I push a new config that disables SSH access accidentally, this is caught and rolled back.
i'm curious if tests as described here suffice your requirement?
https://nixos.mayflower.consulting/blog/2019/07/11/leveraging-nixos-tests-in-your-project/
20:49:02
@swissrouting:matrix.orgSwiss Routing
In reply to @dantefromhell:matrix.org
i'm curious if tests as described here suffice your requirement?
https://nixos.mayflower.consulting/blog/2019/07/11/leveraging-nixos-tests-in-your-project/
That seems pretty much what I want, will give it a try. Thanks!
22:44:16
@winterqt:nixos.devWinter (she/her)
In reply to @dantefromhell:matrix.org
i'm curious if tests as described here suffice your requirement?
https://nixos.mayflower.consulting/blog/2019/07/11/leveraging-nixos-tests-in-your-project/
How would that help without a mechanism to run the test? (Also, tests are within VMs.)
23:25:19
@winterqt:nixos.devWinter (she/her)
In reply to @dantefromhell:matrix.org
i'm curious if tests as described here suffice your requirement?
https://nixos.mayflower.consulting/blog/2019/07/11/leveraging-nixos-tests-in-your-project/
* How would that help without a mechanism to run the test? (Also, tests are within VMs, and can't access the host.)
23:25:26
@winterqt:nixos.devWinter (she/her) * How would that help without a mechanism to run the test? (Also, tests are within VMs, and can't access the host. So tests probably aren't the solution here.) 23:25:37
8 Aug 2022
@linus:schreibt.jetztLinux HackermanYou could put a NixOS test in system.extraDependencies (or similar, can't remember if that was the exact name of the option) so that the system won't build if the test doesn't pass, but yeah, it won't get you automatic rollback of changes that break your access06:03:18
@linus:schreibt.jetztLinux HackermanThere's nothing in colmena that would really support building this though06:19:32
@linus:schreibt.jetztLinux HackermanI suppose you could hack something together with post-activation key upload06:19:50
@winterqt:nixos.devWinter (she/her)Also keep in mind that you'd have to break ControlPersist on the client somehow, if you do that (delete the socket?)06:24:57
@winterqt:nixos.devWinter (she/her)(break = sever the connection, poor choice of wording maybe?)06:25:11
@winterqt:nixos.devWinter (she/her)* Also keep in mind that you'd have to break ControlPersist on the client somehow, if you use that (delete the socket?)06:25:15
@bl1nk:matrix.orgbl1nk

Can I also run the evaluation of my configuration on a separate host? Currently working around multiple issues where I can't update the configuration of my x86_64 Linux host, because I am running on a M1 Mac.

I was able to work around the issue of

error: assertion '(stdenv).isLinux' failed

by running a Linux (micro-)VM. Unfortunately evaluation still fails because of my architecture:

error: Package ‘iucode-tool-2.3.1’ in /nix/store/bwkwywd5wrwlk7106vi3z6d96dfhpdc7-source/pkgs/os-specific/linux/microcode/iucode-tool.nix:19 is not supported on ‘aarch64-linux’, refusing to evaluate.
13:09:13
@blaggacao:matrix.orgDavid Arnold (blaggacao)

Zhaofeng Li: I find this resumes well the impetus of a swappable evaluator. We have to introduce the two thought categories of vartical software feameworks and horizontal ones. True congruent configurations (even: hypercongruent) need both interfaces:

styx has the same problem as colmena , deploy-rs, et al.

It evolved into a vertical (tool centric) framework that is a bit hard to marry with a horizontal (integration centric) one like std.

I understood this abstract pattern with colemna and came up with a solution that involves for such tooling to have a pluggable evaluator interface to accomodate integration-centric evalutors, while still mostly preserving the look & feel (and branding/docs) of the native tooling.

17:09:10
@blaggacao:matrix.orgDavid Arnold (blaggacao)* Zhaofeng Li: I find this resumes well the impetus of a swappable evaluator. We have to introduce the two thought categories of _vartical_ software feameworks and _horizontal_ ones. True _congruent configurations_ (even: _hypercongruent_) need both interfaces. I'm copying my agrument from a private discussion: > `styx` has the same problem as `colmena` , `deploy-rs`, et al. > It evolved into a _vertical_ (tool centric) framework that is a bit hard to marry with a _horizontal_ (integration centric) one like `std`. > I understood this abstract pattern with colemna and came up with a solution that involves for such tooling to have a pluggable evaluator interface to accomodate integration-centric evalutors, while still mostly preserving the look & feel (and branding/docs) of the native tooling.17:09:50

There are no newer messages yet.


Back to Room ListRoom Version: 6