Commit Graph

658 Commits

Author SHA1 Message Date
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
Johannes Kirschbauer
935d39abb3 chore(inventory/tags): remove unsupported settings from tags interface 2025-05-20 16:10:32 +02:00
Johannes Kirschbauer
7a0665da6d Feat(jsonschema): convert deferredModule to unknown 2025-05-20 15:48:28 +02:00
Jörg Thalheim
09c62b8b2d Stop warning about inventory.instances
we now marked inventory.modules as deprecated, so this new api can be no
longer under development
2025-05-20 10:12:34 +02:00
Johannes Kirschbauer
af58c32238 Docs: unify 'manual' with 'guides' folder
This is one of the final steps towards strictly following
https://diataxis.fr/
2025-05-18 20:40:40 +02:00
hsjobeki
dce0ea4008 Merge pull request 'refactor: move clan_cli.error to clan_lib.error' (#3677) from hsjobeki/clan-core:chores-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3677
2025-05-16 15:17:41 +00:00
hsjobeki
aaafde59cf Merge pull request 'Docs: init migration guide for clanServices' (#3679) from service-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3679
2025-05-16 14:39:22 +00:00
Johannes Kirschbauer
64bef5980f docs: move authoring guides into guides subfolder 2025-05-16 16:33:39 +02:00
Johannes Kirschbauer
fe0507b47c refactor: move clan_cli.error to clan_lib.error 2025-05-16 16:14:39 +02:00
Qubasa
2f0114a236 clan-cli: Unify list_machines and use flake caching 2025-05-16 10:47:49 +02:00
Johannes Kirschbauer
f3c81f5095 feat(clanModules): add deprecation feature that generates a warning if the module is used 2025-05-14 17:06:58 +02:00
Jörg Thalheim
a058e1a6cd lib.filter: allow to name inputs 2025-05-13 13:31:12 +02:00
ginkogruen
ba6f5e3552 fix: Documentation for inventory.tags.nixos option
Corrected documentation referencing machines with the machineClass = "darwin" set, when it should be: machineClass = "nixos"
2025-05-12 22:12:43 +00:00