!UUqahLbShAYkkrXmKs:matrix.org

DevOS

37 Members
Seeking help and geeking out together on https://github.com/divnix/devos & https://github.com/divnix/digga10 Servers

Load older messages


SenderMessageTime
18 Oct 2021
@blaggacao:matrix.orgDavid Arnold (blaggacao)
In reply to @timdeh:matrix.org
I'd be interested to analyze it's formal worst case complexity in comparison to the module system 🤔
It is monotonistic both, in general, and in the use of a mental "+" operator.
23:52:00
@blaggacao:matrix.orgDavid Arnold (blaggacao)It can support branching and merging of branches.23:52:21
@blaggacao:matrix.orgDavid Arnold (blaggacao)My feeling is it should never be more complex than git.23:52:42
@blaggacao:matrix.orgDavid Arnold (blaggacao)(comparing mental models)23:53:06
@blaggacao:matrix.orgDavid Arnold (blaggacao)In practice, though, one would seldomly want to merge branches, since branches almost exclusively represent specializations.23:53:48
@blaggacao:matrix.orgDavid Arnold (blaggacao)(that is: leaves)23:54:01
@blaggacao:matrix.orgDavid Arnold (blaggacao) The module system, in comparison is not monotonistic. You can probably find harmless-looking ways to destroy the data spine. But also there is no clear direction of how a configuration evolves: it's just a single global state, no "checkpointing" on the way. Global values can conflict virtually everywhere on a flat horizon. 23:56:40
@blaggacao:matrix.orgDavid Arnold (blaggacao) It's very much like cue 🤕😎😆 23:57:17
@blaggacao:matrix.orgDavid Arnold (blaggacao)To be able to have obviously hinted checkpoints for complex configuration is a very good strategy to reduce complexity of those nasy.global states.23:58:48
@blaggacao:matrix.orgDavid Arnold (blaggacao)* To be able to have obviously hinted checkpoints for complex configuration is a very good strategy to reduce complexity of those nasty wide-spanning states.23:59:03
@blaggacao:matrix.orgDavid Arnold (blaggacao)* To be able to have obviously hinted checkpoints for complex configuration on the other hand is a very good strategy to reduce complexity of those nasty wide-spanning states.23:59:25
19 Oct 2021
@timdeh:matrix.org@timdeh:matrix.orgI wonder if we could do like a POC of a subset of nixpkgs with it 🤔03:12:10
@timdeh:matrix.org@timdeh:matrix.orgor maybe hm?03:12:19
@blaggacao:matrix.orgDavid Arnold (blaggacao)I haven't thought about it. Currently the entire thing is only meant / designed for data. But for example, if there is a jsonSchema for systemd jobs (like nomad / k8s), we could indeed generate the respective data structures directly.12:43:28
@blaggacao:matrix.orgDavid Arnold (blaggacao)But I guess the point of the nixos module system is to have a unified config abstraction layer, although that premise is gladfully partially reverted by RFC42, letting upstream config handles shine through a bit.12:44:59
@blaggacao:matrix.orgDavid Arnold (blaggacao)I think RFC42 is a good piece in the corpus of community knowledge to really understand the reach and boundaries of the module system.12:45:51
@blaggacao:matrix.orgDavid Arnold (blaggacao)Undoubtedly, there is a crossing point where the marginal benefit of a unified abstraction falls below the marginal benefit of immediate upstream config data structures.12:47:03
@blaggacao:matrix.orgDavid Arnold (blaggacao)* Undoubtedly, there is a crossing point where the marginal benefit of a unified abstraction falls below the marginal benefit of expressivity of immediate upstream config data structures.12:47:58
@tomberek:matrix.orgtomberekgot some examples?14:38:56
@blaggacao:matrix.orgDavid Arnold (blaggacao)
...
      staging = let
        lhs = import ./base/default.nix {
          namespace = "staging";
          selfRev = stableSelfRev;
          domain = domain;
        };
      in data-merge.merge (enablePromtail lhs) {
        backend.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        databaseHA1.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        databaseHA2.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        databaseHA3.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        rabbitHA1.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
      };
      # External need a tcp route to the amqp
      rabbitHA1.Job.TaskGroups = data-merge.update [ 0 ] [{
        Services = data-merge.update [ 0 ] [{
          Tags = data-merge.append [
            "traefik.tcp.routers.erc20-testnet-stable-rabbit.rule=HostSNI(`*`)"
            "traefik.tcp.routers.erc20-testnet-stable-rabbit.entrypoints=amqp"
          ];
        }];
      }];
14:48:58
@blaggacao:matrix.orgDavid Arnold (blaggacao) *
...
      staging = let
        lhs = import ./base/default.nix {
          namespace = "staging";
          selfRev = stableSelfRev;
          domain = domain;
        };
      in data-merge.merge (enablePromtail lhs) {
        backend.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        databaseHA1.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        databaseHA2.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        databaseHA3.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
        rabbitHA1.Job.Constraints =
          data-merge.append [ (constrainToAwsInstance "i-061eb00a6") ];
      };
      # External need a tcp route to the amqp
      rabbitHA1.Job.TaskGroups = data-merge.update [ 0 ] [{
        Services = data-merge.update [ 0 ] [{
          Tags = data-merge.append [
            "traefik.tcp.routers.erc20-testnet-stable-rabbit.rule=HostSNI(`*`)"
            "traefik.tcp.routers.erc20-testnet-stable-rabbit.entrypoints=amqp"
          ];
        }];
      }];
...
14:49:08
@blaggacao:matrix.orgDavid Arnold (blaggacao)(nomad jobs but should look pretty analog for k8s manifests)14:49:43
@blaggacao:matrix.orgDavid Arnold (blaggacao)Ah you mean for the crossing point of marginal benefits?14:50:21
@blaggacao:matrix.orgDavid Arnold (blaggacao) It's an individual judgment but I'd say a distructive cross repo mkForce/mkOverride is relatively nasty. 14:51:21
@ultranix:matrix.orgultranixfinally trying out deploy-rs today16:09:38
@ultranix:matrix.orgultranixbeen using nixus for almost a year16:09:53
@mars:jupiterbroadcasting.commars

I'm waiting for Nix to stop churning so I can try out the template. I noticed a few things:

  1. The instructions on the devos website for getting started don't work because the example nix-shell invocation refers to the master branch, but devos has no master branch and its default branch is main

  2. Even though I added nrdxp's cachix instance, I had to build Nix, deploy-rs, and nvfetcher from source, which is taking a long time (mostly just for Nix itself, I think)

16:16:36
@kraftnix:matrix.org@kraftnix:matrix.orgthe need to build nix, deploy-rs and nvfetcher is definitely and issue that we should resolve if possible its one of the reasons i dont build devos on my laptop anymore16:19:52
@mars:jupiterbroadcasting.commarsyeah this is building on a Dell ultrabook, so the aluminum case is turning orange and the world's smallest fans are trying to put on an experimental harsh noise concert16:21:15
@mars:jupiterbroadcasting.commarslively and avant-garde, but not the smoothest OOTB experience ;)16:22:25

Show newer messages


Back to Room ListRoom Version: 6