Commit Graph

1653 Commits

Author SHA1 Message Date
danjujan
434ce7aeb4 vms/qemu: fix opengl detection 2024-11-20 10:20:30 +00:00
Jörg Thalheim
5bf2afdf0e vars: add VarStatus dataclass to make return type more readable 2024-11-20 10:20:06 +00:00
DavHau
3f62e143ec vars: implement invalidation mechanism
This adds options `invalidationData` to generators.

`invalidationData` can be used by an author of a generator to signal if a re-generation is required after updating the logic.

Whenever a generator with invalidation data is executed, a hash of that data is stored by the respective public and/or secret backends.

The stored hashes will be checked on future deployments, and a re-generation is triggered whenever a hash doesn't match what's defined in nix.
2024-11-20 16:27:22 +07:00
Jörg Thalheim
a4e03a85eb vars: don't print stack trace if generator fails 2024-11-19 09:46:14 +00:00
Jörg Thalheim
9c6e04fa3f vars: introduce ensure_machine_has_access method for sops
this should help avoiding overriding existing shared secrets by not
triggering vars regeneration if a machine has no access.

wip
2024-11-19 09:46:14 +00:00
Jörg Thalheim
b3b72e54cd remove ssh.id_ed25519 from facts test
we have moved this to vars now.
2024-11-19 09:46:14 +00:00
Johannes Kirschbauer
9a6f39be76 Modules/api: export constraints, filter by inventory 2024-11-19 10:36:29 +01:00
DavHau
64a6f380a6 vars: add test for 'clan vars get' 2024-11-19 13:32:27 +07:00
DavHau
6a373f92d1 tests: improve performance, keep flake.lock between tests
- deprecate fixture generate_flake in favor of class ClanFlake
- allow creating flake templates that can be copied, including their state, like git and lock files, in order to avoid expensive re-initialization
2024-11-18 17:01:58 +07:00
lassulus
8e1697a089 password-store owner & group support 2024-11-16 01:18:59 +01:00
Qubasa
250eed0798 clan-cli: upload.py -> Replace rsync with native ssh command 2024-11-15 22:03:47 +07:00
a-kenji
9be8d5dbeb pkgs/cli: Add comment to add_common_flags function 2024-11-15 12:06:10 +01:00
a-kenji
032bf4b09b pkgs/cli: Fix adding common flags for aliases 2024-11-15 10:49:03 +00:00
Jörg Thalheim
c98055c781 vars: introduce ensure_machine_has_access method for sops
this should help avoiding overriding existing shared secrets by not
triggering vars regeneration if a machine has no access.

