Commit Graph

69 Commits

Author SHA1 Message Date
a-kenji
c926f23c09 clan: add dynamic completions to clan vms inspect 2024-06-04 15:50:50 +02:00
a-kenji
21ac1f7204 clan: add dynamic completions to clan vms run 2024-06-04 15:48:12 +02:00
a-kenji
81e0700826 clan: facts generate allow regeneration of facts
Add `--regenerate` flag to `clan facts generate` which allows forcing
the generation of facts, regardless of their current existence.

Examples:
```
clan facts generate [MACHINE] --regenerate
```
or
```
clan facts generate [MACHINE] --service [SERVICE] --regenerate
```
2024-05-26 22:55:48 +02:00
a-kenji
4faab0a20f clan: facts generate specific service
Add `--service` flag to the `clan` cli which allows specifying a certain
service to be generated.

Example:

```
clan facts generate [MACHINE] --service [SERVICE]
```

Fixes #1395
2024-05-26 21:52:56 +02:00
Jörg Thalheim
f385e0e037 refactor facts command to regenerate facts for all machines 2024-04-15 22:14:54 +02:00
DavHau
fc73301ed9 vms/run.py: refactor use kwargs instead of dataclass for function args 2024-04-09 14:30:46 +07:00
Qubasa
e6ad0cfbc1 clan-cli: Fix tmpdir leak and fix tests/temporary_dir inconsistencies 2024-03-27 15:51:52 +01:00
lassulus
f16667e25a refactor secrets & facts -> secret_facts & public_facts 2024-03-23 05:46:54 +01:00
Jörg Thalheim
26dd962799 treefmt 2024-03-07 14:13:11 +01:00
Qubasa
0e8622c491 clan_vm_manager: Fix switch desync when pressed too fast. Secrets folder shared between build and run. clan_cli: run_vm now can have custom tmpdir location 2024-03-06 16:32:19 +07:00
lassulus
a1dcddf9b4 clan-cli: add interactive secrets/fact generation 2024-03-03 04:06:18 +01:00
lassulus
b1a4b4de96 clan-cli vms run: remove unused vm arg 2024-03-02 11:20:05 +01:00
clan-bot
0aa876a06c Merge pull request 'clan-cli: remove unused flag' (#867) from Mic92-fix-cross-system into main 2024-02-21 10:19:26 +00:00
Jörg Thalheim
457e45d989 clan-cli: remove unused flag 2024-02-21 10:55:53 +01:00
Qubasa
280bee0861 clan-vm-manager: Fixing vm starting. 2024-02-16 16:10:49 +07:00
Jörg Thalheim
0200016dd2 vms: move qemu_command to its own module 2024-02-15 17:25:24 +01:00
Jörg Thalheim
8e780b2a8c vms: drop unused xchdir 2024-02-15 17:19:43 +01:00
Jörg Thalheim
a399cbb8d9 vms: move virtiofsd/waypipe into their own modules 2024-02-15 17:19:31 +01:00
lassulus
6871b29d15 vms: use vm fact/secret-store 2024-02-15 10:41:25 +01:00
clan-bot
1cc6e74297 Merge pull request 'clan_vm_manager: --debug enables debug mode in clan_cli too' (#840) from Qubasa-add_spinner into main 2024-02-14 08:43:14 +00:00
Jörg Thalheim
952f976ea7 fix virtiofsd in CIs 2024-02-13 13:57:52 +01:00
Jörg Thalheim
8f98f0e8b7 also use qcow2 for volatile state 2024-02-13 11:45:42 +01:00
Jörg Thalheim
3bf94ab0fc use virtio-console instead of serial for vm 2024-02-13 11:45:42 +01:00
Jörg Thalheim
11ac50c17b format rootfs in vm itself 2024-02-13 11:45:42 +01:00
Jörg Thalheim
07caab537f drop unused mounts 2024-02-13 11:45:42 +01:00
Jörg Thalheim
7f8ba25a5b qemu: disable sea-bios and option rom 2024-02-13 11:45:42 +01:00
Jörg Thalheim
ef202a8150 switch to sops-nix experimental branch 2024-02-13 11:45:23 +01:00
Jörg Thalheim
d6b3e03d70 vms: integrate virtiofsd 2024-02-13 11:44:17 +01:00
Qubasa
87dbc99cab clan_cli: Made qmp implementation lazy 2024-02-13 16:44:09 +07:00
Qubasa
0ce8bcd018 clan_vm_manager: Added VM shutdown timeout 2024-02-12 14:16:44 +07:00
DavHau
02dd132e08 vms: init graceful shutdown for GUI
- add python modules for qemu protocols: QMP (hardware interactions) and QGA (guest service interaction)
- refactor state directory: remove name from path (already contains url)
- add impure vm test for basic qmp interaction
- simplify existing vm persistance test (factor out shared code)
- integrate graceful shutdown into GUI

the GUI integration still needs to be improved later:
- add fallback in case system doesn't react to powerdown button
- shutdown GUI switch fails if VM hasn't been started yet, and then remains in a wrong position
2024-02-09 19:55:18 +07:00
a-kenji
533012af7d vms: rename wayland attrs to waypipe
And remove the options from the cli interface.
2024-02-01 10:14:36 +07:00
a-kenji
f89c9b00dd vms: wayland attr specified in configuration 2024-02-01 09:00:43 +07:00
DavHau
59fa63eba9 Reapply "vm-state: fix and improve testing"
This reverts commit 99092f6e76.

vm-state: revert sysusers, improve testing

zerotier: enable persistence

vm-state: cleanup tests
2024-01-31 11:02:16 +07:00
Jörg Thalheim
c417157941 clan-cli: implement waypipe backend 2024-01-30 10:37:52 +07:00
DavHau
99092f6e76 Revert "vm-state: fix and improve testing"
This reverts commit 6adc68a354.
2024-01-29 15:16:10 +07:00
DavHau
6adc68a354 vm-state: fix and improve testing
Also adds qemu qga protocol implementation to execute commands
2024-01-26 19:41:05 +07:00
lassulus
6b004fca6f machines.Machine: refactor flake_dir -> flake; use Machine class in vm 2024-01-24 15:49:12 +01:00
lassulus
aee0ee4d5e move secret stores into clan_cli codebase 2024-01-24 15:49:12 +01:00
Qubasa
60c4d231f8 Wrapped vm.run in cmd.run. Working --wayland 2024-01-19 13:56:17 +01:00
Jörg Thalheim
1d2f003210 use upstream qemu for wayland feature 2024-01-17 11:00:45 +01:00
Qubasa
abfa2f218c cmd.py refactor part 7 2024-01-12 17:37:59 +01:00
Jörg Thalheim
eeac4902ab re-anble pulseaudio in qemu 2024-01-10 15:32:37 +01:00
DavHau
520ff0b334 VMs: ensure state dirs don't collide between clans 2024-01-09 17:22:48 +07:00
DavHau
c29e0086a4 VMs: persist state folders on host
Done:
- move vm inspect attrs from system.clan.vm.config to clanCore.vm.inspect. This gives us proper name and type checking. everything in `system` is basically freeform, so the previous option definitions were never enforced
- when running VMs, mount state directory from ~/.config/clan/vmstate/{...} from the host to /var/vmstate inside the vm
- create bind mount inside the VM from /var/vmstate/{folder} to / for all folders defined in clanCore.state.<name>.folders

TODOs:
- make sure directories in ~/.config/clan/vmstate never collide (include hash of clan-url, etc.)
- port impure test to python
2024-01-08 18:38:07 +07:00
Qubasa
3f55c688d9 Refactor subprocess to cmd.py part 1. Fixed clan_uri test. 2024-01-02 17:21:06 +01:00
Qubasa
33afa04b38 cli: fixed run vm not working with url 2023-12-31 13:56:55 +01:00
Qubasa
c4799f1e9a Added gcroot for clan Icon and VM 2023-12-31 00:49:57 +01:00
Qubasa
330ef00a7c Removed python deal. 2023-12-30 23:10:43 +01:00
Qubasa
cb06353451 pytest: Removed -s flag for CI 2023-12-26 18:20:41 +01:00