Commit Graph

1202 Commits

Author SHA1 Message Date
Jörg Thalheim
d5d6774124 fix file descriptor leak in cmd.run()
we were leaking pipes.
2024-10-01 19:27:47 +02:00
clan-bot
e014800f03 Merge pull request 'generate: don't set type=bool in argparse.BooleanOptionalAction' (#2190) from fix-warning into main 2024-10-01 17:04:49 +00:00
Jörg Thalheim
237327ead3 start to name temporary directories in more places 2024-10-01 18:57:59 +02:00
Jörg Thalheim
716c6c9139 generate: don't set type=bool in argparse.BooleanOptionalAction 2024-10-01 18:48:54 +02:00
Louis Opter
c132811c9e Update outdated help messages and fix a typo 2024-09-29 15:52:58 +00:00
Jörg Thalheim
e58b0df2db fix broken eval check when nixpkgs.pkgs nixos option is used 2024-09-29 16:59:02 +02:00
Jörg Thalheim
5c6a0be70c make default hardware report commit message nicer 2024-09-29 16:59:02 +02:00
Jörg Thalheim
bd8bc98863 allow to overwrite hardware configuration
now that we call it "update" hardware configurration and we are heading
towards facter anyway, we don't need all the force overide logic. Just
allow this to be overwritten by default.
2024-09-29 16:59:02 +02:00
Jörg Thalheim
deea4a74b3 wrap hardware generate arguments into an object 2024-09-29 16:59:02 +02:00
Jörg Thalheim
b97ee66e8f don't expose polymorphic api 2024-09-29 16:21:53 +02:00
Jörg Thalheim
84cb54a537 remove unused location from ClanError 2024-09-29 16:21:53 +02:00
Jörg Thalheim
d4685e7208 put error description in same line as error for cli 2024-09-29 16:21:53 +02:00
Jörg Thalheim
11409b9608 if error doesn't have a message set, print a stack trace 2024-09-29 16:21:53 +02:00
Jörg Thalheim
6bd1bc894e if command fails, print command and exit code, regardless if error message is set 2024-09-29 16:21:53 +02:00
Jörg Thalheim
7b93ef6704 expose nixos-facter in cli 2024-09-29 16:21:53 +02:00
Qubasa
1b0b111f03 clan flash: Remove root requirement for flash, add a flash-template 2024-09-24 13:42:21 +02:00
Jörg Thalheim
5b878ac8ac use packaged nixos-facter in generate_hardware_info 2024-09-24 11:38:33 +02:00
Qubasa
d4e8f88185 clan-cli: Move clan machines import to clan machines create 2024-09-23 17:11:48 +02:00
DavHau
0324f4d4b8 vars/sops: improve shared secrets, switching backend
When a second machine checks for a shared secret, now the exists() call returns negative and only when updating the secrets for that machine, the machine is added to the sops receivers.

Also throw proper errors when the user switches backends without cleaning the files first.
2024-09-20 15:06:54 +02:00
Jörg Thalheim
b4fb4f180b rename hw-generate to update-hardware-config 2024-09-20 13:42:18 +02:00
DavHau
501ade7de7 vars: implement migration
Migrating generated files from the facts subsystem to the vars subsystem is now possible.

HowTo:
1. declare `clan.core.vars.generators.<generator>.migrateFact = my_service` where `my_service` refers to a service from `clan.core.facts.services`
2. run `clan vers generate your_machine` or `clan machines update your_machine`

Vars will only be migrated for a generator if:
1. The facts service specified via `migrateFact` does exist
2. None of the vars to generate exist yet
3. All public var names exist in the public facts store
4. All secret var names exist in the secret fact store

If the migration is deemed possible, the generator script will not be executed. Instead the files from the public or secret facts store are read and stored into the corresponding vars store
2024-09-19 17:57:03 +02:00
DavHau
89d39186ee vars/generate: improve output when vars are updated
fixes #2076

