Commit Graph

168 Commits

Author SHA1 Message Date
pinpox
546eeb22d0 Remove clanModules 2025-07-17 12:12:39 +02:00
hsjobeki
e8ecd22bab Merge pull request 'clan_cli: move __init__.py into cli.py' (#4323) from cli into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4323
2025-07-13 16:14:21 +00:00
Johannes Kirschbauer
3e82e63443 clan_cli: rename references 2025-07-13 15:53:10 +02:00
Johannes Kirschbauer
6d2f522cbb lib/modules: list modules consistent argument 2025-07-13 13:57:02 +02:00
Johannes Kirschbauer
079f5d1033 lib/modules: rename 'list_modules' to 'list_service_modules' 2025-07-13 13:57:02 +02:00
Johannes Kirschbauer
943dde4bbf lib/modules: move from api to services module 2025-07-13 13:57:02 +02:00
Johannes Kirschbauer
5f19e76cd0 api/modules: remove redundant localModules 2025-07-13 11:52:19 +02:00
Qubasa
f3873683cc clan_lib: Add test for check_valid_clan function 2025-07-10 14:20:02 +07:00
kenji
07f30928e6 Merge pull request 'refactor: decouple vars stores from machine instances' (#4269) from davhau/vars-new into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4269
2025-07-08 18:11:03 +00:00
hsjobeki
e10b2fd954 Merge pull request 'Templates/default: move clan configuration into its own file' (#4262) from templates into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4262
2025-07-08 13:46:19 +00:00
Johannes Kirschbauer
43cda7d13a Tests: dont expect a hardware-configuration.nix file 2025-07-08 15:34:16 +02:00
Johannes Kirschbauer
1a861cd889 tests: dont expect .clan-flake file, it is not strictly required 2025-07-08 14:58:24 +02:00
DavHau
0aa6288edb refactor: decouple vars stores from machine instances
Stores now get machine context from generator objects instead of storing
it internally. This enables future machine-independent generators and
reduces coupling.

- StoreBase.__init__ only takes flake parameter
- Store methods receive machine as explicit parameter
- Fixed all callers to pass machine context
2025-07-08 18:30:16 +07:00
Qubasa
152ac2c07e clan-cli: Fix Ruff linting errors
clan-cli: Ruff fixes

ignore noqa lint

fix more ruff issues
2025-07-08 17:25:02 +07:00
Qubasa
f854c39292 clan-cli: Fix regression in ruff linter, where linter rules got overriden by local pyproject.toml
clan-app: Fix ruff regression where linter rules got overriden by local pyproject.toml
2025-07-08 17:23:32 +07:00
Johannes Kirschbauer
0cbdfb26f1 test: don't expect a machines folder 2025-07-08 11:53:20 +02:00
Johannes Kirschbauer
91f7f21b0c Templates: remove 'minimal-flake-parts' 2025-07-07 15:50:00 +00:00
Johannes Kirschbauer
5d6a0c9883 templates: rename 'new_clan' to default 2025-07-07 15:50:00 +00:00
hsjobeki
0532284387 Merge pull request 'api/generators: remove term 'vars' interact purely with 'generators'' (#4242) from api-cleanup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4242
2025-07-07 13:04:00 +00:00
Johannes Kirschbauer
fcc3387332 api/generators: remove term 'vars' interact purely with 'generators' 2025-07-07 13:59:12 +02:00
DavHau
ed0b86385b Refactor StoreBase to take machine name string instead of Machine object
- Updated StoreBase.__init__ to accept machine: str and flake: Flake
- Modified all StoreBase subclasses (in_repo, vm, fs, sops, password_store) to match new signature
- Added select_machine method to Flake class for machine-specific attribute selection
- Updated Machine.select to use the new Flake.select_machine method
- Fixed all test cases to pass machine name and flake to store constructors
- Maintained backward compatibility by keeping the same external API

This reduces coupling between the store system and the Machine class,
making the architecture more modular and flexible.
2025-07-07 10:24:11 +00:00
hsjobeki
891402760f Merge pull request 'API: refactor into resource oriented names' (#4223) from api-cleanup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4223
2025-07-06 19:11:31 +00:00
Johannes Kirschbauer
045e297438 vars/api: rename 'get_generators_closure' into 'get_machine_generators' 2025-07-06 20:57:42 +02:00
Johannes Kirschbauer
360766f7a6 api/flash: refactor into 'list_flash_options' 2025-07-06 20:57:42 +02:00
Johannes Kirschbauer
ad48771c98 vars/api: rename, unregister some unused vars functions 2025-07-06 20:57:42 +02:00
Johannes Kirschbauer
7370212ec2 Vars: rename public functions into 'create_machine_vars' 2025-07-06 20:57:42 +02:00
Johannes Kirschbauer
3af529d76e Vars: rename 'keygen' to 'create_secrets_user' 2025-07-06 20:57:42 +02:00
Johannes Kirschbauer
d49ff467db Templates: remove InputPrio and related classes 2025-07-06 19:08:45 +02:00
lassulus
5845b3f90d Merge pull request 'Revert "make host key check an enum instead of an literal type"' (#4220) from revert_host_key_check into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4220
2025-07-06 13:19:00 +00:00
lassulus
045b250f9a Revert "make host key check an enum instead of an literal type"
This reverts commit 3d83017acd.
2025-07-06 14:51:19 +02:00
hsjobeki
254569481a Merge pull request 'Templates/list: display templates via exposed nix value' (#4219) from templates-list into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4219
2025-07-06 12:49:58 +00:00
Johannes Kirschbauer
adb726c318 Templates/list: display templates via exposed nix value 2025-07-06 14:37:03 +02:00
lassulus
2f0f9a9fba vars/password-store: replace passBackend option with passPackage
The `clan.core.vars.settings.passBackend` option has been replaced with
`clan.vars.password-store.passPackage` to provide better type safety and
clearer configuration.

Changes:
- Remove problematic mkRemovedOptionModule that caused circular dependency
- Add proper option definition with assertion-based migration
- Users setting the old option get clear migration instructions
- Normal evaluation continues to work for users not using the old option

Migration: Replace `clan.core.vars.settings.passBackend = "passage"`
with `clan.vars.password-store.passPackage = pkgs.passage`
2025-07-06 12:46:39 +02:00
DavHau
bfc8c4c399 refactor: reduce coupling to Machine class in vars module
- Change Generator class to store machine name as string instead of Machine reference
- Update Generator.generators_from_flake() to only require machine name and flake
- Refactor check_vars() to accept machine name and flake instead of Machine object
- Create Machine instances only when needed for specific operations

This continues the effort to reduce dependencies on the Machine class,
making the codebase more modular and easier to refactor.
2025-07-05 16:30:05 +07:00
DavHau
3d2ede9f8e refactor: remove Machine.vars_generators() method
Replace all calls to machine.vars_generators() with direct calls to
Generator.generators_from_flake() to make the dependency more explicit
and remove unnecessary indirection.

This reduces coupling to the Machine class, making the codebase more
modular and easier to refactor in the future.
2025-07-05 15:26:31 +07:00
Mic92
44312657aa Merge pull request 'Qubasa-hsjobeki/bump-nixpkgs' (#4205) from Qubasa-hsjobeki/bump-nixpkgs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4205
2025-07-04 16:47:23 +00:00
Qubasa
0d1e1d9796 treefmt/ruff: Set python lint version to 3.13. Fix all new lints coming up. 2025-07-04 17:11:31 +02:00
Jörg Thalheim
3d83017acd make host key check an enum instead of an literal type
this is more typesafe at runtime.
2025-07-04 14:36:05 +02:00
lassulus
c760561dbd refactor: remove _serialized field and implement efficient vars selection
- Remove _serialized field from vars interface to prevent serialization
  errors with throwing passBackend field
- Implement direct selection of generator fields using multi-select syntax
- Refactor vars_generators() to use new Generator.from_flake() method that
  selects only safe fields (avoiding non-serializable values)
- Remove unused legacy methods: Generator.from_json(), Var.from_json(),
  Prompt.from_json()
- Update precaching to match new selection approach

This fixes the serialization errors that were preventing vars from working
with the new password-store implementation by avoiding the problematic
_serialized field entirely.
2025-07-03 18:53:36 +02:00
Johannes Kirschbauer
12730428bb test: enable unsafe teardown of tempDir
aarch64 libc or kernel might be stricter in keeping files locked while they're open.
This causes failed teardown of the tmpdir
2025-07-02 09:27:05 +02:00
Johannes Kirschbauer
667cee0f6e buildClan: replace all usages by lib.clan 2025-07-01 11:56:31 +02:00
lassulus
cc923d5638 refactor: replace eval_nix/build_nix with machine.select()
- Remove nix(), eval_nix(), and build_nix() methods from Machine class
- Add select() method that handles machine-specific attribute prefixes
- Update all usages to use machine.select() directly
- Handle Path conversion and tmp_store logic at call sites
- This simplifies the Machine API and prepares for deployment.json removal
2025-06-29 17:00:27 +02:00
Qubasa
863aa9029c Revert "Cleanup templates"
This reverts commit 77d8f76eb8.
2025-06-28 22:42:39 +07:00
Qubasa
2b5f20c4f4 Revert "templates/minimal: consistent input names"
This reverts commit 8ab9556a12.
2025-06-28 22:42:20 +07:00
Qubasa
1be70856d5 Revert "tests/create_clan: bring back read,write checks"
This reverts commit f6cad7c4a4.
2025-06-28 22:42:11 +07:00
Qubasa
9f1482e539 Revert "templates: fix tests"
This reverts commit df598275f9.
2025-06-28 22:41:31 +07:00
Qubasa
ab872711c8 Revert "templates: remove .clan-flake"
This reverts commit 14eb541256.
2025-06-28 22:40:55 +07:00
Mic92
a73f91c162 Merge pull request 'don't keep appending --impure to nix_options when running tests' (#4128) from speed-up-flake-select into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4128
2025-06-28 07:26:16 +00:00
Jörg Thalheim
581dfeffeb fix unlocked flake.lock in tests 2025-06-28 08:50:41 +02:00
hsjobeki
b88e55364a Merge pull request 'Update clan templates' (#4099) from update-templates-services into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4099
2025-06-27 17:25:22 +00:00