Colmena | 332 Members | |
| A simple, stateless NixOS deployment tool - https://github.com/zhaofengli/colmena | 117 Servers |
| Sender | Message | Time |
|---|---|---|
| 9 Jul 2022 | ||
*
If it's a legit argument: think about that in certain (big) monorepo scenarios, the flake.nix is too much of a precious space so that it cannot accomodate NxM flake-based frameworks, but only one. | 21:07:29 | |
*
If it's a legit argument: think about that in certain (big) monorepo scenarios, the flake.nix is too much of a precious space so that it cannot accomodate NxM flake-based frameworks, but only one, in order to make the life of 20%-half-hearted & reluctant nix users a tid bit easier. | 21:08:18 | |
*
If it's a legit argument: think about that in certain (big) monorepo scenarios, the flake.nix is too much of a precious space so that it cannot accomodate NxM flake-based frameworks, but only one, in order to make the life of 20%-half-hearted & reluctant nix users a tid bit easier (by maintaining intact their principled understanding of a | 21:08:45 | |
*
If it's a legit argument: think about that in certain (big) monorepo scenarios, the flake.nix is too much of a precious space so that it cannot accomodate NxM flake-based frameworks, but only one, in order to make the life of 20%-half-hearted & reluctant nix users a tid bit easier (by maintaining intact their principled understanding of a | 21:09:41 | |
| 11 Jul 2022 | ||
| 10:58:13 | ||
| Hi folks! I'm new to colmena and I like that it seems well maintained, fast, flake-oriented, easy and stateless. Cool! However, regarding the stateless part, I like it because I actually keep state elsewhere: in Terraform. Until today, I got wired a Terraform output with a one-line Ansible dynamic inventory script and it has worked very nice until now: terraform generates the inventory and Ansible consumes it and applies roles. Moving to Colmena means dumping Ansible. How can I feed a dynamic inventory into Colmena? Does it have such concept? Or maybe I'm misunderstanding something... | 11:07:08 | |
If you can use JSON as terraform output, you could try using builtins.fromJSON to generate your system configs "on the fly". That's probably more on the nix-side than on the colmena one | 11:09:23 | |
| At least that's what I'd probably do (but I do not use terraform, so my understanding of that part might be a bit limited) | 11:09:51 | |
| Yes, that was my initial thought. I'm just wondering if the pure nature of flakes will just build that script once and never execute it again. 🤔 | 11:11:26 | |
| It'd be an IFD in any case, I hope also that's no problem | 11:11:45 | |
| let me do some tests | 11:11:58 | |
| So right now I'd imagine a workflow similar to:
| 11:14:22 | |
| Please correct me if that is wrong 😄 | 11:14:32 | |
| it should work | 11:15:00 | |
| How to use impure flake evaluation? | 11:15:11 | |
| iirc colmena defaults to it | 11:15:57 | |
| ah! | 11:16:05 | |
Otherwise, most nix tools use --impure | 11:16:06 | |
| good | 11:16:10 | |
| ok let me try | 11:16:13 | |
| it mainly means that the git tree for the config might contain uncommited changes | 11:16:32 | |
| But I don't know whether the terraform json output should be tracked by git 🤔 | 11:16:49 | |
| * But I don't know whether the terraform json output should be tracked by git 🤔 (to make it pure) | 11:16:57 | |
| it shouldn't | 11:16:58 | |
see, with the same Terraform declarations I can run terraform apply or terraform destroy | 11:17:26 | |
| So let's say:
| 11:18:05 | |
| that's why Terraform keeps the state outside git (and for other reasons), and why this can't be pure to be usable | 11:18:28 | |
| Well, I could git-commit the terraform output anyway 😆 | 11:18:40 | |
| But direct linking to terraform state seems more useful imho (I might be wrong) | 11:19:04 | |
| well... just like I was expecting, it doesn't work. 😕
The results, as I was expecting:
Basically it means that it's trying to build that inventory as a normal derivation, in isolation. Thus, it doesn't get the necessary environmental secrets that Terraform uses to access its state, and fails. The dynamic inventory should be evaluated outside of the nix expression, and maybe passed in as an argument. But my guess is that this would be common enough so as to colmena needing to add support for it out of the box somehow, right? | 12:34:06 | |