Commit Graph

506 Commits

Author SHA1 Message Date
a-kenji
6347bb7f3a pkgs/clan: Further unify clan flake validation
Further unify clan flake validation and improve test coverage.
2025-07-15 13:03:49 +02:00
Qubasa
e8b5e2c2c5 clan-cli: Fixup clan install which depends on ssh_parseargs.
clan-cli: Remove --ssh-option for now, as it can't work in current state

clan-cli: Remove nix_config from test as its impure
2025-07-14 20:47:49 +07:00
Johannes Kirschbauer
4beff2e023 api: rename 'run_machine_deploy' into 'run_machine_update' 2025-07-08 17:21:18 +02:00
Johannes Kirschbauer
5b6f5e812b api/hw: rename generate_machine_hardware_info into 'run' 2025-07-07 14:04:39 +02:00
Johannes Kirschbauer
3a237796d9 api/tasks: prefix impure actions with run 2025-07-07 12:09:43 +02: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
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
Johannes Kirschbauer
87fc3e01d1 cli/update: refactor machine selection logic into 'get_machines_for_update' 2025-07-06 12:27:28 +02:00
Johannes Kirschbauer
605a0242c2 CLI: update requireExplicitUpdate in help 2025-07-06 12:22:25 +02:00
lassulus
453aec3273 clan_cli machines update: remove caching of sometimes missing pass config
This config value is not set if people don't use pass, it's also at the wrong location
We could cache it with a maybe, but we plan to move it anyway
2025-07-05 18:39:53 +02:00
Jörg Thalheim
f24e1beb98 only override identify/host_key_check in a single place 2025-07-04 14:36:05 +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
Jörg Thalheim
0bd66be152 add -i option to update-hardware-config 2025-07-04 14:14:28 +02:00
hsjobeki
2c8b457fd5 Merge pull request 'Clan_lib: add filtering by tag to list API' (#4197) from cli-fixup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4197
2025-07-04 11:53:43 +00:00
Johannes Kirschbauer
41cafe828f Clan_lib: add filtering by tag to list API 2025-07-04 09:48:21 +02:00
Johannes Kirschbauer
b0c24edd48 cli: move some references to duplicate list machines 2025-07-04 09:32:43 +02:00
DavHau
67a37a9d2c reverting b1f71fe4fb 2025-07-04 10:35:30 +07: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
lassulus
a055b4d1eb refactor: remove deployment.json and use direct selectors
- Remove deployment.json file generation from outputs.nix
- Add throw for deprecated deployment.file usage with upgrade instructions
- Remove vars data from deployment.data
- Update Machine class to use direct select() calls instead of deployment property
- Update all deployment property accesses to use direct selectors
- Add precaching for frequently accessed values in update.py:
  - Module paths for facts and vars
  - Deployment settings (requireExplicitUpdate, nixosMobileWorkaround)
  - Services and generators data
  - Secret upload locations
- This removes unnecessary JSON serialization and makes the code more composable
2025-07-02 20:56:23 +02:00
Johannes Kirschbauer
9932f170ca machines/update: queue update only for machines_to_update 2025-07-02 19:05:37 +02:00
Johannes Kirschbauer
b1f71fe4fb clan.deployment: unify deprecated option 2025-07-02 18:37:29 +02:00
Johannes Kirschbauer
181d44e83c machines/create: fix handle defaults 2025-06-27 20:28:11 +02:00
a-kenji
5a81adfc68 pkgs/clan: Add machine validator with suggestion logic
Add machine validator with suggestion logic to:
- `clan machines update`
- `clan machines delete`
- `clan machines update-hardware-config`
2025-06-27 12:32:36 +02:00
Qubasa
cb2097c1e5 clan-cli: Remove unecessary nix_options args from functions 2025-06-24 19:07:41 +02:00
Qubasa
cd1d49b603 clan-lib: Move nix_options from Machine class to Flake class 2025-06-24 19:03:20 +02:00
Qubasa
6e4dc03b1d clan-cli: Move update.py to clan_lib/machines 2025-06-24 12:17:21 +02:00
Qubasa
2bfc33bc31 clan-cli: Move delete.py to clan_lib/machines 2025-06-24 12:16:38 +02:00
Qubasa
21b0c00c05 clan-cli: Move list.py to clan_lib/machines 2025-06-24 12:16:38 +02:00
Qubasa
d65bdb30eb clan-cli: Move morph.py to clan_lib/machines 2025-06-24 12:16:38 +02:00
kenji
2e403425f9 Merge pull request 'pkgs/clan: Add --tags support to clan machines update' (#4061) from kenji/pkgs/clan: Add --tags support to clan machines update into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4061
2025-06-24 09:43:35 +00:00
Luis Hebendanz
feb47ffe33 Merge pull request 'clan-cli: Move hardware.py to clan_lib/machines part2' (#4066) from Qubasa/clan-core:move_to_clan_lib2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4066
2025-06-24 09:19:41 +00:00
Qubasa
168e1d8c96 clan-cli: Move hardware.py to clan_lib/machines 2025-06-24 11:07:37 +02:00
Qubasa
78fdd21610 clan-cli: Add missining propagation of host-key-check in machines.update 2025-06-24 10:35:53 +02:00
a-kenji
fc0e8fa1bd pkgs/clan: Add --tags support to clan machines update 2025-06-23 23:51:43 +02:00
Qubasa
071151f300 clan-lib: Rename parse_deployment_address to parse_ssh_uri 2025-06-23 15:32:35 +02:00
Qubasa
054ea67fb7 clan-cli: Simplify HostKeyCheck to a Literal instead of an Enum 2025-06-23 15:08:44 +02:00
Qubasa
274c552365 clan-lib: machines.py: Remove host_key attribute 2025-06-19 17:55:56 +02:00
Qubasa
aac07ddd25 clan-lib: machines.py: Remove private_key attribute 2025-06-19 17:28:50 +02:00
a-kenji
1f692c91e4 pkgs/clan: Improve machines list tests
Extend and Improve `clan machines list` testing as well as the `--tags`
subcommand.
2025-06-18 16:03:02 +02:00
Michael Hoang
a0f39a4a66 cli: fix machines update failing with protocol mismatch on macOS 2025-06-18 16:30:11 +07:00
Jörg Thalheim
a2eaf20492 machines: fix remote-program for darwin nix copy
MacOS doesn't come with a proper login shell for ssh and therefore
doesn't have nix in $PATH as it doesn't source /etc/profile.
This restores the remote-program parameter that was accidentally
removed in commit e14f30bdc0.
2025-06-17 16:30:04 +02:00
Qubasa
86536bae42 clan-lib: Refactor remote host handling to function parameters
This refactoring improves the separation of concerns by moving remote host creation logic from the Machine class to the calling functions, making the code more flexible and testable.
2025-06-17 14:04:22 +02:00
Qubasa
d29bba48e7 clan-lib: Make Remote overridable over function arguments 2025-06-17 13:53:43 +02:00
Jörg Thalheim
28a0f09514 install: correctly pass nix options to nixos-anywhere
The nix_options were collected but never passed to the nixos-anywhere command.
This fix adds the options to the command before the target host argument.
2025-06-17 12:43:20 +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
Qubasa
68b7c22faf clan-cli: init machine from inventory 2025-06-12 16:36:55 +02:00
Johannes Kirschbauer
abee3147ea Fix(morph): ensure machine dir exists 2025-06-11 20:38:15 +02:00
Johannes Kirschbauer
799c23bb56 doc(cli/templates): improve help description 2025-06-11 17:00:10 +02:00
Johannes Kirschbauer
a254ff46a1 fix(tess/morph): skip creating existing machine 2025-06-11 17:00:10 +02:00
Johannes Kirschbauer
b5ed9fdfed Docs(cli/machines): improve description of '--template' 2025-06-11 17:00:10 +02:00