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
Jörg Thalheim
00984ec581
add inputs to specialArgs and make templates use it.
2025-05-30 19:53:12 +02:00
Jörg Thalheim
9bf919ffad
container-test: better error message for nsenter
2025-05-30 12:27:51 +02:00
Jörg Thalheim
f17dc9897d
container-test: disable UsePam for ssh
...
doesn't work without setuid, which we currently do not support.
2025-05-30 11:53:20 +02:00
Johannes Kirschbauer
1ef2e13c85
feat(nix_models): replace inventory model by holistic clan model
2025-05-28 14:02:43 +02:00
Johannes Kirschbauer
ad1f3bfa92
fix(clan/interface): minor fixes
2025-05-28 14:02:43 +02:00
Johannes Kirschbauer
c4980d3990
fix(clanLib): propagate clanLib into module apply
2025-05-21 20:44:56 +02:00
Johannes Kirschbauer
f16cfe68b6
Tests(deferred custom module): add more tests, dissallow nested imports
2025-05-21 18:54:07 +02:00
Johannes Kirschbauer
3951889b74
Feat(settings): use uniqueDeferredSerializableModule for settings
2025-05-21 18:41:20 +02:00
Johannes Kirschbauer
7dc03f8eee
Feat(clanLib): init types {uniqueDeferredSerializableModule}
2025-05-21 18:41:14 +02:00
Johannes Kirschbauer
e17327bea8
Fix(introspection): 'lazyAttrsOf' needs to get the same handling as 'attrsOf'
2025-05-21 16:45:19 +02:00
hsjobeki
3edd6487cc
Merge pull request 'feat(docs,api): expose inventory.instances interface' ( #3721 ) from hsjobeki/clan-core:inventory-services-1 into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3721
2025-05-20 15:29:14 +00:00
Johannes Kirschbauer
4f79c3e47d
feat(clanServices): add 'readme' to module manifest
2025-05-20 17:00:53 +02:00
Johannes Kirschbauer
6e822a2811
feat(docs,api): expose inventory.instances interface"
2025-05-20 16:10:32 +02:00