!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

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

Load older messages


SenderMessageTime
7 Aug 2022
@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
@blaggacao:matrix.orgDavid Arnold (blaggacao)

To put it with physics, we need to iprove the bond-energy of otherwise linux-philosophy tool-atoms.

On the command line, the bond is very clear, usually it's |.

But that simplicity doesn't apply for a nix fabric.

17:15:22
@blaggacao:matrix.orgDavid Arnold (blaggacao)* To put it with a chemistry analogy to assent the argument: we need to iprove the bond-energy of otherwise linux-philosophy tool-atoms. On the command line, the bond is very clear, usually it's `|`. But that simplicity doesn't apply for a `nix` fabric.17:15:56
@blaggacao:matrix.orgDavid Arnold (blaggacao)* To put it with a chemistry analogy to assent the argument: we need to improve the bond-energy of otherwise linux-philosophy tool-atoms. On the command line, the bond is very clear, usually it's `|`. But that simplicity doesn't apply for a `nix` fabric.17:16:16
@blaggacao:matrix.orgDavid Arnold (blaggacao)* To put it with a chemistry analogy to assent the argument: we need to improve the bond-energy of otherwise linux-philosophy tool-atoms. On the command line, the bond is very clear, usually it's `|`. But that simplicity doesn't apply for a repository-spanning (i.e. world-spanning) `nix` fabric.17:16:52
10 Aug 2022
@luxus:furiosa.orgluxus joined the room.09:54:50
@dantefromhell:matrix.orgdantefromhell
In reply to @blaggacao:matrix.org

To put it with a chemistry analogy to assent the argument: we need to improve the bond-energy of otherwise linux-philosophy tool-atoms.

On the command line, the bond is very clear, usually it's |.

But that simplicity doesn't apply for a repository-spanning (i.e. world-spanning) nix fabric.

very true, as someone who has 20+ years of itops this still feels mostly unresolved and often unthought of.

I'm curious if you can provide more details to the solution you found?

21:14:41
@blaggacao:matrix.orgDavid Arnold (blaggacao)

Well, colmena uses an evaluator (instead of for example the nix bundle interface) in order to parallelize the evaluation. So at its heart, it's a speed consideración.

The receptor interface is established in src/nix/eval.nix and that defines the incoming schema as well as the intermediate schema that can be processed by the CLI.

There are two solutions:

  • don't use an evaluator, but rather consume a well-knowm flake attribute (which is already evaluated - this is the divnix/std approach with __std)
  • make the evaluator swappable colmena --eval ./path/to/eval.nix so that you can consume arbitrary inout contracts via a custom evaluator.

Since colmena strives for optimization and parallelization, the second option is really the beat choixe.

For something like divnix/styx, I don't know yet, I'll probably just going to wrap the nix bundle interface within the CLI. It's probably not parallelized, but it is easly swappable for a custom evaluator. WIP, so I might get more insight as I go.

21:21:43
@blaggacao:matrix.orgDavid Arnold (blaggacao)

From the bundler docs:

A bundler must be a function that accepts an arbitrary value (typically a derivation or app definition) and returns a derivation.

23:50:31
11 Aug 2022
@janejasperous:one.ems.hostJane Jasperous man nix3-bundle 08:24:47
@janejasperous:one.ems.hostJane Jasperous *

man nix3-bundle

and

https://github.com/NixOS/bundlers

08:25:57
@janejasperous:one.ems.hostJane Jasperous *

man nix3-bundle

and

https://github.com/NixOS/bundlers

I had missed this

08:31:04
13 Aug 2022
@ronnypfannschmidt:matrix.org@ronnypfannschmidt:matrix.org joined the room.12:01:57
@farcaller:matrix.orgfarcaller joined the room.14:26:22
@farcaller:matrix.orgfarcaller o/ I'm a bit confused as to where do I start, given colmena requires a host that's already running nixos (unless I missed anything?) can I just nix-build some base image for a vm myself then? do I need to be somehow specific about it? 14:28:16
@farcaller:matrix.orgfarcalleractually looking at what it did to a test system it seems that it pretty much wiped everything kubevirt builder did and got the “new” nixos rolling. Am I correct to assume that the base system is effectively lost configuration wise so it doesn’t really matter what I boot into?15:33:26
@kity:kity.wtfproblems joined the room.17:08:05
@jhillyerd:matrix.orgjhillyerdYeah, that's typically how nixos deploys work, the base system is mostly lost.17:24:00

Show newer messages


Back to Room ListRoom Version: 6