Commit Graph

1712 Commits

Author SHA1 Message Date
lassulus
13b7d3c7ec cli password-store: skip uploading non secret files 2024-11-22 22:34:09 +01:00
Qubasa
f01d586bf3 clan-cli: Fix inventory update.sh 2024-11-22 22:23:10 +01:00
Qubasa
8866a85765 clan-cli: Refactor ssh part 2, Refactor custom_logger 2024-11-22 22:08:50 +01:00
Johannes Kirschbauer
0ab8bcd017 Clan-cli/api: init dynamic get module interface 2024-11-22 13:58:30 +01:00
Johannes Kirschbauer
ff052e53e3 Clan-cli/api: list external modules 2024-11-21 17:04:35 +01:00
Johannes Kirschbauer
28f907cc85 Clan-cli: update inventory classes.py 2024-11-21 15:38:17 +00:00
Qubasa
4104374b76 clan-cli: Refactor ssh folder part 1 2024-11-21 13:02:22 +01:00
a-kenji
cc36247f22 pkgs/cli: Fix generation of hardware configuration for machines install
Correctly use the `value` of the `enum`, which is expected by
`nixos-anywhere`.
2024-11-20 16:15:45 +01:00
a-kenji
1bc0b71155 pkgs/cli: Fix tag creation for clan machines create 2024-11-20 15:12:05 +01:00
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