Commit graph

193 commits

Author SHA1 Message Date
David Arnold 62683b24ac
ref: pass our lib as lib.our to the module system
At least we don't find ourselves with strange module signatures
and use something that looks like a dedicated namespace within
he module system: `config.lib`
2021-06-13 23:30:05 -05:00
Benjamin Bädorf 52b6a54d28
Merge upstream 2021-06-09 18:37:21 +02:00
Pacman99 5831adb061 flake: switch to digga master
To use the now released v0.2.0
2021-06-08 18:14:32 -07:00
Pacman99 8e250d5084 flake: add agenix to devShell 2021-06-01 11:32:20 -07:00
Pacman99 d9082066f7 flake: update to new digga api 2021-06-01 11:32:20 -07:00
Benjamin Bädorf ddcf369f41
Initial PubSolarOS commit 2021-05-30 21:10:28 +02:00
Pacman99 768e3e7541 Merge branch 'core' into develop 2021-05-27 11:02:41 -07:00
bors[bot] da9f14cab2
Merge #279
279: Agenix integration r=blaggacao a=Pacman99

AFAICT This is mostly a documentation thing. But with divnix/devlib#2 we can now add agenix to the devshell.

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-05-20 18:53:20 +00:00
Pacman99 18d4c78ea5 flake: un-comment defaultTemplate
This was accidentally commented.
fixes #288
2021-05-16 19:35:52 -07:00
Pacman99 2ab4df3f60 suites: re-add rec to simplify suite definitions 2021-05-15 10:31:54 -07:00
Pacman99 64b7892f6e Add agenix integration to secrets and flake 2021-05-14 18:38:55 -07:00
Pacman99 2f474e37f7 flake: update to latest digga api
allows overlays to also be used with `imports` and renames importHosts
2021-05-14 16:49:12 -07:00
Pacman99 dd6c481791 flake: format ourlib for consistency with digga 2021-05-14 11:01:44 -07:00
Pacman99 923ce7feff tree: rename devlib -> digga 2021-05-14 10:20:02 -07:00
Pacman99 ccc0fc97fe flake.nix: use imports for auto-import of hosts
This makes the auto-importing of hosts obvious and explicitly indicates
how the options would end up getting merged.
2021-05-13 17:03:51 -07:00
Pacman99 c89dfed81c don't import cachix in suites
its already imported in the core profile
2021-05-12 19:18:11 -07:00
Pacman99 67f545123c flake: format and update to devlib api changes 2021-05-12 12:31:43 -07:00
Pacman99 3ee831f852
flake.nix: explicitly append overlays from path
Co-authored-by: David Arnold <dar@xoe.solutions>
2021-05-12 12:29:00 -07:00
Pacman99 f4cd79194a add in-tree local lib, ourlib 2021-05-05 13:44:39 -07:00
Pacman99 8dabd0f569 switch to devlib repo and remove in-tree lib 2021-05-05 13:24:08 -07:00
Pacman99 b8f7cdbe63 improve home-manager and deploy-rs integration
move both to be setup in template
only set home-manager options if they exist
2021-05-03 19:20:41 -05:00
Pacman99 e98e595704 pass builderArgs to config and extract builds
have mkHomeConfiguration create its own custom build within the function
create a externalModule for customBuilds so its easy to add more
2021-04-30 10:52:35 -07:00
Pacman99 a5dcb5fae9 fix flake by removing flake-compat follows 2021-04-27 18:41:51 -07:00
Pacman99 5bc88ad2c2 don't use lockfile to get flake-compat
lock file format isn't very reliable with naming inputs
2021-04-27 16:36:07 -07:00
Pacman99 aa825b87a6 auto import hosts in flake.nix
this allows host-specific settings to be overriden with mkMerge
2021-04-27 10:26:45 -07:00
Pacman99 d5276195f7 move overrides.nix to overlays
also update overrides docs
it is a pure devos overlay now, it makes sense to go in overlays
2021-04-27 09:47:04 -07:00
Pacman99 e67b49c280 auto-flatten coercedListOf and type fixes 2021-04-27 09:35:44 -07:00
Pacman99 e9675330a7 add cachix to base suite
to follow the new api
2021-04-26 19:34:18 -07:00
Pacman99 b766c693ab add pkgs overlay, pkgs.overlay is just for srcs 2021-04-26 13:21:40 -07:00
David Arnold c3d8805ad6 update devos template to use new api 2021-04-26 11:51:39 -07:00
David Arnold 239386b5f8
Merge branch 'core' into api-next 2021-04-19 00:10:47 -05:00
David Arnold a714cf466d
fix: various left-overs 2021-04-18 23:48:19 -05:00
Timothy DeHerrera e1e0f99af9
suites: move to profles/suites.nix 2021-04-18 21:13:12 -06:00
Timothy DeHerrera e13a65b33c
overrides: move to extern 2021-04-18 21:06:47 -06:00
David Arnold 19c900e293 workarround for unkown problem 2021-04-18 19:11:26 -05:00
David Arnold 5f89d27428 ref: extract lib into subflake 2021-04-18 19:11:26 -05:00
Pacman99 ac4c26755b init pkgs-lib, move tests and shell there 2021-04-10 13:36:54 -07:00
Timothy DeHerrera be4b612b23
treewide: format with nixpkgs-fmt 2021-04-09 19:22:08 -06:00
Pacman99 d068d79bfd flake: use mkFlake
this is where we create devos's template structure
2021-04-06 12:45:04 -07:00
Pacman99 92700888b7 flake: update to use mkSuites and mkHosts 2021-03-29 09:05:54 -07:00
bors[bot] ef1ee6e6b8
Merge #217
217: lib/mkPkgs: don't import external files and get inputs as argument r=nrdxp a=Pacman99

