!MthpOIxqJhTgrMNxDS:nixos.org

NixOS ACME / LetsEncrypt

93 Members
Another day, another cert renewal43 Servers

Load older messages


SenderMessageTime
22 Aug 2023
@raitobezarius:matrix.orgraitobezariusRather than solved in NixOS19:32:32
@raitobezarius:matrix.orgraitobezariusAs you said it, we have too much complexity in our NixOS module19:32:54
@raitobezarius:matrix.orgraitobezariusBecause we don't have enough good primitives for this19:32:59
@raitobezarius:matrix.orgraitobezariussystemd is in the good position to create the right primitive19:33:05
@raitobezarius:matrix.orgraitobezariusMeanwhile, an official patch can be blessed19:33:12
@raitobezarius:matrix.orgraitobezariusAnd can be applied to nixpkgs19:33:17
@raitobezarius:matrix.orgraitobezariushttps://github.com/systemd/systemd/issues/2807519:33:38
@raitobezarius:matrix.orgraitobezariusAs the OP is interacting here, I'd just encourage to push through19:33:49
@raitobezarius:matrix.orgraitobezariusAnd coordinate with NixOS systemd folks if help is needed19:33:56
@raitobezarius:matrix.orgraitobezariusIt's not like anyway we don't need that feature for something else than ACME19:35:56
@raitobezarius:matrix.orgraitobezariusSo I wish we don't see hacks to generalize this behavior everywhere19:36:03
@m1cr0man:m1cr0man.comm1cr0manI do agree this should be solved upsream. I don't know if you clicked in but the "competing" PR (my one) is a pure systemd + nix implementation with arguably less overheads.20:26:48
@m1cr0man:m1cr0man.comm1cr0manIt's annoying to add more complexity but personally I am trying to keep the diff and unique code low where possible. Both lego and systemd could do with upstreamed features to help us out. For example, if lego had an "offline ok" flag for checking renewal that would remove all the openssl shenanigans. I did plan to upstream that at one point but just never had the time20:29:25
30 Aug 2023
@ajs124:ajs124.deajs124 joined the room.17:38:15
@andreas.schraegle:helsinki-systems.de@andreas.schraegle:helsinki-systems.de left the room.17:57:46
@os:matrix.flyingcircus.ioosnyx (he/him) joined the room.23:06:39
31 Aug 2023
@moritz.hedtke:matrix.orgMoritz Hedtke removed their display name moritz.hedtke.16:13:38
4 Sep 2023
@os:matrix.flyingcircus.ioosnyx (he/him)Finally noticing there's a NixOS ACME room, I'd like to kindly invite you to give your opinion on https://github.com/NixOS/nixpkgs/issues/232505#issuecomment-1669434562 and how we can move this forward. It'd be really great to get this into 23.11 as a fix that does change some default behaviour. I'll also be present at NixCon later this week for further discussions there, but feel free to spread the discussion on this over Matrix and the GitHub issue/PRs as well.12:12:12
@os:matrix.flyingcircus.ioosnyx (he/him)
In reply to @raitobezarius:matrix.org
Personally, I'd prefer to see this solved in systemd
I'd like to see such primitives in systemd as well. Unfortunately, the issue being resolved by the PR is a thing right now. The only WIP systemd PR #27985 though has seen its last activity in July, and currently also does not really provide what we need anyways as it makes the services exceeding a concurrency limit fail instead of blocking them.
Given the last systemd releases took 4-5 months, even under favourable circumstances it'd probably take at least until NixOS 24.11 until we could have a systemd with locking primitives in NixOS and have managed to change the acme module accordingly.
12:27:10
@os:matrix.flyingcircus.ioosnyx (he/him)I was actually the one suggesting in the PR that this should include support for blocking services as well. While Lennart Poettering has supported the idea, this is the only thing that happened towards that, the PR still does not support blocking/ delaying unit starts. When it comes to doing the systemd patches myself, I unfortunately do not really feel comfortable with writing system-level C code for such delicate subsystems.12:30:44
@os:matrix.flyingcircus.ioosnyx (he/him)What I could pledge is that I'll rebuild the ACME locking code away from the introduced intermediary solution towards systemd locking primitives, if they ever arrive.12:31:44
@os:matrix.flyingcircus.ioosnyx (he/him)TL;DR: Wanting to solve the acme generation concurrency issues with systemd is a nice approach, but implies leaving the issue unresolved for at least a year, if not longer. It is unclear whether the required mechanisms will ever be introduced to systemd, who's taking care of achieving this, and when this might happen.12:34:01
@os:matrix.flyingcircus.ioosnyx (he/him) If we decide to go with one of the PRs, there's another thought:
m1cr0man has implemented the run exclusions using systemd, citing a reduction of module complexity. I do agree with the general goal, we need to consider what kind of complexity we mean here.
When it comes to understanding and reading what the module does to be able to maintain it, it's not just about the number and variety of involved software components but also about their scoping and the mental model presented by their interface.
12:47:11
@os:matrix.flyingcircus.ioosnyx (he/him) Building a component that presents the clear abstraction "I am doing locking and exclusion" can be treated just by its promised functionality at superficial reading. Only when there are clues that it's actually the locking internals that are problematic, the internal component's implementation needs to be read and understood as well.
The solution by m1cr0man works well, too, but we might face the danger of the additional systemd unit parameters getting lost in the noise of the already present multitude of systemd unit parameters of acme units.
12:51:09
@raitobezarius:matrix.orgraitobezarius
In reply to @os:matrix.flyingcircus.io
TL;DR: Wanting to solve the acme generation concurrency issues with systemd is a nice approach, but implies leaving the issue unresolved for at least a year, if not longer. It is unclear whether the required mechanisms will ever be introduced to systemd, who's taking care of achieving this, and when this might happen.
The question is for whom are you solving this such urgently?
12:53:13
@m1cr0man:m1cr0man.comm1cr0manThis really comes down to a question of maintenance in my head. Both add complexity in their own ways, and have other merits. To be honest, I'm stuck for time at the moment and I would gladly take the help on keeping the module functioning at the moment. If you are willing to help maintain this portion of the module Oliver, then I'm happy to see your pr merged 🙂12:53:40
@raitobezarius:matrix.orgraitobezariusIf we implement the solution in systemd, while it's true that the latency of getting those changes in systemd takes time, it does not prevent anyone running them inside of an organization :)12:53:46
@raitobezarius:matrix.orgraitobezariusI am biased either way as a systemd and NixOS developer and see the value of having this upstream rather than specialized here12:54:48
@raitobezarius:matrix.orgraitobezariusSo don't take my opinion as a blocker or whatever12:55:06
@os:matrix.flyingcircus.ioosnyx (he/him)
In reply to @raitobezarius:matrix.org
The question is for whom are you solving this such urgently?
Whether this is urgent for NixOS upstream is partly your decision as the maintainers team (as a personal user I'd say yes as well), but the implementation I am doing for FlyingCircus.
12:55:25

Show newer messages


Back to Room ListRoom Version: 6