lassulus
5feccf4e57
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
7076f1b0e6
Chore(clan/clan_uri): Remove ClanURI class from clan_cli
2025-04-23 16:53:11 +02:00
Jörg Thalheim
c7a3f35fb1
temporary disabling the VM test until we have vars fixed
...
We are currently missing injecting public vars back into the vm.
To unblock the CI, we disable the test for a bit.
2025-04-23 11:26:05 +02:00
hsjobeki
6f2b7aa6d1
Merge pull request 'vars-fix-overeager-chache-invalidation' ( #3385 ) from hsjobeki/clan-core:vars-fix-overeager-chache-invalidation into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3385
2025-04-22 18:28:27 +00:00
Johannes Kirschbauer
d3927f50ae
Tests/fix: forbid dynamic invalidation
...
We cannot support dynamic hashInvalidation.
This means the invalidation can change *after* or *before* a 'vars generate'
But not during the generation itself. This causes heavy performance overhead.
Additionally this introduces a fixed-point-iteration (compare: fixed-point-iteration vs. fixed-point-function)
This iteration takes ~ 1min for two bare-bones machine with 1 generator (see: checks/data-mesher)
2025-04-22 20:19:15 +02:00
Michael Hoang
1168395336
cli/machines: don't allow installing on macOS
2025-04-23 03:13:39 +10:00
Jörg Thalheim
043077269a
drop overrides of nix version
2025-04-22 18:20:35 +02:00
Jörg Thalheim
c2030eb3ba
drop test_secrets_password_store
...
we are phasing out facts and the only fact we had left for testing, got
now dropped. We still have a sops facts test, which we might also drop
soon.
2025-04-22 18:20:35 +02:00
Jörg Thalheim
ffaa30d894
vms/run: upload vars
2025-04-22 18:20:35 +02:00
Jörg Thalheim
847e3ac4ab
drop unused machine_get_fact
2025-04-22 18:20:35 +02:00
Jörg Thalheim
7392570859
use machine.{secrets,public}_{vars,fact}_store everywhere
2025-04-22 18:20:35 +02:00
Jörg Thalheim
fe6fd41a4d
zerotier: migrate from facts to vars
2025-04-22 18:20:35 +02:00
Johannes Kirschbauer
b47f2b6870
vars: move overeager cache invalidation after one generator closure is regenrated.
...
Invalidation doesn't need to be done after each generator is executed.
We cannot interpolate values from other generators into another
generator. The generators are executed in order. The finalScript of each
generator stays constant.
After the complete closure is generated the caller of generate may
decide to invalidate the flake cache
2025-04-22 16:42:21 +02:00
Michael Hoang
de12036630
cli: support updating nix-darwin machines
2025-04-22 23:39:47 +10:00
Michael Hoang
91a2739ea3
cli: fix unnecessary sudo when unspecified user defaults to root
2025-04-22 23:39:46 +10:00
Michael Hoang
b5901d5577
cli: only use sudo when deploying locally
2025-04-22 23:14:03 +10:00
Michael Hoang
a0117c51c1
cli: use sudo consistently when running nixos-rebuild switch
2025-04-22 23:14:03 +10:00
Michael Hoang
2bbf4b168a
Back out "cli: don't update macOS machines"
...
This backs out commit 72ed0e258a .
2025-04-22 23:14:03 +10:00
Jörg Thalheim
b4880d09a9
Machines: remove unused method argument from self.nix()
2025-04-21 15:18:14 +02:00
Jörg Thalheim
df08fea1c1
devshell/clan-cli: fix CLAN_PROVIDED_PACKAGES having too many packages
2025-04-21 15:18:14 +02:00
Jörg Thalheim
80e739bd1b
Reapply "remove nix_shell_legacy"
...
This reverts commit 1232fb5af2 .
2025-04-21 13:23:50 +02:00
Johannes Kirschbauer
872d54b594
chore(select/cache): rename 'prefetch' to 'invalidate_cache'
2025-04-20 13:34:52 +02:00
Michael Hoang
23ae0e6712
vars: make wording nicer when multiple vars are found
2025-04-18 19:18:42 +02:00
Johannes Kirschbauer
1232fb5af2
Revert "remove nix_shell_legacy"
...
This reverts commit 8cde32c76f .
2025-04-18 14:49:54 +02:00
Johannes Kirschbauer
ebb1be084f
test(cli/select): add simple caching test
2025-04-18 14:06:59 +02:00
Jörg Thalheim
8cde32c76f
remove nix_shell_legacy
2025-04-16 21:03:58 +02:00
Jörg Thalheim
10cd98e158
rename CLAN_STATIC_PROGRAMS -> CLAN_PROVIDED_PACKAGES
2025-04-16 18:27:01 +00:00
Jörg Thalheim
2240a3a533
rename nix_shell_legacy to nix_shell and run_cmd to nix_shell
...
Than it's more obvious that we need to migrate.
2025-04-16 18:27:01 +00:00
Jörg Thalheim
56a0b0a994
run_cmd: print what commands are allowed in if the current command is not in the allow list
2025-04-16 19:50:27 +02:00
Jörg Thalheim
ed68a4dde1
update_hardware_config: migrate from nix_shell to run_cmd
2025-04-16 19:32:40 +02:00
Jörg Thalheim
80a252cf1a
sort allowed-programs.json
2025-04-16 19:32:40 +02:00
Jörg Thalheim
00d25d7fb8
Host: migrate from nix_shell to run_cmd
2025-04-16 19:32:40 +02:00
Jörg Thalheim
d2173cb120
migrate clan history to clan-vm-manager
...
this functionality is not really useful or used in clan-vm-manager and
therefore should live in the clan-vm-manager.
Not porting the test for now because we probably get rid of the clan-vm-manager soon in favour of the UI.
2025-04-16 14:51:37 +02:00
Jörg Thalheim
42025fbfff
Remove unused clan history update subcommand
2025-04-16 14:51:37 +02:00
Michael Hoang
99be2d0019
machines: fix nixos-rebuild not getting retried
2025-04-15 16:16:03 +02:00
lassulus
9bb21d5724
Merge pull request 'fast-vars-gen' ( #3216 ) from fast-vars-gen into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3216
2025-04-15 07:11:06 +00:00
Jörg Thalheim
812093b551
rework cache to use json instead of pickle
...
Pickle can silently break if migrate our data layout and also introduces
unwanted behaviour such as code injection that we want to avoid.
2025-04-15 07:00:00 +00:00
Jörg Thalheim
1c3f408ce1
test_vars_deployment: skip on macOS for now
...
we can not run vms on macOS at the moment.
2025-04-14 15:47:55 +00:00
lassulus
f4870583dc
clan_cli test_vars: start refactoring to use caching
2025-04-14 14:28:59 +02:00
lassulus
db9097d5d0
clan_cli machines update: cache values for faster eval
2025-04-14 14:28:59 +02:00
lassulus
21c45e5ad9
clan_cli vars generate: prefetch all validationHashes for faster eval
2025-04-14 14:28:59 +02:00
Jörg Thalheim
ef5d62a1c1
don't error on macOS if sandbox for vars is missing
2025-04-14 14:11:51 +02:00
Mic92
9276b166f0
Merge pull request 'cache nix_config' ( #3306 ) from nix-config into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3306
2025-04-14 11:23:33 +00:00
Jörg Thalheim
7dc070b36f
cache nix_config
...
We often call this several times during execution.
At the moment we only use system at the moment, which is unlikely to
change.
2025-04-14 13:13:49 +02:00
Luis Hebendanz
bec11ee23a
Merge pull request 'clan-cli: Don't eval 'modules' while getting templates. 'modules' can be not JSON serializable' ( #3280 ) from Qubasa/clan-core:fix_templates into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3280
2025-04-14 10:38:07 +00:00
Luis Hebendanz
51c2f0e74c
Merge pull request 'chore(clan/cli): remove --reflink=auto' ( #3291 ) from visualphoenix/clan-core:clan_cli_osx_cp_fix into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3291
2025-04-14 10:24:35 +00:00
Michael Hoang
54e3414cef
machines: minor refactor of update
2025-04-13 18:14:17 +02:00
Raymond Barbiero
ba7bec1fe1
chore(clan/cli): remove --reflink=auto
2025-04-12 19:41:43 -04:00
Michael Hoang
f086fe01da
treewide: switch back to pkgs.nix
2025-04-12 13:15:53 +02:00
Qubasa
af776f1efa
clan-cli: Fix failing tests. Add a big FIXME for clan.select
2025-04-11 23:36:02 +02:00