Johannes Kirschbauer
e77769bd20
refactor: clanLib buildClan
2025-06-26 15:20:05 +02:00
Johannes Kirschbauer
11a94893fb
refactor: unify evalClanService with evalService
2025-06-26 14:50:35 +02:00
Johannes Kirschbauer
1568950410
refactor: simplify buildClan remove any filtering
2025-06-26 13:56:14 +02:00
Johannes Kirschbauer
6c460db016
schema: update clan option source
2025-06-26 13:24:34 +02:00
Johannes Kirschbauer
a01ece8742
Refactor(build-inventory): remove build-inventory in favor of simple and expressive evalModules
2025-06-26 11:11:50 +02:00
Johannes Kirschbauer
0bb5ed923e
build-inventory: fix tests temporarily
2025-06-25 18:15:47 +02:00
Johannes Kirschbauer
c91b5fb3db
build-inventory: move inventory and inventoryClass into explizitly different folders
2025-06-25 17:55:45 +02:00
Johannes Kirschbauer
68ed393c87
build-inventory: replace by equivalent submodule
2025-06-25 17:23:46 +02:00
Johannes Kirschbauer
16392622c5
Chore: add _file for internals error tracing
2025-06-25 15:47:18 +02:00
Johannes Kirschbauer
1819243123
inventory/interface: reduce apply arguments chain by adding it to _module.args
2025-06-25 15:15:22 +02:00
Johannes Kirschbauer
d0ae75e5cc
build-clan: export default.nix that injects clanLib
...
This should be the single entry point, that includes clanLib
instead of importApply propagation
2025-06-25 12:07:59 +02:00
Johannes Kirschbauer
aa96a11369
build-clan: move clan attribute relates modules into subfolder
2025-06-25 10:55:37 +02:00
hsjobeki
3e030a5199
Merge pull request 'build-clan: move clan attribute relates modules into subfolder' ( #4063 ) from clan-unify into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4063
2025-06-25 08:46:18 +00:00
DavHau
9299c83822
bring back services rendering for docs
...
Setting services to visible = false breaks stuff
2025-06-25 13:48:50 +07:00
DavHau
4421ce006e
docs: add clan options search page
...
This provides a simpler and more intuitive search over a flat list of possible options.
Styling still to be improved
2025-06-25 12:55:25 +07:00
Johannes Kirschbauer
9fcbb6d688
build-clan: move clan attribute relates modules into subfolder
2025-06-24 13:13:59 +02:00
pinpox
b53975684e
Merge branch 'main' into machine-id-option
2025-06-24 11:12:24 +00:00
DavHau
03fe06285b
inventory interface: add description for module.name
2025-06-24 10:09:05 +00:00
pinpox
cb69eea68f
Make machine ID a option
2025-06-24 10:42:03 +02:00
hsjobeki
a6f94987f9
Merge pull request 'Feat(inventory): simplify instance module spec, by applying a default' ( #4054 ) from hsjobeki/module-default into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4054
2025-06-23 14:21:55 +00:00
Johannes Kirschbauer
247eb46b5e
Refactor(build-clan): rename to lib/modules
...
This is a preparation for moving everything into clan, to make it all one module evaluation
2025-06-23 16:06:49 +02:00
Johannes Kirschbauer
c37651f2fe
Feat(inventory): simplify instance module spec, by applying a default
2025-06-23 15:46:52 +02:00
hsjobeki
1e0860df22
Merge pull request 'feat(clan-services): enable recursive services' ( #3972 ) from hsjobeki/nested-services into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3972
2025-06-20 12:51:27 +00:00
Johannes Kirschbauer
8bb28b7ba7
Fix(clan-services): allMachines might not contain the machineName
2025-06-20 14:41:17 +02:00
Jörg Thalheim
a260083919
fix(vars-check): include generator scripts in test closure
...
The vars-check test was failing because it only included the
runtimeInputs of generators but not the actual generator scripts
themselves. This caused the test to fail when trying to execute
generators that reference local files (like generate.py).
Added allGeneratorScripts to the closureInfo to ensure all generator
scripts and their dependencies are available in the test environment.
2025-06-17 21:09:59 +02:00
Jörg Thalheim
80a0f66809
no longer make test derivation depends on vars-check
...
this triggers more builds than necessary.
2025-06-17 21:09:59 +02:00
Jörg Thalheim
268a95f2e4
clan-nixos-test: pass clan-core to test nodes via module args
...
This allows tests that need access to clan-core (e.g. for clan-cli or
dependencies) to use it within their node configurations.
2025-06-17 19:04:47 +02:00
Jörg Thalheim
29b2c51391
clan-nixos-test: add individual vars-checks back
...
The consolidated vars-check was too slow to eval. Individual vars-checks allow for better parallelization.
2025-06-17 18:49:16 +02:00
Jörg Thalheim
28d3cee649
introduce flake parts module for clan nixos tests
2025-06-17 18:38:52 +02:00
Johannes Kirschbauer
aabe253bf9
feat(clan-services): enable recursive services
...
Using recursive services is potentially complex and requires carefully
designed services. Nested Services create nixos modules which must be
mergable as always.
2025-06-15 20:06:02 +02:00
Johannes Kirschbauer
e14fbb66b1
chore(clan-service): remove and unify unecessary bindings
2025-06-14 20:03:53 +02:00
Johannes Kirschbauer
ca0a56292e
feat(clan-service): add module context for better error messages
2025-06-14 20:03:53 +02:00
hsjobeki
f0e3b753dc
Merge pull request 'Feat(machine/templates): simplify template args for machines command' ( #3937 ) from hsjobeki/template-ux into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3937
2025-06-14 08:25:28 +00:00
lassulus
a267cc2f69
generate_test_vars: add support for darwin
2025-06-12 14:49:12 +02:00
Johannes Kirschbauer
4a126fee12
Feat(templates): export clan templates statically
2025-06-11 16:52:52 +02:00
DavHau
b13f64c96d
clan tests: allow testing CLI interactions
...
This is an improvement of the clanTest nixos vm test module.
The module now has a new option clan.test.fromFlake that allows to specify a flake.nix as the source for the test clan instead of specifying clan.XXX options.
This in turn allows accessing the `flake.nix` inside the test driver allowing to use the clan cli on it
2025-06-11 19:30:13 +07:00
Johannes Kirschbauer
17527082f4
chore(clanInternals): remove unused 'templates' attribute"
2025-06-10 19:26:04 +02:00
Johannes Kirschbauer
7b7e1cf246
feat(clanInternals): dont allow superfluous options
2025-06-10 19:16:26 +02:00
Johannes Kirschbauer
b429aed8f4
Fix(tests/buildClan): reduce expected attributes
2025-06-10 19:00:57 +02:00
Johannes Kirschbauer
78563b0544
Fix(clan.nix): create public attributes from 'clan', dont expose them from clanInternals
...
ClanInternals is already exposed at the toplevel the API can access anything
This also deduplicated 'templates' and 'modules' into 'clan.modules' and 'clan.templates' repsectively
Only this one path is its source
2025-06-10 18:51:42 +02:00
Johannes Kirschbauer
e322c92b2e
Chore(clanInternals): remove unused attributes
2025-06-10 18:27:16 +02:00
DavHau
7cf065ae8c
buildClan function: export all machines via nixosModules/darwinModules
...
We want each machine not only to be exposed via nixosConfigurations but also as a module.
This allows re-importing the machine in tests and override the architecture for example.
2025-06-09 12:51:22 +00:00
DavHau
ae611e8fde
lib: mkOfflineFlakeLock init
...
copied from the clan-core-flake module
I plan to re-use this function to improve the clan test framework to allow cli execution
2025-06-09 15:23:09 +07:00
DavHau
4616545cba
build-clan: refactor: don't only use imports
2025-06-09 13:24:27 +07:00
hsjobeki
22db6ace21
Merge pull request 'Feat(jsonschema): simplify isRequired, look into default and defaultText' ( #3861 ) from json-schema into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3861
2025-06-04 18:34:40 +00:00
Johannes Kirschbauer
e8608f5af3
feat(jsonschema): filter out $exportedModuleInfo by default
2025-06-04 20:22:54 +02:00
Johannes Kirschbauer
cdaa35ca5f
feat(jsonschema): remove 'default' if 'defaultText' is present
...
default is likely to contain an error thunk if defaultText is set
including it into $exportedModuleInfo makes it non-serializable
2025-06-04 20:22:32 +02:00
Johannes Kirschbauer
f99ddab70f
Feat(jsonschema): simplify isRequired, look into default and defaultText
2025-06-04 19:57:39 +02:00
Johannes Kirschbauer
e4e39f4b86
Fix(tests/inventory): fix test by adding passtrhough
...
Since nixosModule is not inspectable during unit test
2025-06-04 14:30:12 +02:00
Johannes Kirschbauer
c9398fab12
Feat(clanServices): expose all other instance options than nixosModule
...
This is usefull for augmenting the perInstance module
2025-06-04 14:29:36 +02:00