This PR distills the private flake inputs pattern to 10 lines of Nix
code.
This also allows removing flake-parts as a public dependency. It's only
needed internally as glue code.
Keep the number of exposed inputs from the top-level flake small by
splitting the development environment into its own flake.
The .envrc uses `--override-input srvos path:$PATH` so that the srvos
path always get re-calculated on reload, but not recorded. Since the
hash of srvos is stored inside of srvos, it would infinitely update
otherwise.
One drawback of flake-parts is that it makes the wiring of the flake
outputs less easy to follow. With the new version the user can open the
flake.nix and pretty easily follow how things are put together.
Another drawback is that it makes the flake dependency tree larger. We
want to limit how much baggage srvos is adding when added as an input.
We introduce a few new mechanism in this commit:
flake-parts is used to wire things together.
./all-parts.nix looks for and imports all flake-part.nix files. This
makes it easier to co-locate the parts next to the targeted code.
We introduce a `modules` flake output to hold all modules. For example
instead of `nixosModules`, use `modules.nixos`.
In ./nixos we enforce a 1:1 mapping between the module filenames and the
attribute. For example ./nixos/mixins/telegraf.nix will translate to
`modules.nixos.mixins-telegraf`.
flake-compat ensures that the default.nix and flake.nix are in sync and have the same outputs.
* feat: add original github-runner module
Add original nixpkgs/nixos module to create github runner services.
* feat: use github app to create self hosted runners
* introduce EFI profile
For machines that can boot on EFI
* common: use systemd in the initrd as well
Replace the pile of shell scripts with systemd in the initrd
* Update profiles/common.nix
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
* Update profiles/common.nix
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>