- print old and new value if possible
- also inform the user if something hasn't changed
2024-09-18 16:57:01 +02:00
Johannes Kirschbauer
cfa1fca76e Inventory: docs fixup 2024-09-18 08:31:00 +02:00
DavHau
ec109e7f67 vars: generate vars for clan install
fixes #2087
2024-09-17 20:41:39 +02:00
DavHau
cf47c1d51a vars: generate proper commit messages
fixes #2126
2024-09-17 20:22:18 +02:00
Johannes Kirschbauer
56b76f9827 Inventory: docs improvements 2024-09-16 22:52:40 +02:00
Qubasa
0f0a8825e1 clan-cli: Init clan machines import 2024-09-16 18:15:55 +02:00
Johannes Kirschbauer
0addba0d20 Update: inventory classes check 2024-09-16 12:52:28 +00:00
Johannes Kirschbauer
b4e3dff23b CLI: api.register type preservation 2024-09-16 12:52:28 +00:00
Johannes Kirschbauer
cf24170d0d CLI: update classes 2024-09-16 12:52:28 +00:00
Qubasa
1680625260 clan-cli: Moved flash to own subcommand 2024-09-15 15:53:17 +02:00
Qubasa
aa1285b415 flash: Replace disks[str,str] with list[Disk] type 2024-09-15 11:43:40 +02:00
Qubasa
6e9121a881 flash: Fix gnome automounting bug 2024-09-14 18:11:41 +02:00
Johannes Kirschbauer
91a9fb23be API: rename set_inventory 2024-09-13 16:11:10 +02:00
Johannes Kirschbauer
fd15bf4f5c Serde: support deserialise Any typed values 2024-09-13 16:11:10 +02:00
Qubasa
787599ebb6 clanCore: init machine_id_v3 2024-09-13 12:17:49 +02:00
DavHau
a1dd10f502 vars/sops/shared: add machines key on demand 2024-09-12 20:17:05 +02:00
clan-bot
2fc5572ff7 Merge pull request 'API: remove all python dataclasses for clanModules (services)' (#2080) from hsjobeki/clan-core:hsjobeki-main into main 2024-09-12 16:37:51 +00:00
DavHau
067d287398 vars/list: display '<not set>' also for secrets 2024-09-12 17:24:29 +02:00
DavHau
53592837a9 vars: get rid of meta.json 2024-09-12 16:52:44 +02:00
DavHau
3c27cc31e9 vars/sops: load sops info from nix instead of filesystem 2024-09-12 16:30:21 +02:00
Johannes Kirschbauer
f2a2b8e893 API: type all services with dict[str,Any] in python to reduce complexity. 2024-09-12 16:19:51 +02:00
Johannes Kirschbauer
39518d302b API: remove all python dataclasses for clanModules (services) 2024-09-12 16:19:51 +02:00
a-kenji
66c0517dfe clanModules/state-version: init state-version
This adds a clanModule that will initialize the `system.stateVersion`
upon deploying the machine for the first time.

If the machine is completely reinstalled, then the state version might be
regenerated. But care should be taken if rebuilding from backups.
2024-09-12 15:47:30 +02:00
Johannes Kirschbauer
4b56605340 Clan-cli: update import in classes 2024-09-12 09:28:58 +02:00
a-kenji
f1b857f4ae Revert "Merge pull request 'machine_id_v2' (#2052) from Qubasa/clan-core:machine_id_v2 into main"
This reverts commit 68a72a4156, reversing
changes made to 7af3e80249.
2024-09-10 14:01:12 +02:00
DavHau
54cb6862b1 vars/password-store: implement upload and hashing 2024-09-09 22:13:16 +02:00
DavHau
6fafafa064 vars/password-store: use standard paths; fix share flag 2024-09-09 21:20:03 +02:00
Qubasa
a0b3275ed1 clanCore: init machineId and diskId v2 2024-09-09 15:51:31 +02:00
DavHau
b3dd36bdb6 vars: improve generator pipeline
Compute the whole closure of to-be-executed generators upfront before executing anything

Properly compute closures for the 4 different scenarios:

1. full_closure: run all generators for a selected machine in topological order
2. all_missing_closure: run just the missing generators including their dependents
3. requested_closure: run only a selected list of generators including their missing dependencies and their dependents
4. minimal_closure: Run just enough to ensure that the list of selected generators are in a consistent state. Don't execute anything if nothing is missing.
2024-09-06 21:32:17 +02:00