Commit Graph

633 Commits

Author SHA1 Message Date
DavHau
12682b608c 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
2d2476602b build-clan: move clan attribute relates modules into subfolder 2025-06-24 13:13:59 +02:00
pinpox
7fc8776742 Merge branch 'main' into machine-id-option 2025-06-24 11:12:24 +00:00
DavHau
7745e9eec6 inventory interface: add description for module.name 2025-06-24 10:09:05 +00:00
pinpox
d88ac429cb Make machine ID a option 2025-06-24 10:42:03 +02:00
hsjobeki
29199e96da 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
ac5cc85d57 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
18af41cc19 Feat(inventory): simplify instance module spec, by applying a default 2025-06-23 15:46:52 +02:00
hsjobeki
0f6477d28a 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
39d0347c22 Fix(clan-services): allMachines might not contain the machineName 2025-06-20 14:41:17 +02:00
Jörg Thalheim
2f5489a8b7 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
691401f674 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
fe1c9c3c74 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
e500eb6cdf 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
7515d54d9e introduce flake parts module for clan nixos tests 2025-06-17 18:38:52 +02:00
Johannes Kirschbauer
aa26d2ebf2 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
aa65e8e533 chore(clan-service): remove and unify unecessary bindings 2025-06-14 20:03:53 +02:00
Johannes Kirschbauer
216494c3db feat(clan-service): add module context for better error messages 2025-06-14 20:03:53 +02:00
hsjobeki
4e2ccf0117 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
6aaedaa6df generate_test_vars: add support for darwin 2025-06-12 14:49:12 +02:00
Johannes Kirschbauer
217360fa1e Feat(templates): export clan templates statically 2025-06-11 16:52:52 +02:00
DavHau
6f451c700d 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
7df1dc1833 chore(clanInternals): remove unused 'templates' attribute" 2025-06-10 19:26:04 +02:00
Johannes Kirschbauer
0885f9e301 feat(clanInternals): dont allow superfluous options 2025-06-10 19:16:26 +02:00
Johannes Kirschbauer
4e008166be Fix(tests/buildClan): reduce expected attributes 2025-06-10 19:00:57 +02:00
Johannes Kirschbauer
c26743c247 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
01a3151968 Chore(clanInternals): remove unused attributes 2025-06-10 18:27:16 +02:00
DavHau
d37c7c4c05 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
828e97775a 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
ae5781c09c build-clan: refactor: don't only use imports 2025-06-09 13:24:27 +07:00
hsjobeki
9a77e0db43 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
1019911b20 feat(jsonschema): filter out $exportedModuleInfo by default 2025-06-04 20:22:54 +02:00
Johannes Kirschbauer
7a7bcf68c6 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
dad55040ba Feat(jsonschema): simplify isRequired, look into default and defaultText 2025-06-04 19:57:39 +02:00
Johannes Kirschbauer
b3321d5482 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
4883b11bb6 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
Johannes Kirschbauer
0180013e68 docs(service-modules): add description and docs for options 2025-06-04 12:40:37 +02:00
pinpox
e70cf14e8e Fix test runner for tests without vars 2025-06-03 22:35:10 +02:00
Johannes Kirschbauer
ac0477e710 Fix(inventory/extraModules): use more narrow type for better persistence 2025-06-03 18:57:34 +02:00
Johannes Kirschbauer
9214559d38 Fix(tests/inventory): fix test assertions due to change in the exported structure 2025-06-03 18:30:04 +02:00
Johannes Kirschbauer
c6947a8fab feat(inventory/instances): add option for extraModules to roles 2025-06-03 18:17:16 +02:00
Johannes Kirschbauer
97d7c38ba7 chore(inventory/instances): add forward all role attributes to the service 2025-06-03 17:38:02 +02:00
Johannes Kirschbauer
582841ba05 feat(inventory/instances): map over all machines and return lazy attributes 2025-06-03 17:37:04 +02:00
DavHau
1add6a6314 clan tests: convert makeTestClan to a module
Let's not put yet another wrapper around runTest, instead expose our logic as a module that can be imported into any nixos-vm-test
2025-06-03 19:38:02 +07:00
DavHau
9cb6382cec makeTestClan: simplify - move parameters into module
... in preparation of removing the makeTestClan wrapper and make this a module instead that can be imported into any test.
2025-06-03 19:38:02 +07:00
Qubasa
ae41bfad8c inventory: Add buildHost argument 2025-06-02 14:52:13 +02:00
DavHau
d9f69d7007 generate-test-vars: fake prompt inputs
Use fake prompt inputs when generating vars for testing
2025-05-31 17:14:26 +07:00
DavHau
60f07c3472 tests: actually execute vars checks in CI 2025-05-31 16:16:09 +07:00
DavHau
0060424152 tests: test vars generation for all clan service tests 2025-05-31 12:17:52 +07:00
Mic92
8584d15cf8 Merge pull request 'Add inputs to specialArgs and make templates use it' (#3798) from templates into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3798
2025-05-30 18:33:33 +00:00