Commit Graph

1078 Commits

Author SHA1 Message Date
DavHau
5105ff14e0 vars: add support for password-store 2024-07-23 14:54:18 +07:00
Jörg Thalheim
09fb500671 password-store: write secrets with read-only permission
Otherwise we are installing secrets with the wrong permissions on the
first install
2024-07-22 17:22:01 +02:00
Jörg Thalheim
7ff296113d add option to not create a git in flakes create 2024-07-22 16:08:59 +02:00
Jörg Thalheim
3bbfe7fad2 hw-configure: use hostname specified in the nixos configuration 2024-07-22 16:08:59 +02:00
DavHau
0acf9178c8 vars: implement prompts 2024-07-22 20:40:12 +07:00
Jörg Thalheim
05a28e596d don't setup json inventory for cli users 2024-07-22 08:22:58 +02:00
Jörg Thalheim
f04ed457db cli: default template url should come from the package itself rather than our gitea
This allow easier testing and also forks.
2024-07-22 08:22:58 +02:00
Jörg Thalheim
32876a5d5d borgbackup: add exclude option 2024-07-21 22:58:34 +02:00
Jörg Thalheim
7ea26b1716 flake/create: fix "directory does not exist" error 2024-07-21 16:00:35 +02:00
Jörg Thalheim
5033421c52 only set git author / email when no one is set globally 2024-07-21 16:00:35 +02:00
Qubasa
131299694b clan-vm-manager: Restore to known good version 2024-07-19 22:07:34 +02:00
Johannes Kirschbauer
bfaaa2e038 Classgen: make type order predictable 2024-07-19 18:49:16 +02:00
Johannes Kirschbauer
243aa17d55 Classgen: refactor functions 2024-07-19 18:20:22 +02:00
Johannes Kirschbauer
33261ab4b6 Classgen: add error reporting and combine common classes 2024-07-19 13:03:38 +02:00
Johannes Kirschbauer
a4b1a0eb47 Commit generated code otherwise CI cannot check types 2024-07-19 09:52:14 +02:00
Johannes Kirschbauer
fbe27bfa0a Classgen: add mapped keys and more stuff 2024-07-18 21:58:36 +02:00
Johannes Kirschbauer
b752d2eb67 Init: Autogenerate classes from nix interfaces 2024-07-18 19:14:12 +02:00
Qubasa
274701b381 clan: Fix treefmt not applying mypy lints on clan_cli and clan_app 2024-07-17 21:50:52 +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
DavHau
566c1403c0 vars: implement dependencies 2024-07-17 16:42:16 +07:00
Johannes Kirschbauer
fdd19b8ddd Inventory: fix dataclasses discrepancy once more 2024-07-17 11:39:18 +02:00
Johannes Kirschbauer
bc520df9ff Inventory: fix options 2024-07-17 10:55:46 +02:00
Johannes Kirschbauer
e236dba1c9 Inventory: extend python dataclasses by schema changes 2024-07-17 10:09:58 +02:00
Johannes Kirschbauer
baa9dc1d1a Inventory: extend model by deployment info 2024-07-17 10:09:58 +02:00
Qubasa
d9fa19ad3b clan-app: WebExecutor now mirrors jsonschema api types generically 2024-07-16 16:34:59 +02:00
Johannes Kirschbauer
d7bf84e3be cli: add programms to allowed list 2024-07-16 13:49:16 +02:00
clan-bot
f17b9d4aa6 Merge pull request 'API: async signal integration migration' (#1762) from hsjobeki/clan-core:hsjobeki-main into main 2024-07-16 09:37:25 +00:00
Johannes Kirschbauer
dae5d01999 API: async signal integration migration 2024-07-16 11:28:20 +02: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
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