Johannes Kirschbauer
b71e5378d6
Refactor(inventory/modules): add support for local clan.modules and migrate all checks
2025-05-08 17:17:46 +02:00
pinpox
99d347409c
Prettify nspawn output
2025-05-08 16:20:29 +02:00
Johannes Kirschbauer
c78b736dd5
chore: deprecate usage of inventory.modules in favor of clan.modules
2025-05-07 19:12:07 +02:00
hsjobeki
60a2246944
Merge pull request 'Feat(modules): display clan.service modules' ( #3537 ) from hsjobeki/clan-core:module-list into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3537
2025-05-07 15:33:49 +00:00
Johannes Kirschbauer
3c7f08ebaf
fix(tests/modules): list_modules returns moduleSets"
2025-05-07 16:46:13 +02:00
pinpox
f4d7e7a3cb
Fix debug command to attach to container
2025-05-07 14:41:18 +02:00
a-kenji
c782ef5a79
container-test-driver: Fix test naming
...
Fix the container test naming, as this otherwise can be very confusing.
2025-05-06 19:47:53 +00:00
Johannes Kirschbauer
f83a823e49
fix(services): features.API set to true and readOnly
2025-05-06 18:58:40 +02:00
Johannes Kirschbauer
cb8be5015b
feat(modules): derive module list from inputs and local modules
2025-05-06 18:57:54 +02:00
a-kenji
80007942d5
container-test-driver/nsenter: Improve printing of command
...
Improves printing of `nsenter` command, so that it can easier be copied.
2025-05-06 10:11:20 +00:00
hsjobeki
f6b0b5ada5
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
dfa5a228e8
feat(clanLib): init evalServiceSchema
2025-05-05 21:55:29 +02:00
Johannes Kirschbauer
c88c68749e
API(clanInternals): add 'evalServiceSchema' endpoint
2025-05-05 21:46:20 +02:00
Johannes Kirschbauer
2d5e337f81
tests: add error prefix for json schema in checks
2025-05-05 21:46:16 +02:00
pinpox
1708176dce
Log nsenter command on container tests
2025-05-05 13:00:11 +02:00
Jörg Thalheim
271618d182
clanTest: remove unneeded parantheses
2025-05-04 14:59:22 +02:00
hsjobeki
617b87b29e
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
0d003f5424
Refactor(inventory): move prio 'introspection' into inventoryClass to minimize the 'clanInternals' api
2025-04-30 11:02:58 +02:00
Johannes Kirschbauer
662787f96e
Checks: add json-compat check wrapper to ensure all clan.modules stay json-compatible
2025-04-29 15:31:02 +02:00
Johannes Kirschbauer
d6714355b5
refactor(clan.service): make evalClanService a standalone function to interact with standalone modules
2025-04-29 15:12:44 +02:00
Johannes Kirschbauer
12709227ee
Feat(clan.service): require roles.interface to be json serializable
2025-04-29 14:42:47 +02:00
Brian McGee
651b277bb9
feat: configure age plugins for SOPS in buildClan
2025-04-29 16:02:32 +10:00
Michael Hoang
41d875cb31
container-test-driver: fix SSH not working inside container tests
2025-04-29 15:10:09 +10:00
Michael Hoang
bfc4dc89f2
container-test-driver: add Machine.fail
2025-04-29 14:57:58 +10:00
DavHau
cbdfe35748
build-clan: Throw better error when _class is not provided by nixpkgs
2025-04-28 15:49:14 +00:00
Michael Hoang
c3842902ac
cli: don't use select from clanLib
2025-04-28 12:52:00 +10:00
hsjobeki
9c3d5ddfbd
Merge pull request 'Chore: remove unused legacy endpoints' ( #3418 ) from hsjobeki/clan-core:chores-remove-unused into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3418
2025-04-27 11:25:00 +00:00
Johannes Kirschbauer
fbd291ba11
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
06e2fcf9fa
refactor: rename clanLib.values to introspection
2025-04-27 13:10:42 +02:00
Johannes Kirschbauer
be165c1462
Feat(clan.service): init automatic assertions for api schema checks
2025-04-27 11:49:56 +02:00
Johannes Kirschbauer
5253c155c0
feat(services): init feature flags in the module manifest: 'manifest.features.API'
2025-04-27 11:07:45 +02:00
Michael Hoang
4c2584e246
lib: move select.select -> select for backwards compat with old CLIs
2025-04-25 17:30:06 +10:00
lassulus
d93e58218d
Refactor select with new maybe selector
...
This is a great refactor of the select functionality in the flake class.
This now uses the same parser as the nix code, but runs it in python for
nice stacktraces.
Also we now have a maybe selector which can be used by prepending the
selector with a ?
Tests have been expanded to make sure the code is more stable and easier
to understand
2025-04-25 16:26:45 +10:00
Johannes Kirschbauer
b66b3458c3
lib/tests: fix container driver module path
2025-04-23 16:23:09 +02:00
Johannes Kirschbauer
abd9519412
Refactor: move checks/lib into lib/ to avoid duplicate lib
...
Lets avoid the mistake of nixpkgs having multiple
libs
2025-04-23 16:19:16 +02:00
DavHau
8b00edad4a
inventory tests: use containers by default
2025-04-23 19:49:02 +07:00
Michael Hoang
bf5bfbdc4d
Merge pull request 'nixosModules/clanCore: support nix-darwin' ( #3287 ) from nix-darwin into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3287
2025-04-22 13:50:38 +00:00
Michael Hoang
d3e474bb4b
docs: always evaluate with class of nixos
2025-04-22 23:39:47 +10:00
Michael Hoang
5e61a6e41d
nixosModules/clanCore: support nix-darwin
2025-04-22 23:14:03 +10:00
Johannes Kirschbauer
0756baa5dc
Checks: add nixosIntegration test example to hello-service
2025-04-22 06:32:32 +00:00
hsjobeki
e1f9bc3c3e
Merge pull request 'Inventory/tags: init {nixos,darwin} tags' ( #3370 ) from hsjobeki/clan-core:tags-2 into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3370
2025-04-21 15:27:13 +00:00
Johannes Kirschbauer
1bad82b5c0
Fix: manually define empty tags for testing
2025-04-21 17:17:56 +02:00
Johannes Kirschbauer
fc27c87e2b
Inventory/tags: init {nixos,darwin} tags
2025-04-21 16:43:15 +02:00
Johannes Kirschbauer
4cef5afde8
clanLib: init flakeModules for better testing
2025-04-21 16:10:05 +02:00
Michael Hoang
40a3f6abce
build-clan: fix constructing nix-darwin machines
2025-04-17 20:23:54 +02:00
Valentin Gagarin
c8b305c437
fixup(jsonschema): test attrsOf submodules with valid value
2025-04-16 16:55:50 +02:00
Valentin Gagarin
af7915a564
lib/jsonschema: render defaults for submodule options
...
this relaxes the constraint that options of type `submodule` are always
required, and will render benign default values.
2025-04-16 16:55:46 +02:00
Johannes Kirschbauer
15fe06fbf5
feat(jsonschema): add test for attrsof submodule
2025-04-16 14:48:49 +02:00
Valentin Gagarin
06e27c84de
lib/jsonschema: make attrs required
...
Before the change, modules of the form
```nix
{ lib, ... }: {
foo.bar = lib.mkOption {
# ...
};
}
```
or
```nix
{ lib, ... }: {
foo = lib.mkOption {
type = lib.types.subModule {
bar = lib.mkOption {
# ...
};
};
};
}
```
would not render with `foo` as required, which is not faithful to the
module system's semantics.
This change also tests that fields with defaults are not marked required.
Note that submodule options cannot have their defaults rendered to JSON
schema, and are therefore always marked required.
Architecturally this change is rather unfortunate: So far the checks for
defaults happen in the rendering (using `isDefault`) and not in the parsing,
but here we're adding a field to `$exportedModuleInfo`. While strictly
speaking we probably don't want to consider requiredness as module-level
information, it seems more reasonable to me to do it that way since at
the JSON schema level we have lost the distinction between `attrs`,
`attrsOf`, `submodule`.
2025-04-16 13:20:00 +02:00
Johannes Kirschbauer
0bc2a068fe
chore(test/makeTestClan): document all options, remove magic specialArgs
2025-04-16 10:33:32 +02:00