wip
2024-11-14 15:37:55 +00:00
Jörg Thalheim
8f1e5ed1eb vars/get: use machine_name as variable name 2024-11-14 15:37:55 +00:00
Jörg Thalheim
4a389b0fb3 vars/sops: simplify conditional in exists 2024-11-14 15:37:55 +00:00
clan-bot
7852006eda Merge pull request 'pkgs/cli: Improve help description' (#2415) from kenji/clan-core:kenji-cli/show/improve/description into main 2024-11-14 14:40:22 +00:00
a-kenji
9e31ba823d pkgs/cli: Improve help description 2024-11-14 15:34:24 +01:00
clan-bot
57f9b1a410 Merge pull request 'pkgs/cli: Improve clan secrets help' (#2416) from kenji/clan-core:kenji-cli/secrets/help into main 2024-11-14 14:18:43 +00:00
clan-bot
24254c8626 Merge pull request 'pkgs/cli: Remove superfluous comment string' (#2414) from kenji/clan-core:kenji-cli/improve/show-comment into main 2024-11-14 14:15:52 +00:00
clan-bot
92d9c4ab40 Merge pull request 'pkgs/cli: Fix typo in test fixtures' (#2412) from kenji/clan-core:kenji-fix/typo-fixture into main 2024-11-14 14:13:12 +00:00
a-kenji
a17992a59f pkgs/cli: Improve clan secrets help 2024-11-14 15:07:16 +01:00
a-kenji
a7e68637a9 pkgs/cli: Remove superfluous comment string 2024-11-14 15:04:19 +01:00
a-kenji
279b5b316d pkgs/cli: Improve help output of show subcommand 2024-11-14 15:03:14 +01:00
a-kenji
6bb26746f1 pkgs/cli: Fix typo in test fixtures 2024-11-14 15:00:44 +01:00
lassulus
7ae7ac8bd1 cli vars password-store: fix file locations 2024-11-14 12:07:52 +01:00
a-kenji
a1508ab9cb pkgs/cli: Fix typo in comment 2024-11-14 10:17:44 +01:00
DavHau
21796c1dbb clan-cli: remove --no-write-lock-file from nix invocations 2024-11-14 14:11:06 +07:00
DavHau
820427b949 cleanup: remove legacy flake fixture test_flake_minimal and test_flake_with_core_and_pass 2024-11-14 14:03:29 +07:00
lassulus
11ce774820 clan_cli vars: actually upload 2024-11-13 13:23:42 +01:00
Jörg Thalheim
cb6fefd694 cmd: also process stdin 2024-11-13 13:23:42 +01:00
lassulus
745af335ec cli machines update: run deploy directly if deploying single machine 2024-11-13 13:23:42 +01:00
DavHau
54b8f5904e vars: allow re-encrypting secrets when recipient keys were added.
When the users of a secret change, when for example a new admin user is added, an error will be thrown when generating vars, prompting the user to pass --fix to re-encrypt the secrets
2024-11-13 18:49:30 +07:00
clan-bot
3822efc11b Merge pull request 'Modules/constraints: init constraints checking for inventory compatible modules' (#2391) from hsjobeki/clan-core:hsjobeki-main into main 2024-11-13 08:02:29 +00:00
DavHau
236d9eaec3 vars,facts: update_check -> needs_upload 2024-11-13 13:34:15 +07:00
Johannes Kirschbauer
241db1cade Modules/constraints: init constraints checking for inventory compatible modules 2024-11-12 18:36:38 +01:00
Jörg Thalheim
8e4067ee03 vars: fix case if we have two vars with where one is the prefix of another one 2024-11-12 16:11:39 +00:00
a-kenji
c0678885b5 pkgs/cli: Add @override decorator 2024-11-12 15:14:55 +00:00
a-kenji
fd4ba6d86f pkgs/cli: Document clan machines list --tags 2024-11-12 14:59:23 +01:00
a-kenji
f160de2722 pkgs/clan: machines list --tags add dynamic completer 2024-11-12 14:59:23 +01:00
a-kenji
8a6239e08d pkgs/cli: Add tagging support to machines list
Add the `--tags` flag to `clan machines list`
This now supports the machine tagging system from the inventory.

Multiple tags are the intersection of the tags of a specific machine.

Example two machines with overlapping tags:
```
server: ["intel"]
laptop: ["intel", "graphical"]
```

- `clan machines list --tags intel` will output:

```
server
laptop
```

- `clan machines list --tags intel graphical` will output:

```
laptop
```

- `clan machines list --tags graphical` will output:

```
laptop
```
2024-11-12 14:58:55 +01:00
Johannes Kirschbauer
c7da3e165f Chore: remove unused clanImports module 2024-11-12 14:46:25 +01:00
Jörg Thalheim
7cb296e717 simplify reading hostPlaform.system from nixos 2024-11-11 16:17:54 +01:00
Qubasa
2df1179666 clan-cli: Improved --debug output by indenting commands, add TRACE_DEPTH environment variable 2024-11-11 21:23:53 +07:00
Qubasa
5d7b626ede clan-cli: Simplify hostPlatform and just use 'system' 2024-11-11 14:08:12 +00:00
Qubasa
a60a8ba6a4 clan-cli: Fix nixos-anywhere for systems that can not be build locally 2024-11-11 14:08:12 +00:00
a-kenji
464fb64f5f pkgs/cli: Complete --tags flag 2024-11-11 13:48:00 +01:00
a-kenji
c9ec772f1d pkgs/cli: Add dynamic completer for tags
Add a dynamic completer for `tags`.

Queries tag information from:
- the keys of the computed/static tags (inventory tags)
- the services tags
- the machines tags
2024-11-11 13:48:00 +01:00
a-kenji
3adc67967f pkgs/cli: Unclutter help output slightly 2024-11-11 11:28:51 +00:00
Jörg Thalheim
cd13bfe6ed HistoryEntry: add cleaner typesafe json deserialization 2024-11-11 11:36:17 +01:00