Changes mkPkgs to take extern, overrides, and pkgs as an argument. This improves their ability to be used as lib functions.

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-03-27 17:31:26 +00:00
Pacman99 e10fd4b319 shell: get extern and overrides to pass to mkpkgs 2021-03-27 10:09:05 -07:00
Pacman99 562f476fb5 lib/mkPkgs: fix function arguments
take extern and overrides as arguments as to not import external files
get inputs as a function dependency from callLib
2021-03-27 10:09:05 -07:00
Pacman99 58814fe741 flake: use filterPackages instead of flattenTreeSystem 2021-03-26 17:03:23 -07:00
Pacman99 dc9d9877b8 export homeConfigurations for all user@host pairs and add better home-manager only defaults 2021-03-23 09:43:37 -07:00
Pacman99 416a52fcd3 users: add and export user modules and import them in hosts 2021-03-23 09:43:37 -07:00
Pacman99 0e5aa6568e flake/home: release -> master 2021-03-23 09:43:37 -07:00
Timothy DeHerrera 44623b5979
nix: don't use nix flake
I originally wanted to use the nix flake to allow users to take
advantage of the latest changes. Just so happened that nixpkgs was
recently updated with a new version around the same time, and this
just adds complexity for no real gain.
2021-03-22 23:29:31 -06:00
Timothy DeHerrera 9537daee32
flake: nixos -> nixos-unstable
20.09 is getting stale as we move toward a new release so track
unstable for now.
2021-03-22 23:20:40 -06:00
Pacman99 3c8d22a528 flake/tests: improve multi arch support for flake checks 2021-03-19 12:23:23 -07:00
Pacman99 aec7c92cc7 hosts: set nixpkgs.pkgs based on nixpkgs.system 2021-03-19 12:23:23 -07:00
Pacman99 4034659350
lib: pass inputs to ./lib
library functions now can access inputs (and their sources!)
directly, for example in order to copy their closure into
the iso registry so that evaluating the flake does not need
to fetch inputs again
2021-03-16 16:38:36 -05:00
David Arnold 3d324e7533 lib/devos: bake devos repo into live cd (#168)
fix #167 

This worked for me to bootstrap another machine.
2021-03-16 19:50:38 +00:00
Timothy DeHerrera d51cd34fb7
subflakes: make first class citizens
Subflakes should provide their wares as outputs, so wire up the pkgs
flake to reflect that.

Due to the unstable nature of flakes, updating the root flake doesn't
currently update the subflake lock file. Therefore, add additional
logic to flk update script in order to do this behind the scenes.

Nix is now pulled in from the "nix" registry flake in order for users
to take advantage of improvements to the UI since its last update in
nixpkgs.
2021-03-14 21:27:58 -06:00
Timothy DeHerrera c012f2f4ed treewide cleanups and refactoring for initial tests (#157)
- [x] refactor lib into separate files, similar to NixOS/nixpkgs/lib.
- [x] refactor ci to automatically generate derivations from flake outputs
- [x] remove cluttered indirection statements throughout the codebase
- [x] refactor hosts to allow for upcoming integration tests
- [x] improve ambiguity in the existing docs 
- [x] add [BORS](https://bors.tech) support
- [x] add initial integration test
- [x] write tests documentation
- [x] test lib
- [x] improve version string generation, and do so automatically for pkgs/flake.nix sources

Clean up the codebase as best we can in preparation for #152 and add tests. From now on, all PRs will be merged with BORS.
2021-03-14 07:10:51 +00:00
Timothy DeHerrera 5bd8876b74
Merge pull request #147 from blaggacao/da/lib-with-dep-on-pkgs
lib: can depend on pkgs (a la nixpkgs#pkgs/pkgs-lib)
2021-03-05 12:16:38 -07:00
Timothy DeHerrera 5bce44b1bd
flake.lock: update 2021-03-01 20:30:47 -07:00
David Arnold bca532ab42
lib: can depend on pkgs (a la nixpkgs#pkgs/pkgs-lib) 2021-03-01 14:01:17 -05:00
Timothy DeHerrera e5ddc3127b
pkgs#flake: fix flake-compat support
https://github.com/edolstra/flake-compat/pull/18
2021-02-26 00:15:46 -07:00
Timothy DeHerrera 25180a5e6e
pkgs: use subflake to manage package sources
* Resolves #118
* Leverage flakes to manage package sources & hashes
* Update documentation with an example.
* Add `mkVersion` function to autogenerate a version string.
* Add srcs package via overlay containing all sources defined in
  _pkgs/flake.nix_
* Extend `flk update` with the ability to only update the given input
2021-02-26 00:15:45 -07:00
Timothy DeHerrera 77296ff433
deploy: move logic to lib 2021-02-15 11:24:43 -07:00
Timothy DeHerrera caba5fd756
deploy-rs: init support
Managing servers remotely is a big usecase, and deploy-rs is a flake
first deployment tool. By default, all nixosConfigurations are also
setup as deploy-rs nodes.

You'll still need to do some manual ssh setup, but other than that, the
system is ready to deploy.
2021-02-14 22:17:24 -07:00
Timothy DeHerrera cf23b8e64d
flake: rename flake-utils input 2021-02-14 22:11:49 -07:00
Timothy DeHerrera b42f7b514d
flake: manage flake-compate as input 2021-02-14 22:08:24 -07:00
Timothy DeHerrera 1b12c78c0e
flake: nixpkgs points to master by default
No need to explicitly specify it.
2021-02-14 19:43:11 -07:00
Timothy DeHerrera bf34d2071f
doc: new mdbook documentation 2021-02-14 02:46:05 -07:00
Timothy DeHerrera 933fb8fee9
shell: cleanup devshell
* Add update command to flk
* Add cleaner usage to flk command
* Factor out scripts to be more readable
2021-02-14 02:29:17 -07:00
Timothy DeHerrera 850cb21124
flake: use same nixos versions for inputs 2021-02-07 14:25:18 -07:00
Timothy DeHerrera 0ec0c25238
various refactors
* Move extern lists to their own folder
* Move unstable package and module imports to their own folder
* Create a genPkgs function to avoid using legacyPackages for the whole
  package set
* Move hmActivationPackages to legacyPackages
2021-02-03 23:44:58 -07:00
Timothy DeHerrera 4ae99af29d
Merge pull request #102 from blaggacao/da/iso-sd-netboot
host: add deault implementation for system.build.isoImage target (per…
2021-02-01 19:51:44 -07:00
Timothy DeHerrera 8d0119d8e4
home: move hmActivationPackages to own output
Fixes `nix flake check` failure.
2021-02-01 19:48:59 -07:00
Timothy DeHerrera 17621d6b14
iso-cd: style cleanup (#2) 2021-02-01 20:57:19 -05:00
David Arnold 8cb82a307f
iso: move iso target to ./lib 2021-01-27 21:17:59 -05:00
Pacman99 88eecddab5
users: home-manager only configurations
for non-root users or non-nixos systems
2021-01-27 10:16:08 -07:00
Timothy DeHerrera b1c42e4ed4
flake: format fix 2021-01-25 09:21:27 -07:00
Timothy DeHerrera a173bd4165
profiles#ci-agent: init 2021-01-25 09:20:40 -07:00
Timothy DeHerrera 82463ffdc9
flake: apply overrides first
Fixes other overlays not applying when pulling package from master.
2021-01-24 11:05:37 -07:00
Timothy DeHerrera 1b80806516
compat: fixes
* fix nixos-option
* use flake-compat for all backward compat concerns
* rebuild devshell after any nix file changes
* reexport system pkgs as legacyPackages
* provide lib flake output
* provide flake lib to nixos configs via `lib.flk`
* clean up flake.nix
2021-01-23 16:45:10 -07:00
Timothy DeHerrera 47963432c4
Revert "Add nrdxp cachix to substituter flake list" 2021-01-23 16:36:21 -07:00
Timothy DeHerrera 8ce3db6326
Merge pull request #71 from blaggacao/da-substituters
Add nrdxp cachix to substituter flake list
2021-01-18 10:20:33 -07:00
Timothy DeHerrera 58b0f1ae65
Merge branch 'template' into template 2021-01-18 10:03:57 -07:00
Timothy DeHerrera f8f67d2dcb
packages: apply overlays to output packages
Apply overlays to output packages so we can easily use a modified
package.
2021-01-18 02:23:49 -07:00
Benedikt Tissot a9f11b3dca flake/host: add nixos-hardware
- add nixos-hardware flake.
- configuration in hosts/default.nix to be able to include hardware
specifics per host.
- add corresponding documentation in readme
2021-01-18 08:37:11 +01:00
Timothy DeHerrera 25293a7ea8
flake: remove apps to reduce complexity
As pointed out here numtide/flake-utils#17, apps are somewhat redundant
and, for the sake of simplicity, should be removed for now.
2021-01-11 18:10:48 -07:00
Timothy DeHerrera ade0ca4e3a
Merge pull request #77 from blaggacao/patch-3
Evaluate exported pkgs against repo baseline nixos
2021-01-11 17:59:22 -07:00
David Arnold a45df43106
Update flake.nix 2021-01-11 14:26:25 -05:00
David Arnold bb3f6ac13e
Little hint 2021-01-11 14:14:48 -05:00
David Arnold c1b04a3aa1
Evaluate exported pkgs against repo baseline nixos
The baseline pkgs for own consumption is nixos, only pkgs/override.nix
provides a mechanism to "backport" packages from unstable.

Therefore, we should expose our packages to others in the same
context as we use them ourselves.
2021-01-10 20:02:08 -05:00
David Arnold 99c537e10e
Add nrdxp cachix to substituter flake list
courtesy of: 343239fc8a
2021-01-09 20:39:12 -05:00
Timothy DeHerrera 41e3de0eab
flake: simply packages with flattenTreeSystem
Based on https://github.com/numtide/flake-utils/pull/13.
2021-01-03 00:05:39 -07:00
Timothy DeHerrera 00b35136c3
flake: add pkgs back to overlays
Packages from `pkgs/default.nix` are meant to be exposed to all nixos
configurations. However, #61 removed a redundancy in the output api
which was  relied up to do so.
2020-12-31 14:02:19 -07:00
Timothy DeHerrera 893e09278b
shell: switch to using mkDevShell 2020-12-28 23:12:27 -07:00
Timothy DeHerrera 11f085e78c
shell: pull in more dependencies
* Pull recent enough versions on nixos-(rebuild|install) to ensure
  compatibility with flakes.
* Add grip for viewing changes to README.md locally
2020-12-28 21:58:23 -07:00
Timothy DeHerrera da685a0fb1
flake: add apps output
Packages that contain an "$out/bin" dir are exported as `apps` as well.
2020-12-28 20:33:26 -07:00
Timothy DeHerrera bdfdc4da54
flake: add externModules list
Fixes #44. Easily add external modules from other flakes by dropping
them in the list.
2020-12-28 15:07:15 -07:00
Timothy DeHerrera 7a6e725b53
flake: initial multiarch support 2020-12-27 21:19:45 -07:00
Diogo Xavier 15003e3de9 Add NUR support 2020-12-26 12:40:20 +00:00
Timothy DeHerrera 3300b5d582
flake: clean up by moving implementation to utils
Fixes #28 by adding an `externOverlays` list to easily import overlays
from external flakes.
2020-12-25 12:53:57 -07:00
codygman dc81753790 update to 20.09
Also fixes #24 by using recommended home-manager
2020-12-01 21:18:24 -06:00
Timothy DeHerrera 219975f9cc
packages: export overlays as packages 2020-08-02 21:26:00 -06:00