Commit Graph

87 Commits

Author SHA1 Message Date
hsjobeki
89fbf723ca Merge pull request 'API(cli): add method to Flake class to allow calling nix functions' (#3502) from hsjobeki/clan-core:improvements-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3502
2025-05-05 20:16:28 +00:00
Johannes Kirschbauer
e44d34ef99 feat(clanLib): init evalServiceSchema 2025-05-05 21:55:29 +02:00
Johannes Kirschbauer
9fbd943f44 API(clanInternals): add 'evalServiceSchema' endpoint 2025-05-05 21:46:20 +02:00
Johannes Kirschbauer
d42d9ad943 tests: add error prefix for json schema in checks 2025-05-05 21:46:16 +02:00
hsjobeki
7b4b700c33 Merge pull request 'Refactor(inventory): move prio 'introspection' into inventoryClass to minimize the 'clanInternals' api' (#3440) from hsjobeki/clan-core:ui-fixups into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3440
2025-04-30 10:24:34 +00:00
Johannes Kirschbauer
e07551cecf Refactor(inventory): move prio 'introspection' into inventoryClass to minimize the 'clanInternals' api 2025-04-30 11:02:58 +02:00
Brian McGee
a438fe77a7 feat: configure age plugins for SOPS in buildClan 2025-04-29 16:02:32 +10:00
DavHau
ebada396dd build-clan: Throw better error when _class is not provided by nixpkgs 2025-04-28 15:49:14 +00:00
Johannes Kirschbauer
b87d5a238c chore: remove unused moduleSchemas and related API endpoint for legacy modules
We didn't reach the state where we would display these schemas in the
UI.
We might need to wire this up in a similar way for the newer
clan.services
2025-04-27 13:14:09 +02:00
Johannes Kirschbauer
7007b7d62e refactor: rename clanLib.values to introspection 2025-04-27 13:10:42 +02:00
Michael Hoang
a575894a83 nixosModules/clanCore: support nix-darwin 2025-04-22 23:14:03 +10:00
Michael Hoang
41ff4a4247 build-clan: fix constructing nix-darwin machines 2025-04-17 20:23:54 +02:00
Johannes Kirschbauer
f331295dd5 feat(buildClan): expose {nixosModules,darwinModules} from clanInternals
These are the exact same modules that where used internally to construct the corresponding
'nixosConfiguration', 'darwinConfiguration'
They can be externally used, and would yield the same result
Given that you pass the same 'specialArgs'
2025-04-15 17:25:57 +02:00
Johannes Kirschbauer
9800255a2c refactor(buildClan): simplify pkgs overriding logic 2025-04-15 16:05:57 +02:00
Johannes Kirschbauer
e68ab67112 refactor(buildClan): move modules into 'forName' and import the correct core module depending on class 2025-04-15 15:29:01 +02:00
Johannes Kirschbauer
d264e262bd fixup(buildClan): use clan.inventory instead of refering to the clanInternals dumping ground within the module 2025-04-15 15:10:08 +02:00
Johannes Kirschbauer
af04bf547f fixup(buildClan): split up the inner-module into: {forSystem, forName}
I am preparing this such that we can move the forName modules into the
defaults for the deferred module outputs and the forSystem modules are
added later and only for the 'configsPerSystem' where we actually need
the system modules
2025-04-15 15:02:37 +02:00
Johannes Kirschbauer
14ace40820 refactor: buildClan output; output deferred modules instead of nixosConfig 2025-04-15 14:25:02 +02:00
Michael Hoang
5cc1d823aa build-clan: drop unused machinesFunc 2025-04-15 13:30:28 +02:00
Michael Hoang
95fd1ec7eb build-clan: expose Clan configuration as a module 2025-04-14 16:04:06 +02:00
Johannes Kirschbauer
35379d3b86 Reapply "Merge pull request 'chore(buildClan): move machineClass option into inventory.machines submodule' (#3259) from hsjobeki/clan-core:buildclan-cleanup into main"
This reverts commit 62dfb23e41.
2025-04-09 18:16:35 +02:00
Johannes Kirschbauer
05c45371af feat(buildInventory): move instance resolution into buildInventory
Such that buildClan doesn't have to compose the results
buildInventory should be more self contained. But it is NOT meant a
public API! use buildClan argument 'inventory' instead
2025-04-09 17:31:35 +02:00
Johannes Kirschbauer
a6a79e83a0 treewide(clanLib): rename all occurences of {clan-core,self}.lib to 'clanLib' 2025-04-09 11:32:46 +02:00
Michael Hoang
6de4735c81 build-clan: support constructing darwinConfigurations 2025-04-08 08:53:29 +02:00
hsjobeki
b0d8d1f195 Merge pull request 'chore(lib/select): move into subfolder with a test file' (#3175) from hsjobeki/clan-core:lib-cleanup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3175
2025-04-04 12:32:32 +00:00
DavHau
73d14e078e remove default for clan.core.settings.machine.name and make readOnly
There is not reason that there needs to be a default. Machines are usually defined as an attrset, so there is no reason to have a default.
Also make this readOnly as we never want to override it.
2025-04-03 17:29:07 +07:00
Johannes Kirschbauer
0ec63de3e6 feat(buildClan): add clan.modules as output 2025-04-02 13:38:38 +02:00
Johannes Kirschbauer
2ab53b05fe chore(lib/treewide): cleanup directory struture of lib. See lib/readme.md for details 2025-04-02 11:11:21 +02:00
Johannes Kirschbauer
81898996f4 chore(buildClan): make buildClan and flake-parts return identical outputs 2025-04-02 09:56:28 +02:00
Johannes Kirschbauer
9a7ab66b3b chore(buildClan): set clanInternals.modules to clanInternals.clanModules 2025-04-01 15:36:37 +02:00
Johannes Kirschbauer
f7d15215ea feat(clanLib): expose clanInternals.clanLib
This is usefully for:
- As api via python
- for testing clanLib downstream
2025-03-30 17:07:11 +02:00
Johannes Kirschbauer
9d386485dd chore(auto-imports): Remove the auto-import feature. There will be a replacement, to make imports explicit" 2025-03-30 15:29:05 +02:00
Johannes Kirschbauer
ee9ae9c76d fix(eval/tests): distributed-services: don't abort on warn in tests" 2025-03-30 15:29:05 +02:00
Johannes Kirschbauer
0fb1b5c5ce feat(inventory/instances): add service result to nixos machines 2025-03-30 15:29:05 +02:00
Johannes Kirschbauer
48d910f11f fix(auto-imports): disable since this is not needed anymore and causing collision with the new module type 2025-03-29 16:24:48 +01:00
Johannes Kirschbauer
b83d3ecba2 feat(clan/services): init adapter function to convert inventory instances into clan.service module configurations 2025-03-29 13:25:19 +01:00
Johannes Kirschbauer
f37f15c482 feat(clan/services): init new clanInternals attribute 'distributedServices' 2025-03-29 13:25:19 +01:00
Jörg Thalheim
4beb097a95 don't add nixpkgs to nix registry to not conflict with nixpkgs
NixOS is already doing this for us.
2025-03-22 14:45:53 +01:00
Johannes Kirschbauer
a2b76eb5a2 Inventory: rename internal inventory toplevel attribute to 'inventoryClass' 2025-03-07 12:30:29 +00:00
Johannes Kirschbauer
6755aa2c70 inventory: migrate tests 2025-02-04 13:20:15 +07:00
Johannes Kirschbauer
316e33f54a Inventory: refactor build-inventory in more independent parts 2025-02-04 13:20:15 +07:00
Jörg Thalheim
6f1ab30881 fix infinite recursion 2025-02-03 12:00:47 +01:00
lassulus
fe2cfd3b37 clan-cli: add a Flake class with caching 2025-02-02 11:52:36 +00:00
Jörg Thalheim
8634087309 Do not deprecate directory argument 2025-02-02 10:30:26 +00:00
Qubasa
c212538ac7 clan: Remove unecessary templates and modules interface 2025-01-29 19:24:15 +07:00
Qubasa
6e47f1ee96 Add importable clan.modules and clan.template interfaces without implementation 2025-01-27 17:35:42 +07:00
Qubasa
e36654daa1 clan: Add autoloaded clanModules from flake inputs. Rename 'directory' to 'self' in buildClan 2025-01-24 12:32:04 +07:00
Qubasa
8d0a9762a2 Reapply "buildClan: Add automatic inventory import directory"
This reverts commit e5bfa926e2.

This is incorrect we have mentions to inventory.modules in the codebase since much longer.
As can be seen in the documentation: https://docs.clan.lol/reference/nix-api/inventory/
As this PR improves the readability of the docs, I will re-apply it.
2025-01-18 10:01:19 +07:00
Jörg Thalheim
e5bfa926e2 Revert "buildClan: Add automatic inventory import directory"
This reverts commit 850eabb98c.

This introduces the name "inventory module" whereas we already use the
term clan modules everywhere else. I don't don't too many confusing
termologies in the codebase. Let's discuss this before adding it back.
2025-01-17 15:43:44 +01:00
Qubasa
850eabb98c buildClan: Add automatic inventory import directory 2025-01-17 20:58:48 +07:00