Commit Graph

849 Commits

Author SHA1 Message Date
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
Qubasa
660ac92c29 clan-app: Add Webview to python async backend 2024-07-15 19:24:38 +02:00
Johannes Kirschbauer
c43c4ef067 Fix schema test 2024-07-14 15:02:32 +02:00
Johannes Kirschbauer
96e7d93e01 Fix schema test 2024-07-14 13:38:43 +02:00
Johannes Kirschbauer
473a21f1d8 Fix some type issues 2024-07-11 17:05:57 +02:00
Johannes Kirschbauer
4c4f55f309 Clan create: migrate to inventory 2024-07-11 16:39:06 +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
Johannes Kirschbauer
44d2f58c47 UI: init flash poc 2024-07-10 09:43:18 +02: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
DavHau
759660de16 clan-cli: add vars command 2024-07-09 12:42:29 +07:00
DavHau
cc6370ba1b WIP: vars: copy python code from facts 2024-07-09 12:42:29 +07:00
Jörg Thalheim
4c217f3f1b fix new linter issues 2024-07-08 16:30:15 +02:00
Johannes Kirschbauer
edcc1a5cb2 Test: fixup 2024-07-06 17:51:46 +02:00
Johannes Kirschbauer
492a776bde API Types: treat '_*' as private fields and dont inspect them 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
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
18b64f2d0b clan.core: rename clan.{deployment,networking} -> clan.core.{deployment,networking} 2024-07-04 17:05:37 +07:00
Jörg Thalheim
9994f3c101 add assertion if FlakeId has wrong value 2024-07-03 18:28:55 +02:00
Jörg Thalheim
a582eb9fd4 don't catch all exceptions when generating facts 2024-07-03 18:28:55 +02:00
Jörg Thalheim
6037ad1ce0 move FlakeId to flake id
move FlakeId to flake id
2024-07-03 18:28:55 +02:00
clan-bot
842d9a360c Merge pull request 'refactor-machine' (#1691) from refactor-machine into main 2024-07-03 10:48:09 +00:00
Jörg Thalheim
2f1dac6962 make machine class now a dataclass 2024-07-03 12:34:43 +02:00
Johannes Kirschbauer
3227de583f API: tests for module instance update 2024-07-02 16:09:13 +02:00
Jörg Thalheim
cc3f99bfaa simplify clan uri further 2024-07-02 12:52:10 +02:00
clan-bot
4d6b84f71c Merge pull request 'remove unused multi machine clan urls' (#1687) from Mic92-main into main 2024-07-02 10:26:14 +00:00
Jörg Thalheim
ae8cff57aa remove unused multi machine clan urls 2024-07-02 12:20:30 +02:00
Johannes Kirschbauer
9307ca68eb API: add performance constraints 2024-07-02 12:07:45 +02:00
clan-bot
6cf0cc491e Merge pull request 'machines/machines: drop unused qmp wrapper' (#1683) from Mic92-main into main 2024-07-02 10:01:43 +00:00
Jörg Thalheim
54cec7f772 remove unused MachineParams 2024-07-02 11:57:39 +02:00
Johannes Kirschbauer
2996ab5941 api: clan Modules add readme content 2024-07-02 11:45:48 +02:00
Jörg Thalheim
466fac640f machines/machines: drop unused qmp wrapper 2024-07-02 11:42:02 +02:00
clan-bot
bd7df2a166 Merge pull request 'API: migrate add machine to inventory' (#1676) from hsjobeki/clan-core:hsjobeki-main into main 2024-07-02 09:25:01 +00:00
Johannes Kirschbauer
a71fd47354 Inventory persistence improves error resistance 2024-07-02 11:16:54 +02:00
Johannes Kirschbauer
1efadb5e3d API: migrate machines delete and list to inventory 2024-07-02 11:07:11 +02:00
a-kenji
ffe6e03705 clan: implement OSC8 hyperlinks for help output
The name of the terminal help output stays the same to keep
compatibility with legacy terminal implementations.
2024-07-02 08:55:01 +00:00
Johannes Kirschbauer
4a61e51afd API: migrate add machine to inventory 2024-07-01 21:55:42 +02:00
Johannes Kirschbauer
4363544672 Inventory: add system and sample machine 2024-07-01 21:25:02 +02:00
Jörg Thalheim
cb9fbc969b introduce minifakeroot that also works on macos 2024-06-27 18:53:10 +02:00
Jörg Thalheim
2ed8bba017 make bubblewrap in fact generation optional 2024-06-27 18:23:05 +02:00
DavHau
bc3d17ad06 api: add endpoint machine_schema 2024-06-27 16:58:37 +07:00
a-kenji
a5172b995f clan: state add information about the backup command hooks to the help 2024-06-26 08:46:02 +00:00
Johannes Kirschbauer
17532e999f API: add clanModules list and details test 2024-06-25 21:31:44 +02:00
Johannes Kirschbauer
cbb78ca1ae ClanModules: Add docs and api to retrieve metadata 2024-06-25 21:17:01 +02:00
a-kenji
a6f342db35 clan: state list improve formatting 2024-06-25 11:50:19 +02:00
a-kenji
69e826fc17 cli: add command to list state
Add a subcommand to list configured state for a specific machine.

Example:
```
$ clan state list [MACHINE]
```
2024-06-25 09:34:31 +00:00