Commit Graph

480 Commits

Author SHA1 Message Date
DavHau
629861d404 tests: improve testing framework for impure vm tests
Also fix computet sops secret paths for vars
2024-08-04 13:40:12 +07:00
DavHau
0ca3d036f2 vars: simplify tests 2024-08-03 15:47:35 +07:00
DavHau
e22ec9ea5a clan-cli/tests: improve test helpers for VMs 2024-08-03 15:26:53 +07:00
DavHau
d1c2f0b622 vars: introduce share flag 2024-08-03 15:26:53 +07:00
Qubasa
fb4ceebccf formatter.nix: Add prettier 2024-08-02 18:56:53 +02:00
Qubasa
3e9ebbc90f clan-app: Finish flash view. clan-cli: Flash cli now verifies if language and keymap are valid. 2024-08-02 17:51:45 +02:00
a-kenji
0a58adce18 clan: remove config subcommand
This removes the `config` subcommand from the cli and the documentation
to keep the api surface small.

While this functionality was convenient it doesn't need to be surfaced
by the clan cli.

The remaining `config` python module should be ported to the `clan-app`
in a follow up pr. Because the functionality is currently only used by
the `clan-app`.
Ideally together with: #1830.
2024-07-31 16:35:36 +00:00
Johannes Kirschbauer
8ddfaba599 Deserializer: add Literal; Annotated fields 2024-07-31 13:00:28 +02:00
Johannes Kirschbauer
9db6cb8b6f Deserializer: add Nullable fields 2024-07-30 14:26:13 +02:00
Johannes Kirschbauer
5d8fa57f23 Deserializer: replace pydantic 2024-07-30 12:26:16 +02:00
Qubasa
ce1dec774e clan-vm-manager: Fix regression 2024-07-29 17:33:46 +02:00
Johannes Kirschbauer
4be5ed28db Clan-app: example disk view 2024-07-29 11:49:55 +02:00
Johannes Kirschbauer
395a7fc70e Serializer: use alias, make it configurable for different use cases 2024-07-29 09:01:06 +02:00
Johannes Kirschbauer
d7b6fc16a4 Serde: add unit tests for all serialization and deserialization logic 2024-07-26 14:23:41 +02:00
DavHau
1b3dc65b89 vars/sops: store secrets in /sops/vars 2024-07-24 18:42:50 +07:00
clan-bot
49ace8a765 Merge pull request 'Inventory improvements' (#1795) from hsjobeki/clan-core:hsjobeki-main into main 2024-07-24 11:23:16 +00:00
Johannes Kirschbauer
1b52dca96b Fix unit tests 2024-07-24 13:15:08 +02:00
DavHau
2bc716377d tests/generate_flake: support inventory argument 2024-07-24 17:06:42 +07:00
Johannes Kirschbauer
871fa8f1ff Inventory: add load_eval method 2024-07-24 10:34:10 +02:00
DavHau
5105ff14e0 vars: add support for password-store 2024-07-23 14:54:18 +07:00
DavHau
0acf9178c8 vars: implement prompts 2024-07-22 20:40:12 +07:00
Jörg Thalheim
7004d1ea7f cleanup deprecated facts options 2024-07-21 18:11:30 +02:00
Jörg Thalheim
e0640b0a29 test_flake_with_core_and_pass: don't use deprecated options 2024-07-21 18:03:51 +02:00
Johannes Kirschbauer
33261ab4b6 Classgen: add error reporting and combine common classes 2024-07-19 13:03:38 +02:00
Johannes Kirschbauer
fbe27bfa0a Classgen: add mapped keys and more stuff 2024-07-18 21:58:36 +02:00
Jörg Thalheim
64956a7a0a Revert "clan-cli: deprecate nix_shell() in favor of run_cmd()"
This reverts commit a598b878a5.
2024-07-17 14:04:49 +02:00
clan-bot
483425d6a3 Merge pull request 'Inventory: init: deployment info for machines' (#1767) from hsjobeki/clan-core:hsjobeki-main into main 2024-07-17 10:18:50 +00:00
Johannes Kirschbauer
ad70ee72e5 Unit tests: fix template test - override the input in the flake template 2024-07-17 12:06:23 +02:00
DavHau
566c1403c0 vars: implement dependencies 2024-07-17 16:42:16 +07:00
DavHau
c618cd744b vars: add test for multiple machines 2024-07-16 18:35:13 +07:00
DavHau
a598b878a5 clan-cli: deprecate nix_shell() in favor of run_cmd() 2024-07-16 14:03:17 +07:00
DavHau
e7d5a6f854 impure-checks: improve performance by disabling dynamic deps 2024-07-16 12:42:45 +07:00
Qubasa
77dc90d3b4 clan-app: Fix mypy lints and add GenericFnRuntime 2024-07-15 19:48:20 +02:00
Johannes Kirschbauer
473a21f1d8 Fix some type issues 2024-07-11 17:05:57 +02:00
DavHau
053e61e3f0 vars: implement sops.defaultGroups 2024-07-11 18:39:29 +07:00
DavHau
430adc875a clan-cli: improve runtime dependency management
Many dependencies of clan-cli  are currently dynamically loaded via nix-shell on each execution.
This is nice, as it reduces the initial closure size of clan, but the overhead introduced by nix-shell piles up quickly, as some commands shell out many times during their lifetime. For example, when adding a secret git is called 10+ times.

This reduces the time of a test which adds a secret from around 50 seconds to 15 seconds.

- add run_cmd() as an alternative to nix_shell()
- introduce the concept of static dependencies which do not need to go through nix-shell
- static dependencies are defined at build time and included into the wrapper for clan-cli
- add package: clan-cli-full which statically ships all required dependencies

TODO: deprecate nix_shell() in favor of run_cmd()
2024-07-11 15:34:41 +07:00
DavHau
7dbed61079 vars: implement secret generation 2024-07-11 11:37:17 +07:00
DavHau
4898706480 clan-cli: simplify cli helper 2024-07-10 18:14:06 +07:00
Mic92
a3e2b76517 Merge branch 'main' into DavHau-dave 2024-07-09 09:33:11 +00:00
DavHau
941cf9fb9d vars: implement generating public variables via in_repo 2024-07-09 14:26:56 +07:00
Jörg Thalheim
4c217f3f1b fix new linter issues 2024-07-08 16:30:15 +02:00
Johannes Kirschbauer
55c4003a76 Inventory spec: make system optional 2024-07-06 17:56:22 +02:00
Johannes Kirschbauer
edcc1a5cb2 Test: fixup 2024-07-06 17:51:46 +02:00
Johannes Kirschbauer
44ee831d04 Test: ensure type inference runs on all dataclasses 2024-07-06 17:22:47 +02:00
DavHau
79d6f8e893 Reapply "clan.core: rename clan.{deployment,networking} -> clan.core.{deployment,networking}"
This reverts commit 71009f80d8.

workaround upstream bug: https://github.com/NixOS/nixpkgs/issues/324802
2024-07-05 19:29:01 +07:00
Mic92
e81906881b Merge pull request 'Revert "clan.core: rename clan.{deployment,networking} -> clan.core.{deployment,networking}"' (#1710) from revert-broken-migration into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1710
2024-07-05 09:48:24 +00:00
DavHau
336e99b2a7 clan-cli tests: remove dynamic inclusion of helpers module
Dynamically extending the python path at runtime is bad for developer experience, as this is not understood by the text editor and therefore jump to definition etc. does not work.

-> Better to remove the dynamic inclusion and force developers to specify the import correctly.
2024-07-05 16:38:22 +07:00
Jörg Thalheim
71009f80d8 Revert "clan.core: rename clan.{deployment,networking} -> clan.core.{deployment,networking}"
This reverts commit 18b64f2d0b.

The old configuration cannot be updated like this:

eve] error:
[eve]        … while calling the 'head' builtin
[eve]          at /nix/store/5b0hl2dnvr1sawqlkwmsnaiyqz00d34h-source/lib/attrsets.nix:1575:11:
[eve]          1574|         || pred here (elemAt values 1) (head values) then
[eve]          1575|           head values
[eve]              |           ^
[eve]          1576|         else
[eve]
[eve]        … while evaluating the attribute 'value'
[eve]          at /nix/store/5b0hl2dnvr1sawqlkwmsnaiyqz00d34h-source/lib/modules.nix:809:9:
[eve]           808|     in warnDeprecation opt //
[eve]           809|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
[eve]              |         ^
[eve]           810|         inherit (res.defsFinal') highestPrio;
[eve]
[eve]        … while evaluating the option `system.build.toplevel':
[eve]
[eve]        … while evaluating definitions from `/nix/store/5b0hl2dnvr1sawqlkwmsnaiyqz00d34h-source/nixos/modules/system/activation/top-level.nix':
[eve]
[eve]        … while evaluating the option `assertions':
[eve]
[eve]        … while evaluating definitions from `/nix/store/5b0hl2dnvr1sawqlkwmsnaiyqz00d34h-source/nixos/modules/system/boot/systemd.nix':
[eve]
[eve]        … while evaluating the option `systemd.services':
[eve]
[eve]        … while evaluating definitions from `/nix/store/kpzcdgndym0qm1w490mjvk9c2qmz03h5-source/nixosModules/clanCore/zerotier':
[eve]
[eve]        … while evaluating the option `clan.core.networking.zerotier.networkId':
[eve]
[eve]        (stack trace truncated; use '--show-trace' to show the full, detailed trace)
[eve]
[eve]        error: A definition for option `clan.core.networking.zerotier.networkId' is not of type `null or string'. Definition values:
[eve]        - In `/nix/store/kpzcdgndym0qm1w490mjvk9c2qmz03h5-source/nixosModules/clanCore/networking.nix':
[eve]            {
[eve]              _type = "override";
[eve]              content = "267efd4a15b69623";
[eve]              priorit
2024-07-05 11:16:05 +02:00
DavHau
bb1950a4a0 fixtures_flakes.py: remove dead code 2024-07-05 15:55:52 +07:00
DavHau
18b64f2d0b clan.core: rename clan.{deployment,networking} -> clan.core.{deployment,networking} 2024-07-04 17:05:37 +07:00