Juanjo Presa
c7cee905d1
vars: respect deploy flag for shared secrets
2025-10-18 23:09:31 +02:00
DavHau
bf41a9ef00
vars/sops: stop writing on clan vars check
...
This fixes an issue where check_vars() would add machine keys or authorize machines for shared vars.
These write operations should only ever be done on a `clan vars generate`, which `clan vars check` should be a read-only operation
2025-10-13 18:43:49 +07:00
Johannes Kirschbauer
7b95fa039f
clan-cli: remove unused test fixture
2025-10-12 18:00:52 +02:00
DavHau
fd5d7934a0
vars: refactor - make shared generators carry machines list
...
This should make it simpler to improve the implementation of granting a new machine access to a shared secret.
The current approach using the health_check is pretty hacky
2025-10-09 15:41:04 +07:00
DavHau
744f35e0cc
vars: cleanup + fix wording
2025-10-09 07:38:00 +02:00
DavHau
a83f3c23f4
vars: raise error when shared generators differ between machines
...
When generators are shared between machines, their definition has to be the same across all machines. If not, it might lead to unexpected problems, as the architecture assumes that all definitions are the same.
fixes https://git.clan.lol/clan/clan-core/issues/5253
2025-10-08 14:02:39 +07:00
DavHau
c5b96df7b0
vars/performance: aggregate selects over all machines and generators
...
This improves the performance of deployment, by aggregating uncached select calls for vars generate into two batches.
batch 1: Get all generators of all machines
batch 2: get all final scripts for generators which need to run
2025-10-08 13:00:20 +07:00
DavHau
43b1744528
tests: disable state-version generation in all python tests
...
This improves the performance of tests, as there are less vars operations to perform.
2025-10-06 17:08:42 +07:00
DavHau
5a6ffbf916
vars: optimize generate - reduce cache misses
...
optimize the `clan vars generate` procedure by pre-caching more selectors.
To achieve this, helper functions are added to several classes.
Also a debugging feature is added to the Flake class in order to track stack traces of cache misses
2025-10-02 18:46:11 +07:00
DavHau
b72145d4aa
vars/list: reduce cache misses to 1
...
This improves the performance for clan vars list
2025-10-01 12:43:09 +07:00
DavHau
37a49a14f4
vars: fix re-generate behavior for dependencies of shared vars ( #5001 )
...
fixes https://git.clan.lol/clan/clan-core/issues/3791
This fixes multiple issues we had when re-generating shared vars.
Problem 1: shared vars are re-generated for each individual machine instead of just once (see #3791 )
Problem 2: When a shared var was re-generated for one machine, dependent vars on other machines did not get re-generated, leading to broken state
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5001
2025-09-02 14:54:24 +00:00
DavHau
3d2127ce1e
vars: always generate dependents
...
Even for the minimal closure case (when a specific generator was picked), we should still force regeneration of all dependents, as otherwise we risk keeping outdated dependents from previous generations
2025-08-27 11:47:46 +07:00
DavHau
6e4c3a638d
vars: move graph tests to separate file
2025-08-27 11:47:46 +07:00
Jörg Thalheim
8ba8fda54b
RUF100: fix
2025-08-26 16:21:15 +02:00
Jörg Thalheim
d5b09f18ed
RET504: fix
2025-08-26 15:55:23 +02:00
Jörg Thalheim
d4bdaec586
SIM102: fix
2025-08-26 15:22:25 +02:00
Jörg Thalheim
b2a54f5b0d
PLC0415: fix
2025-08-26 14:46:42 +02:00
DavHau
501d020562
vars: retrieve generators for multiple machines
...
This is necessary ground work for fixing regeneration behavior spanning over multiple machines
2025-08-26 18:55:54 +07:00
Jörg Thalheim
ac20514a8e
EXE001: fix
2025-08-26 12:01:47 +02:00
Jörg Thalheim
b38b10c9a6
automatic ruff fixes
2025-08-26 11:07:57 +02:00
Jörg Thalheim
31cbb7dc00
PLC0415: fix
2025-08-26 11:07:57 +02:00
DavHau
648aa7dc59
Merge pull request 'API: fix serialization of union types' ( #4963 ) from serde into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4963
2025-08-26 08:26:13 +00:00
DavHau
3073969c92
vars/tests: add comments
2025-08-26 15:17:41 +07:00
pinpox
4934884e0c
Enable state-version in defaults
2025-08-26 09:32:36 +02:00
Jörg Thalheim
1d0e0f243e
PLW2901: fix
2025-08-25 15:17:06 +02:00
Mic92
8134ffd787
Merge pull request 'ruff-4-perf-fixes' ( #4935 ) from ruff-4-perf-fixes into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4935
2025-08-25 13:12:14 +00:00
Jörg Thalheim
c65bb0b1ce
PERF401: fix
2025-08-25 15:06:32 +02:00
Jörg Thalheim
d9e6e0c540
D417: fix
2025-08-25 14:56:48 +02:00
Jörg Thalheim
ef5ab0c2f4
D404: fix
2025-08-25 14:56:48 +02:00
Mic92
05665b1c7e
Merge pull request 'ruff-3-arg-fixes' ( #4934 ) from ruff-3-arg-fixes into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4934
2025-08-25 12:54:04 +00:00
Jörg Thalheim
04457b1272
ARG001: fix
2025-08-25 14:46:12 +02:00
Jörg Thalheim
e208c02be7
S311: fix random usage
2025-08-25 14:07:59 +02:00
Jörg Thalheim
7747e3cc0d
S604: ignore
2025-08-25 14:07:59 +02:00
Jörg Thalheim
1c24b4c6cb
S604: fix
2025-08-25 14:07:59 +02:00
Jörg Thalheim
0a70ed6268
S108: ignore our uses
2025-08-25 13:43:33 +02:00
DavHau
c308fd63a7
vars: delete old var when changing share
...
When changing a password from non-shared to shared, we want to remove the old one
2025-08-25 10:37:46 +00:00
Mic92
0803d9c864
Merge pull request 'Apply automatic ruff lints' ( #4919 ) from ruff-1 into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4919
2025-08-25 09:53:41 +00:00
Jörg Thalheim
ea2d6aab65
ruff: apply automatic fixes
2025-08-25 11:34:41 +02:00
Johannes Kirschbauer
00bd003be4
tests/dirs: unify test files
2025-08-25 10:14:02 +02:00
Johannes Kirschbauer
f4d6edc501
api/modules: unify frontmatter with module manifest
2025-08-20 20:15:41 +02:00
DavHau
527b4b2e40
vars: ensure shared generators don't depend on machine specific generators
...
A dependency relation like this would not make sense as it would not be clear which machines generator the shared generator would depend on
2025-08-20 15:39:17 +07:00
DavHau
de0b1b2d70
vars: fix regenerating a specific generator
...
This was broken after re-designing the API -> added a test
2025-08-20 14:49:27 +07:00
DavHau
ef2a2bdb67
vars: improve tests for --regenerate
...
Ensures that all generators values actually change after running with --regenerate
2025-08-20 11:59:18 +07:00
DavHau
7b61a668e9
vars: refactor: use Machine objects instead of base_dir strings
...
Replace base_dir string parameters with Machine objects throughout the vars
module for better type safety and consistency.
2025-08-20 11:59:18 +07:00
Jörg Thalheim
cdf9fa1753
move vm configuration into a stand-alone module and include it in our test vms
...
This hasn't reduced the extra deps we have to pass to our nixos build
unfortunally, but maybe at least it can safe us a few in the future.
2025-08-19 15:45:57 +00:00
Jörg Thalheim
2d264a8e5e
mark vm tests as pure
2025-08-19 15:28:25 +02:00
Jörg Thalheim
5b1a9d6848
vms: also prebuild for aarch64
2025-08-19 14:49:52 +02:00
Jörg Thalheim
4074a184b2
make vm test pure
2025-08-19 14:47:12 +02:00
DavHau
815c6c9438
vars: move generation functions to clan_lib
2025-08-19 18:05:53 +07:00
DavHau
ab274ce932
vars: refactor - remove generate_vars() in favor of run_generators()
...
The motivation is to have one shared entry point for the CLI as well as API/GUI
2025-08-19 16:26:53 +07:00