Compare commits

..

2028 Commits

Author SHA1 Message Date
a-kenji
8e1a0a0c5a init 2024-05-24 22:59:33 +02:00
clan-bot
fdacfb8ecf Merge pull request 'documenation: use monospace font for code blocks' (#1425) from a-kenji-fix-monospace into main 2024-05-24 11:11:02 +00:00
a-kenji
508a26d68d documenation: use monospace font for code blocks
Use monospace font for code blocks.

Fixes: #1337
2024-05-24 13:08:00 +02:00
clan-bot
8055c21984 Merge pull request 'clan machines list: reduce noise' (#1418) from a-kenji-fix/output-noisy/1115 into main 2024-05-24 10:58:13 +00:00
a-kenji
9bb6ed313f clan machines list: reduce noise
Don't log nix error output by default on `clan machines list`.
Log it, if `--debug` is passed.

Fixes #1115
2024-05-24 12:55:14 +02:00
clan-bot
8c36df77cc Merge pull request 'documentation: improve legibility of command output' (#1423) from a-kenji-fix/lsblk into main 2024-05-24 10:40:34 +00:00
a-kenji
2284b060be documentation: improve legibility of command output
Improve legibility of command output.
2024-05-24 12:37:27 +02:00
clan-bot
491b5d28f2 Merge pull request 'documenation: fix flake-parts what's next section' (#1422) from a-kenji-fix/docs/flake-parts into main 2024-05-24 10:14:55 +00:00
a-kenji
bf212ce9c4 documenation: fix flake-parts what's next section 2024-05-24 12:11:42 +02:00
clan-bot
35be09feaa Merge pull request 'impure-checks: unset CLAN_DIR' (#1420) from a-kenji-fix/env into main 2024-05-24 10:06:10 +00:00
a-kenji
4ee90b4b9f impure-checks: unset CLAN_DIR
Unset `CLAN_DIR` in the impure checks, so that it won't reference the
users configuration.

Fixes #1419
2024-05-24 12:03:11 +02:00
clan-bot
cab69935ef Merge pull request 'lib.jsonschema: parse some more types' (#1417) from DavHau-dave into main 2024-05-23 14:17:56 +00:00
DavHau
54fcfda43e lib.jsonschema: parse some more types 2024-05-23 16:12:49 +02:00
clan-bot
d137342243 Merge pull request 'modules: init trusted-nix-cache module' (#1414) from a-kenji-add/cache-module into main 2024-05-23 07:32:36 +00:00
a-kenji
3eba6e85cc modules: init trusted-nix-cache module 2024-05-23 09:29:31 +02:00
clan-bot
d395e2abf3 Merge pull request 'flake.nix: change disko back to nix-community' (#1409) from change_disko_input into main 2024-05-22 19:17:48 +00:00
Qubasa
b971156df1 flake.nix: change disko back to nix-community 2024-05-22 21:14:30 +02:00
clan-bot
c885a3fec8 Merge pull request 'Revert "Merge pull request 'add pre-commit-check' (#1369) from fricklerhandwerk/clan-core:add-pre-commit into main"' (#1408) from Qubasa-revert_hooks into main 2024-05-22 12:36:23 +00:00
Qubasa
ae7794dddd Revert "Merge pull request 'add pre-commit-check' (#1369) from fricklerhandwerk/clan-core:add-pre-commit into main"
This reverts commit acaa69e2bf, reversing
changes made to a78f5b2bec.
2024-05-22 14:31:53 +02:00
Luis Hebendanz
acaa69e2bf Merge pull request 'add pre-commit-check' (#1369) from fricklerhandwerk/clan-core:add-pre-commit into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1369
2024-05-22 11:49:57 +00:00
Valentin Gagarin
e37f7e2760 use a custom installer for pre-commit hooks 2024-05-22 11:49:57 +00:00
Valentin Gagarin
245b615209 add pre-commit check
make sure things are sane before they hit CI.
this re-purposes the existing treefmt configuration.
2024-05-22 11:49:57 +00:00
clan-bot
a78f5b2bec Merge pull request 'zerotier-static-peers: init module' (#1400) from a-kenji-modules/init/static-zerotier-hosts into main 2024-05-22 10:40:41 +00:00
a-kenji
396caeff39 zerotier-static-peers: init module
Init zerotertier-static-peers module.
This module automatically configures the networkId.
It will automatically accept peers based on their zerotier-ips in the
clan flake.
2024-05-22 12:37:13 +02:00
clan-bot
d5a639104d Merge pull request 'user-password: set prompt to true by default' (#1399) from a-kenji-user-password/on-by-default into main 2024-05-22 10:19:04 +00:00
a-kenji
fb1b428c12 user-password: set prompt to true by default 2024-05-22 12:15:26 +02:00
clan-bot
bfe37c2457 Merge pull request 'modules: static hosts filter nonexistent ip' (#1398) from a-kenji-fix/path-loading into main 2024-05-21 15:28:52 +00:00
a-kenji
39b34d9ff3 modules: static hosts filter nonexistent ip 2024-05-21 17:24:14 +02:00
clan-bot
fd29ed4693 Merge pull request 'zerotier-members: fix joining by member ip' (#1397) from a-kenji-fix/by-ip into main 2024-05-21 14:42:35 +00:00
a-kenji
9db4e5cf2f zerotier-members: fix joining by member ip 2024-05-21 16:39:28 +02:00
clan-bot
e28a02ec73 Merge pull request 'clan ui: setup typed api method' (#1391) from hsjobeki-main into main 2024-05-21 14:06:45 +00:00
Johannes Kirschbauer
c1e7e25641 api: fix typing issues 2024-05-21 16:01:57 +02:00
Johannes Kirschbauer
21104a0465 webview: replace dream2nix by buildNpm from nixpkgs to save inputs 2024-05-21 15:52:20 +02:00
clan-bot
0f53475499 Merge pull request 'documentation: remove references to Icons for introductory material' (#1392) from a-kenji-rm/icon into main 2024-05-21 09:19:51 +00:00
a-kenji
7aa85d8aaf documentation: remove references to Icons for introductory material
The icons are not yet used in this path.
This is unneccessary overhead for new users, with no payoff yet.
2024-05-21 11:16:12 +02:00
Johannes Kirschbauer
e9b0ce6a78 clan ui: add check to build script 2024-05-21 10:09:05 +02:00
Johannes Kirschbauer
d174fbd445 clan ui: move print into log.debug statements 2024-05-20 19:59:50 +02:00
Johannes Kirschbauer
8687801cee clan ui: setup typed api method 2024-05-20 19:34:49 +02:00
clan-bot
6ebfd29c87 Merge pull request 'clanModule.sshd: Deactivate password auth. Change flake template to every machine having its own disko.nix file.' (#1389) from Qubasa-main into main 2024-05-20 17:14:24 +00:00
Qubasa
c8456f7d68 clanModule.sshd: Deactivate password auth. Change flake template to every machine having its own disko.nix file. 2024-05-20 19:11:12 +02:00
clan-bot
6b03645f7a Merge pull request 'clan-ui: rollback default view until webview is ready' (#1388) from feat/ui into main 2024-05-20 09:11:35 +00:00
Johannes Kirschbauer
2cb7adb377 clan-ui: rollback default view until webview is ready 2024-05-20 11:08:14 +02:00
clan-bot
78ab7ebc7f Merge pull request 'Automatic flake update - 2024-05-20T00:00+00:00' (#1387) from flake-update-2024-05-20 into main 2024-05-20 00:03:44 +00:00
Clan Merge Bot
82a4ecf82b update flake lock - 2024-05-20T00:00+00:00
Flake lock file updates:

• Updated input 'dream2nix':
    'github:nix-community/dream2nix/995e831dac8c2c843f1289d15dfec526cb84afdd' (2024-05-14)
  → 'github:nix-community/dream2nix/f28d1cc6898532ac331a1625628090dc7c5b02e2' (2024-05-19)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e' (2024-05-02)
  → 'github:hercules-ci/flake-parts/8dc45382d5206bd292f9c2768b8058a8fd8311d9' (2024-05-16)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/722b512eb7e6915882f39fff0e4c9dd44f42b77e' (2024-04-22)
  → 'github:nix-community/nixos-generators/a63e0c83dd83fe28cc571b97129e13373436bd82' (2024-05-19)
• Updated input 'nixos-images':
    'github:nix-community/nixos-images/81e709ca1da9c5c31b65cc8f82a97181f78ec076' (2024-05-13)
  → 'github:nix-community/nixos-images/8c9cab8c44434c12dafc465fbf61a710c5bceb08' (2024-05-19)
• Updated input 'nixos-images/nixos-2311':
    'github:NixOS/nixpkgs/6eccabe980dcb2048aab7f97f862fb6d79b98abe' (2024-05-12)
  → 'github:NixOS/nixpkgs/95742536dc6debb5a8b8b78b27001c38f369f1e7' (2024-05-16)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c029b7f004009923bbfc90bbc31263cd4b08759f' (2024-05-15)
  → 'github:NixOS/nixpkgs/8a2555763c48e2410054de3f52f7310ce3241ec5' (2024-05-19)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/b6cb5de2ce57acb10ecdaaf9bbd62a5ff24fa02e' (2024-05-12)
  → 'github:Mic92/sops-nix/0bf1808e70ce80046b0cff821c019df2b19aabf5' (2024-05-19)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/c6aaf729f34a36c445618580a9f95a48f5e4e03f' (2024-04-25)
  → 'github:numtide/treefmt-nix/2fba33a182602b9d49f0b2440513e5ee091d838b' (2024-05-17)
2024-05-20 00:00:21 +00:00
clan-bot
43b56e21b2 Merge pull request 'zerotier-members: allow joining by zerotier ip' (#1386) from a-kenji-main into main 2024-05-19 21:16:24 +00:00
a-kenji
a47c2f3e69 zerotier-members: allow joining by zerotier ip 2024-05-19 23:13:26 +02:00
clan-bot
a34fa4f69b Merge pull request 'init: static-hosts module' (#1385) from a-kenji-init/statix-hosts-module into main 2024-05-19 11:09:54 +00:00
clan-bot
e13217b1c9 Merge pull request 'user-password: fix module path' (#1384) from a-kenji-fix/user-passord-module into main 2024-05-19 11:08:42 +00:00
a-kenji
1e4a3a3eee user-password: fix module path
Fixes #1381
2024-05-19 13:03:47 +02:00
a-kenji
e39d8cb909 init: static-hosts module 2024-05-19 13:01:37 +02:00
clan-bot
7c48730bbb Merge pull request 'clan flash: Use latest kernel with zfs support. bcachefs supported too.' (#1379) from Qubasa-main into main 2024-05-18 21:50:26 +00:00
Qubasa
da5f363bee clan flash: Use latest kernel with zfs support. bcachefs supported too. 2024-05-18 23:47:17 +02:00
clan-bot
24ec74ae37 Merge pull request 'Add bcachefs support. Fix clan flash docu.' (#1378) from Qubasa-main into main 2024-05-18 21:21:14 +00:00
Qubasa
64a98281f0 Add bcachefs support. Fix clan flash docu. 2024-05-18 23:18:02 +02:00
hsjobeki
5863ddca0e Merge pull request 'init webview: add webview ui and list machine as api example' (#1365) from feat/ui into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1365
2024-05-18 14:14:12 +00:00
Johannes Kirschbauer
5de3ab88e9 devShell: fallback for darwin 2024-05-18 14:14:12 +00:00
Johannes Kirschbauer
4cfc335e2c fix: segfault gtk when using webkit 2024-05-18 14:14:12 +00:00
Johannes Kirschbauer
e25bd69c68 clan ui: override webkitgtk unbroken on darwin. 2024-05-18 14:14:12 +00:00
Johannes Kirschbauer
fe17f9e1a1 clan ui: integrate webview ui into clan-mananger-gtk 2024-05-18 14:14:12 +00:00
Johannes Kirschbauer
7980f13bed add webview threaded api 2024-05-18 14:14:12 +00:00
Johannes Kirschbauer
fef16a84a9 init webview: add webview ui and list machine as api example 2024-05-18 14:14:12 +00:00
clan-bot
97a1d8b52a Merge pull request 'Change favicon. Add socials. Add RSS link.' (#1372) from Qubasa-main into main 2024-05-17 14:10:22 +00:00
Qubasa
f9b32cbd09 Change favicon. Add socials. Add RSS link. 2024-05-17 16:07:14 +02:00
clan-bot
4d66f2a14c Merge pull request 'readme: Update matrix link' (#1371) from Qubasa-main into main 2024-05-16 18:42:35 +00:00
Qubasa
473c236214 Fix rss plugin warning 2024-05-16 20:39:39 +02:00
Qubasa
eeaf1c84a9 Add profile picture for W 2024-05-16 19:43:55 +02:00
Qubasa
f6efd11eae Working dark theme switcher 2024-05-16 19:32:05 +02:00
Qubasa
8762ee4420 Migrated blog to mkdocs 2024-05-16 15:08:24 +02:00
Qubasa
0568608be6 readme: Update matrix link 2024-05-15 23:00:08 +02:00
clan-bot
a0194f34d2 Merge pull request 'ssh-flash & documentation' (#1350) from ssh-flash into main 2024-05-15 20:58:02 +00:00
Qubasa
b3297532ad nix flake update & disable checks.flash-installer 2024-05-15 22:54:38 +02:00
Qubasa
cd915e171f template: Throw error on missing ssh pub key 2024-05-14 18:29:04 +02:00
Qubasa
1e94bf02da Add nix flake check remark to docu 2024-05-14 18:20:56 +02:00
Qubasa
1c2781267b Add clan flash documentation. 2024-05-14 16:13:50 +02:00
Qubasa
ac8162a08d Fix doc build error 2024-05-14 15:41:15 +02:00
Qubasa
1476619515 Renamed machines.md to deploy.md 2024-05-14 15:41:15 +02:00
Qubasa
8288048682 Renamed machines.md to deploy.md 2024-05-14 15:41:15 +02:00
Qubasa
fd41badbc6 Add --no-reboot flag to clan machine install 2024-05-14 15:41:15 +02:00
Qubasa
d574faf253 Heavily improve documentation and flake template 2024-05-14 15:41:15 +02:00
Qubasa
81522c96e5 Fix missing efi and x64 support in template 2024-05-14 15:41:15 +02:00
Qubasa
e668a7f536 Fix build error 2024-05-14 15:41:15 +02:00
Qubasa
3293ac0c14 fix get_keymap_and_locale 2024-05-14 15:41:15 +02:00
Qubasa
be841cdec2 Removed ssh password login 2024-05-14 15:41:15 +02:00
Qubasa
49e39ec505 Add keymap and language detection 2024-05-14 15:41:15 +02:00
Qubasa
c25f7934ba clan flash: Copied network-status from nixos-images into installer 2024-05-14 15:41:15 +02:00
Qubasa
4f6d25160f Add --ssh-pubkey FILE argument 2024-05-14 15:41:15 +02:00
clan-bot
0bf9a566eb Merge pull request 'clan-cli(docs): modularize in preparation for manpage generation' (#1361) from a-kenji-docs/modularize into main 2024-05-14 10:21:44 +00:00
a-kenji
148a0c90cc clan-cli(docs): modularize in preparation for manpage generation 2024-05-14 12:18:37 +02:00
clan-bot
789bf3d0c8 Merge pull request 'docs: remove linenums from every code block' (#1360) from a-kenji-docs-patch-8 into main 2024-05-14 09:39:14 +00:00
a-kenji
59c558ffc6 docs: remove linenums from every code block
Remove linenums from every single code block.
Makes site considerably less busy and easier to read.
2024-05-14 11:32:30 +02:00
clan-bot
c5e62074a6 Merge pull request 'docs: user-password add admonition' (#1359) from a-kenji-docs/fix into main 2024-05-14 09:31:53 +00:00
a-kenji
9999379f81 docs: user-password add admonition 2024-05-14 11:29:07 +02:00
clan-bot
dd1cfe3834 Merge pull request 'modules: init user-password' (#1358) from a-kenji-modules/init/user-password into main 2024-05-14 08:58:37 +00:00
a-kenji
cd0b360b49 modules: init user-password
Init a user-password module, that allows setting the password for a
single user.

fixes #1351
2024-05-14 10:55:43 +02:00
clan-bot
8c0fb90c1a Merge pull request 'Reorder getting started documentation' (#1345) from Qubasa-main into main 2024-05-10 21:02:33 +00:00
Qubasa
86ae7cbbfb Reorder getting started documentation 2024-05-10 22:59:45 +02:00
clan-bot
fdf63fd605 Merge pull request 'Fix template. Improve docu. Add disko as default imported module.' (#1342) from Qubasa-main into main 2024-05-10 13:42:12 +00:00
Qubasa
82fa89b57e Fix template. Improve docu. Add disko as default imported module. 2024-05-10 15:39:46 +02:00
clan-bot
cad492e830 Merge pull request 'fix docs .envrc watch_file' (#1339) from Qubasa-main into main 2024-05-09 13:05:34 +00:00
Qubasa
2abd5bbe37 fix docs .envrc watch_file 2024-05-09 15:00:03 +02:00
clan-bot
aad130166f Merge pull request 'hsjobeki-main' (#1332) from hsjobeki-main into main 2024-05-08 10:30:16 +00:00
Johannes Kirschbauer
3e9a1ea68f vm-manager: hide hidden vm log info 2024-05-08 12:27:16 +02:00
Johannes Kirschbauer
2acd06c9fa docs: add faq page 2024-05-08 12:23:04 +02:00
clan-bot
f45d3385c2 Merge pull request 'template: fix disko devices' (#1328) from a-kenji-docs-patch-7 into main 2024-05-07 20:48:50 +00:00
a-kenji
23c9291912 template: fix disko devices 2024-05-07 22:46:15 +02:00
clan-bot
1893ebef19 Merge pull request 'docs: simplify hardware-configuration' (#1326) from a-kenji-docs-patch-5 into main 2024-05-07 19:40:06 +00:00
a-kenji
fd00a941dc docs: simplify hardware-configuration 2024-05-07 21:37:25 +02:00
clan-bot
9ab5a9507d Merge pull request 'docs: add tip for wlan configuration' (#1325) from a-kenji-docs-patch-4 into main 2024-05-07 19:29:11 +00:00
a-kenji
1a4c20e49e add: tip 2024-05-07 21:26:15 +02:00
clan-bot
f138e59da8 Merge pull request 'docs: add reference to the help page' (#1324) from a-kenji-docs-patch-3 into main 2024-05-07 18:47:50 +00:00
a-kenji
ddd9318ea1 docs: add reference to the help page 2024-05-07 20:45:09 +02:00
clan-bot
aee2fdcffa Merge pull request 'docs: improve getting started prerequisite docs' (#1322) from a-kenji-docs-patch-2 into main 2024-05-07 13:48:22 +00:00
a-kenji
d1b810dfad docs: improve getting started prerequisite docs 2024-05-07 15:45:38 +02:00
clan-bot
4dede0ee5c Merge pull request 'docs: add link to cli reference' (#1321) from a-kenji-improve/docs into main 2024-05-07 13:37:40 +00:00
a-kenji
3506d6ba0d docs: add link to cli reference 2024-05-07 15:34:56 +02:00
clan-bot
f2a3415e2c Merge pull request 'clan-cli: add --json and --png flags to machine install' (#1320) from a-kenji-feat/clan-install-json into main 2024-05-07 12:52:21 +00:00
a-kenji
2e821c4525 clan-cli: add --json and --png flags to machine install
Allow using `clan machines [machine] install` in conjunction with the
`--json` and `--png` flags.

Fixes #1180
2024-05-07 14:47:13 +02:00
clan-bot
bbba7e9087 Merge pull request 'disko module: add default for singleDiskExt4' (#1300) from hsjobeki-main into main 2024-05-07 11:29:19 +00:00
Johannes Kirschbauer
15dd4ea25f cli-docs: add automatic markdown cli docs 2024-05-07 13:26:33 +02:00
Johannes Kirschbauer
5a6eeda125 disko module: add default for singleDiskExt4 2024-05-07 13:11:04 +02:00
clan-bot
f8e08a610e Merge pull request 'Add jsonschema test case' (#1309) from Qubasa-main into main 2024-05-04 12:14:07 +00:00
Qubasa
fc7f544199 Fix invalid jsonschema testcase 2024-05-04 14:11:28 +02:00
Luis Hebendanz
8aaa95737a Merge pull request 'ci: Change from deploy on pull_request to deploy on main push' (#1313) from Qubasa-autodeploy into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1313
2024-05-04 11:42:45 +00:00
Qubasa
7dedae9920 ci: Change from deploy on pull_request to deploy on main push 2024-05-04 13:42:16 +02:00
clan-bot
01e5b02633 Merge pull request 'ci: Change from deploy on pull_request to deploy on main push' (#1312) from Qubasa-autodeploy into main 2024-05-04 11:40:49 +00:00
Qubasa
f4de3ac83d ci: Change from deploy on pull_request to deploy on main push 2024-05-04 13:37:56 +02:00
clan-bot
9e65cf2b5b Merge pull request 'gitea_action: Add docs.clan.lol auto deploy' (#1311) from Qubasa-autodeploy into main 2024-05-04 11:34:28 +00:00
Qubasa
8134583641 Remove print of priv key in ci 2024-05-04 13:31:30 +02:00
Qubasa
5d8ee29ed4 Merge branch 'fix_secrets' into autodeploy 2024-05-04 13:12:17 +02:00
Qubasa
d9ce211d1a secrets: Fix test failure through flake update 2024-05-04 13:11:37 +02:00
Qubasa
9ec8b71765 moonlight-sunshine-accept: Fix formatting error 2024-05-03 20:38:53 +02:00
Qubasa
4fef9c3652 gitea_action: Add docs.clan.lol auto deploy 2024-05-03 20:34:27 +02:00
Qubasa
393ed517e2 jsonschema: Filter out 'invisible' options, that are there to throw errors on define 2024-05-03 19:40:42 +02:00
Qubasa
159198b81a Add jsonschema test case 2024-05-03 19:40:42 +02:00
Clan Merge Bot
83ea2312a1 update flake lock - 2024-04-29T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/0a17298c0d96190ef3be729d594ba202b9c53beb' (2024-04-05)
  → 'github:nix-community/disko/285e26465a0bae510897ca04da26ce6307c652b4' (2024-04-26)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/0c15e76bed5432d7775a22e8d22059511f59d23a' (2024-04-04)
  → 'github:nix-community/nixos-generators/722b512eb7e6915882f39fff0e4c9dd44f42b77e' (2024-04-22)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/90b1a963ff84dc532db92f678296ff2499a60a87' (2024-03-31)
  → 'github:nix-community/nixpkgs.lib/3c62b6a12571c9a7f65ab037173ee153d539905f' (2024-04-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/298edc8f1e0dfffce67f50375c9f5952e04a6d02' (2024-04-07)
  → 'github:NixOS/nixpkgs/30ddacc06345a478f9528fa29e2c8857b90381b2' (2024-04-28)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/39191e8e6265b106c9a2ba0cfd3a4dafe98a31c6' (2024-04-07)
  → 'github:Mic92/sops-nix/f1b0adc27265274e3b0c9b872a8f476a098679bd' (2024-04-23)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/49dc4a92b02b8e68798abd99184f228243b6e3ac' (2024-04-01)
  → 'github:numtide/treefmt-nix/c6aaf729f34a36c445618580a9f95a48f5e4e03f' (2024-04-25)
2024-05-03 10:31:23 +00:00
Mic92
022a55639f Merge pull request 'rename everything to Clan' (#1301) from ci into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1301
2024-05-03 09:47:55 +00:00
Jörg Thalheim
6f2430b191 deprecate gitea nix builds 2024-05-03 11:45:02 +02:00
Jörg Thalheim
6236defde6 rename everything to Clan 2024-05-03 11:45:02 +02:00
clan-bot
9a8a5f4c00 Merge pull request 'Throw error on missing clanModule description or if description too long. Add xfce description.' (#1306) from Qubasa-main into main 2024-05-02 16:00:32 +00:00
Qubasa
6908527ebd Throw error on missing clanModule description or if description too long. Add xfce description. 2024-05-02 17:53:27 +02:00
clan-bot
d013ef20da Merge pull request 'Require README.md for every clan module' (#1302) from Qubasa-main into main 2024-05-02 15:03:59 +00:00
Qubasa
570f04ecdc Fix zt-tcp-relay 2024-05-02 16:59:17 +02:00
Qubasa
3a9a7eedf9 Remove unreferenced clan modules 2024-05-02 16:34:25 +02:00
Qubasa
ee552d3020 Move vm clanModules to lib 2024-05-02 16:34:25 +02:00
Qubasa
b95d95554a Add description field to function-schema 2024-05-02 16:34:25 +02:00
Qubasa
a09e680fa0 Require README.md for every clan module 2024-05-02 16:34:25 +02:00
clan-bot
853d8221c0 Merge pull request 'qga: add argument 'check'' (#1303) from DavHau-dave into main 2024-05-02 13:13:12 +00:00
DavHau
43c799c3d0 qga: add argument 'check' 2024-05-02 15:03:22 +02:00
clan-bot
f231f1e0c7 Merge pull request 'check jsonschema comaptibility for all clan modules' (#1280) from schema into main 2024-05-01 21:18:33 +00:00
Qubasa
a48df5b993 Add package function-schema and module-schema. Add check for module jsonschema. 2024-05-01 23:16:17 +02:00
clan-bot
e08342a6f3 Merge pull request 'template: remove invalid enable option for zerotier' (#1299) from hsjobeki-main into main 2024-04-30 17:41:46 +00:00
Johannes Kirschbauer
e0f56c3c6b template: remove invalid enable option for zerotier 2024-04-30 19:37:03 +02:00
clan-bot
64c5a81f74 Merge pull request 'template: use disko module direcly' (#1298) from hsjobeki-main into main 2024-04-30 17:23:08 +00:00
Johannes Kirschbauer
56fad0fd4a template: use disko module direcly 2024-04-30 19:16:13 +02:00
clan-bot
3dce5d2f95 Merge pull request 'add cli docs generator' (#1297) from hsjobeki-main into main 2024-04-30 17:11:37 +00:00
Johannes Kirschbauer
bfe4f2c8f4 add cli docs generator 2024-04-30 19:01:53 +02:00
Johannes Kirschbauer
1051367ca4 add cli docs generator 2024-04-30 18:53:00 +02:00
Mic92
480bb396ed Merge pull request 'Fix reading secret from pipe' (#1296) from error-handling into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1296
2024-04-30 14:54:24 +00:00
Jörg Thalheim
b5653c169b sops: fix setting secret from pipe 2024-04-30 14:04:49 +02:00
Jörg Thalheim
5606101ce8 sops: also log content type on error 2024-04-30 13:56:07 +02:00
clan-bot
3da4117702 Merge pull request 'clan-cli: add CLAN_DIR environment variable' (#1283) from a-kenji-feat/clan-dir into main 2024-04-30 10:08:13 +00:00
a-kenji
f383c6f82d clan-cli: add CLAN_DIR environment variable
Add the `CLAN_DIR` environment variable.
With this the user can specify the location of the clan.
2024-04-30 12:00:47 +02:00
clan-bot
af86980192 Merge pull request 'clanCore: remove repl-flake as it is now stable' (#1278) from lassulus-HEAD into main 2024-04-27 14:37:25 +00:00
lassulus
c681cc0998 clanCore: remove repl-flake as it is now stable 2024-04-27 16:28:23 +02:00
clan-bot
0804e5e415 Merge pull request 'clan(help): standardise on machine capitalisation' (#1276) from a-kenji-clan-help/standardize into main 2024-04-26 10:14:35 +00:00
a-kenji
95f93d8800 clan(help): standardise on machine capitalisation 2024-04-26 12:07:09 +02:00
clan-bot
4602c06835 Merge pull request 'clan(help): improve install description' (#1274) from a-kenji-improve-clan-help into main 2024-04-26 09:49:50 +00:00
a-kenji
a3f6996d69 clan(help): improve install description 2024-04-26 11:42:18 +02:00
clan-bot
7f424c862b Merge pull request 'docs: improve docs' (#1273) from hsjobeki-main into main 2024-04-26 09:27:24 +00:00
Johannes Kirschbauer
94449a02d5 docs: improve docs 2024-04-26 11:20:43 +02:00
clan-bot
ed14f3e827 Merge pull request 'dos: improve docs' (#1272) from hsjobeki-main into main 2024-04-26 09:14:23 +00:00
Johannes Kirschbauer
152a908dc9 docs: improve docs 2024-04-26 11:07:33 +02:00
clan-bot
ac0cb620cf Merge pull request 'init c4 uml & refactor secrets with some diagrams' (#1255) from hsjobeki-main into main 2024-04-26 08:49:00 +00:00
Johannes Kirschbauer
6a484fef66 docs: improve secrets documentation 2024-04-26 10:44:14 +02:00
Johannes Kirschbauer
fc1bf17b9c docs: init c4 diagrams 2024-04-24 16:35:27 +02:00
clan-bot
39d6edc673 Merge pull request 'vm-manager: move signals to emitter' (#1271) from hsjobeki-vm-manager/empty-splash into main 2024-04-24 12:50:34 +00:00
Johannes Kirschbauer
4a66cdffaf vm-manager: move signals to emitter 2024-04-24 14:41:53 +02:00
clan-bot
216c560830 Merge pull request 'secrets: ensure all added/deleted files get committed' (#1253) from DavHau-dave into main 2024-04-24 10:42:50 +00:00
DavHau
cf67de2f69 secrets: ensure all added/deleted files get committed 2024-04-24 17:26:32 +07:00
clan-bot
b702ca686e Merge pull request 'add: cd command' (#1265) from a-kenji-docs-patch-1 into main 2024-04-23 18:57:09 +00:00
a-kenji
acdb0a9b27 add: cd command 2024-04-23 20:52:41 +02:00
clan-bot
70ed0757a3 Merge pull request 'vm-manager: add empty list screen' (#1264) from hsjobeki-vm-manager/empty-splash into main 2024-04-23 14:22:47 +00:00
Johannes Kirschbauer
9778c432c2 vm-manager: add empty list screen 2024-04-23 16:18:10 +02:00
Johannes Kirschbauer
1da6a0c5a2 vm-manager: add empty list screen 2024-04-23 16:17:09 +02:00
Johannes Kirschbauer
5f5155023c vm-manager: add empty list screen 2024-04-23 16:16:48 +02:00
Johannes Kirschbauer
1366d0bcf6 WIP 2024-04-23 11:16:33 +02:00
clan-bot
351571a655 Merge pull request 'installer: fix qr code again' (#1260) from lassulus-HEAD into main 2024-04-22 19:10:59 +00:00
lassulus
3c02453705 installer: fix qr code again 2024-04-22 21:04:41 +02:00
clan-bot
7a74c86c70 Merge pull request 'clan-cli ssh: --json can be file or str' (#1259) from lassulus-HEAD into main 2024-04-22 18:56:19 +00:00
lassulus
4ae5b24d24 installer: make qrcode compatible with nixos-images 2024-04-22 20:49:35 +02:00
clan-bot
05b510230f Merge pull request 'clan-cli ssh: --json can be file or str' (#1258) from lassulus-HEAD into main 2024-04-22 18:27:35 +00:00
lassulus
9cb23b807c clan-cli ssh: fix qr code format 2024-04-22 20:21:44 +02:00
lassulus
0a1cc29abf clan-cli ssh: --json can be file or str 2024-04-22 20:13:17 +02:00
clan-bot
1a87df646d Merge pull request 'facts password-store: take path from variable' (#1256) from lassulus-HEAD into main 2024-04-21 17:16:32 +00:00
lassulus
4964415d34 facts password-store: take path from variable 2024-04-21 19:09:46 +02:00
clan-bot
9ac0839bd5 Merge pull request 'clan: clan machines install use verbose flag' (#1252) from a-kenji-clan/install into main 2024-04-19 14:45:29 +00:00
a-kenji
6becce81cb clan: clan machines install use verbose flag 2024-04-19 16:38:39 +02:00
clan-bot
8b1eae8c27 Merge pull request 'fix actual installer' (#1251) from image into main 2024-04-19 12:18:06 +00:00
Jörg Thalheim
5cfc9f7db4 fix actual installer 2024-04-19 14:13:02 +02:00
Jörg Thalheim
2c96e467fa deploy-docs: fix undefined variable 2024-04-19 13:59:39 +02:00
Mic92
3db2ecece6 Merge pull request 'deploy-docs: fix undefined variable' (#1250) from image into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1250
2024-04-19 11:59:35 +00:00
Jörg Thalheim
8d74983103 deploy-docs: fix undefined variable 2024-04-19 11:59:35 +00:00
clan-bot
81f7237a41 Merge pull request 'Change iso to nixos-images version' (#1249) from image into main 2024-04-19 11:49:51 +00:00
Jörg Thalheim
3ebc2e8be9 Change iso to nixos-images version 2024-04-19 13:43:40 +02:00
clan-bot
a810e96a20 Merge pull request 'docs: clan core ref' (#1246) from hsjobeki-main into main 2024-04-18 11:12:28 +00:00
Johannes Kirschbauer
1a99e033eb docs: clan core ref 2024-04-18 13:05:58 +02:00
clan-bot
6d2ec12cca Merge pull request 'clan: clan ssh fix password login' (#1245) from a-kenji-clan-cli/fix-ssh-passowrd into main 2024-04-17 19:52:00 +00:00
a-kenji
e81a7415d8 clan: clan ssh fix password login 2024-04-17 21:45:14 +02:00
clan-bot
d2dffe30a3 Merge pull request 'docs: add clan modules readme support' (#1244) from hsjobeki-main into main 2024-04-17 16:31:17 +00:00
Johannes Kirschbauer
a2074bb82b docs: init synthing & deltachat 2024-04-17 18:26:37 +02:00
clan-bot
f964304224 Merge pull request 'clan: clan ssh fix for new installer image' (#1243) from a-kenji-clan/fix-ssh into main 2024-04-17 16:25:38 +00:00
a-kenji
72811d0828 clan: clan ssh fix for new installer image 2024-04-17 18:20:40 +02:00
clan-bot
22b767466c Merge pull request 'pkgs: add metadata' (#1238) from a-kenji-pkgs/add-metadata into main 2024-04-17 11:35:19 +00:00
a-kenji
9f808b1bdb pkgs: add metadata
Closes #1151
2024-04-17 13:32:50 +02:00
clan-bot
ed9d65a91c Merge pull request 'docs: add clan modules readme support' (#1237) from hsjobeki-main into main 2024-04-17 10:58:17 +00:00
Johannes Kirschbauer
87559613ed docs: add clan modules readme support 2024-04-17 12:52:04 +02:00
kenji
0bae84b1ae Merge pull request 'clan-cli: fix clan ssh --json and --png' (#1234) from clan/ssh into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1234
2024-04-17 10:12:37 +00:00
a-kenji
498d29cca1 clan-cli: fix clan ssh --json and --png
This fixes `clan ssh` with the `--json` and `--png` flags.

It will now correctly use the actual fields that are present in the
generated json.

- probes if the ports are accessible
- if accessible will attempt a single ssh connection with the provided
password, in order to not spam ssh attempts

Fixes #1177
2024-04-17 10:12:37 +00:00
clan-bot
a33a76ecd2 Merge pull request 'rework multicast support' (#1236) from parallelism into main 2024-04-17 09:05:05 +00:00
Jörg Thalheim
8658e1694a rework multicast support 2024-04-17 10:57:17 +02:00
clan-bot
0dde758296 Merge pull request 'docs: split clan-core options into sub-pages' (#1235) from hsjobeki-main into main 2024-04-17 07:45:54 +00:00
Johannes Kirschbauer
5e33a0b3b8 docs: split clan-core options into sub-pages 2024-04-17 09:39:40 +02:00
clan-bot
c57cc5204c Merge pull request 'docs: generate api docs' (#1233) from hsjobeki-tutorials into main 2024-04-16 17:13:38 +00:00
Johannes Kirschbauer
9a3f27ea08 docs: generate api docs 2024-04-16 19:07:28 +02:00
clan-bot
b7f5e98db0 Merge pull request 'documentation: convert note to admonition' (#1227) from a-kenji-docs/set-target-host into main 2024-04-16 10:34:38 +00:00
a-kenji
1db0ace17b documentation: convert note to admonition 2024-04-16 12:28:32 +02:00
clan-bot
059e4efcdc Merge pull request 'docs: improve flake-parts configuration' (#1226) from hsjobeki-tutorials into main 2024-04-16 10:08:54 +00:00
Johannes Kirschbauer
581b48b518 docs: improve flake-parts configuration 2024-04-16 12:02:44 +02:00
clan-bot
f8b881c41e Merge pull request 'refactor facts command to regenerate facts for all machines' (#1223) from parallelism into main 2024-04-15 20:35:22 +00:00
Jörg Thalheim
dcad0d0d79 include machine name when generating secrets 2024-04-15 22:17:53 +02:00
Jörg Thalheim
a4b15d2ca2 flake-parts: fix merging of all-machines-json 2024-04-15 22:14:54 +02:00
Jörg Thalheim
f385e0e037 refactor facts command to regenerate facts for all machines 2024-04-15 22:14:54 +02:00
clan-bot
060e3baa08 Merge pull request 'documentation: improve presentation' (#1222) from a-kenji-docs/improve into main 2024-04-15 10:03:34 +00:00
a-kenji
2d42af3675 documentation: improve presentation 2024-04-15 11:57:23 +02:00
kenji
ca0c109b76 Merge pull request 'broken links replaced (and linking to doc pages (mkdocs rendered pages))' (#1220) from vater/clan-core:main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1220
2024-04-15 09:49:14 +00:00
vater
8ffe5a562f broken links removed (and linking to doc pages (mkdocs rendered pages)) 2024-04-14 22:38:05 +00:00
clan-bot
997b9d5426 Merge pull request 'documentation: add contribution standards' (#1219) from a-kenji-documentation/standards into main 2024-04-14 15:00:44 +00:00
a-kenji
8322d5dc27 documentation: add contribution standards 2024-04-14 16:54:23 +02:00
clan-bot
419936d1b4 Merge pull request 'documentation: small admonition nit' (#1216) from a-kenji-documentation/nits into main 2024-04-14 13:24:29 +00:00
a-kenji
a81da72ec4 documentation: small admonition nit 2024-04-14 15:18:16 +02:00
clan-bot
4ae5840078 Merge pull request 'documentation: improve configuration' (#1215) from a-kenji-docs/configuration into main 2024-04-14 13:05:18 +00:00
a-kenji
5b846c7c6f documentation: improve configuration 2024-04-14 15:00:41 +02:00
clan-bot
03c109c7f5 Merge pull request 'documenation: improve flake-parts' (#1214) from a-kenji-documentation/improve/flake-parts into main 2024-04-14 12:27:34 +00:00
a-kenji
a1f5024fde documenation: improve flake-parts 2024-04-14 14:23:11 +02:00
clan-bot
09a5fd31a6 Merge pull request 'docs: fix contributing casing' (#1213) from a-kenji-docs/fix-contrib into main 2024-04-14 11:29:15 +00:00
a-kenji
933401eb62 docs: fix contributing casing 2024-04-14 13:22:51 +02:00
clan-bot
b1c0b90fb0 Merge pull request 'documentation: improve secrets page' (#1212) from a-kenji-docs/secrets into main 2024-04-14 11:19:49 +00:00
a-kenji
4442ba777a documentation: improve secrets page 2024-04-14 13:15:26 +02:00
clan-bot
bc7c3ad782 Merge pull request 'documentation: improve networking section' (#1211) from a-kenji-docs/improve-networking into main 2024-04-14 10:49:36 +00:00
a-kenji
062de6866e documentation: improve networking section 2024-04-14 12:43:09 +02:00
clan-bot
1140a847ad Merge pull request 'documenation: improve styling' (#1210) from a-kenji-docs/installer-style into main 2024-04-14 10:35:15 +00:00
a-kenji
711d5d4319 documenation: improve styling 2024-04-14 12:30:56 +02:00
clan-bot
f8675949b9 Merge pull request 'documentation: improve installer wording' (#1209) from a-kenji-docs/installer-wording into main 2024-04-14 10:26:43 +00:00
a-kenji
18a961332e documentation: improve installer wording 2024-04-14 12:20:30 +02:00
clan-bot
d1457c424a Merge pull request 'documentation: improve templates section' (#1208) from a-kenji-docs/update-template into main 2024-04-14 09:58:50 +00:00
clan-bot
d717d9e90d Merge pull request 'documentation: fix typo' (#1207) from a-kenji-fix/typ into main 2024-04-14 09:56:20 +00:00
clan-bot
1bec39cfc6 Merge pull request 'documentation: disable copy for outputs' (#1206) from a-kenji-docs/outputs into main 2024-04-14 09:52:01 +00:00
a-kenji
3d0d124b8a documentation: improve templates section 2024-04-14 11:51:43 +02:00
a-kenji
6cfe735c69 documentation: fix typo 2024-04-14 11:46:53 +02:00
a-kenji
b28d7e45d3 documentation: disable copy for outputs 2024-04-14 11:45:20 +02:00
clan-bot
d7feff104e Merge pull request 'docs: fix migrated build directory' (#1205) from hsjobeki-tutorials into main 2024-04-13 17:45:24 +00:00
Johannes Kirschbauer
10ad6da359 docs: fix migrated build directory 2024-04-13 19:40:28 +02:00
clan-bot
57791ef52a Merge pull request 'docs: decompose configuration guide' (#1204) from hsjobeki-tutorials into main 2024-04-13 15:52:29 +00:00
Johannes Kirschbauer
3a9c84cb45 docs: decompose configuration guide 2024-04-13 15:46:38 +00:00
clan-bot
d2b7bd593b Merge pull request 'documentation: standardize on bash doccomments' (#1203) from a-kenji-docs/standardize-bash into main 2024-04-13 14:41:20 +00:00
a-kenji
7f89740d1b documentation: standardize on bash doccomments 2024-04-13 16:35:16 +02:00
clan-bot
b8d863240c Merge pull request 'docs: improve template' (#1201) from hsjobeki-tutorials into main 2024-04-13 14:33:28 +00:00
Johannes Kirschbauer
b2a1f8571c format 2024-04-13 16:29:24 +02:00
Johannes Kirschbauer
d021b2fb34 template: remove system 2024-04-13 16:00:01 +02:00
Johannes Kirschbauer
fa5058bce4 docs: reword 2024-04-13 15:55:15 +02:00
Johannes Kirschbauer
1978aae39f docs: improve template 2024-04-13 15:53:45 +02:00
clan-bot
6212492c89 Merge pull request 'documentation: make lsblk command copyable' (#1200) from a-kenji-docs/impr into main 2024-04-13 13:21:59 +00:00
a-kenji
4874500b8f documentation: make lsblk command copyable 2024-04-13 15:16:05 +02:00
clan-bot
579994aea6 Merge pull request 'hsjobeki-tutorials' (#1199) from hsjobeki-tutorials into main 2024-04-13 12:57:33 +00:00
Johannes Kirschbauer
2207fd8961 docs: add success block 2024-04-13 14:53:18 +02:00
Johannes Kirschbauer
ff99b10616 docs: rephrase tabs 2024-04-13 14:48:26 +02:00
Johannes Kirschbauer
babf7e3d12 docs: clean up directory structure 2024-04-13 14:48:26 +02:00
clan-bot
7d543da8c2 Merge pull request 'documentation: fix wording' (#1198) from a-kenji-docs/wording into main 2024-04-13 12:19:10 +00:00
a-kenji
f464eafe6c documentation: fix wording 2024-04-13 14:12:47 +02:00
clan-bot
a9347f4ed9 Merge pull request 'docs: move hardware / cloud computers behind tab selection' (#1197) from hsjobeki-tutorials into main 2024-04-13 12:03:57 +00:00
Johannes Kirschbauer
8de732239d docs: move hardware / cloud computers behind tab selection 2024-04-13 13:59:48 +02:00
clan-bot
e52a9f3a16 Merge pull request 'documentation: allow code content to be copied' (#1196) from a-kenji-documentation/impl/copy into main 2024-04-13 11:55:52 +00:00
clan-bot
579b800755 Merge pull request 'docs: remove custom css' (#1195) from hsjobeki-tutorials into main 2024-04-13 11:50:12 +00:00
a-kenji
92de72427e documentation: allow code content to be copied
Allow code content to be copied.

Fixes #1179
2024-04-13 13:48:25 +02:00
Johannes Kirschbauer
e74d0aa3d2 docs: remove custom css 2024-04-13 11:44:32 +00:00
clan-bot
1f11c67e23 Merge pull request 'documentation: improve wifi' (#1194) from a-kenji-docs/improve into main 2024-04-13 11:36:58 +00:00
a-kenji
077598b3ac documentation: improve wifi 2024-04-13 13:32:54 +02:00
clan-bot
35a5131b24 Merge pull request 'vm-manager: fix typos in error message' (#1193) from a-kenji-vm-manager/fix into main 2024-04-13 10:28:54 +00:00
clan-bot
1b77f746bc Merge pull request 'documentation: fix wording' (#1192) from a-kenji-docs/fix into main 2024-04-13 10:25:30 +00:00
clan-bot
275b61925a Merge pull request 'documentation: fix wording' (#1191) from a-kenji-docs/wording into main 2024-04-13 10:22:59 +00:00
clan-bot
e8e37bfb6c Merge pull request 'documentation: add missing character' (#1190) from a-kenji-docs/missing into main 2024-04-13 10:19:05 +00:00
a-kenji
b474de8137 vm-manager: fix typos in error message 2024-04-13 12:18:58 +02:00
clan-bot
57096ae0f4 Merge pull request 'documentation: add correct nix-shell invocation' (#1189) from a-kenji-docs/add-clan-cli into main 2024-04-13 10:14:45 +00:00
a-kenji
b5746906fb documentation: fix wording 2024-04-13 12:14:20 +02:00
a-kenji
ff035d34ed documentation: fix wording 2024-04-13 12:11:13 +02:00
clan-bot
9747d77461 Merge pull request 'docs: fix wording' (#1188) from a-kenji-docs/install into main 2024-04-13 10:10:51 +00:00
a-kenji
e58204a5a7 documentation: add missing character 2024-04-13 12:09:40 +02:00
a-kenji
985deb27a9 documentation: add correct nix-shell invocation 2024-04-13 12:08:35 +02:00
a-kenji
1c690c2a66 docs: fix wording 2024-04-13 12:06:29 +02:00
clan-bot
136b317def Merge pull request 'clan-vm-manager: fix wording in toast' (#1187) from a-kenji-clan-vm-manager/fix/toast into main 2024-04-13 10:02:03 +00:00
a-kenji
9f3fcaf68e clan-vm-manager: fix wording in toast 2024-04-13 11:55:58 +02:00
clan-bot
c4ef4b1950 Merge pull request 'docs: fix wording and typo' (#1185) from a-kenji-doc/fix/wording into main 2024-04-13 09:53:15 +00:00
a-kenji
42e653a647 docs: fix wording and typo 2024-04-13 11:41:00 +02:00
clan-bot
8d6659e60b Merge pull request 'clan-cli: fix typos' (#1183) from a-kenji-clan-cli/fix/typos into main 2024-04-12 15:47:32 +00:00
a-kenji
fff810ed43 clan-cli: fix typos 2024-04-12 17:40:54 +02:00
hsjobeki
2df2787989 Merge pull request 'docs: self host documentation with mkDocs' (#1176) from hsjobeki-tutorials into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1176
2024-04-12 15:14:43 +00:00
Johannes Kirschbauer
70cdf23875 docs: add theming 2024-04-12 17:13:11 +02:00
Jörg Thalheim
4d75feea65 deploy-docs: fail on error 2024-04-12 17:13:11 +02:00
Jörg Thalheim
c3f2c548a6 add deploy script for homepage 2024-04-12 17:13:11 +02:00
Jörg Thalheim
30663d563d fix build on macos 2024-04-12 17:13:11 +02:00
Johannes Kirschbauer
43102906aa disable module docs until migrated 2024-04-12 17:13:11 +02:00
Johannes Kirschbauer
445d547814 remove checks 2024-04-12 17:13:11 +02:00
Johannes Kirschbauer
28773725ec docs: fix links 2024-04-12 17:13:11 +02:00
Johannes Kirschbauer
ecd48df496 worklow: disable link checking, this is done by mkDocs 2024-04-12 17:13:11 +02:00
Valentin Gagarin
d4f10c34c4 fix up title 2024-04-12 17:13:11 +02:00
Valentin Gagarin
e04e4e4fdb make "Getting Started" the start page 2024-04-12 17:13:11 +02:00
Valentin Gagarin
60f2bf54c3 add instructions to live reload docs 2024-04-12 17:13:11 +02:00
Johannes Kirschbauer
1e08a454fb docs: self host documentation with mkDocs 2024-04-12 17:13:11 +02:00
clan-bot
f61a78a1cf Merge pull request 'docs: fix diskLayouts' (#1182) from a-kenji-documentation/fix/docs into main 2024-04-12 14:54:54 +00:00
a-kenji
f76e6cfd1e docs: fix diskLayouts 2024-04-12 16:44:00 +02:00
kenji
ae8e15dc5e Merge pull request 'fix installer' (#1175) from docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1175
2024-04-12 14:00:25 +00:00
a-kenji
26c71d9720 installer: add zstd compression 2024-04-12 14:00:25 +00:00
Jörg Thalheim
088e0d3eee fix installer 2024-04-12 14:00:25 +00:00
clan-bot
cb20f62486 Merge pull request 'docs: fix iso location' (#1174) from a-kenji-fix/docss into main 2024-04-12 13:15:29 +00:00
clan-bot
828d61fef5 Merge pull request 'docs: remove superfluous heading' (#1173) from a-kenji-fix/docs into main 2024-04-12 13:11:25 +00:00
a-kenji
75fc8fd35a docs: fix iso location 2024-04-12 15:06:01 +02:00
a-kenji
684cadebc3 docs: remove superfluous heading 2024-04-12 14:55:59 +02:00
Mic92
6ddd70e2be Merge pull request 'fix case when secrets are regenerated during update/install' (#1172) from docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1172
2024-04-12 12:51:27 +00:00
Jörg Thalheim
b3522b73aa fix case when secrets are regenerated during update/install 2024-04-12 14:46:51 +02:00
Mic92
573a462aee Merge pull request 'Rework and fix root-password module' (#1171) from docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1171
2024-04-12 12:00:43 +00:00
Jörg Thalheim
3f8ab35a19 rework root-password module 2024-04-12 12:00:43 +00:00
clan-bot
895f6fbc8a Merge pull request 'sops/compat: fix name reference' (#1170) from docs into main 2024-04-12 11:29:32 +00:00
Jörg Thalheim
6958da2d57 sops/compat: fix name reference 2024-04-12 13:23:52 +02:00
clan-bot
2e6e9b175e Merge pull request 'sops: fix secret path generation' (#1168) from docs into main 2024-04-12 11:19:56 +00:00
Jörg Thalheim
58446db110 sops: fix secret path generation 2024-04-12 13:12:31 +02:00
Mic92
396071a925 Merge pull request 'quickstart: fix link' (#1162) from docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1162
2024-04-12 10:09:28 +00:00
Jörg Thalheim
439714a242 quickstart: fix link 2024-04-12 10:09:28 +00:00
clan-bot
13e1aefb65 Merge pull request 'clan-vm-manager: Add install-desktop.sh' (#1161) from Qubasa-main into main 2024-04-12 09:54:09 +00:00
Qubasa
057d0defee clan-vm-manager: Add install-desktop.sh. Fix incorrect doku link 2024-04-12 11:47:18 +02:00
hsjobeki
7dcadd3025 Merge pull request 'docs: fix unsupported languages' (#1157) from hsjobeki-tutorials into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1157
2024-04-10 16:50:07 +00:00
Johannes Kirschbauer
d292f2de98 docs: fix unsupported languages 2024-04-10 18:40:51 +02:00
hsjobeki
6aec3ac73d Merge pull request 'docs: improve tutorials' (#1156) from hsjobeki-tutorials into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1156
2024-04-10 16:25:18 +00:00
Johannes Kirschbauer
e6acbadae6 docs: improve template & secrets 2024-04-10 16:25:18 +00:00
Mic92
00558923a5 Merge pull request 'factstore: secret backends now can return the path to a secret dynamically' (#1143) from networkd into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1143
2024-04-10 15:14:30 +00:00
Jörg Thalheim
82aafc287e also enable LLMNR 2024-04-10 15:14:30 +00:00
Jörg Thalheim
0d4e1f870b factstore: secret backends now can return the path to a secret dynamically
try to move path function out
2024-04-10 15:14:30 +00:00
Jörg Thalheim
faaf6649c5 fix multicast dns for ethernet 2024-04-10 15:14:30 +00:00
clan-bot
f33c3ece3d Merge pull request 'don't hard-code page weight' (#1118) from fricklerhandwerk/clan-core:doc-contributing into main 2024-04-10 13:35:50 +00:00
clan-bot
a5586d27f0 Merge pull request 'build iso with nixos-generators' (#1155) from lassulus-generators-iso into main 2024-04-10 13:20:00 +00:00
lassulus
70282b8d77 build iso with nixos-generators 2024-04-10 15:03:55 +02:00
clan-bot
6d050c0c10 Merge pull request 'docs: improve tutorials' (#1154) from hsjobeki-tutorials into main 2024-04-10 13:01:21 +00:00
Johannes Kirschbauer
87eb38a2c9 docs: move install stick into sperate docs 2024-04-10 14:54:41 +02:00
clan-bot
388c9c94e4 Merge pull request 'tutorials' (#1149) from tutorials into main 2024-04-10 11:43:07 +00:00
Johannes Kirschbauer
960e560d84 docs: fix links 2024-04-10 13:37:54 +02:00
Johannes Kirschbauer
d951c570f0 docs: improve getting started 2024-04-10 13:33:47 +02:00
Johannes Kirschbauer
adfdc96b64 docs: improve tutorials 2024-04-10 13:33:47 +02:00
clan-bot
f7a29ebaf8 Merge pull request 'templates: makes template working' (#1148) from hsjobeki-main into main 2024-04-10 10:38:56 +00:00
Johannes Kirschbauer
996fdd6c9c templates: makes template working 2024-04-10 12:28:41 +02:00
clan-bot
d3e42a3ad2 Merge pull request 'add root-password module' (#1147) from hsjobeki-main into main 2024-04-10 09:36:16 +00:00
Johannes Kirschbauer
292ac97067 add root-password module 2024-04-10 11:23:39 +02:00
Mic92
84f527fc39 Merge pull request 'docs: improve tutorials' (#1126) from tutorials into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1126
2024-04-10 09:14:03 +00:00
Johannes Kirschbauer
c4c843ba18 docs: improve tutorials 2024-04-10 09:14:03 +00:00
Mic92
915864f637 Merge pull request 'fix quickstart instructions' (#1146) from alejandrosame/clan-core:fix/quickstart into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1146
2024-04-10 09:13:13 +00:00
Alejandro Sanchez Medina
8ab9021c3d fix quickstart instructions
The guide instructs the reader to look for the PTUUID (partition ID) to fill
disk ID in the disklayout. This leads to an error as the partition gets deleted
and the UUID is no longer valid. The ID-LINK field is a unique ID provided by
the hardware manufacturer.
2024-04-09 20:57:36 +02:00
Mic92
36ce43bfcf Merge pull request 'enable multicast fore default dhcp network' (#1141) from networkd into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1141
2024-04-09 13:35:51 +00:00
Jörg Thalheim
a8718b92d4 enable multicast fore default dhcp network 2024-04-09 13:35:51 +00:00
clan-bot
5dac575be8 Merge pull request 'Set networking.hostName to clanCore.machineName' (#1140) from networkd into main 2024-04-09 13:14:44 +00:00
Jörg Thalheim
19a62817f2 sops: strip out clanCore.machineName instead of networking.hostName 2024-04-09 15:10:27 +02:00
Jörg Thalheim
1ac982fbdb set networking.hostName to clanCore.machineName 2024-04-09 15:10:08 +02:00
clan-bot
26146edbc5 Merge pull request 'drop custom systemd-networkd unit' (#1132) from networkd into main 2024-04-09 10:37:51 +00:00
Jörg Thalheim
e8ebfb2e2a drop custom systemd-networkd unit
We no longer use multicast dns. This one doesn't
conflict with nixos-generate-config.
2024-04-09 12:31:57 +02:00
clan-bot
3480b7d089 Merge pull request 'vms/run.py: refactor use kwargs instead of dataclass for function args' (#1125) from DavHau-dave into main 2024-04-09 07:36:02 +00:00
DavHau
fc73301ed9 vms/run.py: refactor use kwargs instead of dataclass for function args 2024-04-09 14:30:46 +07:00
clan-bot
30db1039d1 Merge pull request 'Automatic flake update - 2024-04-08T00:00+00:00' (#1124) from flake-update-2024-04-08 into main 2024-04-08 00:13:31 +00:00
Clan Merge Bot
8429ccccb3 update flake lock - 2024-04-08T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/502241afa3de2a24865ddcbe4c122f4546e32092' (2024-03-28)
  → 'github:nix-community/disko/0a17298c0d96190ef3be729d594ba202b9c53beb' (2024-04-05)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
  → 'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/63194fceafbfe583a9eb7d16ab499adc0a6c0bc2' (2024-03-28)
  → 'github:nix-community/nixos-generators/0c15e76bed5432d7775a22e8d22059511f59d23a' (2024-04-04)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/b2a1eeef8c185f6bd27432b053ff09d773244cbc' (2024-03-24)
  → 'github:nix-community/nixpkgs.lib/90b1a963ff84dc532db92f678296ff2499a60a87' (2024-03-31)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/cd1c70d941d69d8d6425984ff8aefca9b28e861a' (2024-03-31)
  → 'github:NixOS/nixpkgs/298edc8f1e0dfffce67f50375c9f5952e04a6d02' (2024-04-07)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/99b1e37f9fc0960d064a7862eb7adfb92e64fa10' (2024-03-31)
  → 'github:Mic92/sops-nix/39191e8e6265b106c9a2ba0cfd3a4dafe98a31c6' (2024-04-07)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/1810d51a015c1730f2fe05a255258649799df416' (2024-03-30)
  → 'github:numtide/treefmt-nix/49dc4a92b02b8e68798abd99184f228243b6e3ac' (2024-04-01)
2024-04-08 00:00:15 +00:00
clan-bot
d89edef9a1 Merge pull request 'improve starter template' (#1123) from Qubasa-better-template into main 2024-04-07 19:12:02 +00:00
Qubasa
1e0d73e8a9 Improve documentation 2024-04-07 21:07:02 +02:00
Qubasa
4faba7c8e1 template: Reverted systemd-boot in installer. EF02 partition on wrong second place 2024-04-07 17:09:44 +02:00
Qubasa
83346eeff5 template: Fixed incorrect nix code 2024-04-07 15:59:33 +02:00
Johannes Kirschbauer
55f3878e67 machine.md: clean up guide 2024-04-07 14:32:23 +02:00
Johannes Kirschbauer
49d83fd659 migrate.md: make docs more approachable 2024-04-07 12:53:15 +02:00
Qubasa
6a610c7a0b Improve documentation 2024-04-06 13:35:17 +02:00
Qubasa
033f7c67f4 Improve documentation 2024-04-06 13:34:40 +02:00
Qubasa
6d8d211968 Improve documentation 2024-04-06 12:34:49 +02:00
Qubasa
91dddc2281 Fix merge issue 2024-04-06 11:56:06 +02:00
Qubasa
a520116584 Improve documentation 2024-04-06 11:54:34 +02:00
Valentin Gagarin
0681f6bf7c docs: don't set page weight
since currently the web site simply dumps these pages, this makes it
impossible to control the item order
2024-04-05 21:52:56 +02:00
Jörg Thalheim
e68eba914e improve starter template 2024-04-05 18:55:14 +02:00
Mic92
fa74d1c0b3 Merge pull request 'flash-fixes' (#1116) from flash-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1116
2024-04-05 16:54:31 +00:00
Jörg Thalheim
1fd28f2f4c flake-parts: fixup type for specialArgs 2024-04-05 18:48:37 +02:00
Jörg Thalheim
818cc4d135 flash: expose mode option 2024-04-05 18:48:37 +02:00
Jörg Thalheim
c5e5a7edc7 grub: enable efi support by default 2024-04-05 18:47:11 +02:00
Qubasa
2e29c031ef Improved docs 2024-04-05 18:03:14 +02:00
Qubasa
f2ff815aa7 Add machines/my-machine/settings.json 2024-04-05 16:25:05 +02:00
Jörg Thalheim
1fc4739ee3 improve starter template 2024-04-05 13:08:32 +02:00
clan-bot
cb103c7772 Merge pull request 'add flake parts tutorial' (#1106) from flake-parts into main 2024-04-04 13:09:52 +00:00
Jörg Thalheim
7b230e2308 add flake parts tutorial 2024-04-04 15:05:08 +02:00
clan-bot
e78d0da30f Merge pull request 'flake-parts: fix clan-core reference' (#1105) from flake-parts into main 2024-04-04 11:42:32 +00:00
Jörg Thalheim
28e8af60cf flake-parts: fix clan-core reference 2024-04-04 13:38:15 +02:00
Mic92
2bc027cece Merge pull request 'Add flake-parts module' (#1104) from flake-parts into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1104
2024-04-04 11:08:08 +00:00
Jörg Thalheim
5ffae2070d drop unused test_backup_client machine 2024-04-04 11:24:30 +02:00
Jörg Thalheim
3212410704 add flake-parts module for clan 2024-04-03 16:45:06 +02:00
Jörg Thalheim
f7077e3540 flash: improve prompt if no disk is specified 2024-04-03 12:00:02 +02:00
Jörg Thalheim
1c1c143b8d docs: replace hashedPassword with initialHashedPassword 2024-04-03 12:00:02 +02:00
clan-bot
6e4786d08e Merge pull request 'Clan Manager: connect events with feedback system' (#1103) from hsjobeki-main into main 2024-04-03 09:41:03 +00:00
Johannes Kirschbauer
de91938760 Clan VM Manager: connect feedback with events 2024-04-03 11:36:33 +02:00
clan-bot
a6ba73c4a0 Merge pull request 'fix: readme typo' (#1102) from hsjobeki-main into main 2024-04-03 07:51:04 +00:00
Johannes Kirschbauer
a6f8f3fb58 fix: readme typo 2024-04-03 09:43:24 +02:00
clan-bot
69aa46a1d5 Merge pull request 'sops: fix decrypte path on machine' (#1091) from fact_refactor2 into main 2024-04-02 11:55:53 +00:00
Jörg Thalheim
8b4dbc60b5 clan/install: drop -t flag from nixos-anywhere 2024-04-02 13:50:24 +02:00
Jörg Thalheim
5b838c0d9c sops: fix decrypte path on machine 2024-04-02 13:50:24 +02:00
clan-bot
b342e3f991 Merge pull request 'syncthing: fix conflicting definition of fs.inotify.max_user_watches' (#1090) from DavHau-dave into main 2024-04-02 11:00:26 +00:00
DavHau
dd0dbbd29f syncthing: fix conflicting definition of fs.inotify.max_user_watches 2024-04-02 17:56:07 +07:00
clan-bot
7de7e25e78 Merge pull request 'flatpak: add gitignore' (#1089) from a-kenji-gi/flatpak into main 2024-04-02 10:54:34 +00:00
a-kenji
97be9f1c4d flatpak: add gitignore 2024-04-02 12:48:19 +02:00
clan-bot
439293a079 Merge pull request 'clan-cli: add a check for the flatpak sandbox' (#1088) from a-kenji-clan-cli/check/flatpak-sandbox into main 2024-04-02 10:24:49 +00:00
a-kenji
9bb4c8d094 clan-cli: add a check for the flatpak sandbox
Allows for differentiation between sandbox and non sandbox usage.
2024-04-02 12:19:48 +02:00
clan-bot
44d897e89f Merge pull request 'modules: add ergochat' (#1078) from a-kenji-add/ergo into main 2024-04-02 09:36:55 +00:00
a-kenji
1a40ce0a8f modules: add ergochat 2024-04-02 11:30:22 +02:00
clan-bot
ff0e66512f Merge pull request 'buildClan: add clan-core to specialArgs' (#1076) from DavHau-dave into main 2024-04-02 09:15:37 +00:00
clan-bot
78259ad61e Merge pull request 'modules: add thelounge' (#1075) from a-kenji-init/ergochat into main 2024-04-02 09:07:18 +00:00
DavHau
6f9216d3b6 buildClan: add clan-core to specialArgs 2024-04-02 16:03:45 +07:00
a-kenji
3bdface3db modules: add thelounge 2024-04-02 11:01:00 +02:00
clan-bot
388eff3baa Merge pull request 'cli/secrets: show hint in --help on how to retrieve a key' (#1074) from DavHau-dave into main 2024-04-02 07:40:54 +00:00
DavHau
16ae51105e cli/secrets: show hint in --help on how to retrieve a key 2024-04-02 14:36:01 +07:00
clan-bot
3428b76dcb Merge pull request 'moonlight: fix facts declaration' (#1072) from DavHau-dave into main 2024-04-01 10:48:25 +00:00
DavHau
1a3d5e1ad6 moonlight: fix facts declaration 2024-04-01 17:44:22 +07:00
clan-bot
d075b18653 Merge pull request 'Automatic flake update - 2024-04-01T00:00+00:00' (#1070) from flake-update-2024-04-01 into main 2024-04-01 00:11:28 +00:00
Clan Merge Bot
c9108d5460 update flake lock - 2024-04-01T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/5d2d3e421ade554b19b4dbb0d11a04023378a330' (2024-03-24)
  → 'github:nix-community/disko/502241afa3de2a24865ddcbe4c122f4546e32092' (2024-03-28)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/2b3720c7af2271be8cee713cd2f69c5127b0a8e4' (2024-03-25)
  → 'github:nix-community/nixos-generators/63194fceafbfe583a9eb7d16ab499adc0a6c0bc2' (2024-03-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/57e6b3a9e4ebec5aa121188301f04a6b8c354c9b' (2024-03-25)
  → 'github:NixOS/nixpkgs/cd1c70d941d69d8d6425984ff8aefca9b28e861a' (2024-03-31)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/405987a66cce9a4a82f321f11b205982a7127c88' (2024-03-24)
  → 'github:Mic92/sops-nix/99b1e37f9fc0960d064a7862eb7adfb92e64fa10' (2024-03-31)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/7ee5aaac63c30d3c97a8c56efe89f3b2aa9ae564' (2024-03-18)
  → 'github:numtide/treefmt-nix/1810d51a015c1730f2fe05a255258649799df416' (2024-03-30)
2024-04-01 00:00:15 +00:00
clan-bot
eeb703985e Merge pull request 'docs: render zola pages in clan-core flake' (#1069) from DavHau-dave into main 2024-03-31 05:37:36 +00:00
DavHau
492256ec54 docs: render zola pages in clan-core flake
This integrates the generated options docs part of our website into the clan-core project. This is better than having it in a separate repos because we want to lear about breakages as early as possible.

Changes which break the documentation should be blocked by this early on
2024-03-31 12:33:31 +07:00
clan-bot
62f201696d Merge pull request 'docs: render module options docs' (#1068) from DavHau-dave into main 2024-03-30 17:31:34 +00:00
DavHau
e0bdf1ce39 docs: render module options docs
fix errors while rendering some modules
2024-03-31 00:26:08 +07:00
clan-bot
ec105d8ef8 Merge pull request 'secrets: improve description of generator script' (#1067) from DavHau-dave into main 2024-03-30 10:22:40 +00:00
DavHau
72cc85cd2f secrets: improve description of generator script 2024-03-30 17:16:26 +07:00
clan-bot
0f73a6e1cf Merge pull request 'migrate secrets to new api' (#1064) from fact_refactor2 into main 2024-03-28 10:17:24 +00:00
Jörg Thalheim
65d116ec28 migrate secrets to new api 2024-03-28 11:02:14 +01:00
clan-bot
b10c4f5846 Merge pull request 'refactor clanCore.secrets -> clanCore.facts' (#1040) from facts_refactor2 into main 2024-03-27 15:20:21 +00:00
lassulus
a8d35d37e7 refactor clanCore.secrets -> clanCore.facts 2024-03-27 16:03:16 +01:00
clan-bot
8950c8d3bd Merge pull request 'clan-cli: Fix tmpdir leak and fix tests/temporary_dir inconsistencies' (#1063) from Qubasa-fix_tmpdir_leak2 into main 2024-03-27 14:58:20 +00:00
Qubasa
e6ad0cfbc1 clan-cli: Fix tmpdir leak and fix tests/temporary_dir inconsistencies 2024-03-27 15:51:52 +01:00
clan-bot
0676bf7283 Merge pull request 'checks: add check for rendering docs' (#1058) from DavHau-dave into main 2024-03-27 10:03:38 +00:00
DavHau
3771be2110 checks: add check for rendering docs 2024-03-27 16:59:42 +07:00
clan-bot
d59673e89a Merge pull request 'Improved README' (#1057) from Qubasa-improv_readme3 into main 2024-03-26 18:29:50 +00:00
Qubasa
946f026c23 Improved README 2024-03-26 19:20:00 +01:00
clan-bot
8715c3ef88 Merge pull request 'rewrite backups documentation' (#1055) from Mic92-main into main 2024-03-26 16:29:32 +00:00
Jörg Thalheim
0c21fcf2eb rewrite backups documentation 2024-03-26 17:21:06 +01:00
clan-bot
9a82f8cc8b Merge pull request 'localbackup: also create mountpoints' (#1053) from Mic92-main into main 2024-03-26 14:59:11 +00:00
Jörg Thalheim
e27e6e6102 localbackup: also create mountpoints 2024-03-26 15:53:13 +01:00
clan-bot
4ff262fd60 Merge pull request 'localbackup: rename mountHook/umountHook to preMountHook/postUnmountHook' (#1050) from Mic92-main into main 2024-03-26 14:02:40 +00:00
Jörg Thalheim
74b5f6c61a localbackup: rename mountHook/umountHook to preMountHook/postUnmountHook 2024-03-26 14:58:37 +01:00
clan-bot
553b8b8476 Merge pull request 'cli/ssh: allocate tty by default' (#1043) from Mic92-main into main 2024-03-26 12:18:27 +00:00
Jörg Thalheim
80abeef994 Revert "ssh: add interactive flag"
This reverts commit c5db14dea8.
2024-03-26 13:13:35 +01:00
Jörg Thalheim
7b8a49bf6c ssh: default tty to False
nix behaves weird when the terminal is interactive because
we are also do line buffering.
2024-03-26 13:05:11 +01:00
Jörg Thalheim
54f0526c5b update nixos-generators 2024-03-26 12:52:00 +01:00
Jörg Thalheim
10a12eb85c ruff: switch to check subcommand 2024-03-26 12:52:00 +01:00
Jörg Thalheim
c5db14dea8 ssh: add interactive flag 2024-03-26 12:51:46 +01:00
Jörg Thalheim
0e2cb172e6 cli/ssh: allocate tty by default
-t is only enabled when the local ssh command is also connected to a tty,
so it seems to be enabled by default.
2024-03-26 12:07:15 +01:00
clan-bot
a21f731536 Merge pull request 'localbackup: add missing config arg to submodule' (#1042) from Mic92-main into main 2024-03-26 10:47:35 +00:00
Jörg Thalheim
bd989085ac localbackup: add missing config arg to submodule 2024-03-26 11:41:03 +01:00
clan-bot
dca1eee3a3 Merge pull request 'documentation: fix grammer' (#1041) from a-kenji-fix/grammar into main 2024-03-25 15:10:10 +00:00
a-kenji
92b1f86b7e documentation: fix grammer 2024-03-25 16:03:18 +01:00
clan-bot
6055dbe123 Merge pull request 'documentation fixes for facts generate command' (#1038) from facts-generate into main 2024-03-25 14:38:30 +00:00
Jörg Thalheim
68ac6321ee docs/backup: update command needed to regenerate backups 2024-03-25 15:33:57 +01:00
Jörg Thalheim
270f906412 fix casing in facts generate logs 2024-03-25 15:33:57 +01:00
clan-bot
ffa1d9ca6c Merge pull request 'waypipe: fix the waypipe module' (#1037) from a-kenji-modules/waypipe/fix into main 2024-03-25 14:27:14 +00:00
a-kenji
187bebae47 waypipe: fix the waypipe module 2024-03-25 15:21:16 +01:00
clan-bot
a6f1fede97 Merge pull request 'localbackup: add regression test' (#1035) from localbackup into main 2024-03-25 13:00:14 +00:00
Mic92
e3c608c16d Merge pull request 'switch back to upstream waypipe' (#1025) from waypipe into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1025
2024-03-25 12:54:16 +00:00
Jörg Thalheim
fee37dc1db bump nixpkgs 2024-03-25 13:36:30 +01:00
Jörg Thalheim
a886fd9b2d switch back to upstream waypipe 2024-03-25 13:34:02 +01:00
Jörg Thalheim
d291b1db63 localbackup: integrate into regression test 2024-03-25 13:26:42 +01:00
Jörg Thalheim
45212e2ba5 localbackup: add mounthooks 2024-03-25 13:26:42 +01:00
Jörg Thalheim
916e37eb26 localbackup: add pre/post exec hooks 2024-03-25 12:42:59 +01:00
Jörg Thalheim
58ae9d9cd0 localbackup: default to empty target list 2024-03-25 12:42:59 +01:00
clan-bot
62bef16092 Merge pull request 'Re-encrypt secrets after rotating users/machines keys' (#1034) from yubikey-support into main 2024-03-25 11:40:32 +00:00
Jörg Thalheim
0fa36252c2 re-encrypt secrets after rotating users/machines keys 2024-03-25 12:34:29 +01:00
Jörg Thalheim
b6d5f8a6ce docs/backup: extend documentation 2024-03-25 11:07:09 +01:00
Jörg Thalheim
cd9db02db0 add hint to use --force when a key already exists 2024-03-25 11:06:20 +01:00
clan-bot
bc75c637ef Merge pull request 'clanCore/packages.nix: add gitMinimal' (#1031) from DavHau-dave into main 2024-03-25 04:54:00 +00:00
DavHau
4b8b1107ba clanCore/packages.nix: add gitMinimal
WIthout this, deployment via `clan machines update` will fail on the remote machine if the flake.nix has a git input
2024-03-25 11:47:32 +07:00
clan-bot
644c85866e Merge pull request 'Automatic flake update - 2024-03-25T00:00+00:00' (#1030) from flake-update-2024-03-25 into main 2024-03-25 00:22:15 +00:00
Clan Merge Bot
7cdb18331d update flake lock - 2024-03-25T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/21d89b333ca300bef82c928c856d48b94a9f997c' (2024-03-14)
  → 'github:nix-community/disko/5d2d3e421ade554b19b4dbb0d11a04023378a330' (2024-03-24)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/efd4e38532b5abfaa5c9fc95c5a913157dc20ccb' (2024-03-14)
  → 'github:nix-community/nixos-generators/417a857dfb824e60930881a254dd67d6796f5884' (2024-03-22)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/630ebdc047ca96d8126e16bb664c7730dc52f6e6' (2024-03-10)
  → 'github:nix-community/nixpkgs.lib/fa827dda806c5aa98f454da4c567991ab8ce422c' (2024-03-17)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f471be9644f3ab2f3cb868de1787ab70a537b0e7' (2024-03-17)
  → 'github:NixOS/nixpkgs/3d41d1087707826b3a90685ab69147f8dc8145d5' (2024-03-24)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/83b68a0e8c94b72cdd0a6e547a14ca7eb1c03616' (2024-03-17)
  → 'github:Mic92/sops-nix/405987a66cce9a4a82f321f11b205982a7127c88' (2024-03-24)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/35791f76524086ab4b785a33e4abbedfda64bd22' (2024-03-12)
  → 'github:numtide/treefmt-nix/7ee5aaac63c30d3c97a8c56efe89f3b2aa9ae564' (2024-03-18)
2024-03-25 00:00:15 +00:00
clan-bot
b07490ca60 Merge pull request 'select-shell: Fix breakage with previous shell.nix change' (#1029) from Qubasa-main into main 2024-03-24 23:37:57 +00:00
Qubasa
e26d1052b6 select-shell: Fix breakage with previous shell.nix change 2024-03-25 00:32:03 +01:00
clan-bot
f7866d264d Merge pull request 'clan-vm-manager: devshell doesn't require clan-cli derivation' (#1028) from Qubasa-main into main 2024-03-24 22:57:52 +00:00
Qubasa
9dbc71e446 clan-vm-manager: devshell doesn't require clan-cli derivation 2024-03-24 23:52:30 +01:00
clan-bot
5fd4a63e17 Merge pull request 'clan-vm-manager: Basic pytest framework established' (#1026) from Qubasa-main into main 2024-03-24 22:41:07 +00:00
Qubasa
8ab9d20342 clan-vm-manager: Working pytest skeleton. clan-cli: Fixing devshell depending on itself 2024-03-24 23:36:00 +01:00
clan-bot
a185ad0c59 Merge pull request 'refactor secrets & facts into secret_facts & public_facts' (#1027) from facts_refactor into main 2024-03-24 10:10:45 +00:00
lassulus
f16667e25a refactor secrets & facts -> secret_facts & public_facts 2024-03-23 05:46:54 +01:00
Qubasa
0ee8dceee2 clan-vm-manager: Basic pytest framework established 2024-03-22 19:08:35 +01:00
Mic92
ddc28f53df Merge pull request 'backup docs' (#949) from docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/949
2024-03-22 14:56:22 +00:00
Jörg Thalheim
0b6e03b3d5 backup docs 2024-03-22 14:56:22 +00:00
clan-bot
1d6cc49da5 Merge pull request 'clanModules: init matrix-synapse' (#1017) from matrix-synapse into main 2024-03-22 11:39:50 +00:00
lassulus
786a4586a6 checks/matrix-synapse: init 2024-03-22 12:26:37 +01:00
lassulus
ba772c201d clanModules: init matrix-synapse 2024-03-22 12:26:37 +01:00
clan-bot
ae50796e1d Merge pull request 'sunshine: improve launching of pairing' (#1021) from a-kenji-sunshine/improve-accept into main 2024-03-20 09:00:58 +00:00
a-kenji
f0b00b7360 sunshine: improve launching of pairing 2024-03-20 09:55:25 +01:00
clan-bot
1b8ae090b8 Merge pull request 'localbackup' (#1020) from localbackup into main 2024-03-20 08:49:07 +00:00
Jörg Thalheim
350593ccde backups: add test for pre and post restore command 2024-03-20 09:32:01 +01:00
Jörg Thalheim
82507a975a backups: fix name extraction for borgbackup restore 2024-03-20 09:32:01 +01:00
Jörg Thalheim
539df08706 backups: skip preRestore and postRestore if not specified by a service 2024-03-20 09:32:01 +01:00
Jörg Thalheim
aa659bcc17 backups: no longer interpret backup interface as bash commands 2024-03-20 09:32:01 +01:00
Jörg Thalheim
92ac151292 rework backup interface to no longer need to list backups to restore them 2024-03-20 09:32:01 +01:00
Jörg Thalheim
f5d32d0b22 add localbackup provider 2024-03-20 09:32:01 +01:00
Mic92
691d2ca3e9 Merge pull request 'make backup provider more generic' (#1019) from backup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/1019
2024-03-20 08:29:05 +00:00
Jörg Thalheim
2560eef424 backups: don't export all local environment over ssh 2024-03-20 08:29:05 +00:00
Jörg Thalheim
5f9d3b514b fix case when we have multiple backup destinations 2024-03-20 08:29:05 +00:00
Jörg Thalheim
9383e41d68 make backup provider more generic 2024-03-20 08:29:05 +00:00
clan-bot
7c4c6c07af Merge pull request 'refactor backup test to be just a single machine' (#1016) from Mic92-openssh into main 2024-03-19 13:38:10 +00:00
Jörg Thalheim
65b6ae8bb7 refactor backup test to be just a single machine 2024-03-19 14:32:11 +01:00
clan-bot
f8a8a92e39 Merge pull request 'moonlight: drop libnotify' (#1012) from a-kenji-moonlight/libnotify into main 2024-03-19 12:21:29 +00:00
a-kenji
f98d39cdeb moonlight: drop libnotify 2024-03-19 13:14:04 +01:00
clan-bot
7c378fced6 Merge pull request 'sunshine: drop unused files' (#1003) from a-kenji-drop/sunshine into main 2024-03-19 11:59:41 +00:00
a-kenji
626a9af638 sunshine: drop unused files 2024-03-19 12:53:28 +01:00
clan-bot
ceb1c95817 Merge pull request 'init: sunshine-moonlight-accept module' (#1002) from a-kenji-init/sunshine-accept into main 2024-03-19 11:50:15 +00:00
a-kenji
83efb33eb7 fmt 2024-03-19 12:40:58 +01:00
a-kenji
0695e2c0fc Merge branch 'main' into init/sunshine-accept 2024-03-19 12:33:45 +01:00
a-kenji
91ed6549a7 fmt: module 2024-03-19 12:30:40 +01:00
a-kenji
32d0f1ccd4 init: sunshine-moonlight-accept module 2024-03-19 12:11:09 +01:00
clan-bot
9f81f75f8c Merge pull request 'devshell: remove dependency on clan-cli derivation' (#1000) from DavHau-dave into main 2024-03-19 06:05:15 +00:00
DavHau
580010581c devshell: remove dependency on clan-cli derivation
The devShell depended on clan-cli due to it being included as a dependency in the treefmt config. This is not optimal because this makes the devshell rebuild unnecessary often and also lead to build failures of the dev-shell if the clan-cli code is in a broken state (git rebasing, or during development etc.)
2024-03-19 13:00:59 +07:00
clan-bot
b2b94b269a Merge pull request 'Automatic flake update - 2024-03-18T00:00+00:00' (#998) from flake-update-2024-03-18 into main 2024-03-18 00:11:00 +00:00
Clan Merge Bot
9300ecbfe2 update flake lock - 2024-03-18T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/fe064a639319ed61cdf12b8f6eded9523abcc498' (2024-03-11)
  → 'github:nix-community/disko/21d89b333ca300bef82c928c856d48b94a9f997c' (2024-03-14)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/1d9c8cd24eba7942955f92fdcefba5a6a7543bc6' (2024-03-11)
  → 'github:nix-community/nixos-generators/efd4e38532b5abfaa5c9fc95c5a913157dc20ccb' (2024-03-14)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/7873d84a89ae6e4841528ff7f5697ddcb5bdfe6c' (2024-03-03)
  → 'github:nix-community/nixpkgs.lib/630ebdc047ca96d8126e16bb664c7730dc52f6e6' (2024-03-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e4e2121b151e492fd15d4bdb034e793738fdc120' (2024-03-12)
  → 'github:NixOS/nixpkgs/f471be9644f3ab2f3cb868de1787ab70a537b0e7' (2024-03-17)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/e52d8117b330f690382f1d16d81ae43daeb4b880' (2024-03-11)
  → 'github:Mic92/sops-nix/83b68a0e8c94b72cdd0a6e547a14ca7eb1c03616' (2024-03-17)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/720322c5352d7b7bd2cb3601a9176b0e91d1de7d' (2024-03-10)
  → 'github:numtide/treefmt-nix/35791f76524086ab4b785a33e4abbedfda64bd22' (2024-03-12)
2024-03-18 00:00:14 +00:00
clan-bot
4a5b9cf0f4 Merge pull request 'nixos-install: also respect port' (#997) from Mic92-openssh into main 2024-03-17 21:23:24 +00:00
Jörg Thalheim
5ff36a2cd8 nixos-install: also respect port 2024-03-17 22:18:22 +01:00
clan-bot
d50eeb8f89 Merge pull request 'drop secret store logging from install command' (#996) from Mic92-openssh into main 2024-03-17 20:41:39 +00:00
Jörg Thalheim
9f25f47298 allow to debug nixos-anywhere 2024-03-17 21:36:22 +01:00
Jörg Thalheim
dd0ad2683b drop secret store logging from install command 2024-03-17 21:32:23 +01:00
Mic92
3555001c0d Merge pull request 'change from nixpkgs-fmt to rfc style formatter' (#995) from openssh into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/995
2024-03-17 18:53:59 +00:00
Jörg Thalheim
e296a3019d re-format with nixfmt 2024-03-17 19:48:49 +01:00
Jörg Thalheim
916e4dff84 change from nixpkgs-fmt to rfc style formatter 2024-03-17 19:44:57 +01:00
clan-bot
50aa98c53a Merge pull request 'make installer nixos module stand-alone' (#994) from openssh into main 2024-03-17 18:42:55 +00:00
Jörg Thalheim
77c0e6b31a make installer nixos module stand-alone 2024-03-17 19:38:50 +01:00
clan-bot
915ce52355 Merge pull request 'installer: also match qemu and serial consoles for prompting qrcode' (#993) from openssh into main 2024-03-17 18:23:07 +00:00
Jörg Thalheim
2dcdcd98e9 installer: also match qemu and serial consoles for prompting qrcode 2024-03-17 19:14:24 +01:00
clan-bot
ee9be35dcb Merge pull request 'add nix to devShell' (#992) from openssh into main 2024-03-17 17:36:00 +00:00
Jörg Thalheim
d7939e3cba add nix to devShell
It's important for some tests that package manager used inside NixOS vms is the same as outside
2024-03-17 18:31:16 +01:00
clan-bot
c727d87213 Merge pull request 'sshd: module fix impurity' (#987) from openssh into main 2024-03-17 17:20:10 +00:00
Jörg Thalheim
c15043c4f1 fix evaluation of backup module 2024-03-17 18:16:08 +01:00
Jörg Thalheim
a6c3e15aca don't use impure builtins.storePath 2024-03-17 18:10:23 +01:00
Jörg Thalheim
377302ff6c change facts path to be reachable as a store path 2024-03-17 18:10:23 +01:00
clan-bot
91a51e837e Merge pull request 'clan-vm-manager: init log view with current state of log' (#990) from hsjobeki-main into main 2024-03-17 14:03:49 +00:00
Johannes Kirschbauer
e4f4680206 clan-vm-manager: init log view with current state of log 2024-03-17 14:57:32 +01:00
clan-bot
9a2549ddb8 Merge pull request 'clan-vm-manager: connect log view to build state of machines' (#989) from hsjobeki-main into main 2024-03-17 13:14:49 +00:00
Johannes Kirschbauer
b44cbf5c76 clan-vm-manager: connect log view to build state of machines 2024-03-17 14:08:39 +01:00
clan-bot
b322b3071b Merge pull request 'dev-shell: make python shell load fast' (#985) from DavHau-dave into main 2024-03-14 10:23:53 +00:00
DavHau
f4b8133037 dev-shell: make python shell load fast
- Add caching for editable installs
- Remove sleep statement in GUI code
2024-03-14 17:19:08 +07:00
DavHau
7537af3943 merge-after-ci: fix bug 2024-03-14 12:46:17 +07:00
clan-bot
3476945fff Merge pull request 'openssh fixes' (#983) from openssh into main 2024-03-13 14:04:25 +00:00
Jörg Thalheim
a6d52a669d fix openssh secrets
change facts path to be the full path

sshd: fixup store path
2024-03-13 14:59:46 +01:00
Mic92
08e8027347 Merge pull request 'fix openssh secrets' (#982) from openssh into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/982
2024-03-13 13:27:10 +00:00
Jörg Thalheim
59cb2b2a29 fix openssh secrets 2024-03-13 13:27:10 +00:00
clan-bot
e67ac52a33 Merge pull request 'merge-after-ci: set labels correctly' (#981) from DavHau-dave into main 2024-03-13 12:20:20 +00:00
DavHau
a9dbd92ff3 merge-after-ci: set labels correctly 2024-03-13 19:11:12 +07:00
clan-bot
be1bd8f252 Merge pull request 'secrets-improvements' (#948) from secrets-improvements into main 2024-03-13 10:23:27 +00:00
Jörg Thalheim
a9fc8de2d0 allow multi-line interactive secrets 2024-03-13 11:18:56 +01:00
Jörg Thalheim
c2e43a4e65 allow fact-only secrets 2024-03-13 11:08:36 +01:00
Jörg Thalheim
8ab6fcd4c0 add sshd module 2024-03-13 11:08:36 +01:00
clan-bot
5b02dda003 Merge pull request 'sunshine: add path' (#947) from a-kenji-sunshine/add-path into main 2024-03-12 22:06:37 +00:00
a-kenji
bcf26682c3 sunshine: add path 2024-03-12 23:01:02 +01:00
clan-bot
2dd7304b57 Merge pull request 'sunshine: add apps, improve uaccess rules' (#946) from a-kenji-imp/sunshine into main 2024-03-12 21:23:06 +00:00
a-kenji
71cd46b0e9 sunshine: add apps, improve uaccess rules 2024-03-12 22:17:08 +01:00
clan-bot
a23a64d0f9 Merge pull request 'sunshine: improve module' (#945) from a-kenji-imp/sunshine into main 2024-03-12 19:59:09 +00:00
a-kenji
8a3250b1c9 sunshine: improve module 2024-03-12 20:53:04 +01:00
clan-bot
d01ea573f9 Merge pull request 'vm: improve xfce and vm-user module' (#944) from a-kenji-fix/vm into main 2024-03-12 18:59:19 +00:00
a-kenji
df1729a841 vm: improve xfce and vm-user module 2024-03-12 19:53:11 +01:00
clan-bot
64ec958014 Merge pull request 'clan-modules: add xfce-vm module' (#943) from a-kenji-init/vm-module into main 2024-03-12 18:42:19 +00:00
clan-bot
9b51dc7b4d Merge pull request 'fix: typo' (#942) from a-kenji-fix/devshell into main 2024-03-12 18:37:21 +00:00
a-kenji
c15d762dc7 clan-modules: add xfce-vm module
A specific module for vm's that don't (yet) support the waypipe module.
2024-03-12 19:36:11 +01:00
a-kenji
4044e42e58 fix: typo 2024-03-12 17:37:19 +01:00
clan-bot
29012304c0 Merge pull request 'clan-modules: add vm-user module' (#932) from a-kenji-add/vm-user into main 2024-03-12 16:36:24 +00:00
Mic92
c8ba2e9721 Merge pull request 'reduce eval worker' (#941) from ci into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/941
2024-03-12 16:34:24 +00:00
Jörg Thalheim
c4642ad041 reduce eval worker 2024-03-12 17:34:07 +01:00
Mic92
e654b7fe95 Merge branch 'main' into a-kenji-add/vm-user 2024-03-12 16:32:03 +00:00
clan-bot
7bcbe67f4d Merge pull request 'clan_vm_manager: Fix mypy errors for clan_cli types' (#938) from Qubasa-main into main 2024-03-12 16:31:48 +00:00
Qubasa
4e5d051847 clan_vm_manager: Fix mypy errors for clan_cli types 2024-03-12 23:27:20 +07:00
Mic92
7c2e22de72 Merge pull request 'Revert "workaround gitea bug"' (#940) from ci into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/940
2024-03-12 16:26:50 +00:00
Jörg Thalheim
0c688a0919 Revert "workaround gitea bug"
This reverts commit 38190adfb1.
2024-03-12 17:23:12 +01:00
a-kenji
b5433beef9 clan-modules: add vm-user module 2024-03-12 17:20:02 +01:00
Mic92
422b3f096e Merge pull request 'ci' (#935) from ci into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/935
2024-03-12 16:10:54 +00:00
Jörg Thalheim
38190adfb1 workaround gitea bug 2024-03-12 16:10:54 +00:00
Jörg Thalheim
934cf6e57a mypy: fix clan-cli import in vm-manager 2024-03-12 16:10:54 +00:00
kenji
4ef513de58 Merge pull request 'enable: spice-vdagent if xserver is enable' (#931) from a-kenji-add/spice-vm-profile into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/931
2024-03-12 16:00:54 +00:00
a-kenji
5d5f504013 enable: spice-vdagent if xserver is enable 2024-03-12 16:00:54 +00:00
Mic92
acf1dace5c Merge pull request 'clan.borgbackup: drop enable option' (#918) from Mic92-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/918
2024-03-12 15:50:33 +00:00
Jörg Thalheim
823b5e67ed fix backup not beeing activated 2024-03-12 13:17:04 +01:00
Jörg Thalheim
349d3b379c update flake 2024-03-12 13:06:12 +01:00
Jörg Thalheim
b1897530c8 clan.borgbackup: drop enable option 2024-03-12 11:21:10 +01:00
clan-bot
6d76a724c0 Merge pull request 'clan-vm-manager: add log view' (#927) from hsjobeki-main into main 2024-03-10 13:14:54 +00:00
Johannes Kirschbauer
4687c816ab clan-vm-manager: add log view 2024-03-10 14:10:59 +01:00
Johannes Kirschbauer
ee8fa1da0a vm-manager: add toast overlay to main window 2024-03-10 10:40:00 +01:00
clan-bot
bfa6ff6085 Merge pull request 'clan-cli: Add py.typed to make mypy work when used as library in clan-vm-manager' (#923) from Qubasa-main into main 2024-03-10 09:10:21 +00:00
Qubasa
129a1516f6 clan-cli: Readd mypy ignore clan_cli because of treefmt complaining 2024-03-10 16:06:03 +07:00
Qubasa
167f7f4eb3 clan-cli: Add py.typed to make mypy work when used as library in clan-vm-manager 2024-03-10 15:18:18 +07:00
clan-bot
d9f5e050d8 Merge pull request 'clan-vm-manager: Add library for mypy pygobject types' (#921) from Qubasa-main into main 2024-03-09 16:55:54 +00:00
Qubasa
14900a702b clan-vm-manager: Readd ignore for clan_cli because nix fmt fails in CI. But why \? 2024-03-09 23:51:59 +07:00
Qubasa
5c8343d943 clan-vm-manager: Remove mypy ignore clan_cli types 2024-03-09 23:17:00 +07:00
Qubasa
01351ff5a1 clan-vm-manager: Add library for mypy pygobject types 2024-03-09 23:15:32 +07:00
clan-bot
b985215cd6 Merge pull request 'docs: improve readme for better onboarding' (#920) from hsjobeki-main into main 2024-03-09 10:28:52 +00:00
Johannes Kirschbauer
59de33b68a docs: improve start command 2024-03-09 11:25:11 +01:00
Johannes Kirschbauer
11cfc49d27 docs: improve readme for better onboarding 2024-03-09 10:58:12 +01:00
clan-bot
79e4cb344f Merge pull request 'clan-vm-manager: Fix ClanUrl not pickable' (#919) from Qubasa-main into main 2024-03-08 16:51:45 +00:00
Qubasa
372e212c0c clan_cli: Renamed ClanUrl to FlakeId 2024-03-08 23:47:27 +07:00
Qubasa
f4f3176374 clan-vm-manager: Fix ClanUrl not pickable 2024-03-08 23:23:18 +07:00
clan-bot
1e7f63fb05 Merge pull request 'clan_vm_manager: Starting rewrite of Machine class' (#917) from Qubasa-main into main 2024-03-08 15:06:19 +00:00
Qubasa
e4896814f2 clan_cli: Add TimeTable class to cmd.py. Fix bugs in Machine rewrite 2024-03-08 22:01:54 +07:00
Qubasa
068f89e453 clan_vm_manager: Rewrite of Machine Class Part 1 2024-03-08 15:32:12 +07:00
clan-bot
2532c780ab Merge pull request 'add flash command and tests' (#916) from Mic92-main into main 2024-03-07 16:29:11 +00:00
Jörg Thalheim
4dfe4ecfa6 fix building installer iso 2024-03-07 17:24:57 +01:00
Jörg Thalheim
3cc97ebc56 fix container tests 2024-03-07 14:13:11 +01:00
Jörg Thalheim
26dd962799 treefmt 2024-03-07 14:13:11 +01:00
Jörg Thalheim
93afd06bcb fix install test 2024-03-07 14:13:11 +01:00
Jörg Thalheim
f599243cbd add flash command 2024-03-07 14:13:11 +01:00
Jörg Thalheim
dd73406a92 installer: switch to systemd-boot
grub is not able to boot from the disks that we flash for weird reasons.
Since BIOS-boot is on life-support, we may as well just use systemd-boot.
2024-03-07 14:13:11 +01:00
Jörg Thalheim
ab2defa9e4 add confirmation prompt when installing 2024-03-07 14:13:11 +01:00
clan-bot
1cc5dc98d3 Merge pull request 'clan_cli: Rewrite ClanURI' (#915) from Qubasa-main into main 2024-03-07 12:12:28 +00:00
Qubasa
a17eb3e8a3 clan_vm_manager: Fix broken vm start 2024-03-07 19:09:01 +07:00
clan-bot
718c0a06e2 Merge pull request 'clan_cli: Rewrite ClanURI' (#914) from Qubasa-main into main 2024-03-07 12:08:16 +00:00
Qubasa
442e5b45ba clan_cli: Simplify ClanURI 2024-03-07 19:04:48 +07:00
Qubasa
93c868a3b7 clan_cli: Rewrite ClanURI 2024-03-07 16:41:37 +07:00
clan-bot
9f632e90c5 Merge pull request 'fix: typos' (#913) from a-kenji-fix/typos into main 2024-03-06 12:15:23 +00:00
a-kenji
94caea382f fix: typos 2024-03-06 13:11:49 +01:00
clan-bot
8d72a36298 Merge pull request 'clan_cli,clan_vm_manager: Moved profiler to clan_cli. Add cmd timer to see how long run commands take' (#912) from Qubasa-main into main 2024-03-06 10:15:37 +00:00
Qubasa
a6f652bdfc clan_cli,clan_vm_manager: Moved profiler to clan_cli. Add cmd timer to see how long run commands take 2024-03-06 17:12:20 +07:00
clan-bot
dcf7f2f733 Merge pull request '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' (#910) from Qubasa-main into main 2024-03-06 09:35:38 +00: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
clan-bot
ff8d08e4e4 Merge pull request 'drop meshnamed from repository' (#909) from Mic92-main into main 2024-03-06 09:05:41 +00:00
Jörg Thalheim
0481746198 drop meshnamed from repository
It's not super useful and we can always add it back later if we need it.
2024-03-06 10:02:21 +01:00
Jörg Thalheim
cb564059e2 bump disko 2024-03-06 09:51:02 +01:00
clan-bot
cee9beb8a9 Merge pull request 'clan-cli sops: accept bytes' (#891) from sops_bytes into main 2024-03-06 08:45:44 +00:00
clan-bot
c4c4cd3ba8 Merge pull request 'clan-vm-manager: Add register_on_change to GKVStore. Improve overall signal typing.' (#908) from Qubasa-main into main 2024-03-06 08:07:53 +00:00
Qubasa
fb21a7378d clan-vm-manager: Add register_on_change to GKVStore. Improve overall signal typing. 2024-03-06 15:05:10 +07:00
clan-bot
b9ae911246 Merge pull request 'clan_vm_manager: Fix incorrect detection of vm already in list' (#907) from Qubasa-main into main 2024-03-05 17:35:09 +00:00
Qubasa
6f590ce389 clan_vm_manager: Fix switch <-> vm status desync 2024-03-06 00:32:22 +07:00
Qubasa
cd5afa1329 clan_vm_manager: Fix join list not rerendering correctly when updating clan_store 2024-03-06 00:18:42 +07:00
Qubasa
0840fffe26 clan_vm_manager: Fix incorrect detection of vm already in list 2024-03-06 00:18:42 +07:00
clan-bot
1986ecc564 Merge pull request 'clan_vm_manager: Fix vms not shutting down after closing GTK app. Sync JoinList with ClanStore' (#906) from Qubasa-main into main 2024-03-05 16:13:26 +00:00
Qubasa
580c63e760 clan_vm_manager: Fix vms not shutting down after closing GTK app. Sync JoinList with ClanStore 2024-03-05 23:10:30 +07:00
clan-bot
06bc425797 Merge pull request 'secrets: fix typo' (#905) from a-kenji-fix-typo into main 2024-03-05 11:02:59 +00:00
a-kenji
603893872e secrets: fix typo 2024-03-05 11:59:55 +01:00
clan-bot
e6b494a849 Merge pull request 'clan_vm_manager: Add CUMTIME to profiler output' (#904) from Qubasa-main into main 2024-03-04 09:02:49 +00:00
Qubasa
cde72f3710 clan_vm_manager: Add CUMTIME to profiler output 2024-03-04 16:00:04 +07:00
clan-bot
5047b6686d Merge pull request 'clan_vm_manager: Cache profiler obj for multi call functions' (#903) from Qubasa-main into main 2024-03-04 08:55:47 +00:00
Qubasa
b77ffac4d4 clan_vm_manager: Cache profiler obj for multi call functions 2024-03-04 15:52:57 +07:00
clan-bot
b2d3ff4431 Merge pull request 'clan_vm_manager: Extracted VMObject to own component' (#901) from Qubasa-main into main 2024-03-04 07:14:16 +00:00
Qubasa
f70879aa63 clan_vm_manager: Add profiler component 2024-03-04 14:01:30 +07:00
Qubasa
31190ed8e5 clan_vm_manager: Extracted VMObject to own component 2024-03-04 12:38:20 +07:00
clan-bot
36dbb8fafd Merge pull request 'clan_vm_manager: Renamed Views to ViewStack' (#899) from Qubasa-main into main 2024-03-03 09:54:26 +00:00
Qubasa
47ae5981f6 clan_vm_manager: Renamed Views to ViewStack 2024-03-03 16:51:34 +07:00
clan-bot
11c3b6f353 Merge pull request 'clan_vm_manager: Renamed VMs singleton to ClanStore. And VM to VMObject' (#898) from Qubasa-main into main 2024-03-03 09:50:32 +00:00
Qubasa
191562a84e clan_vm_manager: Renamed VMs singleton to ClanStore. And VM to VMObject 2024-03-03 16:47:38 +07:00
clan-bot
06a54c21c3 Merge pull request 'clan_vm_manager: New directory structure' (#897) from Qubasa-main into main 2024-03-03 09:41:16 +00:00
Qubasa
359ad22c90 clan_vm_manager: New directory structure 2024-03-03 16:38:25 +07:00
clan-bot
754e0ca9e8 Merge pull request 'clan_vm_manager: Added suffix task to glib task functions' (#894) from Qubasa-main into main 2024-03-03 09:18:42 +00:00
Qubasa
8290660f20 clan_vm_manager: Improved readability of GKVStore 2024-03-03 16:15:50 +07:00
Qubasa
78a50c5d74 clan_vm_manager: Added suffix task to glib task functions 2024-03-03 16:01:08 +07:00
clan-bot
496555b405 Merge pull request 'clan-vm-manager: Fix incorrect use of all Glib.idle_add uses' (#893) from Qubasa-main into main 2024-03-03 08:55:43 +00:00
Qubasa
216e5a53d4 clan_vm_manager: Remove superfluous argument to build_vm 2024-03-03 15:52:56 +07:00
clan-bot
a1af14db57 Merge pull request 'clan-vm-manager: Fix incorrect use of all Glib.idle_add uses' (#892) from Qubasa-main into main 2024-03-03 08:49:07 +00:00
Qubasa
976b4a2c3a clan_vm_manager: Fix incorrect signal behaviour in GKVStore setitem 2024-03-03 15:47:00 +07:00
Qubasa
c6a2db15a7 clan_vm_manager: Fix dynamic join 2024-03-03 15:47:00 +07:00
Qubasa
6f80cee971 clan_cli: history_add now returns newly added HistoryEntry. clan-vm-manager: Join now uses signals instead of callbacks. 2024-03-03 15:47:00 +07:00
Qubasa
f17cf41093 clan-vm-manager: Fix incorrect use of all Glib.idle_add uses 2024-03-03 15:47:00 +07:00
Qubasa
483e2c05ea clan_vm_manager: Fix incorrect signal behaviour in GKVStore setitem 2024-03-03 15:44:16 +07:00
lassulus
11bf0b8b9e clan-cli sops: accept bytes 2024-03-03 09:25:40 +01:00
clan-bot
da34bd7199 Merge pull request 'clan_cli secrets generate: fix type in error msg' (#890) from interactive_secrets into main 2024-03-03 07:43:48 +00:00
lassulus
3478dea8b2 clan_cli secrets generate: fix type in error msg 2024-03-03 08:40:22 +01:00
Qubasa
ce3fc6973b clan_vm_manager: Fix dynamic join 2024-03-03 13:50:49 +07:00
clan-bot
c228d72da2 Merge pull request 'interactive_secrets' (#885) from interactive_secrets into main 2024-03-03 06:15:44 +00:00
Qubasa
127009b303 clan_cli: history_add now returns newly added HistoryEntry. clan-vm-manager: Join now uses signals instead of callbacks. 2024-03-03 12:47:18 +07:00
lassulus
ed653fa8b9 fix pyproject syntax, ignore E731 2024-03-03 06:20:08 +01:00
lassulus
b8da149453 clan-cli sops: fix super class interface compliance 2024-03-03 06:20:08 +01:00
lassulus
a23c251b09 clan-cli secrets: actually check if only service needs regeneration 2024-03-03 06:20:08 +01:00
Qubasa
bf214011cf clan-vm-manager: Fix incorrect use of all Glib.idle_add uses 2024-03-03 11:21:12 +07:00
lassulus
a1dcddf9b4 clan-cli: add interactive secrets/fact generation 2024-03-03 04:06:18 +01:00
lassulus
f500aee786 clanCore secrets: rename toplevel secret to service 2024-03-02 11:43:20 +01:00
lassulus
4cfd580447 outputs: pass secretsData directly 2024-03-02 11:43:20 +01:00
lassulus
b1a4b4de96 clan-cli vms run: remove unused vm arg 2024-03-02 11:20:05 +01:00
lassulus
108a37b0a3 clan-cli machines: cache machines_func via store 2024-03-02 11:20:05 +01:00
clan-bot
8c7db195ab Merge pull request 'devshells: cleanup' (#888) from DavHau-dave into main 2024-03-02 04:58:32 +00:00
DavHau
f7bb5d7aaf devshells: cleanup 2024-03-02 11:55:15 +07:00
clan-bot
8e9053cf80 Merge pull request 'rename lol.clan to org.clan' (#887) from Mic92-main into main 2024-03-01 11:55:24 +00:00
Jörg Thalheim
9ec66195eb rename lol.clan to org.clan 2024-03-01 12:52:05 +01:00
clan-bot
93475ab4b3 Merge pull request 'devShells: one global python devshell + activation via command' (#886) from DavHau-dave into main 2024-03-01 11:22:09 +00:00
DavHau
d1e8b1ed96 devShells: one global python devshell + activation via command
- this adds devShells.{system}.python
- a 'select-shell' command to switch between devshells
2024-03-01 18:16:38 +07:00
clan-bot
3acc4b4d25 Merge pull request 'clan_vm_manager: Add GKVStore to combat O(n2) runtimes. Add pygdb to devshell' (#884) from Qubasa-main into main 2024-03-01 03:49:53 +00:00
Qubasa
7932517b4a clan_vm_manager: Fix gdb package incompatible with aarch darwin 2024-03-01 10:46:35 +07:00
Qubasa
5f1191148e clan_vm_manager: Fix GLib.idle_add rexecuting the VM push multiple times because of missing GLib.SOURCE_REMOVE 2024-03-01 01:58:03 +07:00
Qubasa
d079bc85a8 clan_vm_manager: Working GKVStore that emulates the ListStore Object 2024-03-01 01:26:45 +07:00
Qubasa
df6683a0bd clan_vm_manager: Add GKVStore to combat O(n2) runtimes. Add pygdb to devshell 2024-02-29 22:46:09 +07:00
clan-bot
4b3b573e8c Merge pull request 'writers: fix bug by typo' (#883) from DavHau-dave into main 2024-02-27 15:25:28 +00:00
DavHau
e930e14238 writers: fix bug by typo 2024-02-27 22:21:42 +07:00
clan-bot
2ccf32c36b Merge pull request 'merge-after-ci: rewrite according to #814' (#882) from DavHau-dave into main 2024-02-27 11:35:26 +00:00
DavHau
398a61acbc merge-after-ci: rewrite according to #814 2024-02-27 18:32:11 +07:00
DavHau
fdedf40e27 formatting: exclude script-writers.nix
Was copied from nixpkgs -> Keeping the diff low in order to upstream easier
2024-02-27 18:20:33 +07:00
DavHau
45fd64a930 script-writers: add wrapping support (makeWrapperArgs) 2024-02-27 18:20:33 +07:00
DavHau
31722d9dc0 script-writers: init (copied from nixpkgs) 2024-02-27 18:20:33 +07:00
clan-bot
d804c6059d Merge pull request 'clan-vm-manager: Moved switch from list view to VM object.' (#881) from Qubasa-main into main 2024-02-26 20:56:55 +00:00
Qubasa
4d1437b5cc clan-vm-manager: Moved switch from list view to VM object. 2024-02-27 03:53:19 +07:00
clan-bot
58bc8d162d Merge pull request 'Automatic flake update - 2024-02-26T00:00+00:00' (#880) from flake-update-2024-02-26 into main 2024-02-26 09:22:27 +00:00
DavHau
d12019d290 fix formatting 2024-02-26 16:19:30 +07:00
Clan Merge Bot
1918cfd707 update flake lock - 2024-02-26T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/d07de570ba05cec2807d058daaa044f6955720c7' (2024-02-10)
  → 'github:nix-community/disko/23d308f0059955e3719efc81a34d1fc0369fbb74' (2024-02-22)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/843e2f04c716092797ffa4ce14c446adce2f09ef' (2024-02-08)
  → 'github:nix-community/nixos-generators/f4631dee1a0fd56c0db89860e83e3588a28c7631' (2024-02-22)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/f5af57d3ef9947a70ac86e42695231ac1ad00c25' (2023-09-03)
  → 'github:nix-community/nixpkgs.lib/e623008d8a46517470e6365505f1a3ce171fa46a' (2024-02-18)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bdc57436da855500d44e9c1ce7450c0772e1cfa1' (2024-02-11)
  → 'github:NixOS/nixpkgs/2a34566b67bef34c551f204063faeecc444ae9da' (2024-02-25)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/2eb7c4ba3aa75e2660fd217eb1ab64d5b793608e' (2024-02-11)
  → 'github:Mic92/sops-nix/2874fbbe4a65bd2484b0ad757d27a16107f6bc17' (2024-02-25)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/ac599dab59a66304eb511af07b3883114f061b9d' (2024-02-07)
  → 'github:numtide/treefmt-nix/e497a9ddecff769c2a7cbab51e1ed7a8501e7a3a' (2024-02-25)
2024-02-26 00:00:15 +00:00
clan-bot
067da45082 Merge pull request 'clan-vm-manager: Fix ui state desync on build error. Add build progress bar' (#879) from Qubasa-main into main 2024-02-25 19:03:44 +00:00
Qubasa
0a8b8713d9 clan-vm-manager: Fix ui state desync on build error. Add build progress bar 2024-02-26 01:59:45 +07:00
clan-bot
4993b98258 Merge pull request 'clan_vm_manager: Fix qmp shutdown command, bad socket error on retried shutdown' (#878) from Qubasa-main into main 2024-02-25 18:21:43 +00:00
Qubasa
183c1f4235 clan_vm_manager: Fix qmp shutdown command, bad socket error on retried shutdown 2024-02-26 01:18:13 +07:00
clan-bot
ea7b0c8b90 Merge pull request 'clan_vm_manager: Improve VM start and stop switch. Switch will be disabled while stopping vm' (#877) from Qubasa-main into main 2024-02-25 18:11:38 +00:00
Qubasa
27b9c8915b clan_vm_manager: Improve VM start and stop switch. Switch will be disabled while stopping vm 2024-02-26 01:04:09 +07:00
clan-bot
36771f3ecd Merge pull request 'Also commit files when adding machines/users or removing secrets' (#876) from Mic92-main into main 2024-02-22 15:15:21 +00:00
Jörg Thalheim
52fcc91479 Also commit files when adding machines/users or removing secrets 2024-02-22 16:12:11 +01:00
Jörg Thalheim
65d2a4e081 secrets: commit when renaming secrets 2024-02-22 15:59:12 +01:00
Mic92
9dc362437c Merge pull request 'borgbackup: drop comment from string' (#875) from Mic92-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/875
2024-02-22 14:45:07 +00:00
Jörg Thalheim
6eb8fe47c4 borgbackup: drop comment from string
Looks weird in the logs.
2024-02-22 14:45:07 +00:00
Jörg Thalheim
7208d63e78 borgbackup: drop comment from string
Looks weird in the logs.
2024-02-22 15:42:19 +01:00
clan-bot
01f1a6900a Merge pull request 'print backup archive ids instead of bare objects' (#874) from Mic92-main into main 2024-02-22 14:29:47 +00:00
Jörg Thalheim
12ce8238f1 print backup archive ids instead of bare objects 2024-02-22 15:26:20 +01:00
clan-bot
c5071bc212 Merge pull request 'encrypt backups by default' (#873) from Mic92-main into main 2024-02-22 14:06:07 +00:00
Jörg Thalheim
81fc60eef8 encrypt backups by default 2024-02-22 15:03:22 +01:00
clan-bot
bb25e136c3 Merge pull request 'secret cli: accept a pattern in secrets list' (#872) from Mic92-main into main 2024-02-22 13:25:07 +00:00
Jörg Thalheim
a1e2a4f64a secret cli: accept a pattern in secrets list 2024-02-22 14:21:53 +01:00
clan-bot
943c19939a Merge pull request 'borgbackup: use persistent timers' (#871) from Mic92-main into main 2024-02-22 12:50:25 +00:00
Jörg Thalheim
17d7eec0ae borgbackup: use persistent timers 2024-02-22 13:47:09 +01:00
clan-bot
7b4e76df29 Merge pull request 'add lychee link checker' (#870) from Mic92-main into main 2024-02-21 16:21:48 +00:00
Jörg Thalheim
1cb33a5c6c add lychee link checker 2024-02-21 17:18:28 +01:00
clan-bot
cd11f6ad10 Merge pull request 'Updating contribution documentation' (#869) from Mic92-main into main 2024-02-21 16:05:50 +00:00
Jörg Thalheim
67ceba6637 Updating contribution documentation 2024-02-21 17:02:13 +01:00
Jörg Thalheim
1330c60190 drop obsolete documentation 2024-02-21 17:02:13 +01:00
clan-bot
e8d4cd9936 Merge pull request 'drop obsolete documentation' (#868) from Mic92-main into main 2024-02-21 15:54:47 +00:00
Jörg Thalheim
537a1ae87f drop obsolete documentation 2024-02-21 16:51:27 +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
Jörg Thalheim
1356ca9b8c fix cross-system deploy
This allows to be nixpkgs.pkgs and deploy systems of a different arch.
2024-02-21 10:55:53 +01:00
clan-bot
df8074100d Merge pull request 'README: fix links harder' (#866) from fix_links into main 2024-02-21 09:25:12 +00:00
clan-bot
d441f1d60c Merge pull request 'clan-vm-manager: Fix double instantiation of Singleton. clan_cli: Shorten filepath of logging messages' (#865) from Qubasa-main into main 2024-02-21 09:23:21 +00:00
lassulus
a0097dab66 README: fix links harder 2024-02-21 10:22:09 +01:00
Qubasa
6c17fa648f clan_cli: Add exception handling in logger 2024-02-21 16:20:01 +07:00
Qubasa
51b087f7ae clan-vm-manager: Fix double instantiation of Singleton. clan_cli: Shorten filepath of logging messages 2024-02-21 16:16:58 +07:00
clan-bot
c340831edd Merge pull request 'README: fix links' (#864) from fix_links into main 2024-02-21 09:15:49 +00:00
lassulus
c3dc315576 README: fix links 2024-02-21 10:12:41 +01:00
clan-bot
ff3a1dc928 Merge pull request 'secret_store: drop update_check and generate_hash as abstract methods' (#863) from Mic92-target_host into main 2024-02-20 18:01:51 +00:00
Jörg Thalheim
3695a5adf2 disable vgpu on non-nixos systems 2024-02-20 18:58:38 +01:00
Jörg Thalheim
4d404cfc50 secret_store: drop update_check and generate_hash as abstract methods
Only password implements those just now
2024-02-20 18:58:38 +01:00
clan-bot
7091b09fa7 Merge pull request 'secrets: add git support when updating secrets' (#862) from Mic92-target_host into main 2024-02-20 11:45:13 +00:00
Jörg Thalheim
77c84e7471 secrets: add git support when updating secrets 2024-02-20 12:41:52 +01:00
clan-bot
413e172cbd Merge pull request 'abstract_fixes' (#861) from abstract_fixes into main 2024-02-20 10:51:42 +00:00
lassulus
3b975ed993 clan-cli SecretStore: remove generate_hash from base class 2024-02-20 11:48:13 +01:00
lassulus
36baec8d48 clan-cli SecretStore: implement update_check in base class 2024-02-20 11:47:53 +01:00
clan-bot
eb8d5167e7 Merge pull request 'sops: unbreak edit flags' (#860) from Mic92-target_host into main 2024-02-20 10:18:17 +00:00
Jörg Thalheim
b358089488 sops: unbreak edit flags 2024-02-20 11:07:00 +01:00
clan-bot
36b20f18d4 Merge pull request 'add option to set defaultGroups for secrets' (#858) from Mic92-target_host into main 2024-02-16 16:29:28 +00:00
Jörg Thalheim
52c6ad548d improve error message if group does not exists 2024-02-16 17:26:20 +01:00
Jörg Thalheim
57e9b27ff8 add option to set defaultGroups for secrets 2024-02-16 17:26:20 +01:00
clan-bot
661004972b Merge pull request 'make secrets stores inherit from an interface' (#857) from Mic92-target_host into main 2024-02-16 14:00:20 +00:00
Jörg Thalheim
714f3b0378 upload_secrets: call update_check directly without introspection 2024-02-16 14:57:01 +01:00
Jörg Thalheim
87f301122e split of generate_secrets method into smaller functions 2024-02-16 14:48:46 +01:00
Jörg Thalheim
53d658a3c0 make facts stores inherit from an interface 2024-02-16 14:47:39 +01:00
Jörg Thalheim
9257f140ba make secrets stores inherit from an interface 2024-02-16 14:47:28 +01:00
clan-bot
b68e39e8fa Merge pull request 'demo script' (#856) from Qubasa-HEAD into main 2024-02-16 10:55:02 +00:00
Qubasa
c566872f05 Working demo script 2024-02-16 17:51:55 +07:00
Qubasa
446039b02b Working demo script 2024-02-16 17:47:34 +07:00
Qubasa
5a69bbe93e demo script 2024-02-16 17:47:05 +07:00
clan-bot
a715364338 Merge pull request 'clan-vm-manager: Added clan icon to trayicon' (#855) from Qubasa-main into main 2024-02-16 09:14:08 +00:00
Qubasa
280bee0861 clan-vm-manager: Fixing vm starting. 2024-02-16 16:10:49 +07:00
clan-bot
7bf1c0e42a Merge pull request 'waypipe: disable gpu for now' (#854) from Mic92-target_host into main 2024-02-16 08:55:35 +00:00
Jörg Thalheim
81545766a0 update comments about virtio-gpu 2024-02-16 09:52:13 +01:00
Jörg Thalheim
4e0ae54471 waypipe: disable gpu for now 2024-02-16 09:50:53 +01:00
Qubasa
4f7f34f9b4 clan-vm-manager: Added clan icon to trayicon 2024-02-16 12:25:06 +07:00
clan-bot
7fe38a9a80 Merge pull request 'add waypipe user to video group' (#853) from Mic92-target_host into main 2024-02-15 18:41:04 +00:00
Jörg Thalheim
95820905f9 waypipe: add fixed uid for user 2024-02-15 19:33:01 +01:00
Mic92
be77d365e7 Merge pull request 'add waypipe user to video group' (#852) from Mic92-target_host into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/852
2024-02-15 18:31:39 +00:00
Jörg Thalheim
897acfaf6b add waypipe user to video group 2024-02-15 18:31:39 +00:00
Jörg Thalheim
30cb4c0eed add waypipe user to video group 2024-02-15 19:30:51 +01:00
clan-bot
50c8c2070b Merge pull request 'vms: move qemu_command to its own module' (#851) from Mic92-target_host into main 2024-02-15 16:30:01 +00:00
Jörg Thalheim
0200016dd2 vms: move qemu_command to its own module 2024-02-15 17:25:24 +01:00
clan-bot
658758302a Merge pull request 'vms: smaller cleanups' (#850) from Mic92-target_host into main 2024-02-15 16:23:24 +00: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
clan-bot
eacda36bb3 Merge pull request 'fix fact store' (#849) from Mic92-target_host into main 2024-02-15 11:27:59 +00:00
Jörg Thalheim
4943c33307 add file prefix for nix 2.19 or newer 2024-02-15 12:24:18 +01:00
clan-bot
2e900d943d Merge pull request 'waypipe: add more environment variables' (#848) from a-kenji-wayland-module-env-add into main 2024-02-15 10:09:12 +00:00
a-kenji
d7d33f6c25 waypipe: add more environment variables 2024-02-15 11:03:27 +01:00
clan-bot
58073375e4 Merge pull request 'add factsStore modules' (#839) from fact_store into main 2024-02-15 09:46:01 +00:00
lassulus
6871b29d15 vms: use vm fact/secret-store 2024-02-15 10:41:25 +01:00
lassulus
98139ac48d add factsStore modules 2024-02-15 10:41:25 +01:00
clan-bot
f9f428b960 Merge pull request 'waypipe: add wayland environment' (#847) from a-kenji-wayland-module-env into main 2024-02-15 09:01:49 +00:00
a-kenji
99bda8e099 waypipe: add wayland environment 2024-02-15 09:58:56 +01:00
clan-bot
06721b0c5a Merge pull request 'optimize filesystem mount flags' (#846) from Mic92-target_host into main 2024-02-14 12:06:47 +00:00
Jörg Thalheim
7cab50c088 optimize filesystem mount flags
perf!
2024-02-14 13:01:47 +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
Qubasa
30850eef22 clan_cli: Added longer timeout for test 2024-02-14 15:40:03 +07:00
clan-bot
de69d3139b Merge pull request 'waypipe: rename systemd unit' (#845) from a-kenji-waypipe/rename-system-service into main 2024-02-13 15:45:29 +00:00
a-kenji
5ef2257ed1 waypipe: rename systemd unit 2024-02-13 16:42:29 +01:00
clan-bot
436e4e3882 Merge pull request 'waypipe: improve default module' (#844) from a-kenji-improve/module/waypipe into main 2024-02-13 15:40:11 +00:00
a-kenji
3ba4954c8d waypipe: improve default module 2024-02-13 16:37:14 +01:00
clan-bot
82e5e57e20 Merge pull request 'Fix demo script' (#843) from a-kenji-demo/improve/script into main 2024-02-13 15:18:23 +00:00
a-kenji
91c36a33da Fix demo script
The `--wayland` cli option is now a module option.
2024-02-13 16:15:36 +01:00
clan-bot
2f567db623 Merge pull request 'waypipe: improve default module' (#842) from a-kenji-waypipe/improve into main 2024-02-13 15:08:03 +00:00
a-kenji
e46315cab8 waypipe: improve default module 2024-02-13 16:02:46 +01:00
clan-bot
2c90664456 Merge pull request 'vms: enable sysusers' (#841) from Mic92-target_host into main 2024-02-13 13:20:02 +00:00
Jörg Thalheim
7a3fcd3deb vms: enable sysusers 2024-02-13 14:14:54 +01:00
clan-bot
2744d5724b Merge pull request 'switch to sops-nix experimental branch' (#832) from Mic92-target_host into main 2024-02-13 13:01:01 +00:00
Jörg Thalheim
952f976ea7 fix virtiofsd in CIs 2024-02-13 13:57:52 +01:00
Jörg Thalheim
b15c21f800 drop check for /var/lib/nixos 2024-02-13 12:44:22 +01:00
Jörg Thalheim
7cfce69504 demo.sh: make relative path configureable 2024-02-13 11:45:42 +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
a56dc3bf8c simplify vmstate directory 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
03b9183e04 clan_cli: Added lazy qmp 2024-02-13 16:44:09 +07:00
Qubasa
92ec3fb9f9 test_vms_cli: Trying new way of testing 2024-02-13 16:44:09 +07:00
Qubasa
87dbc99cab clan_cli: Made qmp implementation lazy 2024-02-13 16:44:09 +07:00
Qubasa
ef6d7cee1a clan_vm_manager: started spinner. not fully working yet 2024-02-13 16:44:09 +07:00
Qubasa
4d1bde083a UI: Improve README 2024-02-13 16:44:09 +07:00
Qubasa
403b874522 clan_vm_manager: --debug enables debug mode in clan_cli too 2024-02-13 16:44:09 +07:00
clan-bot
0dadae9087 Merge pull request 'update flake lock' (#838) from Qubasa-main into main 2024-02-12 12:03:30 +00:00
lassulus
b39c860379 fix borgbackup check
we need to switch to the classical test environment again, because borg
was complaining otherwise
2024-02-12 12:59:32 +01:00
Qubasa
7d301b7e3c update flake lock 2024-02-12 14:52:01 +07:00
clan-bot
33787a6aab Merge pull request 'UI: Added tray icon' (#831) from Qubasa-main into main 2024-02-12 07:19:59 +00:00
Qubasa
0ce8bcd018 clan_vm_manager: Added VM shutdown timeout 2024-02-12 14:16:44 +07:00
Qubasa
7b48535a98 UI: Added tray icon 2024-02-12 13:43:54 +07:00
clan-bot
f166da1621 Merge pull request 'allow passing of extra_config into machines' (#834) from lassulus-extra_config into main 2024-02-11 07:43:52 +00:00
lassulus
eebd9d0b4a allow passing of extra_config into machines 2024-02-11 08:40:41 +01:00
lassulus
10cbe11e53 nixosModules clanCore: fix iso format 2024-02-10 13:27:51 +01:00
clan-bot
2530ba52ac Merge pull request 'waypipe: add more default settings' (#836) from a-kenji-waypipe/add into main 2024-02-10 12:24:55 +00:00
a-kenji
798bbe188c waypipe: add more default settings 2024-02-10 13:22:16 +01:00
clan-bot
237d7aee4a Merge pull request 'clanModules: add waypipe service' (#835) from a-kenji-init/waypipe into main 2024-02-10 12:03:49 +00:00
a-kenji
105209cfb9 clanModules: add waypipe service 2024-02-10 12:32:06 +01:00
clan-bot
cc8d6b281b Merge pull request 'vms: init graceful shutdown for GUI' (#833) from DavHau-dave into main 2024-02-09 12:58:52 +00: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
clan-bot
6af8423f1e Merge pull request 'UI: Fixed incorrect display of cLAN icon in window switcher' (#830) from Qubasa-main into main 2024-02-08 08:08:28 +00:00
Qubasa
8a9d3d3230 UI: Fixed incorrect display of cLAN icon in window switcher 2024-02-08 15:00:36 +07:00
clan-bot
13457eca0a Merge pull request 'Clan VM Manager: add dropdown to add more machines' (#827) from hsjobeki-main into main 2024-02-08 07:40:06 +00:00
Johannes Kirschbauer
0221e7176b Clan VM Manager: add dropdown to add more machines 2024-02-08 14:36:47 +07:00
clan-bot
7326862c1a Merge pull request 'UI: Improved Join card display' (#829) from Qubasa-main into main 2024-02-08 07:31:30 +00:00
Qubasa
0ee4dcd782 UI: Improved Join card display 2024-02-08 14:28:34 +07:00
clan-bot
e0ed00ef5c Merge pull request 'UI: Fixed style.css not working when installed' (#828) from Qubasa-main into main 2024-02-08 07:13:06 +00:00
Qubasa
a2ce341995 UI: Fixed style.css not working when installed 2024-02-08 14:10:17 +07:00
clan-bot
6ddb8dfe9d Merge pull request 'UI: Added joining multiple clans one after another over clan url' (#826) from Qubasa-main into main 2024-02-07 10:19:01 +00:00
Qubasa
10578e7611 UI: Added joining multiple clans one after another over clan url 2024-02-07 17:16:20 +07:00
clan-bot
96b98dcbed Merge pull request 'Clan VM Manager: detect if clan exists' (#825) from hsjobeki-main into main 2024-02-07 09:20:33 +00:00
Johannes Kirschbauer
030cbd24ce Clan VM Manager: detect if clan exists 2024-02-07 16:08:48 +07:00
clan-bot
045c5e608b Merge pull request 'Clan VM Manager: init per vm settings handler' (#824) from hsjobeki-main into main 2024-02-07 08:43:58 +00:00
Johannes Kirschbauer
d20902cef4 Clan VM Manager: init per vm settings handler 2024-02-07 15:41:18 +07:00
clan-bot
a1a433b654 Merge pull request 'clan_manager: UI is now a singelton.' (#822) from Qubasa-main into main 2024-02-07 05:06:11 +00:00
Qubasa
869c01bf95 clan_manager: UI is now a singelton. 2024-02-07 12:03:12 +07:00
clan-bot
68ac0cd3ec Merge pull request 'clan-cli: add simple flash command' (#821) from lassulus-flaash into main 2024-02-07 04:31:52 +00:00
lassulus
67d264263c nixosModules zerotier: remove unneeded default 2024-02-07 05:26:01 +01:00
lassulus
b780754621 clan-cli: add simple flash command 2024-02-07 05:26:01 +01:00
clan-bot
cd45bb3174 Merge pull request 'add requireExplicitUpdate option for mobile devices' (#820) from Mic92-target_host into main 2024-02-06 16:59:03 +00:00
Jörg Thalheim
6fe6229498 add requireExplicitUpdate option for mobile devices 2024-02-06 17:55:34 +01:00
clan-bot
7c598e6278 Merge pull request 'document build host option' (#819) from Mic92-target_host into main 2024-02-06 16:30:04 +00:00
Jörg Thalheim
531a899817 document build host option 2024-02-06 17:27:06 +01:00
clan-bot
e912b125c3 Merge pull request 'remove unused ssh.run method' (#818) from Mic92-target_host into main 2024-02-06 16:24:47 +00:00
Jörg Thalheim
614d1aecfd set nixpkgs.pkgs for secrets generation
This allows us to use the same nixpkgs instance for all machines.
2024-02-06 17:21:42 +01:00
Jörg Thalheim
be3a75bbd7 add support for build machines 2024-02-06 17:21:42 +01:00
Jörg Thalheim
2315dba2a9 rename machine.host to machine.target_host 2024-02-06 17:21:42 +01:00
Jörg Thalheim
6e57122da8 rename target_host to target_host_address 2024-02-06 17:21:42 +01:00
Jörg Thalheim
301a6b6a23 machines/update: get flake_attr from machine class 2024-02-06 17:21:42 +01:00
Jörg Thalheim
a2f0d077c8 remove unused ssh.run method 2024-02-06 15:47:32 +01:00
clan-bot
8234f127e5 Merge pull request 'machines: don't ignore errors when parsing secretsData json' (#817) from Mic92-target_host into main 2024-02-06 14:18:38 +00:00
Jörg Thalheim
c66c25aeb7 machines: don't ignore errors when parsing secretsData json 2024-02-06 15:15:21 +01:00
clan-bot
534ebb6094 Merge pull request 'skip machines without target_host when running clan machines update' (#816) from Mic92-target_host into main 2024-02-06 14:07:31 +00:00
Jörg Thalheim
91f26a4743 skip machines without target_host when running clan machines update 2024-02-06 15:04:19 +01:00
clan-bot
71d14eb178 Merge pull request 'move checks if targetHost/buildHost is set to cli' (#815) from Mic92-target_host into main 2024-02-06 13:54:50 +00:00
Jörg Thalheim
ad1a87fc14 move checks if targetHost/buildHost is set to cli 2024-02-06 14:51:44 +01:00
clan-bot
35bb076729 Merge pull request 'clan_manager: Implemented machine_icon, machine_description' (#813) from Qubasa-main into main 2024-02-06 13:16:31 +00:00
Qubasa
ab05cfde30 clan_manager: Implemented machine_icon, machine_description 2024-02-06 20:13:18 +07:00
clan-bot
4d18ce2366 Merge pull request 'cli,nix: Add machine_icon, machine_description to vm' (#812) from Qubasa-main into main 2024-02-06 12:29:32 +00:00
Qubasa
21443d0647 cli,nix: Add machine_icon, machine_description 2024-02-06 19:25:34 +07:00
clan-bot
868aba47b5 Merge pull request 'clanCore: fix deploymentAddress -> targetHost alias' (#811) from Mic92-target_host into main 2024-02-06 09:57:56 +00:00
Jörg Thalheim
923696c21c clanCore: fix deploymentAddress -> targetHost alias 2024-02-06 10:55:07 +01:00
clan-bot
99c432fcb8 Merge pull request 'Automatic flake update - 2024-02-05T00:00+00:00' (#804) from flake-update-2024-02-05 into main 2024-02-06 04:20:53 +00:00
Clan Merge Bot
3b5465d24d update flake lock - 2024-02-05T00:00+00:00
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/07f6395285469419cf9d078f59b5b49993198c00' (2024-01-11)
  → 'github:hercules-ci/flake-parts/b253292d9c0a5ead9bc98c4e9a26c6312e27d69f' (2024-02-01)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/50071d87c75300c037e28439c5176c3933b9fce5' (2024-01-28)
  → 'github:NixOS/nixpkgs/5d75993fa5feaa333f3eadd83e0a08fc34432acc' (2024-02-04)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/73bf36912e31a6b21af6e0f39218e067283c67ef' (2024-01-28)
  → 'github:Mic92/sops-nix/23f61b897c00b66855074db471ba016e0cda20dd' (2024-02-04)
2024-02-06 04:17:06 +00:00
clan-bot
6a62018f1d Merge pull request 'build-clan: Removed unecessary arg, machineDescription and machineIcon' (#810) from Qubasa-main into main 2024-02-05 09:58:58 +00:00
Qubasa
4421797f30 build-clan: Removed unecessary arg, machineDescription and machineIcon 2024-02-05 16:56:13 +07:00
clan-bot
bfd525b042 Merge pull request 'clan-cli: add autocommits for facts/secrets' (#809) from lassulus-autocommits into main 2024-02-05 09:08:29 +00:00
lassulus
815527ec2b clan-cli secrets: commit facts/secrets after generating them 2024-02-05 10:03:10 +01:00
lassulus
e265537f69 clan-cli secrets: remove debug output 2024-02-05 10:03:10 +01:00
lassulus
8114cebaa4 clan-cli git: add commit_files function 2024-02-05 10:03:10 +01:00
clan-bot
0e076e52c8 Merge pull request 'vm_manager: Fixed uri join and then vm start not working' (#808) from Qubasa-main into main 2024-02-05 09:01:21 +00:00
Qubasa
fd44eeb384 vm_manager: Fixed uri join and then vm start not working 2024-02-05 15:57:14 +07:00
clan-bot
08c1e13dce Merge pull request 'async join' (#807) from hsjobeki-main into main 2024-02-05 08:07:51 +00:00
Johannes Kirschbauer
c52c83002c async join 2024-02-05 15:05:14 +07:00
clan-bot
1a8a6acfb1 Merge pull request 'Added machineIcon and machineDescription to buildClan' (#806) from Qubasa-main into main 2024-02-05 07:21:18 +00:00
Qubasa
b3815527a5 Added machineIcon and machineDescription to buildClan 2024-02-05 14:18:40 +07:00
clan-bot
fc50d8748a Merge pull request 'Starting to implement logs' (#799) from Qubasa-main into main 2024-02-05 06:40:26 +00:00
Qubasa
38cadd0ab2 Added --debug flag clan command in nix tests 2024-02-05 13:37:35 +07:00
Qubasa
33a10f76c0 UI: Fixed multiple connects to signal 2024-02-05 13:37:35 +07:00
clan-bot
2c00ccaea6 Merge pull request 'nixosModules zerotier: fix type of dns' (#805) from lassulus-zerotier-dns into main 2024-02-05 01:35:04 +00:00
lassulus
a2eb6f219d nixosModules zerotier: fix type of dns 2024-02-05 02:31:14 +01:00
clan-bot
ae256b666e Merge pull request 'clanCore zerotier: set default values in config for merging' (#803) from lassulus-zerotier-settings2 into main 2024-02-03 08:29:06 +00:00
lassulus
b39fda8d85 clanCore zerotier: set default values in config for merging 2024-02-03 09:26:04 +01:00
clan-bot
eaf2ac3c5c Merge pull request 'clan-cli update: upload only local paths from localhost' (#802) from lassulus-fast_flake_archive into main 2024-02-03 06:56:37 +00:00
lassulus
31188648f0 clan-cli update: remove legacy argument 2024-02-03 07:53:15 +01:00
lassulus
6a62065cdf clan-cli update: upload only local paths from localhost 2024-02-03 07:53:15 +01:00
clan-bot
20257b88ed Merge pull request 'clanCore zerotier: add settings option' (#801) from lassulus-zerotier-settings into main 2024-02-03 03:51:53 +00:00
lassulus
a52f1e3594 clanCore zerotier: add settings option 2024-02-03 04:48:54 +01:00
clan-bot
3bff29b9fe Merge pull request 'clan-cli: secrets check command' (#800) from lassulus-check_secrets into main 2024-02-02 16:43:25 +00:00
lassulus
315cdea6ce clan-cli machines: remove debug prints 2024-02-02 17:40:19 +01:00
lassulus
605b03bb91 clan-cli password-store: remove debug print 2024-02-02 17:40:19 +01:00
lassulus
bcdde990ff clan-cli secrets: add check command 2024-02-02 17:40:19 +01:00
clan-bot
841581bfc4 Merge pull request 'rename deployment address to target address' (#798) from Mic92-target_host into main 2024-02-02 09:42:29 +00:00
Jörg Thalheim
3538cf2e46 rename deployment address to target address
This is a prepares having a build server for deployment
2024-02-02 16:39:29 +07:00
clan-bot
7daca31db7 Merge pull request 'Starting to implement logs' (#796) from Qubasa-main into main 2024-02-02 05:07:39 +00:00
Qubasa
16562946fe vm-manager: Added log console printing on vm start. Added python logging module 2024-02-02 12:04:30 +07:00
clan-bot
789f3132c5 Merge pull request 'multi join via cli' (#795) from hsjobeki-main into main 2024-02-02 04:01:49 +00:00
Johannes Kirschbauer
e57169cb29 multi join via cli 2024-02-02 10:58:28 +07:00
clan-bot
90cf41c365 Merge pull request 'halalify zerotierone' (#794) from lassulus-halalify into main 2024-02-01 14:46:53 +00:00
lassulus
b4c6092cc0 halalify zerotierone 2024-02-01 15:44:13 +01:00
clan-bot
79a8c40f40 Merge pull request 'zerotier generate: kill process group' (#793) from lassulus-zerotier-kill-pg into main 2024-02-01 09:14:17 +00:00
lassulus
86b248d457 zerotier generate: retry if port allocation fails 2024-02-01 10:11:30 +01:00
clan-bot
b43a29dadc Merge pull request 'zerotier generate: kill process group' (#792) from lassulus-zerotier-kill-pg into main 2024-02-01 09:06:22 +00:00
lassulus
93874705fe zerotier generate: kill process group 2024-02-01 10:01:28 +01:00
clan-bot
59feea9e8a Merge pull request 'qemu: init python modules for qmp and qga' (#790) from DavHau-dave into main 2024-02-01 05:40:06 +00:00
DavHau
56b6907740 qemu: init python modules for qmp and qga 2024-02-01 12:32:21 +07:00
Qubasa
14917b7d56 Starting to implement logs 2024-02-01 10:21:58 +07:00
clan-bot
cc21108c59 Merge pull request 'vms: rename wayland attrs to waypipe' (#789) from a-kenji-rename-wayland-to-waypipe into main 2024-02-01 03:17:12 +00: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
clan-bot
cdeb409c53 Merge pull request 'vms: wayland attr specified in configuration' (#787) from a-kenji-allow/wayland-in-config into main 2024-02-01 02:06:52 +00:00
a-kenji
f89c9b00dd vms: wayland attr specified in configuration 2024-02-01 09:00:43 +07:00
clan-bot
110e790246 Merge pull request 'syncthing: remember auto accepted folders, if introduced' (#786) from a-kenji-syncthing-default-accept into main 2024-01-31 15:39:50 +00:00
a-kenji
c81e9857da syncthing: remember auto accepted folders, if introduced
Makes it more compatible with restoring state
2024-01-31 22:24:46 +07:00
clan-bot
b5edd7ca08 Merge pull request 'group clans by url' (#783) from hsjobeki-main into main 2024-01-31 04:23:15 +00:00
Johannes Kirschbauer
c1bc1c942a group clans by url 2024-01-31 11:20:35 +07:00
clan-bot
6107b01a3f Merge pull request 'vm-state: fix and improve testing' (#782) from DavHau-dave into main 2024-01-31 04:07:41 +00: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
clan-bot
c69f68feee Merge pull request 'syncthing: make inotify tuning overrideable' (#781) from a-kenji-syncthing-inotify into main 2024-01-31 03:47:06 +00:00
a-kenji
dd460e9f4f syncthing: make inotify tuning overrideable 2024-01-31 10:44:31 +07:00
clan-bot
b99f569973 Merge pull request 'some minor secrets fixups' (#780) from lassulus-secrets-fixes into main 2024-01-30 11:13:35 +00:00
lassulus
961eb26335 secrets modules: pass secrets as bytes 2024-01-30 12:11:05 +01:00
lassulus
0dbfe52d62 secrets: add sandbox user 2024-01-30 12:11:05 +01:00
clan-bot
a0ebf882c5 Merge pull request 'Machine __str__ impl' (#779) from Qubasa-heads/origin/Qubasa-fix into main 2024-01-30 08:38:51 +00:00
Qubasa
649e345585 Machine __str__ impl 2024-01-30 15:32:35 +07:00
clan-bot
1f108f8913 Merge pull request 'Added demo.sh to prepare demo environment' (#777) from Qubasa-origin/Qubasa-fix into main 2024-01-30 08:04:49 +00:00
Qubasa
a3207f7011 UI: Fixed toggle button color on second time not changing 2024-01-30 15:02:05 +07:00
Qubasa
45e8917679 Added demo.sh to prepare demo environment 2024-01-30 14:42:22 +07:00
clan-bot
c9b2deb326 Merge pull request 'Demo version' (#776) from Qubasa-main into main 2024-01-30 07:05:55 +00:00
Qubasa
c00e5b3df3 Demo version 2024-01-30 14:02:52 +07:00
clan-bot
4e30c4cfff Merge pull request 'URI: Fixed removed url fragment' (#775) from Qubasa-main into main 2024-01-30 06:31:29 +00:00
Qubasa
52f5c890cc URI: Fixed removed url fragment 2024-01-30 13:28:12 +07:00
clan-bot
170c461ba1 Merge pull request 'CLI: Added grouping output for clan history list.' (#774) from Qubasa-main into main 2024-01-30 05:43:02 +00:00
Qubasa
a50d0f1743 CLI: Added grouping output for clan history list. 2024-01-30 12:39:52 +07:00
clan-bot
541f8be7b7 Merge pull request 'Fixed clan uri. Expand user, then resolve' (#773) from Qubasa-main into main 2024-01-30 05:20:52 +00:00
Qubasa
119a05d999 Fixed clan uri. Expand user, then resolve 2024-01-30 12:17:24 +07:00
clan-bot
c7b9db8b49 Merge pull request 'clan-cli: implement waypipe backend' (#772) from Mic92-main into main 2024-01-30 03:42:07 +00:00
Jörg Thalheim
c417157941 clan-cli: implement waypipe backend 2024-01-30 10:37:52 +07:00
Jörg Thalheim
9fef40258a cmd: skip print for zero-length bufs 2024-01-30 10:30:25 +07:00
Jörg Thalheim
a3d92a766e clan-cli: drop unused variables 2024-01-30 10:30:25 +07:00
Jörg Thalheim
80a335eb4c drop unused unfree_nixpkgs function 2024-01-30 10:30:25 +07:00
clan-bot
846d2c0f44 Merge pull request 'syncthing: add inotify' (#771) from a-kenji-syncthing/add/initify into main 2024-01-29 10:26:55 +00:00
a-kenji
dc4e9d8dd7 syncthing: add inotify 2024-01-29 11:23:32 +01:00
clan-bot
02045c589d Merge pull request 'clan-cli machines: get flake path via flake metadata' (#770) from lassulus-flake_dir into main 2024-01-29 09:17:26 +00:00
lassulus
0366147235 clan-cli machines: get flake path via flake metadata 2024-01-29 09:54:30 +01:00
clan-bot
6b9f8b851e Merge pull request 'Revert "vm-state: fix and improve testing"' (#768) from DavHau-revert into main 2024-01-29 08:20:09 +00:00
DavHau
99092f6e76 Revert "vm-state: fix and improve testing"
This reverts commit 6adc68a354.
2024-01-29 15:16:10 +07:00
clan-bot
549a5800a5 Merge pull request 'Secret mgmt problem' (#767) from Qubasa-main into main 2024-01-29 08:15:44 +00:00
Qubasa
f6c811e531 UI: Display error logs on VM crash. Fixed inspect_vm problem. 2024-01-29 15:11:57 +07:00
clan-bot
7937f3eaae Merge pull request 'package vsock-enabled waypipe' (#766) from Mic92-main into main 2024-01-29 07:29:22 +00:00
Qubasa
155a1ee98c Secret mgmt problem 2024-01-29 14:00:38 +07:00
Jörg Thalheim
dc4634b8eb package vsock-enabled waypipe 2024-01-29 11:48:08 +07:00
clan-bot
65a2fc9b14 Merge pull request 'flake.lock: Update' (#764) from a-kenji-fix/update/nixpkgs into main 2024-01-29 04:31:36 +00:00
a-kenji
f3498f3609 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/fa5db12d76f9e8ee11e572cdbe021230e48b6afa' (2024-01-11)
  → 'github:nix-community/disko/f67ba6552845ea5d7f596a24d57c33a8a9dc8de9' (2024-01-29)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/246219bc21b943c6f6812bb7744218ba0df08600' (2023-12-04)
  → 'github:nix-community/nixos-generators/896f6589db5b25023b812bbb6c1f5d3a499b1132' (2024-01-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ada47602cea34540873ddf17e49c32b50fd70d2a' (2024-01-24)
  → 'github:NixOS/nixpkgs/50071d87c75300c037e28439c5176c3933b9fce5' (2024-01-28)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/c0b3a5af90fae3ba95645bbf85d2b64880addd76' (2024-01-10)
  → 'github:Mic92/sops-nix/73bf36912e31a6b21af6e0f39218e067283c67ef' (2024-01-28)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/04f25d7bec9fb29d2c3bacaa48a3304840000d36' (2024-01-07)
  → 'github:numtide/treefmt-nix/c6153c2a3ff4c38d231e3ae99af29b87f1df5901' (2024-01-28)
2024-01-29 05:14:09 +01:00
clan-bot
a685dd1afe Merge pull request 'nix-direnv-watch-file -> watch-file' (#763) from Mic92-main into main 2024-01-29 04:11:13 +00:00
Jörg Thalheim
4a84d7da97 nix-direnv-watch-file -> watch-file 2024-01-29 11:02:43 +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
clan-bot
76c906c531 Merge pull request 'clan-cli secrets: generate secrets inside bubblewrap' (#761) from lassulus-bubblewrap into main 2024-01-24 18:23:31 +00:00
lassulus
3afed7a563 clan-cli secrets: generate secrets inside bubblewrap 2024-01-24 19:20:07 +01:00
clan-bot
a3ef8ce832 Merge pull request 'clan-cli secrets: add secret_store as python class' (#733) from lassulus-HEAD into main 2024-01-24 14:52:14 +00:00
lassulus
abaa218e27 clan-cli install: use new Machine interface, fix mypy error 2024-01-24 15:49:24 +01:00
lassulus
6ba641c974 clan-cli update: use new Machine class interface 2024-01-24 15:49:12 +01:00
lassulus
e1237499d0 clan-cli Machine: make deployment info lazy 2024-01-24 15:49:12 +01:00
lassulus
3284224440 clan-cli backups: use new machine class for eval 2024-01-24 15:49:12 +01:00
lassulus
9cf670ee29 test_vm_persistance: substitute clan-core repo 2024-01-24 15:49:12 +01:00
lassulus
6b004fca6f machines.Machine: refactor flake_dir -> flake; use Machine class in vm 2024-01-24 15:49:12 +01:00
lassulus
de885c3010 test_vm_persistance: add age keys 2024-01-24 15:49:12 +01:00
lassulus
ce5e6bfd10 secret generators: run with set -efu -o pipefail 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
clan-bot
459dc0608b Merge pull request 'Fix zerotier in vms' (#759) from a-kenji-fix-zerotier-state-vm into main 2024-01-23 19:39:13 +00:00
a-kenji
f0895d5e3e fix zerotier in vms 2024-01-23 19:43:42 +01:00
Jörg Thalheim
8338944062 move python code in nixos Module to external file 2024-01-23 15:04:40 +01:00
lassulus
09887037f5 WIP: clan-cli secrets: add secret_store as python class 2024-01-23 15:04:40 +01:00
clan-bot
7b953fe7ab Merge pull request 'prepare details view' (#755) from hsjobeki-main into main 2024-01-21 11:48:36 +00:00
Johannes Kirschbauer
6b00957d38 prepare details view 2024-01-21 12:46:04 +01:00
clan-bot
9e6ffcd9f9 Merge pull request 'add search bar' (#754) from hsjobeki-main into main 2024-01-21 11:16:14 +00:00
Johannes Kirschbauer
035a9f2358 add search bar 2024-01-21 12:13:15 +01:00
clan-bot
c5aef543b2 Merge pull request 'add join to list' (#753) from hsjobeki-main into main 2024-01-20 13:54:22 +00:00
Johannes Kirschbauer
7ac0292cdd display id as subtitle 2024-01-20 14:51:37 +01:00
clan-bot
c98fdc08de Merge pull request 'add join to list' (#752) from hsjobeki-main into main 2024-01-20 12:21:23 +00:00
Johannes Kirschbauer
d0b075c217 add join to list 2024-01-20 13:18:43 +01:00
clan-bot
3be697d1e9 Merge pull request 'organize files and classes consistently' (#751) from hsjobeki-main into main 2024-01-20 09:15:48 +00:00
Johannes Kirschbauer
cd2125074f organize files and classes consistently 2024-01-20 10:12:37 +01:00
clan-bot
ceebfccc82 Merge pull request 'UI: Added signal handling for stopped and started vm.' (#750) from Qubasa-main into main 2024-01-19 17:58:10 +00:00
Qubasa
70cf75830d Remove error from qemu_command 2024-01-19 18:54:54 +01:00
Qubasa
d956dbeb77 UI: Added signal handling for stopped and started vm. 2024-01-19 18:52:51 +01:00
clan-bot
0c167d1e51 Merge pull request 'localsend: add notes about future integrations' (#749) from a-kenji-localsend-notes into main 2024-01-19 16:02:42 +00:00
a-kenji
df574b0dcc localsend: add notes about future integrations 2024-01-19 16:59:32 +01:00
clan-bot
e9d3a71dbb Merge pull request 'Otherwise we loose our build inputs' (#747) from Mic92-main into main 2024-01-19 14:05:51 +00:00
Jörg Thalheim
3271e4b6b6 don't garbage collect in nix vm tests
Otherwise we loose our build inputs
2024-01-19 15:02:25 +01:00
clan-bot
a1f8690978 Merge pull request 'Improved error messages in clan_cli' (#746) from Qubasa-main into main 2024-01-19 13:13:46 +00:00
Qubasa
2da236b362 Improved error messages in clan_cli 2024-01-19 14:10:22 +01:00
clan-bot
a23bdaa0a1 Merge pull request 'Wrapped vm.run in cmd.run. Working --wayland' (#745) from Qubasa-main into main 2024-01-19 13:00:04 +00:00
Qubasa
60c4d231f8 Wrapped vm.run in cmd.run. Working --wayland 2024-01-19 13:56:17 +01:00
Mic92
26259341d4 Merge pull request 'build-clan: force system override in secrets generators' (#744) from Mic92-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/744
2024-01-17 14:40:46 +00:00
Jörg Thalheim
4a3abf5fe9 build-clan: force system override in secrets generators 2024-01-17 14:40:46 +00:00
clan-bot
3bd33844c6 Merge pull request 'build-clan: don't set system with lib.mkForce' (#743) from Mic92-main into main 2024-01-17 14:28:27 +00:00
Jörg Thalheim
fb151b227d build-clan: don't set system with lib.mkForce 2024-01-17 15:25:29 +01:00
Johannes Kirschbauer
2d613e3933 Gtk4 migration (#693)
Co-authored-by: Qubasa <consulting@qube.email>
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/693
Co-authored-by: Johannes Kirschbauer <hsjobeki@gmail.com>
Co-committed-by: Johannes Kirschbauer <hsjobeki@gmail.com>
2024-01-17 12:11:49 +00:00
clan-bot
ae1745289d Merge pull request 'clanModules: init localsend module' (#741) from a-kenji-init/localsend into main 2024-01-17 10:25:29 +00:00
a-kenji
c94d2325ae clanModules: init localsend module 2024-01-17 11:12:09 +01:00
clan-bot
bd5ad0dc31 Merge pull request 'disable state home for now' (#740) from Mic92-main into main 2024-01-17 10:03:48 +00:00
Jörg Thalheim
1d2f003210 use upstream qemu for wayland feature 2024-01-17 11:00:45 +01:00
Jörg Thalheim
776b238d9c disable state home for now 2024-01-17 10:59:01 +01:00
clan-bot
5ce7819229 Merge pull request 'bump nixpkgs' (#739) from Mic92-main into main 2024-01-17 09:53:36 +00:00
Jörg Thalheim
7105ab1124 bump nixpkgs 2024-01-17 10:45:49 +01:00
clan-bot
de65c4062a Merge pull request 'docs: categorize via sub-directories for inclusion in website' (#738) from DavHau-main into main 2024-01-17 06:55:51 +00:00
DavHau
a610db7192 docs: categorize via sub-directories for inclusion in website 2024-01-17 13:53:24 +07:00
clan-bot
0b291c656f Merge pull request 'state.nix: improve docs' (#732) from DavHau-main into main 2024-01-17 06:51:55 +00:00
clan-bot
312e8b2bc6 Merge pull request 'URI: Added support for #flake_attr' (#736) from Qubasa-main into main 2024-01-16 16:14:37 +00:00
Qubasa
f1acc44488 URI: Added support for #flake_attr 2024-01-16 17:11:26 +01:00
clan-bot
4a3a585e7c Merge pull request 'CLI: History supports multiple attrs from the same url now. Errors when executing the cli are formatted better' (#735) from Qubasa-main into main 2024-01-16 15:19:10 +00:00
Qubasa
d20f47ad5b CLI: History supports multiple attrs from the same url now. Errors when executing the cli are formatted better 2024-01-16 16:16:12 +01:00
clan-bot
1c7e806bca Merge pull request 'clanModules: disable nixos manual by default' (#734) from a-kenji-disable-manual into main 2024-01-16 14:21:23 +00:00
a-kenji
98e1c629c3 clanModules: disable nixos manual by default 2024-01-16 15:14:16 +01:00
DavHau
c944fe8b48 state.nix: improve docs 2024-01-15 16:03:47 +07:00
clan-bot
07a0e1db09 Merge pull request 'add option to orbit moons' (#729) from Mic92-zerotier into main 2024-01-12 17:34:09 +00:00
Jörg Thalheim
876ffab3b1 add option to orbit moons 2024-01-12 18:31:18 +01:00
clan-bot
00876e2311 Merge pull request 'zerotier: add support for moons' (#728) from Mic92-zerotier into main 2024-01-12 17:28:42 +00:00
Jörg Thalheim
b1bb887dbf zerotier: add support for moons 2024-01-12 18:26:00 +01:00
clan-bot
50344b4937 Merge pull request 'cmd.py refactor part 7' (#727) from Qubasa-main into main 2024-01-12 16:41:21 +00:00
Qubasa
abfa2f218c cmd.py refactor part 7 2024-01-12 17:37:59 +01:00
clan-bot
c345c4c0ce Merge pull request 'cmd.py refactor part 6' (#726) from Qubasa-main into main 2024-01-12 16:25:16 +00:00
Qubasa
0c1d4a1d41 cmd.py refactor part 6 2024-01-12 17:21:48 +01:00
Qubasa
1a6983e031 cmd.py refactor part 6 2024-01-12 17:02:56 +01:00
clan-bot
6455b128a3 Merge pull request 'cmd.py refactor part 5' (#724) from Qubasa-main into main 2024-01-12 15:55:46 +00:00
Qubasa
ca5cc389ac cmd.py refactor part 5 2024-01-12 16:52:34 +01:00
clan-bot
969c79b426 Merge pull request 'Fixed duplicate logging issue with correct logging in ssh and in root logger' (#723) from Qubasa-main into main 2024-01-12 15:49:52 +00:00
Qubasa
2c2e4862ba Fixed duplicate logging issue with correct logging in ssh and in root logger 2024-01-12 16:46:44 +01:00
Jörg Thalheim
e2cc218aa6 add moonlight module 2024-01-12 16:02:24 +01:00
clan-bot
304dce0caa Merge pull request 'zerotier: configure alternative tcp fallback relay' (#721) from Mic92-HEAD into main 2024-01-12 14:15:54 +00:00
Jörg Thalheim
e941334ecf zerotier: configure alternative tcp fallback relay 2024-01-12 15:13:20 +01:00
clan-bot
30c7d61bbd Merge pull request 'revert logger changes in f7c6ab5888c5763c1ec5e4326f452946d915b1f6' (#720) from Mic92-HEAD into main 2024-01-12 13:52:27 +00:00
Jörg Thalheim
47f4ef2c31 revert logger changes in f7c6ab5888
This adds another logger to the logger in clan_cli.ssh which we do not want
2024-01-12 14:48:36 +01:00
clan-bot
25634a044b Merge pull request 'zt-tcp-relay: add clan module + test' (#719) from Mic92-HEAD into main 2024-01-12 13:27:52 +00:00
Jörg Thalheim
78cd5b3fec zt-tcp-relay: add clan module + test 2024-01-12 14:25:31 +01:00
clan-bot
50b757ab1d Merge pull request 'zt-tcp-relay: init at 2023-07-11' (#718) from Mic92-HEAD into main 2024-01-12 12:53:09 +00:00
Jörg Thalheim
e1729a0991 zt-tcp-relay: init at 2023-07-11 2024-01-12 13:49:36 +01:00
clan-bot
773630a9b9 Merge pull request 'drop qemu-rutabaga patches' (#717) from Mic92-HEAD into main 2024-01-12 11:27:07 +00:00
Jörg Thalheim
c86e465e35 drop qemu-rutabaga patches 2024-01-12 12:20:29 +01:00
clan-bot
1cdc2b8ed2 Merge pull request 'cmd: add a timeout in select' (#716) from Mic92-HEAD into main 2024-01-11 23:23:57 +00:00
Jörg Thalheim
796ef76893 cmd: add a timeout in select 2024-01-12 00:20:22 +01:00
clan-bot
a29f83de0f Merge pull request 'Re-added rlist.remove to counter busy loop' (#715) from Qubasa-main into main 2024-01-11 23:16:51 +00:00
Qubasa
05aaa180e0 cmd.py: Fix busy loop. 2024-01-12 00:13:21 +01:00
Qubasa
1d489438bd Re-added rlist.remove to counter busy loop 2024-01-12 00:08:15 +01:00
clan-bot
0c6dd1f042 Merge pull request 'cmd.py: Fix deadlock because of incorrect select usage' (#714) from Qubasa-main into main 2024-01-11 22:06:29 +00:00
Qubasa
0941367bb3 cmd.py: Fix deadlock because of incorrect select usage 2024-01-11 23:03:14 +01:00
clan-bot
c5b914594a Merge pull request 'Removed duplicate logging messages' (#713) from Qubasa-main into main 2024-01-11 21:49:30 +00:00
Qubasa
3351f87a7f Removed duplicate logging messages 2024-01-11 22:46:29 +01:00
clan-bot
04b579f2d3 Merge pull request 'cmd.py refactor part 4' (#707) from Qubasa-main into main 2024-01-11 21:31:42 +00:00
Qubasa
d1ca0eaf80 Identified deadlocking funciton 2024-01-11 22:28:35 +01:00
Qubasa
4d4c09da80 Enabled logging DEBUG in pytest 2024-01-11 22:14:55 +01:00
Qubasa
f7c6ab5888 Working test_secrets_generate 2024-01-11 21:48:39 +01:00
Qubasa
16b043f508 cmd.py: Fixing bug: missing output because of forgotten flush() call 2024-01-11 21:11:49 +01:00
Qubasa
0133ccd5f7 Fixed missing log.BOTH and error_msg at prev refactors 2024-01-11 21:11:49 +01:00
Qubasa
2ae439ec52 cmd.py refactor part 4 2024-01-11 21:11:49 +01:00
clan-bot
0d9f0c3ec1 Merge pull request 'make zerotier name configureable' (#711) from Mic92-zerotier into main 2024-01-11 17:05:54 +00:00
Jörg Thalheim
72409a800a schema-check: set clanName dummy 2024-01-11 18:02:50 +01:00
Jörg Thalheim
8d63bb8fd1 drop deadcode 2024-01-11 18:00:42 +01:00
Jörg Thalheim
32ec520fa5 drop runSchemaTests/runMockApi from checks 2024-01-11 17:53:06 +01:00
Jörg Thalheim
f6b6229f78 schema: set also clanName
this is usually set by buildClan
2024-01-11 17:41:41 +01:00
Jörg Thalheim
cedd1d7492 zerotier: set interface altname 2024-01-11 15:51:34 +01:00
clan-bot
0429291d40 Merge pull request 'zerotier-members: add ipv6 to list display' (#712) from lassulus-zerotier-list into main 2024-01-11 14:49:28 +00:00
lassulus
2b75cc4744 zerotier-members: add ipv6 to list display 2024-01-11 15:46:26 +01:00
Jörg Thalheim
7bf76eea06 zerotier: use configuration file instead to set the network name 2024-01-11 14:57:00 +01:00
Jörg Thalheim
0e62348d72 make zerotier name configureable 2024-01-11 14:57:00 +01:00
clan-bot
398cda65a1 Merge pull request 'zerotier: delete old networks' (#709) from Mic92-zerotier into main 2024-01-11 12:29:09 +00:00
Jörg Thalheim
3563b6eaa4 zerotier: delete old networks 2024-01-11 13:24:00 +01:00
Mic92
1e9032b635 Merge pull request 'meshnamed: mark networkmanager interfaces as unmanaged' (#708) from zerotier into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/708
2024-01-11 11:47:59 +00:00
Jörg Thalheim
a5132a4f81 meshnamed: mark networkmanager interfaces as unmanaged 2024-01-11 12:17:44 +01:00
clan-bot
93fa4e397b Merge pull request 'cmd.py part 3 refactor' (#706) from Qubasa-main into main 2024-01-10 17:57:51 +00:00
Qubasa
359275eee7 Improved error message. Fixed incorrect ret code check in git.py 2024-01-10 18:54:34 +01:00
Qubasa
64846eb395 Fixed bug, where exception is raised where there shouldn't be raised one 2024-01-10 18:46:54 +01:00
Qubasa
b36d0be524 cmd.py part 3 refactor 2024-01-10 18:39:19 +01:00
Mic92
14f83efcc9 Merge pull request 'open up zerotier ports' (#705) from Mic92-wayland-update into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/705
2024-01-10 17:24:41 +00:00
Jörg Thalheim
7a4b176248 open up zerotier ports 2024-01-10 17:24:41 +00:00
clan-bot
46da9eb5db Merge pull request 'Added ClanCmdError. cmd.run now returns this error' (#704) from Qubasa-main into main 2024-01-10 17:02:08 +00:00
Qubasa
699515ca89 Added ClanCmdError. cmd.run now returns this error 2024-01-10 17:58:39 +01:00
clan-bot
f34df3df02 Merge pull request 'Refactor subprocess to cmd.py part 2' (#685) from Qubasa-main into main 2024-01-10 16:34:38 +00:00
Qubasa
626e5558f3 Fix cmd to default print on all outputs. Default print on stderr 2024-01-10 17:31:11 +01:00
Qubasa
c41bc10325 nix fmt 2024-01-10 17:19:33 +01:00
Qubasa
54f2eba1cc nix fmt 2024-01-10 17:19:12 +01:00
Qubasa
40beda884c Updated cmd.py with Mic92 changes to fit previous changes 2024-01-10 17:18:21 +01:00
clan-bot
0b2439553c Merge pull request 're-anble pulseaudio in qemu' (#703) from Mic92-wayland-update into main 2024-01-10 14:36:25 +00:00
Mic92
b9613c4801 Merge branch 'main' into Mic92-wayland-update 2024-01-10 14:33:55 +00:00
Jörg Thalheim
eeac4902ab re-anble pulseaudio in qemu 2024-01-10 15:32:37 +01:00
Qubasa
ba05589af2 Refactor subprocess to cmd.py part 2 2024-01-10 12:11:29 +01:00
clan-bot
4a69912667 Merge pull request 'state: declare /home as state by default' (#702) from DavHau-main into main 2024-01-10 10:40:36 +00:00
DavHau
414f475802 state: declare /home as state by default 2024-01-10 17:37:40 +07:00
clan-bot
7266faab4e Merge pull request 'state: move options clanCore.state to a separate file' (#701) from DavHau-main into main 2024-01-10 10:13:13 +00:00
DavHau
9f8e719b48 state: move options clanCore.state to a separate file 2024-01-10 17:10:10 +07:00
clan-bot
26e9463248 Merge pull request 'cmd: rework redirecting stdout/stderr' (#700) from Mic92-wayland-update into main 2024-01-09 16:39:19 +00:00
Jörg Thalheim
fa00bb522b cmd: rework redirecting stdout/stderr 2024-01-09 17:34:43 +01:00
clan-bot
7e1be41843 Merge pull request 'VMs: ensure state dirs don't collide between clans' (#699) from DavHau-main into main 2024-01-09 10:25:39 +00:00
DavHau
520ff0b334 VMs: ensure state dirs don't collide between clans 2024-01-09 17:22:48 +07:00
clan-bot
2566fccfcf Merge pull request 'VMs: port vm_persistence test to python' (#698) from DavHau-main into main 2024-01-09 07:50:31 +00:00
DavHau
17390fc392 VMs: port vm_persistence test to python 2024-01-09 14:47:33 +07:00
clan-bot
b272eebc75 Merge pull request 'zerotier-members: print authorized state on list' (#697) from lassulus-member_list_auth into main 2024-01-08 21:32:00 +00:00
lassulus
c73818c1a5 zerotier-members: print authorized state on list 2024-01-08 22:28:13 +01:00
clan-bot
df5e6761e6 Merge pull request 'VMs: persist state folders on host' (#696) from DavHau-main into main 2024-01-08 11:42:19 +00: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
clan-bot
4123944732 Merge pull request 'move selected_vm to the ClanListToolbar constructor' (#690) from Mic92-wayland-update into main 2024-01-04 17:53:02 +00:00
clan-bot
96e2deee1f Merge pull request 'Update start/stop button based on VM state' (#689) from Mic92-wayland-update into main 2024-01-04 17:50:25 +00:00
Jörg Thalheim
a5137efd48 move selected_vm to the ClanListToolbar constructor 2024-01-04 18:50:21 +01:00
Jörg Thalheim
c7fda31ab3 Update start/stop button based on VM state 2024-01-04 18:47:52 +01:00
Jörg Thalheim
738aaa3b5d executor: simplify running_procs 2024-01-04 18:42:13 +01:00
clan-bot
2da5b4a0ff Merge pull request 'reduce number of eval workers' (#688) from Mic92-wayland-update into main 2024-01-04 16:21:16 +00:00
clan-bot
dbfbbf8670 Merge pull request 'clan-vm-manager: make joining clan url more logical' (#687) from Mic92-wayland-update into main 2024-01-04 16:18:29 +00:00
Jörg Thalheim
4fc48f38d5 reduce number of eval workers 2024-01-04 17:18:10 +01:00
Jörg Thalheim
6a75ea56fd clan-vm-manager: make joining clan url more logical
The icon is confusing. It distracts from the actual "Join" label. Also when a user
copy in an URL we can assume they trust the content, which might be not the case
when they just clicked on an URL.
2024-01-04 17:08:01 +01:00
Jörg Thalheim
093566aa42 clan-vm-manager: rename "New" to "Join Clan" 2024-01-04 16:50:19 +01:00
Jörg Thalheim
d18c2063c3 clan-vm-manager: rename "Online" to "Status"
online means connected to some network, which is not what this field shows.
2024-01-04 16:49:21 +01:00
clan-bot
bd07d59707 Merge pull request 'strip whitespace from clan uris' (#686) from Mic92-wayland-update into main 2024-01-04 15:34:10 +00:00
clan-bot
d803cec108 Merge pull request 'switch to xwayland display :1' (#683) from Mic92-wayland-update into main 2024-01-04 15:31:10 +00:00
Jörg Thalheim
f9dd2e0926 strip whitespace from clan uris 2024-01-04 16:30:26 +01:00
Jörg Thalheim
7f21e99736 update nix-direnv 2024-01-04 16:24:26 +01:00
Jörg Thalheim
0922856fa5 switch to xwayland display :1
no conflict with Xorg
2024-01-04 16:18:27 +01:00
clan-bot
f526e1261f Merge pull request 'Fix broken executor.py' (#684) from Qubasa-main into main 2024-01-03 12:42:03 +00:00
Qubasa
ae00b3ae65 Fix broken executor.py 2024-01-03 13:26:25 +01:00
clan-bot
8870351737 Merge pull request 'clan_uri: Support all other formats by just differentiating between remote and local' (#680) from Qubasa-main into main 2024-01-02 16:24:51 +00:00
Qubasa
e4a7f68b0e Fixed cmd.py writing to stderr 2024-01-02 17:21:06 +01:00
Qubasa
3f55c688d9 Refactor subprocess to cmd.py part 1. Fixed clan_uri test. 2024-01-02 17:21:06 +01:00
Qubasa
69d08241e9 delete unecessary f.truncate 2024-01-02 17:21:06 +01:00
Qubasa
ef827af89c Fixed unsafe dirs.py urlquoting, improved cmd.py run func 2024-01-02 17:21:06 +01:00
Qubasa
7c5ed85231 clan_uri: Support all other formats by just differentiating between remote and local 2024-01-02 17:21:05 +01:00
clan-bot
4383fab8d7 Merge pull request 'Executor: drop unused in_file' (#682) from Mic92-wayland-update into main 2024-01-02 14:46:25 +00:00
Jörg Thalheim
d0b165b311 only set process title on Linux
the systemcall is not portable
2024-01-02 15:44:28 +01:00
Jörg Thalheim
c609d84273 Executor: drop unused in_file 2024-01-02 15:44:28 +01:00
clan-bot
7e662b7655 Merge pull request 'drop references to debug.py' (#681) from Mic92-wayland-update into main 2024-01-02 14:26:02 +00:00
Jörg Thalheim
0ecfaa96cf drop references to debug.py 2024-01-02 15:22:36 +01:00
clan-bot
c1e449e055 Merge pull request 'Automatic flake update - 2024-01-01T00:00+00:00' (#670) from flake-update-2024-01-01 into main 2024-01-02 14:14:59 +00:00
clan-bot
91633df0c8 Merge pull request 'fix: join workflow' (#677) from hsjobeki-main into main 2024-01-02 09:05:41 +00:00
Johannes Kirschbauer
0676d93e4b rebase 2024-01-02 10:02:25 +01:00
clan-bot
d6fe6b1d69 Merge pull request 'dirs.py: remove outdated comment' (#676) from DavHau-main into main 2024-01-02 07:29:05 +00:00
DavHau
e7bd86a9d5 dirs.py: remove outdated comment 2024-01-02 14:25:37 +07:00
clan-bot
3914d61008 Merge pull request 'vm-manager: More error handling' (#675) from Qubasa-main into main 2024-01-02 06:27:30 +00:00
Qubasa
7be42146e7 vm-manager: Added right click context menu 2024-01-02 07:24:30 +01:00
Qubasa
01977b2e2a vm-manager: More error handling 2024-01-02 06:23:55 +01:00
clan-bot
1fc524e53e Merge pull request 'Added show_error_dialogue on exception' (#674) from Qubasa-main into main 2024-01-02 04:57:05 +00:00
Qubasa
c157ecb161 Added show_error_dialogue on exception 2024-01-02 05:54:19 +01:00
clan-bot
6f6fe1c5d4 Merge pull request 'Removed unecessary debug.py and test code' (#672) from Qubasa-main into main 2024-01-01 18:01:16 +00:00
Qubasa
9ec1d594e7 Removed unecessary debug.py and test code 2024-01-01 18:58:12 +01:00
clan-bot
2423597f4e Merge pull request 'history: added vm config to FlakeConfig' (#671) from Qubasa-origin/Qubasa-main-no-flake-update into main 2024-01-01 17:27:48 +00:00
Qubasa
42235e39be Added settings attribute to history file 2024-01-01 18:24:40 +01:00
Clan Merge Bot
7a7954278c update flake lock - 2024-01-01T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/1144887c6f4d2dcbb2316a24364ef53e25b0fcfe' (2023-12-06)
  → 'github:nix-community/disko/0ce1b15b99ac7c280384f136eae00b968f5b3f72' (2023-12-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1f8d62a69936dd899d0e7c955537b2f4ca5bc623' (2023-12-10)
  → 'github:NixOS/nixpkgs/eae82ed71467a19374437376fbb7f5e3ad486aeb' (2023-12-31)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/d806e546f96c88cd9f7d91c1c19ebc99ba6277d9' (2023-12-10)
  → 'github:Mic92/sops-nix/cfdbaf68d00bc2f9e071f17ae77be4b27ff72fa6' (2023-12-31)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/afdd5e48a0869b389027307652a658051c0d2f96' (2023-12-10)
  → 'github:numtide/treefmt-nix/2961375283668d867e64129c22af532de8e77734' (2023-12-19)
2024-01-01 00:00:16 +00:00
Qubasa
7069d746ad Added write and read history file functions 2023-12-31 15:17:12 +01:00
Qubasa
e0bba046ea history: added vm config to FlakeConfig 2023-12-31 14:56:03 +01:00
clan-bot
9649e43da5 Merge pull request 'vm-manager: Fixed quit application not working bug' (#668) from Qubasa-main into main 2023-12-31 13:16:16 +00:00
Qubasa
f1642c6c71 vm-manager: Fixed quit application not working bug 2023-12-31 14:13:11 +01:00
clan-bot
ae41eb3ff5 Merge pull request 'cli: fixed run vm not working with url' (#667) from Qubasa-main into main 2023-12-31 13:00:03 +00:00
Qubasa
33afa04b38 cli: fixed run vm not working with url 2023-12-31 13:56:55 +01:00
clan-bot
e247225f6d Merge pull request 'cli: Switched b64 encoding of gcroot names to urlparse' (#666) from Qubasa-main into main 2023-12-31 12:54:29 +00:00
Qubasa
fcadaca010 cli: Switched b64 encoding of gcroot names to urlparse 2023-12-31 13:51:13 +01:00
clan-bot
2db632f1d2 Merge pull request 'Removed unused ui-assets workflow file.' (#665) from Qubasa-main into main 2023-12-30 23:53:14 +00:00
Qubasa
c4799f1e9a Added gcroot for clan Icon and VM 2023-12-31 00:49:57 +01:00
Qubasa
ffea26f1c7 Removed unused ui-assets workflow file. 2023-12-30 23:14:32 +01:00
clan-bot
c05d6f8e35 Merge pull request 'Removed python deal.' (#664) from Qubasa-main into main 2023-12-30 22:13:48 +00:00
Qubasa
330ef00a7c Removed python deal. 2023-12-30 23:10:43 +01:00
clan-bot
b6b0ca7aa0 Merge pull request 'dialog prepare flash usb window' (#663) from hsjobeki-main into main 2023-12-30 10:17:34 +00:00
Johannes Kirschbauer
36e7488da1 prepare flash usb window 2023-12-30 11:14:45 +01:00
clan-bot
269063f868 Merge pull request 'new clan; Join page with none as initial value' (#662) from hsjobeki-main into main 2023-12-30 09:47:01 +00:00
Johannes Kirschbauer
d39d3a9a45 error handling. add: dialog 2023-12-30 10:43:03 +01:00
Johannes Kirschbauer
f5b578d0c7 error handling. add: dialog 2023-12-30 10:41:33 +01:00
clan-bot
a8230e749e Merge pull request 'new clan; Join page with none as initial value' (#661) from hsjobeki-main into main 2023-12-28 13:34:30 +00:00
Johannes Kirschbauer
968adf24b2 new clan; Join page with none as initial value 2023-12-28 14:30:58 +01:00
clan-bot
98020847d4 Merge pull request 'UI: Added process executor. Display vm status correctly in list. | CLI: Added get_qemu_version(), fixed virtio audio bug.' (#660) from Qubasa-main into main 2023-12-26 17:23:35 +00:00
Qubasa
cb06353451 pytest: Removed -s flag for CI 2023-12-26 18:20:41 +01:00
Qubasa
ca265b0c59 UI: Added process executor. Display vm status correctly in list. | CLI: Added get_qemu_version(), fixed virtio audio bug. 2023-12-26 18:02:43 +01:00
clan-bot
4d8c20f284 Merge pull request 'cli/install: add option to specify alternative kexec url' (#659) from Mic92-wayland-update into main 2023-12-26 13:40:29 +00:00
Jörg Thalheim
ed643e3829 cli/install: add option to specify alternative kexec url 2023-12-26 14:36:51 +01:00
clan-bot
d73b04bdfa Merge pull request 'qemu-wayland: upgrade to latest 8.2.0 & enable virtio-audio' (#657) from Mic92-wayland-update into main 2023-12-21 14:54:23 +00:00
Jörg Thalheim
55f91079c7 rutabaga_gfx_ffi: unstable-2023-12-05 -> unstable-2023-12-20 2023-12-21 15:46:31 +01:00
Jörg Thalheim
b6ecb0b2e2 gfxstream: unstable-2023-12-11 -> unstable-2023-12-19 2023-12-21 15:41:57 +01:00
Jörg Thalheim
fe60a1a381 aemu: unstable-2023-11-10 -> unstable-2023-08-31 2023-12-21 15:41:21 +01:00
Jörg Thalheim
df9aa4ccb2 qemu-wayland: upgrade to latest 8.2.0 2023-12-21 15:40:50 +01:00
Jörg Thalheim
de38ce47ee switch to virtio-audio 2023-12-21 15:39:27 +01:00
clan-bot
30e7e06f59 Merge pull request 'clan_vm_manager: Partially working process executor with killpg' (#656) from Qubasa-main into main 2023-12-19 17:05:21 +00:00
Qubasa
a1575ec19c nix fmt 2023-12-19 18:02:06 +01:00
Qubasa
e0e7324876 Improved spawn interface. Added garbage collector 2023-12-19 17:51:43 +01:00
Qubasa
9d877969c9 Fully working executor 2023-12-19 16:44:36 +01:00
Qubasa
baaa860e63 Added proc executor 2023-12-19 16:44:36 +01:00
Qubasa
57bbe19c1a merge 2023-12-19 16:44:36 +01:00
Qubasa
0c33d14ba5 clan_vm_manager: Partially working process executor with killpg 2023-12-19 16:44:36 +01:00
clan-bot
2d71bfbd20 Merge pull request 'modules/syncthing: use generator path' (#655) from a-kenji-syncthing-add-path into main 2023-12-19 13:17:34 +00:00
a-kenji
6cd3a8e58f modules/syncthing: use generator path 2023-12-19 14:14:29 +01:00
clan-bot
fdba3f0c48 Merge pull request 'join window' (#654) from hsjobeki-main into main 2023-12-19 12:58:04 +00:00
Johannes Kirschbauer
784317eb69 join window 2023-12-19 13:39:22 +01:00
clan-bot
284bec3299 Merge pull request 'add installer test' (#653) from lassulus-ssh_test into main 2023-12-18 22:46:18 +00:00
lassulus
142fe15e80 checks: add test-installation 2023-12-18 23:41:31 +01:00
lassulus
bbc55743a6 checks backups: remove debug output 2023-12-18 23:41:31 +01:00
lassulus
a4075510c8 flake: define option for clanInternals
We need this to define test machines in different flake modules
2023-12-18 23:41:31 +01:00
clan-bot
7ff884cd71 Merge pull request 'checks: move ssh_keys to lib/ssh' (#651) from lassulus-ssh_test into main 2023-12-16 21:53:57 +00:00
lassulus
ae6f3fa7d7 checks: move ssh_keys to lib/ssh 2023-12-16 22:52:18 +01:00
clan-bot
1eec814e4e Merge pull request 'checks: add backup test' (#650) from lassulus-backups_test into main 2023-12-16 21:04:06 +00:00
lassulus
cc3701f22f checks backup: limit to linux systems 2023-12-16 22:02:36 +01:00
lassulus
e98f037dd8 clan_cli: remove incorrect clan_flake check 2023-12-16 21:46:19 +01:00
lassulus
56dafff109 machines build_machine_data: raise ClanError on error 2023-12-16 21:46:19 +01:00
lassulus
902ccbc90b backups borgbackup: remove dry-run from restore 2023-12-16 21:46:19 +01:00
lassulus
5c1cf947ab checks: add backup test 2023-12-16 21:46:19 +01:00
clan-bot
d74080f4c7 Merge pull request 'multi window mess' (#649) from hsjobeki-main into main 2023-12-16 14:02:16 +00:00
Johannes Kirschbauer
32f17783dd add debugging help 2023-12-16 15:00:43 +01:00
clan-bot
218e49770e Merge pull request 'multi window mess' (#648) from hsjobeki-main into main 2023-12-16 13:57:52 +00:00
Johannes Kirschbauer
efc7df3aa7 move list hook 2023-12-16 14:56:20 +01:00
Johannes Kirschbauer
dfe5c250b3 multi window mess 2023-12-16 14:49:45 +01:00
clan-bot
a12fdabf8f Merge pull request 'window switcher' (#647) from hsjobeki-main into main 2023-12-16 12:06:56 +00:00
Johannes Kirschbauer
09cf4a9ff4 fix formatting 2023-12-16 13:05:17 +01:00
Johannes Kirschbauer
e7fa998241 fix typing 2023-12-16 13:04:50 +01:00
Johannes Kirschbauer
89165cc65e format 2023-12-16 13:03:10 +01:00
Johannes Kirschbauer
d60cfbc0a6 window switcher 2023-12-16 12:52:10 +01:00
clan-bot
590d39a29b Merge pull request 'Automatic flake update - 2023-12-11T00:00+00:00' (#637) from flake-update-2023-12-11 into main 2023-12-15 13:18:21 +00:00
clan-bot
a7d48fefb0 Merge pull request 'add wayland-proxy-virtwl module' (#646) from Mic92-wayland-update into main 2023-12-15 13:15:59 +00:00
Jörg Thalheim
9dfc3f9613 add wayland-proxy-virtwl module 2023-12-15 14:14:20 +01:00
Jörg Thalheim
8ee72ba5fa clanCore: refactor flake-module.nix into smaller files 2023-12-15 14:14:20 +01:00
clan-bot
fbea4dcaf1 Merge pull request 'use nix-unit from nixpkgs, drop floco from flake inputs' (#645) from Mic92-wayland-update into main 2023-12-15 11:37:43 +00:00
Jörg Thalheim
963533e6c1 add wayland-proxy-virtwl fork 2023-12-15 12:36:07 +01:00
Jörg Thalheim
bd7cbb331f drop floco from flake inputs 2023-12-15 12:36:07 +01:00
Jörg Thalheim
0bdf55b09f use nix-unit from nixpkgs 2023-12-15 12:36:07 +01:00
clan-bot
ad5559974c Merge pull request 'qemu-wayland: add patch to fix vulkaninfo' (#644) from Mic92-wayland-update into main 2023-12-15 11:16:38 +00:00
Jörg Thalheim
9caf9a131e qemu-wayland: add patch to fix vulkaninfo 2023-12-15 12:12:46 +01:00
clan-bot
b7bda330b3 Merge pull request 'fixed history allowing adding the same clan twice' (#643) from Qubasa-main into main 2023-12-14 19:59:14 +00:00
Qubasa
5c143bf2da Finished clan history command. Ported remaining async to sync funcs 2023-12-14 20:57:31 +01:00
Qubasa
962a5641b4 fixed history allowing adding the same clan twice 2023-12-14 18:54:00 +01:00
clan-bot
cf899cbee9 Merge pull request 'Moved history to own subcommand' (#638) from Qubasa-main into main 2023-12-14 17:48:32 +00:00
Qubasa
7dc2c21517 Deleted everything webui 2023-12-14 18:47:14 +01:00
Qubasa
1a36ef242f Fixed failing tests in machines and history cli, removed test_machines_api.py 2023-12-14 18:25:42 +01:00
Qubasa
e139628fbd Improved ClanURI 2023-12-14 18:21:10 +01:00
Qubasa
c90053834a Reworked machines list, and history commands 2023-12-14 18:21:10 +01:00
Qubasa
9d952ba534 Fixed pytest 2023-12-14 18:21:10 +01:00
Qubasa
a1ebe663ce Fixing pytest 2023-12-14 18:21:10 +01:00
Qubasa
b00f4554d8 Improved history command 2023-12-14 18:21:10 +01:00
Qubasa
771c0e43ca Moved history to own subcommand 2023-12-14 18:21:10 +01:00
clan-bot
87a8f5518b Merge pull request 'vms/run: remove superfluous command' (#642) from a-kenji-refactor-run into main 2023-12-14 14:54:08 +00:00
a-kenji
8e84f7997a vms/run: remove superfluous command 2023-12-14 15:45:45 +01:00
kenji
d678c3ac14 Merge pull request 'vms/run: fix virtual machines spawning multiple windows' (#641) from vms-fix-run into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/641
2023-12-14 12:01:47 +00:00
a-kenji
7b5fffdaf4 vms/run: fix virtual machines spawning multiple windows 2023-12-14 08:55:12 +01:00
clan-bot
e46f644233 Merge pull request 'qemu-wayland: 8.2.0-rc2 -> 8.2.0-rc3' (#639) from Mic92-wayland-update into main 2023-12-13 15:29:03 +00:00
Jörg Thalheim
83e49f742e qemu-wayland: 8.2.0-rc2 -> 8.2.0-rc3 2023-12-13 16:21:41 +01:00
Clan Merge Bot
483a21a51b update flake lock - 2023-12-11T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/3cb78c93e6a02f494aaf6aeb37481c27a2e2ee22' (2023-11-25)
  → 'github:nix-community/disko/1144887c6f4d2dcbb2316a24364ef53e25b0fcfe' (2023-12-06)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/150f38bd1e09e20987feacb1b0d5991357532fb5' (2023-09-30)
  → 'github:nix-community/nixos-generators/246219bc21b943c6f6812bb7744218ba0df08600' (2023-12-04)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0b62f5adfd6635f8013d800ceb0cf39411a8216f' (2023-12-03)
  → 'github:NixOS/nixpkgs/1f8d62a69936dd899d0e7c955537b2f4ca5bc623' (2023-12-10)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/8bca48cb9a12bbd8766f359ad00336924e91b7f7' (2023-12-03)
  → 'github:Mic92/sops-nix/d806e546f96c88cd9f7d91c1c19ebc99ba6277d9' (2023-12-10)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/e82f32aa7f06bbbd56d7b12186d555223dc399d1' (2023-11-12)
  → 'github:numtide/treefmt-nix/afdd5e48a0869b389027307652a658051c0d2f96' (2023-12-10)
2023-12-11 00:00:51 +00:00
clan-bot
3633e4ac3f Merge pull request 'Used inspect commands in vm-manager' (#636) from Qubasa-main into main 2023-12-08 23:47:50 +00:00
Qubasa
30d55fc67e Used inspect commands in vm-manager 2023-12-09 00:45:12 +01:00
clan-bot
6833104c21 Merge pull request 'Added clan flakes inspect command. Improved ClanURI. Added democlan as dependency in flake.nix' (#635) from Qubasa-main into main 2023-12-08 23:25:37 +00:00
Qubasa
030d31c8b4 Removed democlan dependency 2023-12-09 00:23:19 +01:00
Qubasa
b319db0df9 Fixed democlan dep 2023-12-09 00:21:33 +01:00
Qubasa
136246de79 Removed democlan dependency 2023-12-09 00:19:30 +01:00
Qubasa
d4b8cef242 Added clan flakes inspect command. Improved ClanURI. Added democlan as dependency in flake.nix 2023-12-09 00:09:21 +01:00
clan-bot
9f4ab67fc2 Merge pull request 'clanCore: Fixed missing type null for clanIcon' (#634) from Qubasa-main into main 2023-12-08 18:33:58 +00:00
Qubasa
4a5e5feb73 clanCore: Fixed missing type null for clanIcon 2023-12-08 19:30:04 +01:00
Qubasa
d6052c3497 clanCore: Fixed missing type null for clanIcon 2023-12-08 19:27:58 +01:00
clan-bot
28a6613bde Merge pull request 'backups: support services for restore' (#631) from lassulus-HEAD into main 2023-12-08 18:16:08 +00:00
clan-bot
aad4073a70 Merge pull request 'Changed clanIcon to be included into clanCore' (#633) from Qubasa-main into main 2023-12-08 18:11:48 +00:00
lassulus
8340d8f5f2 clan-cli Machines: implement eval/build-cache 2023-12-08 19:09:29 +01:00
lassulus
dec431e69f backups: support services for restore 2023-12-08 19:09:29 +01:00
Qubasa
eba34bf2f7 Changed clanIcon to be included into clanCore 2023-12-08 19:08:57 +01:00
clan-bot
003b5a77c6 Merge pull request 'Added clanIcon' (#632) from Qubasa-main into main 2023-12-08 18:04:15 +00:00
Qubasa
31d95e64f8 Added clanIcon 2023-12-08 19:01:11 +01:00
clan-bot
57bded996b Merge pull request 'move clanName into nixos machine configuration' (#630) from Mic92-main into main 2023-12-08 15:21:59 +00:00
Jörg Thalheim
9704b5bd6f disable tty0 when using wayland
we don't vga output and use our serial console instead
2023-12-08 16:19:09 +01:00
Jörg Thalheim
2a0a50fb5e switch to initrd.systemd by default 2023-12-08 16:17:58 +01:00
Mic92
73973c1f5e Merge pull request 'move clanName into nixos machine configuration' (#629) from Mic92-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/629
2023-12-08 15:05:56 +00:00
Jörg Thalheim
4aa60317fa move clanName into nixos machine configuration 2023-12-08 15:05:56 +00:00
Jörg Thalheim
4b9635c706 move clanName into nixos machine configuration 2023-12-08 16:03:29 +01:00
clan-bot
c22280b864 Merge pull request 'add wayland option' (#628) from Mic92-main into main 2023-12-08 14:16:43 +00:00
Jörg Thalheim
1496f45fe2 prefix nixpkgs# explicitly in nix_shell
This makes the function usage less confusing (you can now tell from the call side what are flags and what is passed to nix-shell) and allows to use different flakes to download packages.
2023-12-08 15:14:14 +01:00
Jörg Thalheim
f6d4c721c4 vms/run: split large vm run method into smaller ones 2023-12-08 15:09:48 +01:00
Jörg Thalheim
c4a8193047 add wayland option 2023-12-08 14:13:47 +01:00
clan-bot
fca3cff4bf Merge pull request 'make vm inspect non-async' (#627) from Mic92-main into main 2023-12-08 13:02:02 +00:00
Jörg Thalheim
a98b5e205f make vm inspect non-async 2023-12-08 13:59:24 +01:00
clan-bot
9bc75943e3 Merge pull request 'syncthing: restrict access of peers to vpn' (#626) from a-kenji-restrict-introducer into main 2023-12-08 12:56:35 +00:00
a-kenji
c8ffcadad9 syncthing: restrict access of peers to vpn 2023-12-08 13:53:32 +01:00
clan-bot
3c04d14917 Merge pull request 'Added windows folder' (#624) from Qubasa-main into main 2023-12-08 12:49:07 +00:00
Qubasa
ae8029e560 clan_cli: URI parser now only has HTTP and FILE. Also clan:///home/user or clan://~/Downloads is supported 2023-12-08 13:46:21 +01:00
clan-bot
2c1533b7e2 Merge pull request 'vms/run: rename flake_url to flake-url' (#623) from Mic92-main into main 2023-12-08 12:42:59 +00:00
Jörg Thalheim
b8b4bedfdb vms/run: rename flake_url to flake-url 2023-12-08 13:40:28 +01:00
clan-bot
11772eb13e Merge pull request 'add rutabaga-gfx-ffi patches' (#622) from Mic92-main into main 2023-12-08 12:14:56 +00:00
Jörg Thalheim
4bf0bb9e45 add rutabaga-gfx-ffi patches 2023-12-08 13:08:36 +01:00
clan-bot
76c3c77886 Merge pull request 'add serial module to vms' (#621) from Mic92-main into main 2023-12-08 11:37:50 +00:00
Jörg Thalheim
64944f896a add serial module to vms
This is useful for debugging in the cli.
2023-12-08 12:35:33 +01:00
Qubasa
7c6902f70a Replaced Status with checkbox 2023-12-08 12:18:55 +01:00
clan-bot
edb503a760 Merge pull request 'always provide a clan_flake_toplevel value' (#620) from Mic92-main into main 2023-12-08 11:12:57 +00:00
Jörg Thalheim
48d7d5f38c vms/run/inspect: also make it more type-safe
nix will show proper error messages when it cannot find a flake.
2023-12-08 12:08:48 +01:00
Jörg Thalheim
31196e3d3c vms/run: make flake field option always have a value 2023-12-08 12:08:45 +01:00
Qubasa
7d22f7c9fc Added join window 2023-12-08 11:56:27 +01:00
clan-bot
72327093c2 Merge pull request 'make cli options more type safe using a dataclass' (#619) from Mic92-main into main 2023-12-08 10:33:44 +00:00
Jörg Thalheim
fa0a7ce122 make cli options more type safe using a dataclass 2023-12-08 11:31:29 +01:00
clan-bot
01291c55c1 Merge pull request 'make sure that flake url is always set in the cli' (#618) from Mic92-main into main 2023-12-08 10:07:50 +00:00
Jörg Thalheim
f261578187 make sure that flake url is always set in the cli 2023-12-08 11:05:22 +01:00
clan-bot
b885c3d052 Merge pull request 'backups: implement list the easy way' (#617) from lassulus-backups2 into main 2023-12-07 17:25:56 +00:00
lassulus
cf68bd41d6 backups: implement list/create and dry-run restore 2023-12-07 18:23:22 +01:00
clan-bot
ec2653f2fa Merge pull request 'init: syncthing module' (#616) from a-kenji-init/syncthing-module into main 2023-12-07 13:14:33 +00:00
a-kenji
ff3b8f1db0 init: syncthing module
Assumes one `introducer` peer, which can AutoShare configured folders,
with peers that know the `deviceID` of the introducer.
2023-12-07 14:10:15 +01:00
clan-bot
7f68da2715 Merge pull request 'backups: implement list the easy way' (#614) from lassulus-backups2 into main 2023-12-07 12:32:47 +00:00
lassulus
45e9ab45f7 backups: implement list the easy way 2023-12-07 13:22:41 +01:00
Qubasa
6b8216b3ac Added windows folder 2023-12-06 18:38:19 +01:00
clan-bot
a5caed0de9 Merge pull request 're-add 'U' ruff type category' (#615) from Mic92-main into main 2023-12-06 16:18:29 +00:00
Jörg Thalheim
bbc411135c move mypy/ipdb to devshell 2023-12-06 17:16:28 +01:00
Jörg Thalheim
807b53c71b modernize code with ruff 2023-12-06 17:13:58 +01:00
Jörg Thalheim
8ea149de07 re-add 'U' ruff type category
This should have been not removed
2023-12-06 17:11:17 +01:00
clan-bot
28df338527 Merge pull request 'pending-script: add @ before username' (#613) from Mic92-main into main 2023-12-06 15:17:42 +00:00
Jörg Thalheim
2f56c73b47 pending-script: add @ before username 2023-12-06 16:15:42 +01:00
clan-bot
006ce36b8a Merge pull request 'add qemu-wayland' (#612) from Mic92-main into main 2023-12-06 14:55:24 +00:00
Jörg Thalheim
7bc54cb524 get rid of task_manager 2023-12-06 15:53:23 +01:00
Jörg Thalheim
9576047adb add qemu-wayland 2023-12-06 15:53:23 +01:00
clan-bot
0eb2f2c708 Merge pull request 'clan_cli: ClanURI fixed non executing tests' (#611) from Qubasa-main into main 2023-12-06 12:41:16 +00:00
Qubasa
b48fb10f86 clan_cli: ClanURI fixed non executing tests 2023-12-06 13:38:22 +01:00
clan-bot
87b664d3b1 Merge pull request 'clan_cli: Remodeled ClanURI parser' (#610) from Qubasa-main into main 2023-12-05 17:19:42 +00:00
Qubasa
cb984f6d43 clan_cli: Remodeled ClanURI parser 2023-12-05 18:16:51 +01:00
Qubasa
22d5a61a51 clan_cli: Remodeled ClanURI parser 2023-12-05 18:08:27 +01:00
clan-bot
d694ef9bad Merge pull request 'Improved desktop file installation' (#609) from Qubasa-main into main 2023-12-05 15:20:03 +00:00
Qubasa
63c820ed86 clan_cli: Added ClanURI class parser 2023-12-05 16:17:15 +01:00
Qubasa
0cadbe0f1d Improved desktop file installation 2023-12-05 16:05:13 +01:00
clan-bot
95354fadd8 Merge pull request 'clan-vm-manager: fix meta.mainProgram' (#608) from DavHau-main into main 2023-12-05 13:33:29 +00:00
DavHau
4c093ea2d9 clan-vm-manager: fix meta.mainProgram 2023-12-05 20:31:14 +07:00
clan-bot
062594029a Merge pull request 'clan-vm-manager: Fixed vm-manager start' (#607) from Qubasa-main into main 2023-12-05 12:44:07 +00:00
Qubasa
fcf21093ac nix fmt 2023-12-05 13:41:41 +01:00
Qubasa
af441e71d2 clan-vm-manager: Fixed vm-manager start 2023-12-05 13:41:02 +01:00
clan-bot
c701b43edb Merge pull request 'clan-vm-manager: Fixed assets folder not included' (#606) from Qubasa-main into main 2023-12-04 18:26:51 +00:00
Qubasa
f183e759d3 clan-vm-manager: Added join subcommand 2023-12-04 19:23:35 +01:00
Qubasa
60bd3a3888 clan-vm-manager: Added URI xdg-mime installation into devshell 2023-12-04 17:53:22 +01:00
clan-bot
0b772668a8 Merge pull request 'backups: add clanCore backup & clan borgbackup module' (#605) from lassulus-backups into main 2023-12-04 16:51:33 +00:00
lassulus
e772d29f44 implement backup cli for borgbackup 2023-12-04 17:47:23 +01:00
Qubasa
d7b1a9f959 clan-vm-manager: Fixed assets folder not included 2023-12-04 16:56:42 +01:00
clan-bot
442551cd24 Merge pull request 'clan-vm-manager: Preserved selection on view change' (#604) from Qubasa-main into main 2023-12-04 13:31:37 +00:00
Qubasa
82fb1c36fe clan-vm-manager: Preserved selection on view change 2023-12-04 14:29:05 +01:00
clan-bot
625e2fd23c Merge pull request 'Automatic flake update - 2023-12-04T00:00+00:00' (#603) from flake-update-2023-12-04 into main 2023-12-04 00:05:07 +00:00
Clan Merge Bot
dd8e1ce758 update flake lock - 2023-12-04T00:00+00:00
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/8c9fa2545007b49a5db5f650ae91f227672c3877' (2023-11-01)
  → 'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/173b74db07f26344f3517716edd4bff6987b512d' (2023-11-26)
  → 'github:NixOS/nixpkgs/0b62f5adfd6635f8013d800ceb0cf39411a8216f' (2023-12-03)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/4be58d802693d7def8622ff34d36714f8db40371' (2023-11-26)
  → 'github:Mic92/sops-nix/8bca48cb9a12bbd8766f359ad00336924e91b7f7' (2023-12-03)
2023-12-04 00:00:56 +00:00
clan-bot
354291440a Merge pull request 'gui add stack switcher, remove notebook tabs' (#602) from hsjobeki-main into main 2023-12-03 13:11:26 +00:00
Johannes Kirschbauer
493b377266 gui add stack switcher, remove notebook tabs 2023-12-03 14:09:09 +01:00
clan-bot
a7d26e8851 Merge pull request 'extend clan history model' (#601) from hsjobeki-main into main 2023-12-02 15:19:20 +00:00
Johannes Kirschbauer
b4370c54e1 gui re-rendering & cleanup 2023-12-02 16:16:48 +01:00
Johannes Kirschbauer
bdcf5dbe8b extend clan history model 2023-12-02 16:16:38 +01:00
clan-bot
c346e9e613 Merge pull request 'partiall working run VM' (#600) from Qubasa-main into main 2023-12-01 23:18:34 +00:00
Qubasa
0e6d4cb0bb nix fmt 2023-12-02 00:15:55 +01:00
Qubasa
4dbf355ce2 partiall working run VM 2023-12-02 00:15:25 +01:00
clan-bot
0180385d4a Merge pull request 'Improved Table with feedback from W' (#598) from Qubasa-main into main 2023-12-01 22:18:31 +00:00
Qubasa
3883f5378c Removed submodule 2023-12-01 23:16:45 +01:00
Qubasa
8012bd5870 VMBase dataclass added 2023-12-01 23:13:36 +01:00
Qubasa
cfe7f4b50f VMBase dataclass added 2023-12-01 19:31:57 +01:00
Qubasa
9908ba447c moved code-workspace 2023-12-01 16:11:59 +01:00
Qubasa
34e8f42c52 remove breakpoint 2023-12-01 15:51:44 +01:00
Qubasa
583311fcda nix fmt 2023-12-01 15:46:27 +01:00
Qubasa
3db73d3396 Added better error handling in --flake argument 2023-12-01 15:45:05 +01:00
Qubasa
f9b7c5a468 Extracted class from app.py 2023-12-01 15:18:05 +01:00
Qubasa
a4a16361c9 Extracted class from app.py 2023-12-01 15:17:54 +01:00
Qubasa
5c9b95c0b9 fixed assert bug 2023-12-01 14:24:44 +01:00
Qubasa
5aa27044e5 Implemented working double click on table with information extraction 2023-12-01 14:22:50 +01:00
Qubasa
468e8d7718 nix fmt 2023-12-01 13:15:34 +01:00
Qubasa
a931d73e4f Improved Table with feedback from W 2023-12-01 13:14:38 +01:00
clan-bot
c88e9d93a2 Merge pull request 'remove outdated comment' (#597) from DavHau-dave into main 2023-12-01 09:56:45 +00:00
DavHau
703f3dd6ee remove outdated comment 2023-12-01 16:31:35 +07:00
clan-bot
c51c63087c Merge pull request 'docs: add API guidelines' (#596) from DavHau-dave into main 2023-12-01 09:30:20 +00:00
DavHau
2b2e30a72f docs: add API guidelines 2023-12-01 16:28:14 +07:00
clan-bot
2ac92ae308 Merge pull request 'remove outdated comment' (#595) from DavHau-dave into main 2023-12-01 09:14:07 +00:00
DavHau
e46d13d626 remove outdated comment 2023-12-01 16:11:31 +07:00
clan-bot
3a478c4880 Merge pull request 'flake history: make operations atomic' (#594) from DavHau-dave into main 2023-12-01 07:03:19 +00:00
DavHau
261322fae8 flake history: make operations atomic 2023-12-01 14:00:15 +07:00
clan-bot
6d6460ffca Merge pull request 'clan-cli: also package mimetypes' (#593) from Mic92-type-checking into main 2023-11-30 13:33:49 +00:00
Jörg Thalheim
b5afb3f9c0 clan-cli: also package mimetypes 2023-11-30 14:31:37 +01:00
Jörg Thalheim
4fd84d1c48 disallow variable shadowing 2023-11-30 14:31:37 +01:00
Jörg Thalheim
780ffb9c8f make type checking more strict 2023-11-30 14:31:37 +01:00
clan-bot
65cdd51af2 Merge pull request 'add option to extend path for generator' (#591) from generator into main 2023-11-30 13:18:07 +00:00
Jörg Thalheim
373fc83160 add option to extend path for generator 2023-11-30 14:15:40 +01:00
clan-bot
c6c9ea4f4a Merge pull request 'nix-direnv: update to 2.5.1' (#590) from Mic92-opengl-vm into main 2023-11-30 10:32:25 +00:00
Jörg Thalheim
7d3801a916 nix-direnv: update to 2.5.1 2023-11-30 11:29:49 +01:00
clan-bot
76b177778e Merge pull request 'integegrate remote-viewer instead of spicy' (#589) from Mic92-opengl-vm into main 2023-11-30 10:11:10 +00:00
Jörg Thalheim
31ce8f7357 fix build 2023-11-30 11:08:50 +01:00
Jörg Thalheim
ee705c5976 task-manager: spam select() without timeout 2023-11-30 10:57:58 +01:00
Jörg Thalheim
d0362bb757 error if age key cannot be decoded 2023-11-30 10:57:58 +01:00
Jörg Thalheim
3ae1c9cf75 integegrate remote-viewer instead of spicy 2023-11-29 16:07:12 +01:00
Mic92
0ee95d1054 Merge pull request 'more-linting' (#584) from more-linting into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/584
2023-11-29 13:29:45 +00:00
Jörg Thalheim
f1b223d0a1 modernisation for python 3.11 2023-11-29 13:29:45 +00:00
Jörg Thalheim
26e3e3872c enable more linting 2023-11-29 13:29:45 +00:00
clan-bot
7ae02d86af Merge pull request 'clan-core/secrets: escape trailing newline in facts' (#586) from a-kenji-trim-facts into main 2023-11-29 13:27:03 +00:00
a-kenji
41afc65f34 clan-core/secrets: escape facts trailing newline 2023-11-29 13:29:20 +01:00
clan-bot
28d18ee501 Merge pull request 'secret fixes' (#572) from Mic92-cli into main 2023-11-29 10:40:22 +00:00
Jörg Thalheim
f3b3aba6c5 run_upload_secrets: don't swallow stdout output 2023-11-29 11:38:01 +01:00
Jörg Thalheim
977bbbbd59 install: fix secrets upload 2023-11-29 11:38:01 +01:00
Jörg Thalheim
02a6162a1d test: add ipv6 example without port 2023-11-29 11:38:01 +01:00
Jörg Thalheim
179d1ed2c6 add sops command to sync keys with secrets 2023-11-29 11:34:19 +01:00
clan-bot
f4ad6d1f61 Merge pull request 'clan-vm-manager/devshell: set PYTHONBREAKPOINT with nix' (#577) from Mic92-HEAD into main 2023-11-29 10:32:41 +00:00
Jörg Thalheim
1497e37d2f clan-vm-manager/devshell: set PYTHONBREAKPOINT with nix 2023-11-29 11:29:58 +01:00
clan-bot
85e3a48702 Merge pull request 'clan-vm-manager: drop rants from README' (#576) from Mic92-HEAD into main 2023-11-29 10:29:52 +00:00
Jörg Thalheim
ee5a4ea7d9 clan-vm-manager: drop rants from README
they could be reformulated as pitfall documentation but in the current form it looks unprofessional
2023-11-29 11:26:46 +01:00
clan-bot
be6ae589e2 Merge pull request 'Made TreeView resizable' (#574) from Qubasa-main into main 2023-11-28 19:14:16 +00:00
Qubasa
91c1e91e47 nix fmt 2023-11-28 20:11:51 +01:00
Qubasa
9c20c5b25b Made TreeView resizable 2023-11-28 20:11:04 +01:00
clan-bot
753a8af510 Merge pull request 'Fully working clan select' (#573) from Qubasa-main into main 2023-11-28 18:58:39 +00:00
Qubasa
2fa124f274 nix fmt 2023-11-28 19:55:40 +01:00
Qubasa
50590ecdc4 Added UI structure and first clan vm manager 2023-11-28 19:52:29 +01:00
Qubasa
f0f6bdce96 Fully working clan select 2023-11-28 18:19:01 +01:00
lassulus
4ace326aeb add dummy backups cli 2023-11-28 13:23:48 +01:00
clan-bot
b1a4c502dd Merge pull request 'init: vm manager list view' (#570) from hsjobeki-main into main 2023-11-28 09:33:58 +00:00
Johannes Kirschbauer
e032575ec0 GUI: select handler to vm list 2023-11-28 10:31:25 +01:00
Johannes Kirschbauer
ebe411d50d init: vm manager list view 2023-11-28 10:29:38 +01:00
clan-bot
0ae454c8a9 Merge pull request 'allow ipv6 addresses in deployment addresses' (#569) from Mic92-cli into main 2023-11-28 09:08:31 +00:00
Jörg Thalheim
303df741e9 allow ipv6 addresses in deployment addresses 2023-11-28 10:05:45 +01:00
clan-bot
f7422e2a35 Merge pull request 'Automatic flake update - 2023-11-27T00:00+00:00' (#568) from flake-update-2023-11-27 into main 2023-11-27 00:05:51 +00:00
Clan Merge Bot
665487c147 update flake lock - 2023-11-27T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/2d7d77878c5d70f66f3d676ff66708d8d4f9d7df' (2023-11-12)
  → 'github:nix-community/disko/3cb78c93e6a02f494aaf6aeb37481c27a2e2ee22' (2023-11-25)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3fb937a1e9f4157f57011965b99fcb7f4139d9ad' (2023-11-20)
  → 'github:NixOS/nixpkgs/173b74db07f26344f3517716edd4bff6987b512d' (2023-11-26)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/0e3a94167dcd10a47b89141f35b2ff9e04b34c46' (2023-11-14)
  → 'github:Mic92/sops-nix/4be58d802693d7def8622ff34d36714f8db40371' (2023-11-26)
2023-11-27 00:00:56 +00:00
clan-bot
44badce35b Merge pull request 'Added spice-gtk' (#567) from Qubasa-main into main 2023-11-25 01:28:27 +00:00
Qubasa
a90d0cc806 Added spice-gtk 2023-11-25 02:25:49 +01:00
clan-bot
f6e436a591 Merge pull request 'Added snarky comments into README' (#566) from Qubasa-main into main 2023-11-25 01:07:33 +00:00
Qubasa
2bd76231a0 Added snarky comments into README 2023-11-25 02:04:55 +01:00
clan-bot
8a577b1868 Merge pull request 'Added basic GTK window handling' (#565) from Qubasa-main into main 2023-11-25 00:58:04 +00:00
Qubasa
6df833d59b Added basic GTK window handling 2023-11-25 01:55:01 +01:00
ui-asset-bot
bb7f92f9aa update ui-assets.nix 2023-11-24 14:59:09 +00:00
clan-bot
272f0e6c8a Merge pull request 'openapi: put a static version into the repository' (#564) from Mic92-cli into main 2023-11-24 14:58:34 +00:00
Jörg Thalheim
d033f523b8 openapi: put a static version into the repository
This avoids a lot of rebuilds and we can also track api changes better
2023-11-24 15:56:27 +01:00
clan-bot
7cbd8f914b Merge pull request 'rename vms create to vms run' (#563) from Mic92-cli into main 2023-11-24 14:03:29 +00:00
Jörg Thalheim
884c200061 rename vms create to vms run 2023-11-24 15:00:08 +01:00
clan-bot
e8d7321e26 Merge pull request 'nix-unit: add missing wrapper' (#562) from Mic92-cli into main 2023-11-24 07:30:21 +00:00
Jörg Thalheim
6d670fed42 nix-unit: pin nix version
This will always break and this way we can delay how often we update it.
2023-11-24 08:28:08 +01:00
Jörg Thalheim
882a5011c0 nix-unit: add missing wrapper 2023-11-24 08:22:13 +01:00
clan-bot
2c048a8a74 Merge pull request 'WIP backups' (#557) from lassulus-backups into main 2023-11-23 17:18:55 +00:00
lassulus
640430075a backups: add clanCore backup & clan borgbackup module 2023-11-23 18:12:49 +01:00
clan-bot
db5af7ea67 Merge pull request 'clan-cli: drop unused mypy overrides for gi' (#561) from Mic92-cli into main 2023-11-23 17:06:01 +00:00
Jörg Thalheim
ce1ad9f8c2 clan-cli: drop unused mypy overrides for gi 2023-11-23 18:01:40 +01:00
clan-bot
7369978218 Merge pull request 'start spice in background' (#560) from Mic92-cli into main 2023-11-23 16:59:27 +00:00
Jörg Thalheim
81512b99a3 start spice in background 2023-11-23 17:56:05 +01:00
clan-bot
e13844ff46 Merge pull request 'fake_deal: fixup call wrapper' (#559) from Mic92-cli into main 2023-11-23 16:37:40 +00:00
Jörg Thalheim
63a74ced2e spice: use unix socket instead of tcp 2023-11-23 17:34:06 +01:00
Jörg Thalheim
c701ab7514 fake_deal: fixup call wrapper 2023-11-23 17:32:37 +01:00
clan-bot
fad3108218 Merge pull request 'switch to spice for graphical vms' (#558) from Mic92-cli into main 2023-11-23 16:07:31 +00:00
Jörg Thalheim
8a0ecd802e switch to spice for graphical vms 2023-11-23 16:59:07 +01:00
Jörg Thalheim
47d0dd297f vms: start with cpu=max
This unlocks some cpu extensions
2023-11-23 16:55:36 +01:00
clan-bot
4b1f5f873c Merge pull request 'clan-vm-manager' (#556) from clan-vm-manager into main 2023-11-23 14:32:52 +00:00
Jörg Thalheim
948ed521f9 nix-direnv: update to 2.4.0 2023-11-23 15:30:44 +01:00
Jörg Thalheim
136ccc89f1 clan-vm-manager: add desktop-icon 2023-11-23 15:30:44 +01:00
Jörg Thalheim
79d0f441d9 clan-vm-manager: prepend local clan-cli to python path 2023-11-23 15:30:44 +01:00
Jörg Thalheim
b8f5c13553 clan-vm-manager: simplify shellHook 2023-11-23 15:30:44 +01:00
Jörg Thalheim
f68c10a008 clan-vm-manager: add nix package 2023-11-23 15:30:44 +01:00
Jörg Thalheim
2e54575474 clan-cli: drop dependency on deal 2023-11-23 15:03:46 +01:00
Jörg Thalheim
9eed5a7fec drop glade backup file 2023-11-23 15:03:46 +01:00
Jörg Thalheim
a838c4da17 mv clan-vm-manager to its own package 2023-11-23 15:03:46 +01:00
Qubasa
832c41df7e Added gtk demo app 2023-11-23 15:03:38 +01:00
Qubasa
17c71d2f40 Added more deal tests 2023-11-21 16:44:38 +01:00
clan-bot
c39eb24318 Merge pull request 'drop desktop item from cli' (#554) from joerg-ci into main 2023-11-21 14:29:55 +00:00
Jörg Thalheim
7d3ccb23ea drop desktop item from cli 2023-11-21 15:26:36 +01:00
clan-bot
6072159020 Merge pull request 'drop dependency on fastapi in the cli' (#551) from Mic92-cli into main 2023-11-21 14:13:13 +00:00
Jörg Thalheim
8759e5a049 drop dependency on fastapi in the cli 2023-11-21 15:09:18 +01:00
clan-bot
dc39f04371 Merge pull request 'drop join from cli' (#549) from Mic92-cli into main 2023-11-21 13:31:36 +00:00
Jörg Thalheim
f9f2f7bb65 drop join from cli 2023-11-21 14:25:51 +01:00
clan-bot
38440e644f Merge pull request 'Revert "nix-unit; update"' (#548) from Mic92-cli into main 2023-11-21 13:00:49 +00:00
Jörg Thalheim
90ff10eac1 Revert "nix-unit; update"
This reverts commit bd7899e48a.
2023-11-21 13:58:05 +01:00
clan-bot
c901133a81 Merge pull request 'schemathesis: Add as runnable application instead of library to resolve httpx dependency collision issue' (#543) from Qubasa-main into main 2023-11-21 12:49:38 +00:00
Mic92
9997f95a4b Merge pull request 'cli' (#547) from cli into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/547
2023-11-21 12:48:35 +00:00
Jörg Thalheim
48008c9b7f fix compilation of frontend 2023-11-21 12:48:35 +00:00
Jörg Thalheim
7afaaf8c5a get rid of pydantic in cli 2023-11-21 12:48:35 +00:00
clan-bot
f9b3fe0765 Merge pull request 'jsonschema: support mdDoc description' (#544) from DavHau-jsonschema into main 2023-11-21 10:33:30 +00:00
DavHau
f54ad0f739 jsonschema: support mdDoc description 2023-11-21 17:29:22 +07:00
Qubasa
48f0381fb5 schemathesis: Add as runnable application instead of library to resolve httpx dependency collision issue 2023-11-20 17:14:12 +01:00
clan-bot
9af58c7bac Merge pull request 'lib/jsonschema: add more types and excludes' (#542) from DavHau-jsonschema into main 2023-11-20 12:43:51 +00:00
DavHau
3c4c2995ca lib/jsonschema: add more types and excludes
- Complete the types to cover almost everything
- exclude specific types like functionTo or package
2023-11-20 19:40:27 +07:00
clan-bot
d47662730f Merge pull request 'nix-unit; update' (#540) from DavHau-jsonschema into main 2023-11-20 10:07:03 +00:00
DavHau
e779bc2d11 lib/jsonschema: support listOf unspecified 2023-11-20 17:03:42 +07:00
DavHau
bd7899e48a nix-unit; update 2023-11-20 17:03:37 +07:00
ui-asset-bot
ef72523f54 update ui-assets.nix 2023-11-20 08:34:25 +00:00
clan-bot
bf837dc842 Merge pull request 'extend toolbar styling, add support for atomic menu' (#539) from hsjobeki-main into main 2023-11-20 08:33:01 +00:00
Johannes Kirschbauer
b83a440cb2 move join url 2023-11-20 09:29:46 +01:00
Johannes Kirschbauer
f7f3bd2e35 decompose join/create clan, move to manage page 2023-11-20 09:22:39 +01:00
Johannes Kirschbauer
b4550b3dd9 extend toolbar styling, add support for atomic menu 2023-11-20 09:21:59 +01:00
clan-bot
59eb8af2ce Merge pull request 'history: fix: store entries only once' (#537) from DavHau-dave into main 2023-11-20 04:42:09 +00:00
DavHau
9f63f725d3 history: fix: store entries only once 2023-11-20 11:39:00 +07:00
ui-asset-bot
9d99f93b37 update ui-assets.nix 2023-11-19 11:10:43 +00:00
clan-bot
12d742f95f Merge pull request 'ui: add clan tool bar' (#535) from DavHau-dave into main 2023-11-19 11:10:06 +00:00
Johannes Kirschbauer
8922bcc8f0 fix imports & class order 2023-11-19 12:06:36 +01:00
DavHau
648c6157ad ui: add clan tool bar
To use for selecting a clan from the history
2023-11-18 18:32:02 +07:00
ui-asset-bot
ff03944ff4 update ui-assets.nix 2023-11-18 10:18:20 +00:00
DavHau
46188f70de Merge pull request 'removed unused part' (#534) from hsjobeki-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/534
2023-11-18 10:17:42 +00:00
Johannes Kirschbauer
efa59abac6 prepare for select clan from history 2023-11-18 11:00:16 +01:00
Johannes Kirschbauer
3d7f9fefa8 removed unused part 2023-11-18 11:00:16 +01:00
ui-asset-bot
ee9d7fe6cb update ui-assets.nix 2023-11-18 09:43:34 +00:00
clan-bot
584bcc5334 Merge pull request 'ui: display overlay when no machines available' (#533) from DavHau-dave into main 2023-11-18 09:42:58 +00:00
DavHau
30f22acaf5 ui: display overlay when no machines available 2023-11-18 16:40:09 +07:00
ui-asset-bot
8767e9900d update ui-assets.nix 2023-11-18 08:38:57 +00:00
clan-bot
fb7d0ff8f2 Merge pull request 'start machine list cleanup' (#532) from hsjobeki-main into main 2023-11-18 08:38:18 +00:00
Johannes Kirschbauer
fb474a926a removed unused part 2023-11-18 15:35:13 +07:00
Johannes Kirschbauer
808bd3defd start machine list cleanup 2023-11-17 16:10:09 +01:00
clan-bot
778349b72d Merge pull request 'api/flake/history: implement review requests' (#531) from DavHau-dave into main 2023-11-17 11:30:13 +00:00
DavHau
c46638f589 api/flake/history: implement review requests 2023-11-17 18:26:55 +07:00
clan-bot
bf2b8b4cca Merge pull request 'hide root from api schema' (#529) from hsjobeki-hsjobeki into main 2023-11-17 11:07:11 +00:00
Johannes Kirschbauer
f07fb05220 hide root from api schema 2023-11-17 12:03:40 +01:00
clan-bot
4f0b132088 Merge pull request 'api/flake/list_history: init' (#530) from DavHau-dave into main 2023-11-17 11:00:15 +00:00
DavHau
64649ff7a9 api/flake/list_history: init
Add an api endpoint to list the history of clan flakes that have been interacted with

Also add `clan flake list`
2023-11-17 17:56:14 +07:00
Johannes Kirschbauer
02c3222f6b hide root from api schema 2023-11-17 11:54:17 +01:00
ui-asset-bot
a01cb9434b update ui-assets.nix 2023-11-17 10:47:47 +00:00
clan-bot
a7d46a561e Merge pull request 'fix ui' (#528) from hsjobeki-hsjobeki into main 2023-11-17 10:46:19 +00:00
Johannes Kirschbauer
f419ff842a fix ui 2023-11-17 11:42:43 +01:00
clan-bot
1233ff2644 Merge pull request 'api/flake/add: init' (#527) from DavHau-dave into main 2023-11-17 10:08:12 +00:00
DavHau
999ad67277 api/flake/add: init
Adds an endpoint to memoize clans.
clan flakes can be added to the history either via the endpoint or by executing `clan flakes add`
2023-11-17 17:05:15 +07:00
clan-bot
43dbdf20d4 Merge pull request 'meshname: fix mx records and support for reverse-ips' (#526) from Mic92-sops-nix into main 2023-11-16 16:36:11 +00:00
Jörg Thalheim
5e280674fa meshname: fix mx records and support for reverse-ips 2023-11-16 17:32:05 +01:00
clan-bot
95d41323b0 Merge pull request 'Fix typo' (#525) from a-kenji-fix/typo into main 2023-11-16 13:49:30 +00:00
a-kenji
1f03a9b7ec Fix typo 2023-11-16 14:39:15 +01:00
kenji
97793c5b70 Merge pull request 'Configure nix inside the machines' (#524) from a-kenji-init/nix-settings into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/524
2023-11-16 13:22:28 +00:00
a-kenji
0604d5a83d Configure nix inside the machines
Add sane nix defaults for debugging and usability reasons
2023-11-16 14:08:50 +01:00
clan-bot
20cdcbcb44 Merge pull request 'clanCore: install essential tools for debugging + flake nixpkgs registry pin' (#523) from Mic92-sops-nix into main 2023-11-16 12:52:26 +00:00
Jörg Thalheim
7f6b0dfaea pin nixos-wide registry to nixpkgs used to build the machine itself
Instead of downloading archives and filling up vm disk space we can juse the nixpkgs version we already use for evaluating
2023-11-16 13:49:35 +01:00
Jörg Thalheim
d2fecd0a94 clanCore: install essential tools for debugging 2023-11-16 13:46:13 +01:00
clan-bot
91b6094704 Merge pull request 'secrets/generate-private-key: just create parent opportunistically' (#522) from Mic92-sops-nix into main 2023-11-16 12:21:39 +00:00
Jörg Thalheim
978d9efd7e secrets/generate-private-key: just create parent opportunistically 2023-11-16 13:19:12 +01:00
lassulus
2f870d2c83 Merge pull request 'clan_cli: create key directory' (#521) from a-kenji-mkdir/clan/cli into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/521
2023-11-16 11:18:33 +00:00
kenji
12930b4057 clan_cli: create key directory 2023-11-15 23:15:12 +01:00
clan-bot
5c495e3cdc Merge pull request 'machines.update: remove redundant flake argument' (#519) from lassulus-update-fix into main 2023-11-15 21:01:02 +00:00
lassulus
5640b84433 machines.update: remove redundant flake argument 2023-11-15 21:57:08 +01:00
clan-bot
e185ab971c Merge pull request 'bump nix-unit' (#517) from joerg-ci into main 2023-11-15 15:51:47 +00:00
Jörg Thalheim
1f558954af drop schemathesis
This creates conflicting python packages when included
2023-11-15 16:48:46 +01:00
Jörg Thalheim
89b235e18a bump nix-unit 2023-11-15 16:39:48 +01:00
clan-bot
1d7e8046fe Merge pull request 'pending-reviews: add bullet points to prs' (#516) from Mic92-sops-nix into main 2023-11-15 15:36:58 +00:00
Jörg Thalheim
df0bdb5b5f pending-reviews: add bullet points to prs 2023-11-15 16:34:21 +01:00
clan-bot
13019e17f0 Merge pull request 'refactor flake_name -> flake_dir' (#491) from flakes2 into main 2023-11-15 15:30:54 +00:00
lassulus
a3e42a958f disable ui 2023-11-15 16:28:09 +01:00
lassulus
1ea13646ea clan_cli: flake_name -> flake_dir 2023-11-15 16:23:28 +01:00
clan-bot
7c50846f00 Merge pull request 'add pending-reviews script' (#514) from Mic92-sops-nix into main 2023-11-15 12:51:20 +00:00
Jörg Thalheim
56f135faed add pending-reviews script 2023-11-15 13:48:52 +01:00
clan-bot
6af96a6f87 Merge pull request 'tea-create-pr: automatic needs-review label' (#513) from Mic92-sops-nix into main 2023-11-15 12:00:35 +00:00
Jörg Thalheim
7ec378ca62 tea-create-pr: automatic needs-review label 2023-11-15 12:55:30 +01:00
clan-bot
1a6f2fe9cb Merge pull request 'Fix incorrect machine name for shell.nix' (#512) from Qubasa-main into main 2023-11-15 10:32:39 +00:00
Qubasa
aa39a631ac Fix incorrect machine name for shell.nix 2023-11-15 11:29:07 +01:00
Mic92
f98df10330 Merge pull request 'zerotier: fix ip not beeing persistent for peers' (#511) from Mic92-sops-nix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/511
2023-11-15 10:23:07 +00:00
Jörg Thalheim
2bda2293cb meshnamed: fix container 2023-11-15 11:20:56 +01:00
Jörg Thalheim
df1e166afb clanCore/networking: allow ping unconditionally 2023-11-15 11:07:03 +01:00
Jörg Thalheim
1e49bf3378 zerotier: also install identity secrets for non-controllers 2023-11-15 11:07:03 +01:00
Jörg Thalheim
a84d628b81 deltachat: fixup default usernames 2023-11-15 11:07:03 +01:00
Jörg Thalheim
fcb22f254c move resolved configuration to a dummy interface 2023-11-15 11:07:03 +01:00
clan-bot
9802933ea9 Merge pull request 'zerotier: fix eval if meshname is not known yet' (#510) from Mic92-sops-nix into main 2023-11-15 06:23:38 +00:00
Jörg Thalheim
9358dfb666 drop verbose command logging in task manager 2023-11-15 07:21:26 +01:00
Jörg Thalheim
c1f6c0db66 pytest: add missing with-core marker 2023-11-15 07:21:26 +01:00
Jörg Thalheim
dca61fa5fa explicitly set networkd as the default 2023-11-15 07:21:26 +01:00
Jörg Thalheim
8cda86d34c integrated meshnamed with systemd-resolved 2023-11-15 07:21:26 +01:00
Jörg Thalheim
75f1815f98 move clan-imports into clanCore 2023-11-15 07:21:26 +01:00
Jörg Thalheim
30eb6a3ae2 deltachat: use zerotier address if available 2023-11-15 07:21:26 +01:00
Jörg Thalheim
2306b2ec50 zerotier: fix eval if meshname is not known yet 2023-11-15 07:21:26 +01:00
clan-bot
5cc3e88de6 Merge pull request 'zerotier: also enable meshnamed for non-controllers' (#509) from Mic92-sops-nix into main 2023-11-14 16:47:40 +00:00
Jörg Thalheim
fdfe02fb77 zerotier: also enable meshnamed for non-controllers 2023-11-14 17:45:30 +01:00
Jörg Thalheim
b2422f9c74 zerotier: write hostname to file 2023-11-14 17:45:30 +01:00
clan-bot
8968160221 Merge pull request 'also regenerate secrets if a fact is missing' (#508) from Mic92-sops-nix into main 2023-11-14 16:11:10 +00:00
Jörg Thalheim
6cb41cb006 also regenerate secrets if a fact is missing 2023-11-14 17:07:58 +01:00
clan-bot
ae1f177d10 Merge pull request 'fix exception when file does not exist' (#507) from Mic92-sops-nix into main 2023-11-14 16:00:20 +00:00
Jörg Thalheim
b9618e57c5 fix exception when file does not exist
fixes https://git.clan.lol/clan/clan-core/issues/488
2023-11-14 16:57:05 +01:00
clan-bot
c89ed67f30 Merge pull request 'add cors headers in exception handler in cors' (#506) from Mic92-sops-nix into main 2023-11-14 15:42:46 +00:00
Jörg Thalheim
19d7f17310 add cors headers in exception handler in cors 2023-11-14 16:39:20 +01:00
clan-bot
d815091f10 Merge pull request 'make openapi spec content addressed' (#505) from Mic92-sops-nix into main 2023-11-14 14:35:35 +00:00
Jörg Thalheim
18627baa9c only enable corsmiddleware when in dev mode and allow all origins 2023-11-14 15:32:03 +01:00
clan-bot
b2bbddd1f9 Merge pull request 'enable meshnamed in zerotier module' (#504) from Mic92-sops-nix into main 2023-11-14 13:42:43 +00:00
Jörg Thalheim
d2303df18b enable meshnamed in zerotier module 2023-11-14 14:40:26 +01:00
clan-bot
df363a8cfb Merge pull request 'zerotier: add leading zeros at subnet' (#503) from Mic92-sops-nix into main 2023-11-14 13:28:13 +00:00
Jörg Thalheim
cf9f24a3b2 zerotier: add leading zeros at subnet 2023-11-14 14:25:58 +01:00
clan-bot
a314f8390c Merge pull request 'zerotier: compute ipv6 subnets' (#502) from Mic92-sops-nix into main 2023-11-14 13:09:26 +00:00
Jörg Thalheim
99649f77d4 zerotier: compute ipv6 subnets 2023-11-14 14:04:05 +01:00
clan-bot
f34abb0034 Merge pull request 'drop zerotier-subnet, we can compute this.' (#501) from Mic92-sops-nix into main 2023-11-14 12:53:18 +00:00
Jörg Thalheim
5d41bcee7f drop zerotier-subnet, we can compute this. 2023-11-14 13:50:44 +01:00
clan-bot
f2e2d50c06 Merge pull request 'add module for meshnamed' (#499) from Mic92-sops-nix into main 2023-11-14 12:01:26 +00:00
Jörg Thalheim
bdc8ef63ed add module for meshnamed 2023-11-14 12:58:15 +01:00
Jörg Thalheim
eb788393e6 update flake lock 2023-11-14 11:29:43 +01:00
clan-bot
b47e38271e Merge pull request 'api/machines: add test ensuring empty config is valid' (#497) from DavHau-dave into main 2023-11-13 14:59:51 +00:00
DavHau
2dcdf738ce api/machines: add test ensuring empty config is valid 2023-11-13 21:56:02 +07:00
clan-bot
ace0ae5c49 Merge pull request 'api/machines: allow config verification on imaginary machines' (#496) from DavHau-dave into main 2023-11-13 14:29:11 +00:00
DavHau
6a52c5f15b api/machines: allow config verification on imaginary machines
Machines do not need to exist in order to verify their configuration.

This allows verifying a config before creating an actual machine with it.
2023-11-13 21:24:05 +07:00
clan-bot
7eb664fd08 Merge pull request 'api/machines: verify config by evaluating the .vm output' (#495) from DavHau-dave into main 2023-11-13 13:53:42 +00:00
DavHau
55a1df7868 api/machines: verify config by evaluating the .vm output
This fixes the problem where fileSystems were missing, or boot.loader was not set.

SInce we want VMs anyways for now, this strategy aligns well
2023-11-13 20:50:11 +07:00
ui-asset-bot
f55fcc1551 update ui-assets.nix 2023-11-13 13:31:33 +00:00
clan-bot
8b60c68206 Merge pull request 'api/machines: init put_machine replacing create_machine and set_machine_config' (#494) from DavHau-dave into main 2023-11-13 13:30:53 +00:00
DavHau
1652b5c27b api/machines: init put_machine replacing create_machine and set_machine_config
This allows creating and configuring a machine in one single step.
2023-11-13 20:25:52 +07:00
DavHau
2395119d21 task_manager.py: fix index out of range bug 2023-11-13 20:21:51 +07:00
DavHau
14c4b99891 commit_file: fix diff computation
previously computed diff over all files
2023-11-13 19:59:20 +07:00
DavHau
42dba72239 chore: remove unnecessary comment 2023-11-12 07:57:48 +07:00
DavHau
236ca4f98c api/machines: ensure name is valid hostname 2023-11-12 07:57:48 +07:00
clan-bot
eec22d7d39 Merge pull request 'fix sops-nix override' (#492) from sops-nix into main 2023-11-11 17:31:09 +00:00
Jörg Thalheim
b2998e2e94 fix sops-nix override 2023-11-11 18:28:18 +01:00
ui-asset-bot
3a2c407ae0 update ui-assets.nix 2023-11-11 14:30:55 +00:00
clan-bot
4ed42540ba Merge pull request 'feat/configure-modules' (#490) from feat/configure-modules into main 2023-11-11 14:30:16 +00:00
Johannes Kirschbauer
74c8b85e4a fix type errors 2023-11-11 15:27:57 +01:00
Johannes Kirschbauer
7a02483534 merge main 2023-11-11 15:11:06 +01:00
Johannes Kirschbauer
d7476c967e clean up join workflow 2023-11-11 15:01:18 +01:00
Johannes Kirschbauer
97b8c7a701 add & configure machine: added formular integration 2023-11-11 10:08:39 +01:00
clan-bot
04c754caad Merge pull request 'vms/create: drop extra flake argument and make it work with local flakes' (#487) from Mic92-zerotier into main 2023-11-10 12:46:45 +00:00
Jörg Thalheim
54ede8a0ff vms/create: drop extra flake argument and make it work with local flakes 2023-11-10 13:43:14 +01:00
clan-bot
e1bccaa54f Merge pull request 'rename luispkgs to nixpkgs-for-deal' (#485) from zerotier into main 2023-11-10 12:17:03 +00:00
Jörg Thalheim
c8e1acac2b rename luispkgs to nixpkgs-for-deal 2023-11-10 13:14:06 +01:00
clan-bot
4170fce7e8 Merge pull request 'move flake configuration to .config/clan/flakes rather than $XDG_DATA_DIRS' (#484) from zerotier into main 2023-11-10 12:01:30 +00:00
Jörg Thalheim
c0be813a4c dirs: opportuniscally create directories 2023-11-10 12:55:46 +01:00
Jörg Thalheim
657cdd6e67 drop unused clan_data_dir 2023-11-10 12:55:46 +01:00
Jörg Thalheim
df1acebd87 move flake configuration to .config/clan/flakes rather than $XDG_DATA_DIRS 2023-11-10 12:50:51 +01:00
Jörg Thalheim
46191b9a9c drop unused ClanDataPath 2023-11-10 12:46:15 +01:00
clan-bot
d848298017 Merge pull request 'moving deal dependencies to tests only' (#483) from zerotier into main 2023-11-10 11:43:45 +00:00
Jörg Thalheim
85a06d47e5 breakpoint_shell: make work_dir optional 2023-11-10 12:40:51 +01:00
Jörg Thalheim
13b685f7af moving deal dependencies to tests only 2023-11-10 12:39:24 +01:00
clan-bot
b518d92678 Merge pull request 'zerotier: allow to persist zerotier identities/ips/meshnames for non-controller' (#482) from zerotier into main 2023-11-10 10:59:48 +00:00
Jörg Thalheim
c28089d4b2 allow to persist zerotier identities/ips/meshnames for non-controller 2023-11-10 11:56:54 +01:00
clan-bot
078c211292 Merge pull request 'api/schema: return list of missing modules' (#480) from DavHau-dave into main 2023-11-10 08:10:53 +00:00
DavHau
39607a0925 api/schema: return list of missing modules 2023-11-10 15:07:15 +07:00
clan-bot
53ce82984d Merge pull request 'api/schema: don't crash on eval error' (#479) from DavHau-dave into main 2023-11-10 07:30:06 +00:00
DavHau
97ea9312ac api/schema: don't crash on eval error 2023-11-10 14:27:03 +07:00
Jörg Thalheim
b8ed607658 also override XDG_DATA_HOME in tests
otherwise tests will fail if XDG_DATA_HOME is set by a user
2023-11-09 17:45:24 +01:00
Jörg Thalheim
af0714132d clan: use .local/share as default for XDG_DATA_HOME 2023-11-09 17:45:24 +01:00
Jörg Thalheim
0206210b7e fix error message if clan flake does not exist 2023-11-09 17:44:44 +01:00
ui-asset-bot
c194adc181 update ui-assets.nix 2023-11-09 08:34:03 +00:00
clan-bot
163374dc6a Merge pull request 'api/schema: get schema without having a machine' (#478) from DavHau-dave into main 2023-11-09 08:33:23 +00:00
DavHau
2a6e329e40 api/schema: get schema without having a machine
Also done:
- add @pytest.mark.with_core indicating that a test depends on clan-core and cannot be cached
- separate unit tests into two derivations, ones that can be cached and ones that cannot.
- fix frontend typescript code
2023-11-09 15:30:25 +07:00
clan-bot
f2062db56c Merge pull request 'Fixed wrong examples' (#477) from Qubasa-main into main 2023-11-08 20:43:27 +00:00
Qubasa
10e52699be Fixed wrong examples 2023-11-08 21:40:17 +01:00
clan-bot
4f39abd1de Merge pull request 'Flake: Added python package deal as dependency' (#476) from Qubasa-main into main 2023-11-08 19:16:58 +00:00
Qubasa
ce90b02e06 Added deal as python dependency 2023-11-08 20:14:32 +01:00
Qubasa
7d030f85a1 Updated flake.lock 2023-11-08 20:02:53 +01:00
Qubasa
7240727b26 Added deal contract framework and testing documentation 2023-11-08 19:56:07 +01:00
Qubasa
32aa287da5 Added schemathesis dependency 2023-11-08 19:56:05 +01:00
Qubasa
798fbe3839 Added documentation on contract and property based testing 2023-11-08 19:55:12 +01:00
Qubasa
9cb46bf1cd Flake: Added python package deal as dependency 2023-11-08 19:55:11 +01:00
clan-bot
766a5a2ae7 Merge pull request 'drop bloatware module' (#475) from Mic92-HEAD into main 2023-11-08 13:49:35 +00:00
Jörg Thalheim
0efbb461e6 drop bloatware module 2023-11-08 14:47:31 +01:00
clan-bot
2a189995c5 Merge pull request 'package meshnamed' (#474) from Mic92-HEAD into main 2023-11-08 13:34:54 +00:00
Jörg Thalheim
0e0803f000 package meshnamed 2023-11-08 14:32:49 +01:00
clan-bot
c66272761e Merge pull request 'switch back to main' (#473) from Mic92-maddy into main 2023-11-08 09:23:53 +00:00
Jörg Thalheim
9beb302b9a switch back to main 2023-11-08 10:17:00 +01:00
clan-bot
231f1fe322 Merge pull request 'api/machines: better input/output validation' (#472) from DavHau-dave into main 2023-11-06 10:59:14 +00:00
DavHau
7e99454462 api/machines: better input/output validation
Also move contents tof 'config' to the top-level
2023-11-06 17:56:27 +07:00
clan-bot
c47e59d32d Merge pull request 'clan-cli secrets: flake_name -> flake_dir' (#450) from flakes into main 2023-11-05 16:27:13 +00:00
lassulus
7b3d3e20b4 clan-cli secrets: flake_name -> flake_dir 2023-11-05 16:58:48 +01:00
ui-asset-bot
1cd7fed34d update ui-assets.nix 2023-11-04 14:13:47 +00:00
clan-bot
0df53d068c Merge pull request 'add error handling' (#467) from feat/configure-modules into main 2023-11-04 14:12:27 +00:00
Johannes Kirschbauer
15a136b266 add error handling
prevent the user to go into next step if schema cannot be retrieved
2023-11-04 15:10:37 +01:00
ui-asset-bot
651056739a update ui-assets.nix 2023-11-04 13:58:39 +00:00
clan-bot
462535a808 Merge pull request 'style & explanation text' (#466) from feat/configure-modules into main 2023-11-04 13:57:20 +00:00
Johannes Kirschbauer
223b6bbca7 style & explanation text 2023-11-04 14:55:32 +01:00
ui-asset-bot
1025901fb3 update ui-assets.nix 2023-11-04 13:05:01 +00:00
clan-bot
c9afa54c32 Merge pull request 'select modules' (#465) from feat/configure-modules into main 2023-11-04 13:04:27 +00:00
Johannes Kirschbauer
92eebd7ea7 format stuff 2023-11-04 14:02:32 +01:00
Johannes Kirschbauer
a34d5d20e0 select modules.Prefetched schema depends only on modules 2023-11-04 13:53:30 +01:00
ui-asset-bot
eda80579d6 update ui-assets.nix 2023-11-04 08:58:19 +00:00
clan-bot
a15ddd5998 Merge pull request 'add create/join switch' (#447) from feat/create-flake into main 2023-11-04 08:57:42 +00:00
Johannes Kirschbauer
bdcdf59a49 fix changed api imports 2023-11-04 09:55:53 +01:00
Johannes Kirschbauer
8bebe90b52 disable lint rule 2023-11-04 09:46:14 +01:00
Johannes Kirschbauer
6188957b65 format 2023-11-04 09:16:37 +01:00
Johannes Kirschbauer
fec748fbfd merge main 2023-11-04 09:15:15 +01:00
ui-asset-bot
896c68bd72 update ui-assets.nix 2023-11-03 21:45:18 +00:00
clan-bot
d4f73cb32f Merge pull request 'contributing.md: Fixed missing direnv install step' (#457) from Qubasa-main into main 2023-11-03 21:44:44 +00:00
Qubasa
08dbdc0711 Fixed UI incorrectly not deleting api folder. Fixing new import paths for UI 2023-11-03 22:43:03 +01:00
Qubasa
b09bb155c1 nix fmt 2023-11-03 22:22:16 +01:00
Qubasa
2d4a20457b Fixing failing test 2023-11-03 22:21:22 +01:00
Qubasa
efa48052cf API: Added /api/flake/list. Added API grouping and description for better visibility 2023-11-03 22:05:33 +01:00
Qubasa
90a1311365 contributing.md: Fixed missing direnv install step 2023-11-03 20:33:27 +01:00
clan-bot
7e42ca0746 Merge pull request 'deltachat: allow other ports to access smtp port' (#455) from Mic92-maddy into main 2023-11-03 14:47:38 +00:00
Jörg Thalheim
86afcbe14b deltachat: allow other ports to access smtp port 2023-11-03 15:45:29 +01:00
clan-bot
5a2ee70282 Merge pull request 'flake.lock: Update' (#454) from Mic92-maddy into main 2023-11-03 14:26:41 +00:00
Jörg Thalheim
754d3bb125 flake.lock: Update
Flake lock file updates:

• Updated input 'sops-nix':
    'github:Mic92/sops-nix/c59da7ac29f041954c0864bc7bbb2c66ee18eba5' (2023-11-03)
  → 'github:Mic92/sops-nix/275b28593ef3a1b9d05b6eeda3ddce2f45f5c06f' (2023-11-03)
2023-11-03 15:24:51 +01:00
clan-bot
9845efad71 Merge pull request 'flake.lock: Update' (#452) from Mic92-maddy into main 2023-11-03 13:52:50 +00:00
clan-bot
e967ab3849 Merge pull request 'cli: merge nix options correctly; ruff format' (#451) from maddy into main 2023-11-03 13:50:30 +00:00
Jörg Thalheim
29c5951932 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/4122a18340094151d7911e838237ec7627f0d0c5' (2023-10-22)
  → 'github:nix-community/disko/944d338d24a9d043a3f7461c30ee6cfe4f9cca30' (2023-10-27)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4' (2023-10-03)
  → 'github:hercules-ci/flake-parts/8c9fa2545007b49a5db5f650ae91f227672c3877' (2023-11-01)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/30a0ba4a20703b4bfe047fe5def1fc24978e322c' (2023-10-22)
  → 'github:Mic92/sops-nix/c59da7ac29f041954c0864bc7bbb2c66ee18eba5' (2023-11-03)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/aae39f64f5ecbe89792d05eacea5cb241891292a' (2023-10-15)
  → 'github:numtide/treefmt-nix/5deb8dc125a9f83b65ca86cf0c8167c46593e0b1' (2023-10-27)
2023-11-03 14:49:49 +01:00
Jörg Thalheim
c5007ce7e3 fix clan_error_handler type 2023-11-03 14:48:14 +01:00
Jörg Thalheim
557a0db7d1 deltachat: import module from clanModules 2023-11-03 14:02:07 +01:00
Jörg Thalheim
b92052dbfb container-driver: fix eval 2023-11-03 14:01:43 +01:00
Jörg Thalheim
94177d827d switch to deltachat branch 2023-11-03 13:50:05 +01:00
Jörg Thalheim
742886b8d5 switch to back to nixos-unstable-small 2023-11-03 13:44:12 +01:00
Jörg Thalheim
5cb4019942 switch from black to ruff for formatting 2023-11-03 13:38:13 +01:00
Jörg Thalheim
15dc4fd497 cli: merge nix options correctly 2023-11-03 13:31:36 +01:00
Mic92
85357ec137 Merge pull request 'add nix option flag that is passed to underlying nix commands' (#449) from maddy into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/449
2023-11-03 12:19:22 +00:00
Jörg Thalheim
e1efaedc38 add nix option flag that is passed to underlying nix commands 2023-11-03 12:28:26 +01:00
Mic92
96053b679c Merge pull request 'add deltachat module' (#448) from maddy into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/448
2023-11-03 10:39:51 +00:00
Jörg Thalheim
f71e56b111 add deltachat module 2023-11-03 10:39:51 +00:00
Jörg Thalheim
2ee68fb0e2 drop xmpp setup again 2023-11-03 10:39:51 +00:00
Johannes Kirschbauer
8677c14aaa add create/join switch 2023-10-31 19:05:37 +01:00
clan-bot
331529c1df Merge pull request 'ejabberd: fix sqlite and access' (#446) from Mic92-main into main 2023-10-31 17:45:16 +00:00
Jörg Thalheim
3e989c57fa drop ejabberd again 2023-10-31 18:43:51 +01:00
Jörg Thalheim
2e35554e9f add prosody 2023-10-31 17:41:36 +01:00
Jörg Thalheim
4361eb3a19 ejabberd: fix sqlite and access 2023-10-31 16:46:02 +01:00
clan-bot
b2c6965ec3 Merge pull request 'zerotier: enable networkd, better qemu vga' (#445) from Mic92-main into main 2023-10-31 14:40:22 +00:00
Jörg Thalheim
52a56701ff zerotier: enable networkd 2023-10-31 15:35:09 +01:00
Jörg Thalheim
d562c6ac5f vms/create: try virtio for vga
seems to suck less than std.
2023-10-31 15:34:53 +01:00
Qubasa
9875d5d2a3 Fixing tea-create-pr 2023-10-31 15:34:47 +01:00
Qubasa
e11b0481a0 nix fmt 2023-10-31 15:34:47 +01:00
Qubasa
291cb091c5 Added contributing.md and improved README.md 2023-10-31 15:34:47 +01:00
lassulus
370485403d switch flake to main branch again 2023-10-31 15:34:47 +01:00
lassulus
c9d7a96844 cli machines update: find flake dir automatic if not provided, support flake as path 2023-10-31 15:34:47 +01:00
clan-bot
65eaece901 Merge pull request 'clanModules: add xfce/dino' (#444) from Mic92-main into main 2023-10-31 12:56:32 +00:00
Jörg Thalheim
06aaa35119 vms/create: use tmpdir again 2023-10-31 13:53:54 +01:00
Jörg Thalheim
60721e442d vms/create: allow xchg/secrets dir to exist 2023-10-31 13:53:54 +01:00
Jörg Thalheim
cb87ccbfc4 improve error message if flake_dir does not exists 2023-10-31 13:53:54 +01:00
Jörg Thalheim
61abc96581 clanModules: add ejabberd 2023-10-31 13:53:54 +01:00
clan-bot
1524952eb0 Merge pull request 'Added contributing.md and improved README.md' (#443) from Qubasa-main into main 2023-10-31 12:18:53 +00:00
Qubasa
638416a9c0 Fixing tea-create-pr 2023-10-31 13:16:19 +01:00
lassulus
6fdd1d56ad Merge pull request 'cli machines update: find flake dir automatic if not provided, support flake as path' (#441) from lassulus-HEAD into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/441
2023-10-31 12:09:35 +00:00
lassulus
f4e7828725 switch flake to main branch again 2023-10-31 13:01:16 +01:00
Qubasa
8113260f49 nix fmt 2023-10-31 13:00:48 +01:00
Qubasa
fe689d4840 Added contributing.md and improved README.md 2023-10-31 12:57:28 +01:00
Jörg Thalheim
3fd7b4ef29 clanModules: add xfce/dino 2023-10-31 12:49:51 +01:00
lassulus
17176f25de cli machines update: find flake dir automatic if not provided, support flake as path 2023-10-29 20:52:38 +01:00
ui-asset-bot
0590e4456a update ui-assets.nix 2023-10-29 18:55:11 +00:00
Luis Hebendanz
845d743d99 Merge pull request 'Adding state directory, rearchitecturing API endpoints' (#425) from Qubasa-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/425
2023-10-29 18:54:34 +00:00
Qubasa
7a8eef0648 Fixed test_webui only failing in nix_sandbox also fixed test_create_flake 2023-10-29 19:51:35 +01:00
Qubasa
4209da96e9 Fixed test_webui only failing in nix_sandbox 2023-10-29 19:35:29 +01:00
Johannes Kirschbauer
e6675cb4d9 format pytest 2023-10-28 18:38:14 +02:00
Johannes Kirschbauer
5c9f826a23 fix frontend 2023-10-28 18:34:36 +02:00
Qubasa
032cdd731a Fixing test_clan_modules test 2023-10-27 23:39:02 +02:00
Qubasa
00ef406713 Updated to main branch. Removed cluttering asyncio and httpx log messages 2023-10-27 23:36:45 +02:00
Qubasa
410b7c1158 Updated to main branch 2023-10-27 19:26:51 +02:00
Qubasa
ce66ab036f next lint now throws at least an equal amount of errors as next build if not more. 2023-10-27 19:26:03 +02:00
Qubasa
40f4227413 Fixed missing FlakeName argument 2023-10-27 19:26:03 +02:00
Qubasa
eafc55f2e7 Fixing deadlock 2023-10-27 19:26:03 +02:00
Qubasa
f9b1a8fa89 Removing find_git_repo 2023-10-27 19:26:03 +02:00
Qubasa
0378e01cbb Fixing test_vms_api test 2023-10-27 19:26:03 +02:00
Qubasa
4aac2012cf Fixing test_vms_api test 2023-10-27 19:26:03 +02:00
Qubasa
674d84a43a Fixing test_vms_api test 2023-10-27 19:26:03 +02:00
Qubasa
86790a6282 Commit only for debugging Container 2023-10-27 19:26:03 +02:00
Qubasa
b1d0129fc0 Commit only for debugging Container 2023-10-27 19:26:03 +02:00
Qubasa
efd201c7c5 nix fmt 2023-10-27 19:26:03 +02:00
Qubasa
a28f910e35 nix fmt 2023-10-27 19:26:03 +02:00
Qubasa
3f87ec851f All tests passing babyyy !! 2023-10-27 19:26:03 +02:00
Qubasa
c1b4fa6d55 nix fmt 2023-10-27 19:21:50 +02:00
Qubasa
3581e0c9a8 Fixing a multitude of tests 2023-10-27 19:21:50 +02:00
Qubasa
d1c35301e3 Added repro_env_break debugging command. This spawn a terminal inside the temp home folder with the same environment as the python test 2023-10-27 19:20:17 +02:00
Qubasa
59393bb35e Working test_create_flake 2023-10-27 19:20:17 +02:00
Qubasa
26bfb793b1 Added ref to Qubasa-main in template/new-clan/flake.nix 2023-10-27 19:20:17 +02:00
Qubasa
a71584d9d2 Added clanName argument to clan-core.lib.builClan 2023-10-27 19:20:17 +02:00
Qubasa
d02acbe04b nix fmt 2023-10-27 19:19:45 +02:00
Qubasa
9f464dd14e Added ipdb as breakpoint console. Improved logging. 2023-10-27 19:19:45 +02:00
Qubasa
af3f04736b Improved logging messages. Added ClanError if flake create or machine create already exist 2023-10-27 19:18:45 +02:00
Qubasa
8482bc79f6 Secrets tests passing. nix fmt doesn't complain 2023-10-27 19:18:45 +02:00
Qubasa
03cabda2d4 Improved test logging with frame inspection 2023-10-27 19:18:45 +02:00
Qubasa
8cc1c2c4bd Fixed cyclic dependencie AND swapped pytest-parallel for pytest-xdist to fix deadlock in tests 2023-10-27 19:18:45 +02:00
Qubasa
2ca54afe7f Added new type FlakeName 2023-10-27 19:18:45 +02:00
Qubasa
32e60f5adc Added flake_name:str argument everywhere, nix fmt doesn't complain anymore 2023-10-27 19:15:40 +02:00
Qubasa
fdcd7ad1d9 Updated to main 2023-10-27 19:15:11 +02:00
Qubasa
711c70d1f0 Added state directory. 2023-10-27 19:11:27 +02:00
Qubasa
fa5f39f226 API: Added Path validators. api/flake/create inits git repo. Fixed vscode interpreter problem 2023-10-27 19:11:27 +02:00
clan-bot
cc96fcf916 Merge pull request 'move breakpoint checks out of default build' (#440) from Mic92-main into main 2023-10-27 15:42:28 +00:00
Jörg Thalheim
a7848de3a3 extending machines documentation 2023-10-27 17:40:20 +02:00
Jörg Thalheim
04836fa9e8 improve output of installer iso
Now it also includes local addresses.
2023-10-27 17:40:20 +02:00
Jörg Thalheim
79e707b044 fix updating multiple machines 2023-10-27 17:40:20 +02:00
Jörg Thalheim
b2c3b3840f move breakpoint checks out of default build
this allows to debug builds with breakpoints
2023-10-27 17:40:20 +02:00
clan-bot
902a95d04d Merge pull request 'docs: fix clan create command' (#439) from Mic92-main into main 2023-10-27 12:30:32 +00:00
Jörg Thalheim
3e4ad8ae1b cli/vms/create: fix trailing newlines in log output 2023-10-27 14:27:52 +02:00
Jörg Thalheim
ba50ce45f1 docs: fix clan create command 2023-10-27 13:28:34 +02:00
clan-bot
5d186d9fd4 Merge pull request 'api/machines: split off config validation into separate endpoint' (#438) from DavHau-dave into main 2023-10-25 23:25:56 +00:00
DavHau
0e5c7d2d13 api/machines: split off config validation into separate endpoint
- This speeds up PUT /machines{name}/config as it doesn't do the expensive check anymore
- instead use PUT /machines/{name}/verify which allows a dry-run evaluation of a config which is passed without writing it to disk
2023-10-25 17:48:37 +01:00
clan-bot
ed87aefbad Merge pull request '/api/clan_modules: init' (#437) from DavHau-dave into main 2023-10-25 16:25:05 +00:00
DavHau
25708d1a1a /api/clan_modules: init
- add GET /api/clan_modules entry point returning a list of modules available for import
2023-10-25 17:22:35 +01:00
clan-bot
a6f51d4dae Merge pull request 'api/machines: allow importing extra modules' (#436) from DavHau-dave into main 2023-10-25 15:39:00 +00:00
DavHau
bf176ad277 api/machines: allow importing extra modules
- add top-level option `clanImports` to clanCore
- clanImports can be set and checked as any other option
- buildClan resolves the clanImports from the settings.json before calling evalModules to prevent infinite recursions
- new endpoint PUT machines/{name}/schema to allow getting the schema for a specific list of imports
- to retrieve the currently imported modules, cimply do a GET or PU on machines/{name}/config which will return `clanImports` as part of the config

Still missing: get list of available modules
2023-10-25 16:36:30 +01:00
Mic92
1d45d493ef Merge pull request 'add container test driver' (#435) from container into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/435
2023-10-25 13:16:13 +00:00
Jörg Thalheim
5753f32930 add container test driver 2023-10-25 13:16:13 +00:00
clan-bot
f7031bdbdb Merge pull request 'PUT /machines/{name}/config; ensure is idempotent' (#434) from DavHau-dave into main 2023-10-24 17:50:51 +00:00
DavHau
9f6e01671f PUT /machines/{name}/config; ensure is idempotent 2023-10-24 18:48:14 +01:00
clan-bot
362e36c0b9 Merge pull request 'PUT api/machines/{name}/config: ensure only valid config is ever written' (#433) from DavHau-dave into main 2023-10-24 17:43:37 +00:00
DavHau
588bde069f PUT api/machines/{name}/config: ensure only valid config is ever written
- add CLAN_MACHINE_SETTINGS_FILE variable to temporarily override the machine settings file
- do a dry-run evaluation first with the new config before persisting it.
2023-10-24 18:40:48 +01:00
clan-bot
c9ef7d6e80 Merge pull request 'machines: add endpoint machines/{name}/ verify' (#432) from DavHau-dave into main 2023-10-24 15:34:05 +00:00
DavHau
a539fb6dc6 machines: add endpoint machines/{name}/ verify 2023-10-24 16:31:37 +01:00
clan-bot
a1a9c73660 Merge pull request 'clan config: refactor - reorder functions' (#431) from DavHau-dave into main 2023-10-24 14:35:34 +00:00
DavHau
cd940abc4e clan config: refactor - reorder functions 2023-10-24 15:27:19 +01:00
clan-bot
2a22348373 Merge pull request 'clan-cli/shell.nix: rename repo_root -> source' (#429) from DavHau-dave into main 2023-10-23 15:20:15 +00:00
DavHau
7ddd624e8e clan-cli/shell.nix: rename repo_root -> source 2023-10-23 16:15:46 +01:00
clan-bot
65c7867542 Merge pull request 'Automatic flake update - 2023-10-23T00:00+00:00' (#428) from flake-update-2023-10-23 into main 2023-10-23 00:02:46 +00:00
Clan Merge Bot
12e210ad12 update flake lock - 2023-10-23T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/6ad5c9c17cbd5514ce0cc2692dd82dd6d8e5d879' (2023-10-13)
  → 'github:nix-community/disko/4122a18340094151d7911e838237ec7627f0d0c5' (2023-10-22)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/51186b8012068c417dac7c31fb12861726577898' (2023-10-15)
  → 'github:Mic92/sops-nix/30a0ba4a20703b4bfe047fe5def1fc24978e322c' (2023-10-22)
2023-10-23 00:00:17 +00:00
clan-bot
c4e98667ef Merge pull request 'Automatic flake update - 2023-10-16T00:00+00:00' (#427) from flake-update-2023-10-16 into main 2023-10-16 00:02:26 +00:00
Clan Merge Bot
cd4c14b82e update flake lock - 2023-10-16T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/cde886a1c97ef2399b4f91409db045785020291f' (2023-10-05)
  → 'github:nix-community/disko/6ad5c9c17cbd5514ce0cc2692dd82dd6d8e5d879' (2023-10-13)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/d7380c38d407eaf06d111832f4368ba3486b800e' (2023-10-08)
  → 'github:Mic92/sops-nix/51186b8012068c417dac7c31fb12861726577898' (2023-10-15)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/720bd006d855b08e60664e4683ccddb7a9ff614a' (2023-09-27)
  → 'github:numtide/treefmt-nix/aae39f64f5ecbe89792d05eacea5cb241891292a' (2023-10-15)
2023-10-16 00:00:17 +00:00
clan-bot
a650d9c341 Merge pull request 'machines/install: call correct upload function' (#426) from Mic92-main into main 2023-10-14 14:06:59 +00:00
Jörg Thalheim
c82a4df9f9 machines/install: call correct upload function 2023-10-14 15:56:04 +02:00
DavHau
2f9ec882b2 Merge pull request 'vms.create: don't generate secrets if clan is remote' (#424) from lassulus-vm_generate into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/424
2023-10-11 10:10:26 +00:00
lassulus
3dad667f97 vms.create: don't generate secrets if clan is remote 2023-10-11 12:01:42 +02:00
clan-bot
1cca1faedd Merge pull request 'API: Added /api/flake/create. Fixed vscode search settings. Moved clan create to clan flake create' (#423) from Qubasa-main into main 2023-10-09 12:04:02 +00:00
Qubasa
b49433958b API: Added /api/flake/create. Fixed vscode search settings. Moved clan create to clan flake create 2023-10-09 14:01:34 +02:00
clan-bot
3650ab491d Merge pull request 'Automatic flake update - 2023-10-09T00:00+00:00' (#422) from flake-update-2023-10-09 into main 2023-10-09 00:04:23 +00:00
Clan Merge Bot
603b48a0fe update flake lock - 2023-10-09T00:00+00:00
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/646ee25c25fffee122a66282861f5f56ad3e0fd9' (2023-10-02)
  → 'github:nix-community/disko/cde886a1c97ef2399b4f91409db045785020291f' (2023-10-05)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/7f53fdb7bdc5bb237da7fefef12d099e4fd611ca' (2023-09-01)
  → 'github:hercules-ci/flake-parts/c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4' (2023-10-03)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/8ee78470029e641cddbd8721496da1316b47d3b4' (2023-09-04)
  → 'github:nix-community/nixos-generators/150f38bd1e09e20987feacb1b0d5991357532fb5' (2023-09-30)
• Updated input 'nixpkgs':
    'github:Mic92/nixpkgs/bc160df717ed1e9defe6044092ea66950976e3ed' (2023-09-26)
  → 'github:Mic92/nixpkgs/c3bd4f19ef0062d4462444aa413e26c917187ae9' (2023-09-30)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/2f375ed8702b0d8ee2430885059d5e7975e38f78' (2023-09-21)
  → 'github:Mic92/sops-nix/d7380c38d407eaf06d111832f4368ba3486b800e' (2023-10-08)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/e951529be2e7c669487de78f5aef8597bbae5fca' (2023-09-21)
  → 'github:numtide/treefmt-nix/720bd006d855b08e60664e4683ccddb7a9ff614a' (2023-09-27)
2023-10-09 00:00:16 +00:00
ui-asset-bot
78758319f3 update ui-assets.nix 2023-10-08 15:27:26 +00:00
clan-bot
4fa2056834 Merge pull request 'cleanup work' (#421) from chore/fixes into main 2023-10-08 15:26:08 +00:00
ui-asset-bot
2874cf3bdb update ui-assets.nix 2023-10-08 15:24:32 +00:00
clan-bot
ded13b2da5 Merge pull request 'add coporate theme color variables' (#419) from feat/theme into main 2023-10-08 15:23:54 +00:00
Johannes Kirschbauer
5483018783 cleanup work 2023-10-08 17:20:43 +02:00
clan-bot
26b7effe99 Merge pull request 'CLI: Fixed bug in firefox opening addon page because of new profile' (#420) from Qubasa-main into main 2023-10-08 14:42:49 +00:00
Johannes Kirschbauer
6312f47545 remove: tailwindcss/plugin until we find solution 2023-10-08 16:31:16 +02:00
Johannes Kirschbauer
9ea71c90a6 resolve conflicts 2023-10-08 15:53:43 +02:00
Johannes Kirschbauer
d3310f861b add coporate theme color variables 2023-10-08 15:46:33 +02:00
Qubasa
9c74c4d661 CLI: Fixed bug in firefox opening addon page because of new profile 2023-10-08 14:39:31 +02:00
clan-bot
af1b8f68e7 Merge pull request 'clan join: test create vm for clan join' (#418) from DavHau-dave into main 2023-10-06 17:17:15 +00:00
DavHau
ceb6bdd474 clan join: test create vm for clan join
This adds a vm create test for the `clan join` scenario where:
  - there is no local clan to write changes to
  - a machine from a remote flake needs to be built and run
  - no users and no secrets need to be or can be managed (no flake to write files to)
2023-10-06 19:15:25 +02:00
clan-bot
e72f9ff8ae Merge pull request 'secrets: fix: don't generate secrets if no secrets are defined' (#417) from DavHau-dave into main 2023-10-06 16:50:45 +00:00
DavHau
c5b2e9b5f3 secrets: fix: don't generate secrets if no secrets are defined 2023-10-06 18:34:49 +02:00
ui-asset-bot
5ab0840939 update ui-assets.nix 2023-10-06 07:52:25 +00:00
clan-bot
60b868c4cb Merge pull request 'clean up theme' (#416) from feat/corp-theme into main 2023-10-06 07:51:07 +00:00
Johannes Kirschbauer
0e1b4ab96f clean up theme 2023-10-06 09:41:37 +02:00
clan-bot
cc47206fd6 Merge pull request 'password-store: generate each secret in tmpdir' (#414) from lassulus-HEAD into main 2023-10-05 18:36:52 +00:00
lassulus
2d2e097f6d secrets.password-store: mkdir correct fact folder 2023-10-05 20:22:30 +02:00
lassulus
386da9e6c4 zerotier generate-network: terminate fakeroot for process cleanup 2023-10-05 19:14:10 +02:00
lassulus
13e8dba417 password-store: generate each secret in tmpdir 2023-10-05 19:14:10 +02:00
clan-bot
dd04847f93 Merge pull request 'clan-cli: improve debug logging' (#415) from DavHau-dave into main 2023-10-05 15:39:24 +00:00
DavHau
f885c877bc clan-cli: improve debug logging 2023-10-05 17:37:33 +02:00
clan-bot
8856758dbc Merge pull request 'clanCore: specify interface for system.clan' (#413) from DavHau-dave into main 2023-10-05 15:10:23 +00:00
DavHau
9559357c56 clanCore: specify interface for system.clan 2023-10-05 17:08:59 +02:00
clan-bot
8ab0e9b7cd Merge pull request 'zerotier: fix: find free port without collissions' (#412) from DavHau-dave into main 2023-10-05 15:05:27 +00:00
DavHau
dbf80595fd zerotier: fix: find free port without collissions 2023-10-05 17:03:01 +02:00
clan-bot
48408f6a49 Merge pull request 'tests: add fixtures to test_vms_cli' (#411) from lassulus-HEAD into main 2023-10-05 13:58:28 +00:00
lassulus
bdb0a6484a tests: add fixtures to test_vms_cli 2023-10-05 15:56:15 +02:00
clan-bot
1870847aab Merge pull request 'clan-cli: unset LD_LIBRARY_PATH' (#410) from DavHau-dave into main 2023-10-05 11:46:27 +00:00
DavHau
6abbf4bacd clan-cli: unset LD_LIBRARY_PATH
This prevents problems with mixed glibc versions that might occur when the cli is called through a browser built against another glibc
2023-10-05 13:44:08 +02:00
clan-bot
d90becfd80 Merge pull request 'machines update: add --target-host' (#409) from lassulus-HEAD into main 2023-10-04 21:30:53 +00:00
lassulus
4af74ee5a5 machines update: add --target-host 2023-10-04 23:28:15 +02:00
clan-bot
fa013b3a0e Merge pull request 'secrets upload: skip on exit 23, cleanup' (#408) from lassulus-secrets-fix into main 2023-10-04 19:31:38 +00:00
lassulus
3fb36b3ac1 secrets upload: skip on exit 23, cleanup 2023-10-04 21:29:19 +02:00
clan-bot
dfed8fdcb2 Merge pull request 'test_secrets_password_store: create gpghome with save permissions' (#407) from Mic92-main into main 2023-10-04 17:59:18 +00:00
Jörg Thalheim
41106a67e2 test_secrets_password_store: create gpghome with save permissions 2023-10-04 19:56:18 +02:00
clan-bot
03c8c6f4e4 Merge pull request 'clan join: init' (#406) from DavHau-dave into main 2023-10-04 16:57:10 +00:00
DavHau
bdd4cfc7d8 clan join: init 2023-10-04 18:53:59 +02:00
clan-bot
a2597717b3 Merge pull request 'webui: drop deadcode' (#405) from Mic92-main into main 2023-10-04 16:20:23 +00:00
Jörg Thalheim
d0c1eddf79 task_manager: log stdout/stderr correctly for processes 2023-10-04 18:17:30 +02:00
Jörg Thalheim
d156218775 drop dead daemonize code 2023-10-04 18:17:30 +02:00
clan-bot
d015e3ff60 Merge pull request 'vm_secrets' (#401) from vm_secrets into main 2023-10-04 16:15:54 +00:00
lassulus
99433ac290 test_vms_api: supply age key for secret creation 2023-10-04 18:13:25 +02:00
lassulus
bc36ec4c1a vms: support secrets and fix cross compilation 2023-10-04 18:04:27 +02:00
clan-bot
994c190d0f Merge pull request 'fix task manager race conditions' (#404) from lassulus-taskmanager into main 2023-10-04 15:54:37 +00:00
lassulus
e8c9f27515 tests test_flake: disable dhcp 2023-10-04 17:52:06 +02:00
lassulus
fe1a3f0541 task_manager: fix race conditions 2023-10-04 17:52:06 +02:00
clan-bot
827fcbfe46 Merge pull request 'webui: open browser in new window' (#403) from DavHau-dave into main 2023-10-04 15:30:58 +00:00
DavHau
544322ee6e webui: open browser in new window
This gets closer to an app like feeling
2023-10-04 17:26:55 +02:00
clan-bot
018590d30b Merge pull request 'improve task manager to report exceptions better' (#402) from Mic92-main into main 2023-10-04 14:51:41 +00:00
Jörg Thalheim
04ba80f614 improve task manager to report exceptions better 2023-10-04 16:49:58 +02:00
clan-bot
a02a7e1fc5 Merge pull request 'clan-cli: add install command' (#383) from lassulus-install into main 2023-10-04 14:49:53 +00:00
lassulus
966a33e711 vm.create: define tmpdir 2023-10-04 16:46:30 +02:00
lassulus
b25af9f0f4 clan_cli: refactor secrets code into Machine class 2023-10-04 16:41:16 +02:00
lassulus
ffb7c63640 clan-cli: add machines install 2023-10-04 16:34:37 +02:00
lassulus
3c1d7a0553 secrets.password-store: ignore ssh errors 2023-10-04 16:34:37 +02:00
clan-bot
ff1fb784e7 Merge pull request 'clan-cli devShell: add editable install' (#397) from DavHau-dave into main 2023-10-04 09:43:27 +00:00
DavHau
e6d22e6426 clan-cli devShell: add editable install 2023-10-04 11:39:31 +02:00
clan-bot
5e1a26df1a Merge pull request 'rename test_basic to test_create_flake' (#396) from Mic92-main into main 2023-10-04 09:04:09 +00:00
Jörg Thalheim
1575e4a391 rename test_basic to test_create_flake 2023-10-04 11:01:12 +02:00
clan-bot
ba9b2f6de7 Merge pull request 'clan-cli: stop propagating build inputs, remove wrapper' (#395) from DavHau-dave into main 2023-10-04 08:38:44 +00:00
DavHau
017221febb clan-cli: stop propagating build inputs, remove wrapper 2023-10-04 10:36:39 +02:00
clan-bot
c0e2bfbcb8 Merge pull request 'quickstart: add user creation' (#394) from DavHau-dave into main 2023-10-04 08:20:31 +00:00
DavHau
9e6009b454 quickstart: add user creation 2023-10-04 10:18:28 +02:00
clan-bot
6059b262f1 Merge pull request 'restore possibility to update all machines without having to specify them' (#393) from Mic92-kvm-fix into main 2023-10-04 06:39:22 +00:00
Jörg Thalheim
fcd1d18e15 restore possibility to update all machines without having to specify them 2023-10-04 08:35:59 +02:00
clan-bot
061b91406d Merge pull request 'don't register global logger, this interferes currently with that we have in ssh.py' (#392) from Mic92-kvm-fix into main 2023-10-04 06:14:28 +00:00
Jörg Thalheim
7842c24c9d add binary cache and switch back to main branch of disko 2023-10-04 08:08:06 +02:00
Jörg Thalheim
80e37483a3 don't register global logger, this interferes currently with that we have in ssh.py 2023-10-04 08:08:06 +02:00
clan-bot
02086463eb Merge pull request 'make vm test also work in ci' (#391) from Mic92-kvm-fix into main 2023-10-03 16:53:15 +00:00
Jörg Thalheim
4abb7d7bf0 make vm test also work in ci 2023-10-03 18:50:14 +02:00
Mic92
4a1a6f525a Merge pull request 'clan_cli.secrets.groups: update keys if members are added/removed' (#389) from lassulus-secrets_cli into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/389
2023-10-03 16:15:36 +00:00
Jörg Thalheim
b2ef8bf1a3 also test that updating a group works 2023-10-03 16:15:36 +00:00
lassulus
6f7109dab6 clan_cli.secrets.groups: update keys if members are added/removed 2023-10-03 16:15:36 +00:00
clan-bot
f27f056fca Merge pull request 'task_manager: return task directly instead of uuid' (#390) from Mic92-HEAD into main 2023-10-03 15:53:25 +00:00
Jörg Thalheim
b23d2b65e1 task_manager: return task directly instead of uuid 2023-10-03 17:48:56 +02:00
Mic92
de3084066c Merge pull request 'Restructuring CLI to use API' (#387) from Qubasa-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/387
2023-10-03 15:34:33 +00:00
Jörg Thalheim
c0f6f78c9e Merge remote-tracking branch 'origin/main' into HEAD 2023-10-03 17:32:19 +02:00
Jörg Thalheim
2502422bc1 add test for vm cli 2023-10-03 17:24:08 +02:00
Jörg Thalheim
361ad990ab clan-cli/tests: skip tests if has no /dev/kvm 2023-10-03 17:24:08 +02:00
Jörg Thalheim
b1d045131a add missing e2fsprogs to runtime inputs 2023-10-03 17:24:08 +02:00
Jörg Thalheim
ff11340507 move out vm logic out of controller 2023-10-03 17:24:08 +02:00
Qubasa
dbe289f702 nix fmt 2023-10-03 15:22:41 +02:00
Qubasa
8fa241a36b Fixed upload_secrets_test 2023-10-03 15:14:50 +02:00
Qubasa
7dde66c0df Fixed upload_secrets_test 2023-10-03 15:10:22 +02:00
ui-asset-bot
986008cef7 update ui-assets.nix 2023-10-03 13:05:51 +00:00
clan-bot
7d114dee54 Merge pull request 'coporate color system: init' (#388) from feat/corp-theme into main 2023-10-03 13:04:48 +00:00
Johannes Kirschbauer
7eed3d9aa9 add build output 2023-10-03 15:02:47 +02:00
Qubasa
be9d3d43bf Fixing PYTHONPATH in secrets/generate test 2023-10-03 15:01:13 +02:00
Johannes Kirschbauer
e9f3be0056 coporate color system: init 2023-10-03 14:58:31 +02:00
Qubasa
cb2815c4d0 nix fmt 2023-10-03 14:39:29 +02:00
Qubasa
d8b69ec883 Added newlines against buffering for log streaming. Fixed cli 2023-10-03 14:38:51 +02:00
Qubasa
d25c3a0940 Added newlines against buffering 2023-10-03 14:36:15 +02:00
Qubasa
2bbed10117 Added better logging 2023-10-03 14:16:07 +02:00
Qubasa
8e98c50ccd Merge branch 'Qubasa-main' of git.clan.lol:clan/clan-core 2023-10-03 13:24:31 +02:00
Qubasa
e0051a0cba Updated to main 2023-10-03 13:20:22 +02:00
Qubasa
da72ec18ad API: Added test for inspect_flake 2023-10-03 13:19:20 +02:00
Qubasa
c1c68ee1d8 Fixed failing tests 2023-10-03 13:15:01 +02:00
Qubasa
7e180d2f12 CLI: Restructured TaskManager and log collection 2023-10-03 13:15:01 +02:00
Qubasa
af17c1bd7a Updated to main 2023-10-03 13:12:44 +02:00
Qubasa
167533d9ee API: Added test for inspect_flake 2023-10-03 12:50:47 +02:00
Qubasa
653ad99b22 Fixed failing tests 2023-10-03 11:51:31 +02:00
clan-bot
1c0c11a954 Merge pull request 'add error handling to endpoint' (#386) from feat/flake-attr into main 2023-10-03 09:44:50 +00:00
Johannes Kirschbauer
c40a7bf3fb smoke check error handling for create vm 2023-10-03 11:43:06 +02:00
Johannes Kirschbauer
16f44900a3 Beyoncé rule 2023-10-03 11:21:34 +02:00
Johannes Kirschbauer
3c11eece4d add error handling to endpoint 2023-10-03 11:12:06 +02:00
ui-asset-bot
1adcf6980b update ui-assets.nix 2023-10-03 08:59:15 +00:00
clan-bot
4075b355f3 Merge pull request 'AppState context add' (#382) from feat/join-workflow into main 2023-10-03 08:58:13 +00:00
Johannes Kirschbauer
a461024f82 reformat 2023-10-03 10:56:35 +02:00
Johannes Kirschbauer
b27dad1cc4 clean up unused js parts 2023-10-03 10:39:49 +02:00
Qubasa
814d81c1d2 CLI: Restructured TaskManager and log collection 2023-10-02 18:36:50 +02:00
Qubasa
6640c78089 CLI: Use API functions 2023-10-02 15:36:02 +02:00
Johannes Kirschbauer
7c1e04a7d6 Merge branch 'main' into feat/join-workflow 2023-10-02 15:27:13 +02:00
Johannes Kirschbauer
f9c35ceaa4 AppState context add 2023-10-01 22:47:09 +02:00
clan-bot
29efda9608 Merge pull request 'API: Added /api/flake_attrs' (#380) from Qubasa-main into main 2023-10-01 10:53:08 +00:00
Qubasa
ce7ae81a35 API: Added endpoint & test for /api/flake/attrs 2023-10-01 12:50:54 +02:00
ui-asset-bot
84bcfc3929 update ui-assets.nix 2023-09-30 14:13:37 +00:00
clan-bot
d6b5bac1ce Merge pull request 'refine join workflow' (#381) from feat/join-workflow into main 2023-09-30 14:12:39 +00:00
Johannes Kirschbauer
82db33d047 refine join workflow 2023-09-30 16:00:21 +02:00
clan-bot
332f5dc824 Merge pull request 'API: Improved vm_status and added some tests' (#379) from Qubasa-main into main 2023-09-30 09:10:45 +00:00
Qubasa
f224deace9 API: Improved vm_status and added some tests. Skip vm tests in VM 2023-09-30 11:08:42 +02:00
clan-bot
8d38ba93ff Merge pull request 'secrets.password-store: optimize secret existence check' (#378) from lassulus-no_facts into main 2023-09-30 07:39:00 +00:00
lassulus
62caf98f15 secrets.password-store: optimize secret existence check 2023-09-30 09:36:39 +02:00
clan-bot
55743928ae Merge pull request 'secrets: allow empty facts' (#377) from lassulus-no_facts into main 2023-09-30 07:29:34 +00:00
lassulus
347d9676c5 secrets.password-store: fix multi-secret check 2023-09-30 09:27:25 +02:00
clan-bot
b878df8813 Merge pull request 'secrets: allow empty facts' (#376) from lassulus-no_facts into main 2023-09-30 07:21:01 +00:00
lassulus
d810d2b4e1 secrets: allow empty facts 2023-09-30 09:18:24 +02:00
clan-bot
a6698c8301 Merge pull request 'clan-cli: init vm command' (#373) from lassulus-cli-vm into main 2023-09-29 18:30:17 +00:00
lassulus
6cdf5615fe clanCore.zerotier: create network-id only if fact exists 2023-09-29 20:05:35 +02:00
lassulus
6e3f2b1ce2 tests: add test_secrets_password_store 2023-09-29 20:05:35 +02:00
lassulus
89b7ffce6c clan-cli secrets upload: secrets are populated into tmpdir 2023-09-29 20:05:35 +02:00
lassulus
7ca9c49163 restore clanInternals with valid nixos config 2023-09-29 19:39:35 +02:00
lassulus
a5f181a430 clan-cli: init vm command 2023-09-29 19:18:27 +02:00
Mic92
7cb0b57e8f Merge pull request 'add zerotier documentation' (#375) from Mic92-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/375
2023-09-29 15:38:44 +00:00
Jörg Thalheim
09b6dcacfe add zerotier documentation 2023-09-29 15:38:44 +00:00
clan-bot
6a182bd910 Merge pull request 'add zerotier-members script' (#374) from Mic92-main into main 2023-09-29 15:11:46 +00:00
Jörg Thalheim
89e69e5cb6 add treewide pyproject.toml
Than we don't need a pyproject.toml per script
2023-09-29 16:41:14 +02:00
Jörg Thalheim
9daeaf5c62 zerotier: fix creating controller directory 2023-09-29 16:41:14 +02:00
Jörg Thalheim
5f15ec4495 add zerotier-members script 2023-09-29 16:07:22 +02:00
clan-bot
36fc57c0be Merge pull request 'also encrypt secret for the machine itself' (#372) from Mic92-main into main 2023-09-28 16:01:03 +00:00
Jörg Thalheim
739d3b3578 zerotier: document mdns ports; drop duplicate udp firewall rules
the nixos module already opens the zerotier port
2023-09-28 17:58:42 +02:00
Jörg Thalheim
be6592c82c also generate zerotier secret for vm 2023-09-28 17:57:44 +02:00
Jörg Thalheim
0c91bb90ab also encrypt secret for the machine itself 2023-09-28 17:51:37 +02:00
clan-bot
6fafae56b6 Merge pull request 'pregenerate ssh_host keys for tests' (#371) from Mic92-main into main 2023-09-28 14:37:52 +00:00
Jörg Thalheim
7184fe277d webui: fix warning 2023-09-28 16:31:59 +02:00
Jörg Thalheim
2375bafbae pregenerate ssh_host keys for tests
Then we are free to choose where to put the ssh config
2023-09-28 16:31:59 +02:00
clan-bot
6e8e12df6d Merge pull request 'drop bear from buildinputs of nix-unit' (#370) from Mic92-main into main 2023-09-28 14:03:46 +00:00
Jörg Thalheim
9242b3d118 also evaluate for aarch64-darwin 2023-09-28 16:01:42 +02:00
Jörg Thalheim
156f792bf3 drop bear from buildinputs of nix-unit 2023-09-28 15:56:52 +02:00
clan-bot
6963e22dfc Merge pull request 'fix secrets script not beeing fetched' (#369) from Mic92-main into main 2023-09-28 13:53:35 +00:00
Jörg Thalheim
b366beeb2e fix secrets script not beeing fetched 2023-09-28 15:51:09 +02:00
clan-bot
440e0ddcdf Merge pull request 'fix pname of clan-cli for nix run' (#368) from Mic92-main into main 2023-09-28 13:26:20 +00:00
Jörg Thalheim
5a7c4120b6 tests: increase timeout to 60 2023-09-28 15:24:06 +02:00
Jörg Thalheim
16b33eb0a8 add toplevel machines-json that can deploy all hosts 2023-09-28 15:23:25 +02:00
Jörg Thalheim
293e7f8ae6 drop unused findNixFiles function 2023-09-28 14:21:03 +02:00
Jörg Thalheim
91c8b9c64f fix pname of clan-cli for nix run 2023-09-28 14:06:35 +02:00
clan-bot
deba9ebffd Merge pull request 'clan-cli: symlink cli into an otherwise empty package' (#366) from Mic92-main into main 2023-09-28 10:22:56 +00:00
Jörg Thalheim
1a926f6cf3 clan-cli: fix eval 2023-09-28 12:20:26 +02:00
clan-bot
115193a06b Merge pull request 'clan-cli: symlink cli into an otherwise empty package' (#365) from Mic92-main into main 2023-09-28 10:19:51 +00:00
Jörg Thalheim
0f1b7cf916 clan-cli: symlink cli into an otherwise empty package
This avoids propagating unneeded python libraries
2023-09-28 12:19:16 +02:00
clan-bot
2abaab401d Merge pull request 'don't propagate python libraries into a devshell' (#364) from Mic92-main into main 2023-09-28 10:00:46 +00:00
Jörg Thalheim
8467457283 don't propagate python libraries into a devshell 2023-09-28 11:58:09 +02:00
clan-bot
8014bd7181 Merge pull request 'use buildPythonApplication to shield against external PYTHONPATH' (#363) from Mic92-main into main 2023-09-28 09:23:36 +00:00
Jörg Thalheim
d55abacfcb use buildPythonApplication to shield against external PYTHONPATH 2023-09-28 11:19:16 +02:00
clan-bot
5d09299870 Merge pull request 'webui: pretty urls by also appending .html' (#362) from Mic92-main into main 2023-09-28 09:12:43 +00:00
Jörg Thalheim
cc70537a91 webui: pretty urls by also appending .html 2023-09-28 11:09:31 +02:00
clan-bot
96df913184 Merge pull request 'secrets.password-store: readd targetDirectory' (#361) from lassulus-HEAD into main 2023-09-27 19:28:42 +00:00
lassulus
b587bd1b49 secrets.password-store: readd targetDirectory 2023-09-27 21:26:58 +02:00
clan-bot
1bf4ab22e4 Merge pull request 'clan update: fix deploymentAddress' (#360) from Mic92-main into main 2023-09-27 19:14:07 +00:00
Jörg Thalheim
3f814c1e5f clan update: fix deploymentAddress 2023-09-27 21:11:52 +02:00
clan-bot
192c396000 Merge pull request 'docs/quickstart: fix typo' (#359) from lassulus-stuff into main 2023-09-27 17:10:14 +00:00
lassulus
dafceb6fea clan-cli: add desktop item 2023-09-27 19:04:12 +02:00
lassulus
0bc8f88276 docs/quickstart: fix typo 2023-09-27 19:02:16 +02:00
clan-bot
73a9b6a172 Merge pull request 'clanInternals.machines: expose information as json' (#358) from Mic92-main into main 2023-09-27 16:45:18 +00:00
Jörg Thalheim
85f7e2f2cd clanInternals.machines: expose information as json 2023-09-27 18:42:49 +02:00
clan-bot
628fcd5e04 Merge pull request 'clanInternals.machines: invert system and machine name' (#357) from Mic92-main into main 2023-09-27 15:29:03 +00:00
Jörg Thalheim
756820e4ca clanInternals.machines: invert system and machine name 2023-09-27 17:26:44 +02:00
clan-bot
a158ab0421 Merge pull request 'fix clan-pytest build' (#356) from Mic92-main into main 2023-09-27 14:22:11 +00:00
Jörg Thalheim
59f0a912ea fix clan-pytest build 2023-09-27 16:20:05 +02:00
clan-bot
bf49bacb4e Merge pull request 'move temporary directory to .direnv' (#355) from Mic92-main into main 2023-09-27 14:15:34 +00:00
Jörg Thalheim
e970dcb658 move temporary directory to .direnv 2023-09-27 16:13:04 +02:00
ui-asset-bot
5b1c5eaef0 update ui-assets.nix 2023-09-27 13:20:43 +00:00
clan-bot
36b37f6fdd Merge pull request 'only pass experimental-features onces to nix-build' (#354) from Mic92-main into main 2023-09-27 13:19:53 +00:00
Jörg Thalheim
66210d176f ui/envrc: watch more files 2023-09-27 15:18:51 +02:00
Mic92
612a9e411c Merge pull request 'jsonschema: fix eval' (#353) from Mic92-main into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/353
2023-09-27 13:08:24 +00:00
Jörg Thalheim
c0799ce425 jsonschema: fix eval 2023-09-27 13:08:24 +00:00
Jörg Thalheim
166a2f795f only pass experimental-features onces to nix-build 2023-09-27 13:08:24 +00:00
clan-bot
e5cfafe924 Merge pull request 'drop requirement for importing qemu-vm.nix' (#352) from Mic92-main into main 2023-09-27 12:55:59 +00:00
Jörg Thalheim
2f73e6b472 drop requirement for importing qemu-vm.nix 2023-09-27 14:54:01 +02:00
clan-bot
c2f276235b Merge pull request 'vms: simplify args passed to create_subprocess_exec' (#351) from Mic92-main into main 2023-09-27 10:32:25 +00:00
Jörg Thalheim
974f07628b vms: simplify args passed to create_subprocess_exec 2023-09-27 12:30:06 +02:00
Mic92
041a98fae4 Merge pull request 'api/vm/create: start vm' (#327) from lassulus-start-vm into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/327
2023-09-27 09:47:50 +00:00
Jörg Thalheim
4317e681cf cli: fix remaining typing errors 2023-09-27 09:47:50 +00:00
Jörg Thalheim
244ae37144 cli: simplify log handler 2023-09-27 09:47:50 +00:00
Jörg Thalheim
e5899c8e10 custom_logger: fix type errror in format_time 2023-09-27 09:47:50 +00:00
Jörg Thalheim
80aa7f06fb task_manager: assert stdout/stderr exist to make mypy happy 2023-09-27 09:47:50 +00:00
Jörg Thalheim
b343650771 make vm terminate after boot 2023-09-27 09:47:50 +00:00
Jörg Thalheim
dea49073cb cli/vms: serialize uuid already in the api 2023-09-27 09:47:50 +00:00
Qubasa
08eab785c6 Completely working log streaming 2023-09-27 09:47:50 +00:00
Qubasa
8d390af122 Working log streaming 2023-09-27 09:47:50 +00:00
Qubasa
82c3d91e85 Working version 2023-09-27 09:47:50 +00:00
Qubasa
a8bab7bb96 Working log streaming 2023-09-27 09:47:50 +00:00
Qubasa
98028d121f Working log streaming 2023-09-27 09:47:50 +00:00
Qubasa
3a11c0a746 Fixed vscode test debugging problem 2023-09-27 09:47:50 +00:00
Qubasa
991181bf3c Integrated pytest into vscode 2023-09-27 09:47:50 +00:00
Qubasa
c2fb42e953 Extracted threadpool to task_manager.py 2023-09-27 09:47:50 +00:00
Qubasa
04f3547be0 Added test 2023-09-27 09:47:50 +00:00
Qubasa
f6c8b963c1 Improving endpoint 2023-09-27 09:47:50 +00:00
Qubasa
d16bb5db26 Added threaded create_vm endpoint 2023-09-27 09:47:50 +00:00
Qubasa
7479fca82b Started working on vm_create 2023-09-27 09:47:50 +00:00
Qubasa
b86e02e183 vscode debugging integration added + README updated 2023-09-27 09:47:50 +00:00
Qubasa
9dca1a4672 CLI: Added custom logger 2023-09-27 09:47:50 +00:00
lassulus
904301c20e api/vm/create: start vm 2023-09-27 09:47:50 +00:00
clan-bot
2e5811e052 Merge pull request 'clanCore.secrets: facts.value can be null or str' (#350) from lassulus-facts_null into main 2023-09-27 09:06:10 +00:00
lassulus
c1a124d0bf clan.networking.zerotier: create init script only if fact exists 2023-09-27 11:02:54 +02:00
lassulus
5cf9b4428f clanCore.secrets: facts.value can be null or str 2023-09-27 10:34:53 +02:00
Mic92
51c1940a1b Merge pull request 'zerotier: fix eval' (#349) from Mic92-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/349
2023-09-26 16:24:26 +00:00
Jörg Thalheim
cbd8efeb85 nix-unit: bump version 2023-09-26 16:24:26 +00:00
Mic92
4b966ae642 Merge pull request 'zerotier: fix eval' (#348) from Mic92-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/348
2023-09-26 16:19:43 +00:00
Jörg Thalheim
0d41bec9ef zerotier: fix eval 2023-09-26 16:19:43 +00:00
Mic92
dd870ae903 Merge pull request 'move zerotier secret generation into nixos module' (#347) from Mic92-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/347
2023-09-26 16:17:44 +00:00
Jörg Thalheim
6e1a5ad81f move zerotier secret generation into nixos module 2023-09-26 18:14:00 +02:00
clan-bot
079d727a2c Merge pull request 'make zerotier module a directory' (#346) from Mic92-docs into main 2023-09-26 16:03:12 +00:00
Jörg Thalheim
c771339259 fix nix-unit build 2023-09-26 18:00:16 +02:00
Jörg Thalheim
74a3c85c29 move zerotier secret generation into nixos module 2023-09-26 17:57:43 +02:00
Jörg Thalheim
5d9ee64ddc make zerotier module a directory 2023-09-26 15:55:41 +02:00
clan-bot
45ae86f001 Merge pull request 'use shellSession everywhere for markdown' (#345) from Mic92-docs into main 2023-09-26 13:52:23 +00:00
Jörg Thalheim
49c17cc6d0 drop wonky ipdb PYTHONBREAKPOINT 2023-09-26 15:50:02 +02:00
Jörg Thalheim
5ea6c7790f use shellSession everywhere for markdown 2023-09-26 15:49:45 +02:00
clan-bot
8ab7d97301 Merge pull request 'replace bubblewrap with fakeroot' (#344) from Mic92-docs into main 2023-09-26 13:48:58 +00:00
Mic92
3a413a811c Merge pull request 'replace bubblewrap with fakeroot' (#343) from joerg-ci into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/343
2023-09-26 13:48:30 +00:00
Jörg Thalheim
87aa063e86 create test_flake unique per test
otherwise we will have race conditions
2023-09-26 15:46:40 +02:00
Jörg Thalheim
7eab8c22cf replace bubblewrap with fakeroot
this restores macOS support.
2023-09-26 15:33:45 +02:00
clan-bot
677494811b Merge pull request 'clan config: print command in more instances' (#342) from Mic92-docs into main 2023-09-26 12:13:09 +00:00
clan-bot
da1927581d Merge pull request 'unpin nix-fast-build' (#341) from Mic92-docs into main 2023-09-26 12:02:05 +00:00
clan-bot
11d13cd03f Merge pull request 'clan.networking.zerotier: fix controller mode' (#340) from lassulus-zerotier into main 2023-09-26 11:15:09 +00:00
lassulus
2cdc959a77 clan.networking.zerotier: fix controller mode 2023-09-25 19:11:16 +02:00
clan-bot
0b50e2d29c Merge pull request 'Automatic flake update - 2023-09-25T00:00+00:00' (#339) from flake-update-2023-09-25 into main 2023-09-25 00:03:45 +00:00
Clan Merge Bot
e3f4bddcd0 update flake lock - 2023-09-25T00:00+00:00
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ace5093e36ab1e95cb9463863491bee90d5a4183' (2023-09-15)
  → 'github:NixOS/nixpkgs/e35dcc04a3853da485a396bdd332217d0ac9054f' (2023-09-22)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/ea208e55f8742fdcc0986b256bdfa8986f5e4415' (2023-09-12)
  → 'github:Mic92/sops-nix/2f375ed8702b0d8ee2430885059d5e7975e38f78' (2023-09-21)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/7a49c388d7a6b63bb551b1ddedfa4efab8f400d8' (2023-09-12)
  → 'github:numtide/treefmt-nix/e951529be2e7c669487de78f5aef8597bbae5fca' (2023-09-21)
2023-09-25 00:00:15 +00:00
clan-bot
01441b1f5a Merge pull request 'clan config: support new types nullOr and passwdEntry' (#338) from DavHau-dave into main 2023-09-24 13:30:35 +00:00
DavHau
3783359f08 clan config: support new types nullOr and passwdEntry 2023-09-24 14:24:48 +01:00
clan-bot
851e33d794 Merge pull request 'clan config: match dynamic options containing <name>' (#337) from DavHau-dave into main 2023-09-24 12:06:54 +00:00
DavHau
ec70b34470 clan config: match dynamic options containing <name> 2023-09-24 13:04:37 +01:00
clan-bot
765f982d11 Merge pull request 'quickstart: improve and add machines section' (#336) from DavHau-dave into main 2023-09-24 07:54:36 +00:00
DavHau
26972ca194 clan-cli: add --debug section 2023-09-24 08:53:26 +01:00
DavHau
45009d52ee quickstart: improve and add machines section 2023-09-24 08:53:26 +01:00
Mic92
bf53dd56c5 Merge pull request 'unpin nix-fast-build' (#334) from Mic92-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/334
2023-09-23 12:27:35 +00:00
Jörg Thalheim
ae2ab090bf unpin nix-fast-build 2023-09-23 12:27:35 +00:00
ui-asset-bot
178a52722e update ui-assets.nix 2023-09-23 11:28:08 +00:00
clan-bot
22fe132348 Merge pull request 'inspect flake before configure VM' (#335) from feat/inspect-flake into main 2023-09-23 11:27:20 +00:00
Johannes Kirschbauer
f3e66bd5a6 format python 2023-09-23 13:25:43 +02:00
Johannes Kirschbauer
09364671b3 inspect flake before configure VM 2023-09-23 13:20:25 +02:00
1409 changed files with 20074 additions and 87037 deletions

4
.envrc
View File

@@ -1,13 +1,11 @@
# shellcheck shell=bash
if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
fi
watch_file .direnv/selected-shell
watch_file formatter.nix
if [ -e .direnv/selected-shell ]; then
use flake ".#$(cat .direnv/selected-shell)"
use flake .#$(cat .direnv/selected-shell)
else
use flake
fi

View File

@@ -1,9 +1,12 @@
name: checks
on:
pull_request:
push:
branches:
- main
jobs:
checks-impure:
runs-on: nix
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v3
- run: nix run .#impure-checks

View File

@@ -1,75 +0,0 @@
#!/usr/bin/env bash
# Shared script for creating pull requests in Gitea workflows
set -euo pipefail
# Required environment variables:
# - CI_BOT_TOKEN: Gitea bot token for authentication
# - PR_BRANCH: Branch name for the pull request
# - PR_TITLE: Title of the pull request
# - PR_BODY: Body/description of the pull request
if [[ -z "${CI_BOT_TOKEN:-}" ]]; then
echo "Error: CI_BOT_TOKEN is not set" >&2
exit 1
fi
if [[ -z "${PR_BRANCH:-}" ]]; then
echo "Error: PR_BRANCH is not set" >&2
exit 1
fi
if [[ -z "${PR_TITLE:-}" ]]; then
echo "Error: PR_TITLE is not set" >&2
exit 1
fi
if [[ -z "${PR_BODY:-}" ]]; then
echo "Error: PR_BODY is not set" >&2
exit 1
fi
# Push the branch
git push origin "+HEAD:${PR_BRANCH}"
# Create pull request
resp=$(nix run --inputs-from . nixpkgs#curl -- -X POST \
-H "Authorization: token $CI_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"head\": \"${PR_BRANCH}\",
\"base\": \"main\",
\"title\": \"${PR_TITLE}\",
\"body\": \"${PR_BODY}\"
}" \
"https://git.clan.lol/api/v1/repos/clan/clan-core/pulls")
pr_number=$(echo "$resp" | jq -r '.number')
if [[ "$pr_number" == "null" ]]; then
echo "Error creating pull request:" >&2
echo "$resp" | jq . >&2
exit 1
fi
echo "Created pull request #$pr_number"
# Merge when checks succeed
while true; do
resp=$(nix run --inputs-from . nixpkgs#curl -- -X POST \
-H "Authorization: token $CI_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"Do": "merge",
"merge_when_checks_succeed": true,
"delete_branch_after_merge": true
}' \
"https://git.clan.lol/api/v1/repos/clan/clan-core/pulls/$pr_number/merge")
msg=$(echo "$resp" | jq -r '.message')
if [[ "$msg" != "Please try again later" ]]; then
break
fi
echo "Retrying in 2 seconds..."
sleep 2
done
echo "Pull request #$pr_number merge initiated"

View File

@@ -1,13 +1,13 @@
name: deploy
on:
push:
push:
branches:
- main
jobs:
deploy-docs:
runs-on: nix
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v3
- run: nix run .#deploy-docs
env:
SSH_HOMEPAGE_KEY: ${{ secrets.SSH_HOMEPAGE_KEY }}
SSH_HOMEPAGE_KEY: ${{ secrets.SSH_HOMEPAGE_KEY }}

View File

@@ -1,28 +0,0 @@
name: "Update pinned clan-core for checks"
on:
repository_dispatch:
workflow_dispatch:
schedule:
- cron: "51 2 * * *"
jobs:
update-pinned-clan-core:
runs-on: nix
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Update clan-core for checks
run: nix run .#update-clan-core-for-checks
- name: Create pull request
env:
CI_BOT_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
run: |
export GIT_AUTHOR_NAME=clan-bot GIT_AUTHOR_EMAIL=clan-bot@clan.lol GIT_COMMITTER_NAME=clan-bot GIT_COMMITTER_EMAIL=clan-bot@clan.lol
git commit -am "Update pinned clan-core for checks"
# Use shared PR creation script
export PR_BRANCH="update-clan-core-for-checks"
export PR_TITLE="Update Clan Core for Checks"
export PR_BODY="This PR updates the pinned clan-core flake input that is used for checks."
./.gitea/workflows/create-pr.sh

View File

@@ -1,26 +0,0 @@
name: Update Flake Inputs
on:
schedule:
# Run every 5 hours
- cron: "0 */5 * * *"
workflow_dispatch:
repository_dispatch:
jobs:
update-flake-inputs:
runs-on: nix
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update flake inputs
uses: Mic92/update-flake-inputs-gitea@main
with:
# Exclude private flakes and update-clan-core checks flake
exclude-patterns: "devFlake/private/flake.nix,checks/impure/flake.nix"
auto-merge: true
gitea-token: ${{ secrets.CI_BOT_TOKEN }}
github-token: ${{ secrets.CI_BOT_GITHUB_TOKEN }}

View File

@@ -1,40 +0,0 @@
name: "Update private flake inputs"
on:
repository_dispatch:
workflow_dispatch:
schedule:
- cron: "0 3 * * *" # Run daily at 3 AM
jobs:
update-private-flake:
runs-on: nix
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Update private flake inputs
run: |
# Update the private flake lock file
cd devFlake/private
nix flake update
cd ../..
# Update the narHash
bash ./devFlake/update-private-narhash
- name: Create pull request
env:
CI_BOT_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
run: |
export GIT_AUTHOR_NAME=clan-bot GIT_AUTHOR_EMAIL=clan-bot@clan.lol GIT_COMMITTER_NAME=clan-bot GIT_COMMITTER_EMAIL=clan-bot@clan.lol
# Check if there are any changes
if ! git diff --quiet; then
git add devFlake/private/flake.lock devFlake/private.narHash
git commit -m "Update dev flake"
# Use shared PR creation script
export PR_BRANCH="update-dev-flake"
export PR_TITLE="Update dev flake"
export PR_BODY="This PR updates the dev flake inputs and corresponding narHash."
else
echo "No changes detected in dev flake inputs"
fi

View File

@@ -1,6 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View File

@@ -1,28 +0,0 @@
name: Github<->Gitea sync
on:
schedule:
- cron: "39 * * * *"
workflow_dispatch:
permissions:
contents: write
jobs:
repo-sync:
if: github.repository_owner == 'clan-lol'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_PRIVATE_KEY }}
- name: repo-sync
uses: repo-sync/github-sync@v2
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
with:
source_repo: "https://git.clan.lol/clan/clan-core.git"
source_branch: "main"
destination_branch: "main"

47
.gitignore vendored
View File

@@ -1,23 +1,20 @@
.direnv
.nixos-test-history
.hypothesis
***/.hypothesis
out.log
.coverage.*
pkgs/repro-hook
testdir
**/qubeclan
**/testdir
democlan
example_clan
result*
/pkgs/clan-cli/clan_lib/nixpkgs
/pkgs/clan-cli/clan_cli/nixpkgs
/pkgs/clan-cli/clan_cli/webui/assets
nixos.qcow2
*.glade~
**/*.glade~
/docs/out
/pkgs/clan-cli/clan_lib/select
.local.env
# macOS stuff
.DS_Store
# dream2nix
.dream2nix
# python
__pycache__
@@ -28,28 +25,14 @@ __pycache__
.ruff_cache
htmlcov
# flatpak
.flatpak-builder
build
build-dir
repo
.env
# node
node_modules
dist
.webui
# TODO: remove after bug in select is fixed
select
# Generated files
pkgs/clan-app/ui/api/API.json
pkgs/clan-app/ui/api/API.ts
pkgs/clan-app/ui/api/Inventory.ts
pkgs/clan-app/ui/api/modules_schemas.json
pkgs/clan-app/ui/api/schema.json
pkgs/clan-app/ui/.fonts
# To avoid accidentally committing large files
# Can be added with `git add -f` after reviewing the filesize
# Large files should be avoided or stored externally i.e. a gitea release
*.jpg
*.png
*.jpeg
*.gif
*.mp4
*.mkv
.webui

View File

@@ -1,2 +0,0 @@
nixosModules/clanCore/vars/.* @lopter
pkgs/clan-cli/clan_cli/(secrets|vars)/.* @lopter

View File

@@ -1,4 +1,21 @@
# Contributing to Clan
# Contributing to cLAN
<!-- Local file: docs/CONTRIBUTING.md -->
Go to the Contributing guide at https://docs.clan.lol/guides/contributing/CONTRIBUTING
## Live-reloading documentation
Enter the `docs` directory:
```shell-session
cd docs
```
Enter the development shell or enable `direnv`:
```shell-session
direnv allow
```
Run a local server:
```shell-session
mkdocs serve
```

View File

@@ -1,19 +0,0 @@
Copyright 2023-2024 Clan contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,6 +1,6 @@
# Clan core repository
# Clan Core Repository
Welcome to the Clan core repository, the heart of the [clan.lol](https://clan.lol/) project! This monorepo is the foundation of Clan, a revolutionary open-source project aimed at restoring fun, freedom, and functionality to computing. Here, you'll find all the essential packages, NixOS modules, CLI tools, and tests needed to contribute to and work with the Clan project. Clan leverages the Nix system to ensure reliability, security, and seamless management of digital environments, putting the power back into the hands of users.
Welcome to the Clan Core Repository, the heart of the [clan.lol](https://clan.lol/) project! This monorepo is the foundation of Clan, a revolutionary open-source project aimed at restoring fun, freedom, and functionality to computing. Here, you'll find all the essential packages, NixOS modules, CLI tools, and tests needed to contribute to and work with the cLAN project. Clan leverages the Nix system to ensure reliability, security, and seamless management of digital environments, putting the power back into the hands of users.
## Why Clan?
@@ -14,17 +14,17 @@ Our mission is simple: to democratize computing by providing tools that empower
- **Robust Backup Management:** Long-term, self-hosted data preservation.
- **Intuitive Secret Management:** Simplified encryption and password management processes.
## Getting started with Clan
## Getting Started with Clan
If you're new to Clan and eager to dive in, start with our quickstart guide and explore the core functionalities that Clan offers:
- **Quickstart Guide**: Check out [getting started](https://docs.clan.lol/#starting-with-a-new-clan-project)<!-- [docs/site/index.md](docs/site/index.md) --> to get up and running with Clan in no time.
### Managing secrets
### Managing Secrets
In the Clan ecosystem, security is paramount. Learn how to handle secrets effectively:
- **Secrets Management**: Securely manage secrets by consulting [secrets](https://docs.clan.lol/guides/getting-started/secrets/)<!-- [secrets.md](docs/site/guides/getting-started/secrets.md) -->.
- **Secrets Management**: Securely manage secrets by consulting [secrets](https://docs.clan.lol/getting-started/secrets/)<!-- [secrets.md](docs/site/getting-started/secrets.md) -->.
### Contributing to Clan
@@ -32,14 +32,14 @@ The Clan project thrives on community contributions. We welcome everyone to cont
- **Contribution Guidelines**: Make a meaningful impact by following the steps in [contributing](https://docs.clan.lol/contributing/contributing/)<!-- [contributing.md](docs/CONTRIBUTING.md) -->.
## Join the revolution
## Join the Revolution
Clan is more than a tool; it's a movement towards a better digital future. By contributing to the Clan project, you're part of changing technology for the better, together.
### Community and support
### Community and Support
Connect with us and the Clan community for support and discussion:
- [Matrix channel](https://matrix.to/#/#clan:clan.lol) for live discussions.
- IRC bridge on [hackint#clan](https://chat.hackint.org/#/connect?join=clan) for real-time chat support.
- [Matrix channel](https://matrix.to/#/#clan:lassul.us) for live discussions.
- IRC bridges (coming soon) for real-time chat support.

View File

@@ -1,41 +0,0 @@
{ self, pkgs, ... }:
{
name = "app-ocr-smoke-test";
enableOCR = true;
nodes = {
wayland =
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/../tests/common/wayland-cage.nix") ];
services.cage.program = "${self.packages.${pkgs.system}.clan-app}/bin/clan-app";
virtualisation.memorySize = 2047;
# TODO: get rid of this and fix debus-proxy error instead
services.cage.environment.WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS = "1";
};
xorg =
{ pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/../tests/common/user-account.nix")
(modulesPath + "/../tests/common/x11.nix")
];
virtualisation.memorySize = 2047;
services.xserver.enable = true;
services.xserver.displayManager.sessionCommands = "${
self.packages.${pkgs.system}.clan-app
}/bin/clan-app";
test-support.displayManager.auto.user = "alice";
};
};
testScript = ''
start_all()
wayland.wait_for_unit('graphical.target')
xorg.wait_for_unit('graphical.target')
wayland.wait_for_text('Welcome to Clan')
xorg.wait_for_text('Welcome to Clan')
'';
}

View File

@@ -5,90 +5,62 @@
fileSystems."/".device = "/dev/null";
boot.loader.grub.device = "/dev/null";
};
clan.inventory.services = {
borgbackup.test-backup = {
roles.client.machines = [ "test-backup" ];
roles.server.machines = [ "test-backup" ];
};
};
flake.nixosModules = {
test-backup =
{
pkgs,
lib,
config,
...
}:
let
dependencies =
[
pkgs.stdenv.drvPath
]
++ builtins.map (i: i.outPath) (builtins.attrValues (builtins.removeAttrs self.inputs [ "self" ]));
dependencies = [
self
pkgs.stdenv.drvPath
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-backup.config.system.clan.deployment.file
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
in
{
imports = [
# Do not import inventory modules. They should be configured via 'clan.inventory'
#
# TODO: Configure localbackup via inventory
self.clanModules.borgbackup
self.clanModules.localbackup
self.clanModules.sshd
];
# Borgbackup overrides
services.borgbackup.repos.test-backups = {
path = "/var/lib/borgbackup/test-backups";
authorizedKeys = [ (builtins.readFile ../assets/ssh/pubkey) ];
};
clan.borgbackup.destinations.test-backup.repo = lib.mkForce "borg@machine:.";
clan.core.networking.targetHost = "machine";
clan.networking.targetHost = "machine";
networking.hostName = "machine";
services.openssh.settings.UseDns = false;
programs.ssh.knownHosts = {
machine.hostNames = [ "machine" ];
machine.publicKey = builtins.readFile ../assets/ssh/pubkey;
machine.publicKey = builtins.readFile ../lib/ssh/pubkey;
};
services.openssh = {
enable = true;
settings.UsePAM = false;
settings.UseDns = false;
hostKeys = [
{
path = "/root/.ssh/id_ed25519";
type = "ed25519";
}
];
};
users.users.root.openssh.authorizedKeys.keyFiles = [ ../assets/ssh/pubkey ];
# This is needed to unlock the user for sshd
# Because we use sshd without setuid binaries
users.users.borg.initialPassword = "hello";
users.users.root.openssh.authorizedKeys.keyFiles = [ ../lib/ssh/pubkey ];
systemd.tmpfiles.settings."vmsecrets" = {
"/root/.ssh/id_ed25519" = {
C.argument = "${../assets/ssh/privkey}";
C.argument = "${../lib/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/ssh.id_ed25519" = {
C.argument = "${../assets/ssh/privkey}";
C.argument = "${../lib/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/borgbackup/borgbackup.ssh" = {
C.argument = "${../assets/ssh/privkey}";
"/etc/secrets/borgbackup.ssh" = {
C.argument = "${../lib/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/borgbackup/borgbackup.repokey" = {
"/etc/secrets/borgbackup.repokey" = {
C.argument = builtins.toString (pkgs.writeText "repokey" "repokey12345");
z = {
mode = "0400";
@@ -96,10 +68,17 @@
};
};
};
clan.core.facts.secretStore = "vm";
clan.core.vars.settings.secretStore = "vm";
clanCore.facts.secretStore = "vm";
environment.systemPackages = [ self.packages.${pkgs.system}.clan-cli ];
environment.systemPackages = [
self.packages.${pkgs.system}.clan-cli
(pkgs.writeShellScriptBin "pre-restore-command" ''
touch /var/test-service/pre-restore-command
'')
(pkgs.writeShellScriptBin "post-restore-command" ''
touch /var/test-service/post-restore-command
'')
];
environment.etc.install-closure.source = "${closureInfo}/store-paths";
nix.settings = {
substituters = lib.mkForce [ ];
@@ -108,20 +87,14 @@
flake-registry = pkgs.writeText "flake-registry" ''{"flakes":[],"version":2}'';
};
system.extraDependencies = dependencies;
clan.core.state.test-backups.folders = [ "/var/test-backups" ];
clanCore.state.test-backups.folders = [ "/var/test-backups" ];
clan.core.state.test-service = {
preBackupScript = ''
touch /var/test-service/pre-backup-command
'';
preRestoreScript = ''
touch /var/test-service/pre-restore-command
'';
postRestoreScript = ''
touch /var/test-service/post-restore-command
'';
clanCore.state.test-service = {
preRestoreCommand = "pre-restore-command";
postRestoreCommand = "post-restore-command";
folders = [ "/var/test-service" ];
};
clan.borgbackup.destinations.test-backup.repo = "borg@machine:.";
fileSystems."/mnt/external-disk" = {
device = "/dev/vdb"; # created in tests with virtualisation.emptyDisks
@@ -142,28 +115,25 @@
touch /run/unmount-external-disk
'';
};
services.borgbackup.repos.test-backups = {
path = "/var/lib/borgbackup/test-backups";
authorizedKeys = [ (builtins.readFile ../lib/ssh/pubkey) ];
};
};
};
perSystem =
{ pkgs, ... }:
let
clanCore = self.checks.x86_64-linux.clan-core-for-checks;
in
{ nodes, pkgs, ... }:
{
checks = pkgs.lib.mkIf pkgs.stdenv.isLinux {
nixos-test-backups = self.clanLib.test.containerTest {
name = "nixos-test-backups";
checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux) {
test-backups = (import ../lib/test-base.nix) {
name = "test-backups";
nodes.machine = {
imports =
[
self.nixosModules.clanCore
# Some custom overrides for the backup tests
self.nixosModules.test-backup
]
++
# import the inventory generated nixosModules
self.clan.clanInternals.inventoryClass.machines.test-backup.machineImports;
clan.core.settings.directory = ./.;
imports = [
self.nixosModules.clanCore
self.nixosModules.test-backup
];
virtualisation.emptyDiskImages = [ 256 ];
};
testScript = ''
@@ -175,14 +145,14 @@
machine.succeed("echo testing > /var/test-backups/somefile")
# create
machine.succeed("clan backups create --debug --flake ${clanCore} test-backup")
machine.succeed("clan --debug --flake ${self} backups create test-backup")
machine.wait_until_succeeds("! systemctl is-active borgbackup-job-test-backup >&2")
machine.succeed("test -f /run/mount-external-disk")
machine.succeed("test -f /run/unmount-external-disk")
# list
backup_id = json.loads(machine.succeed("borg-job-test-backup list --json"))["archives"][0]["archive"]
out = machine.succeed("clan backups list --debug --flake ${clanCore} test-backup").strip()
out = machine.succeed("clan --debug --flake ${self} backups list test-backup").strip()
print(out)
assert backup_id in out, f"backup {backup_id} not found in {out}"
localbackup_id = "hdd::/mnt/external-disk/snapshot.0"
@@ -190,19 +160,17 @@
## borgbackup restore
machine.succeed("rm -f /var/test-backups/somefile")
machine.succeed(f"clan backups restore --debug --flake ${clanCore} test-backup borgbackup 'test-backup::borg@machine:.::{backup_id}' >&2")
machine.succeed(f"clan --debug --flake ${self} backups restore test-backup borgbackup 'test-backup::borg@machine:.::{backup_id}' >&2")
assert machine.succeed("cat /var/test-backups/somefile").strip() == "testing", "restore failed"
machine.succeed("test -f /var/test-service/pre-restore-command")
machine.succeed("test -f /var/test-service/post-restore-command")
machine.succeed("test -f /var/test-service/pre-backup-command")
## localbackup restore
machine.succeed("rm -rf /var/test-backups/somefile /var/test-service/ && mkdir -p /var/test-service")
machine.succeed(f"clan backups restore --debug --flake ${clanCore} test-backup localbackup '{localbackup_id}' >&2")
machine.succeed("rm -f /var/test-backups/somefile /var/test-service/{pre,post}-restore-command")
machine.succeed(f"clan --debug --flake ${self} backups restore test-backup localbackup '{localbackup_id}' >&2")
assert machine.succeed("cat /var/test-backups/somefile").strip() == "testing", "restore failed"
machine.succeed("test -f /var/test-service/pre-restore-command")
machine.succeed("test -f /var/test-service/post-restore-command")
machine.succeed("test -f /var/test-service/pre-backup-command")
'';
} { inherit pkgs self; };
};

View File

@@ -1,51 +0,0 @@
(
{ ... }:
{
name = "borgbackup";
nodes.machine =
{ self, pkgs, ... }:
{
imports = [
self.clanModules.borgbackup
self.nixosModules.clanCore
{
services.openssh.enable = true;
services.borgbackup.repos.testrepo = {
authorizedKeys = [ (builtins.readFile ../assets/ssh/pubkey) ];
};
}
{
clan.core.settings.directory = ./.;
clan.core.state.testState.folders = [ "/etc/state" ];
environment.etc.state.text = "hello world";
systemd.tmpfiles.settings."vmsecrets" = {
"/etc/secrets/borgbackup/borgbackup.ssh" = {
C.argument = "${../assets/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/borgbackup/borgbackup.repokey" = {
C.argument = builtins.toString (pkgs.writeText "repokey" "repokey12345");
z = {
mode = "0400";
user = "root";
};
};
};
# clan.core.facts.secretStore = "vm";
clan.core.vars.settings.secretStore = "vm";
clan.borgbackup.destinations.test.repo = "borg@localhost:.";
}
];
};
testScript = ''
start_all()
machine.systemctl("start --wait borgbackup-job-test.service")
assert "machine-test" in machine.succeed("BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes /run/current-system/sw/bin/borg-job-test list")
'';
}
)

View File

@@ -1,102 +1,51 @@
{
pkgs,
nixosLib,
clan-core,
...
}:
nixosLib.runTest (
(import ../lib/test-base.nix) (
{ ... }:
{
imports = [
clan-core.modules.nixosTest.clanTest
];
name = "borgbackup";
hostPkgs = pkgs;
nodes.machine =
{ self, pkgs, ... }:
{
imports = [
self.clanModules.borgbackup
self.nixosModules.clanCore
{
services.openssh.enable = true;
services.borgbackup.repos.testrepo = {
authorizedKeys = [ (builtins.readFile ../lib/ssh/pubkey) ];
};
}
{
clanCore.machineName = "machine";
clanCore.clanDir = ./.;
clanCore.state.testState.folders = [ "/etc/state" ];
environment.etc.state.text = "hello world";
systemd.tmpfiles.settings."vmsecrets" = {
"/etc/secrets/borgbackup.ssh" = {
C.argument = "${../lib/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/borgbackup.repokey" = {
C.argument = builtins.toString (pkgs.writeText "repokey" "repokey12345");
z = {
mode = "0400";
user = "root";
};
};
};
clanCore.facts.secretStore = "vm";
name = "service-borgbackup";
clan = {
directory = ./.;
test.useContainers = true;
modules."@clan/borgbackup" = ../../clanServices/borgbackup/default.nix;
inventory = {
machines.clientone = { };
machines.serverone = { };
instances = {
borgone = {
module.name = "@clan/borgbackup";
module.input = "self";
roles.client.machines."clientone" = { };
roles.server.machines."serverone".settings.directory = "/tmp/borg-test";
};
};
clan.borgbackup.destinations.test.repo = "borg@localhost:.";
}
];
};
};
nodes = {
serverone = {
services.openssh.enable = true;
# Needed so PAM doesn't see the user as locked
users.users.borg.password = "borg";
};
clientone =
{ config, pkgs, ... }:
{
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keyFiles = [ ../assets/ssh/pubkey ];
clan.core.networking.targetHost = config.networking.hostName;
environment.systemPackages = [ clan-core.packages.${pkgs.system}.clan-cli ];
clan.core.state.test-backups.folders = [ "/var/test-backups" ];
};
};
testScript = ''
import json
start_all()
machines = [clientone, serverone]
for m in machines:
m.systemctl("start network-online.target")
for m in machines:
m.wait_for_unit("network-online.target")
# dummy data
clientone.succeed("mkdir -p /var/test-backups /var/test-service")
clientone.succeed("echo testing > /var/test-backups/somefile")
clientone.succeed("${pkgs.coreutils}/bin/install -Dm 600 ${../assets/ssh/privkey} /root/.ssh/id_ed25519")
clientone.succeed("${pkgs.coreutils}/bin/touch /root/.ssh/known_hosts")
clientone.wait_until_succeeds("timeout 2 ssh -o StrictHostKeyChecking=accept-new localhost hostname")
clientone.wait_until_succeeds("timeout 2 ssh -o StrictHostKeyChecking=accept-new $(hostname) hostname")
# create
clientone.succeed("borgbackup-create >&2")
clientone.wait_until_succeeds("! systemctl is-active borgbackup-job-serverone >&2")
# list
backup_id = json.loads(clientone.succeed("borg-job-serverone list --json"))["archives"][0]["archive"]
out = clientone.succeed("borgbackup-list").strip()
print(out)
assert backup_id in out, f"backup {backup_id} not found in {out}"
# borgbackup restore
clientone.succeed("rm -f /var/test-backups/somefile")
clientone.succeed(f"NAME='serverone::borg@serverone:.::{backup_id}' borgbackup-restore >&2")
assert clientone.succeed("cat /var/test-backups/somefile").strip() == "testing", "restore failed"
machine.systemctl("start --wait borgbackup-job-test.service")
assert "machine-test" in machine.succeed("BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes /run/current-system/sw/bin/borg-job-test list")
'';
}
)

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age1tyyx2ratu8s9ugyre36xyksnquth9gxeh7wjdhvsk89rtf8yu5wq0pk04c",
"type": "age"
}
]

View File

@@ -1,15 +0,0 @@
{
"data": "ENC[AES256_GCM,data:wCKoKuJo4uXycfqEUYAXDlRRMGJaWgOFiaQa4Wigs0jx1eCI80lP3cEZ1QKyrU/9m9POoZz0JlaKHcuhziTKUqaevHvGfVq2y00=,iv:pH5a90bJbK9Ro6zndNJ18qd4/rU+Tdm+y+jJZtY7UGg=,tag:9lHZJ9C/zIfy8nFrYt9JBQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUDhpd1ZqbWFqR0I3dVFI\nOHlyZnFUYXJnWElrRWhoUHVNMzdKd0VrcGdRCkphQVhuYzlJV0p1MG9MSW5ncWJ3\nREp1OEJxMzQzS2MxTk9aMkJ1a3B0Q0kKLS0tIENweVJ2Tk1yeXlFc2F5cTNIV3F3\nTkRFOVZ1amRIYmg1K3hGWUFSTTl4Wk0KHJRJ7756Msod7Bsmn9SgtwRo53B8Ilp3\nhsAPv+TtdmOD8He9MvGV+BElKEXCsLUwhp/Py6n6CJCczu0VIr8owg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-20T13:33:56Z",
"mac": "ENC[AES256_GCM,data:FyfxXhnI6o4SVGJY2e1eMDnfkbMWiCkP4JL/G4PQvzz+c7OIuz8xaa03P3VW7b7o85NP2Tln4FMNTZ0FYtQwd0kKypLUnIxAHsixAHFCv4X8ul1gtZynzgbFbmc0GkfVWW8Lf+U+vvDwT+UrEVfcmksCjdvAOwP26PvlEhYEkSw=,iv:H+VrWYL+kLOLezCZrI8ZgeCsaUdpb7LxDMiLotezVPs=,tag:B/cbPdiEFumGKQHby5inCA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../users/admin

View File

@@ -1,4 +0,0 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/clientone

View File

@@ -1,19 +0,0 @@
{
"data": "ENC[AES256_GCM,data:52vY68gqbwiZRMUBKc9SeXR06fuKAhuAPciLpxXgEOxI,iv:Y34AVoHaZzRiFFTDbekXP1X3W8zSXJmzVCYODYkdxnY=,tag:8WQaGEHQKT/n+auHUZCE0w==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOdUFUZUZ2M00zTGlhNjF4\nL0VlMVY4Z2xMbWRWR29zZlFwdm1XRk12NGtBCnkrb3A4M3BkalMyeWdDaUdQdStt\nUWY3SXJROXdpRzN0NlBJNEpjTEZ0aFkKLS0tIGZkMGhsTXB2RnRqVHVrUFQwL2lw\nZnBreWhWa3Jrcm4yOXBiaUlPWFM1aDAKRE+Zzrja7KeANEJUbmFYuVoO3qGyi4iH\n0cfH0W8irRe9vsKMXz7YJxtByYLwRulrT8tXtElHvIEVJG0mwwaf0Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tyyx2ratu8s9ugyre36xyksnquth9gxeh7wjdhvsk89rtf8yu5wq0pk04c",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsNEljUFdnQ0tTQ1IxZ2Zo\nYkc4V2dCaUk0YXh5SzlSazhsRTVKVzFvVXhFCkRyMlMxR3EyWEZIRzFQV3d2dVpz\na3NPbk9XdWR1NmtMQlZsNlBuU0NkQWMKLS0tIDlDYzMzOExVL1g5SVRHYlpUQlBV\na2lpdTUwaEd4OXhWUWxuV04xRVVKNHcK9coohAD1IoarLOXSGg3MIRXQ3BsTIA4y\nKrcS/PxITKJs7ihg93RZin70R79Qsij1RHZLKGfgGJ67i8ZCxc4N0g==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-20T13:33:59Z",
"mac": "ENC[AES256_GCM,data:eABMaIe07dwAMMlgrIUUpfpj73q1H5Keafql91MBQ5NN9Znr5lI/ennQsQsuLO8ZTCC34US/MJndliW34SqVM9y53p0jjPzqBxSKYq74iNcBz7+TxbjlY1aapgTRPr6Ta8I/5loohnxlHqjvLL70ZzfbChDN0/4jZsDVXYNfbIk=,iv:41Mz2u40JN0iE5zPUK6siaxo0rTtlk7fGWq7TF5NyUI=,tag:1A+h6XPH7DeQ6kxGDV3PgQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE3clYF6BDZ0PxfDdprx7YYM4U4PKEZkWUuhpre0wb7w nixbld@kiwi

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/clientone

View File

@@ -1,19 +0,0 @@
{
"data": "ENC[AES256_GCM,data:tAjfBW75XDS8lfJCf/+9rPYH3aMjRX1nmdN5dPMxnrlhuEPM3Smv9AM93Tz36k7BKk31bUWcV/99ax+KaIK1Rzgym/CwKGGxIUziuVOEOwrCOBeOw7amZ9YGsgiLUTLIhoeO6SjfdZ4q2JxGPw7KqNfUM9kiZT01vx5JTLa24JdvBKpizbtHRlL1lappTRVt0dG2WhT9/YhQUGu9ZFqPs8+bPOBclc78qjCm2DAPgsprK+JCBuq+r+qHgAx4Ee1QHI7FC39e5NeGBTBeZfZ5d95+0klKuTx9FCPs6QRBkQ0tN29OpwzkdSuRAXGGHpzPkZ+FupbETtSQWCmnjma6jPzEl8oDUTWooKK0mUEz8icvTQvRfyM3Qt3mQpkX3e0rTEbZzoLdWCwTufP/tRQNDCWvI/NV7OjIHpNPjymqE5uPmiBpA6y6hhCH7zL1eDo11ICSIX3hkyFJH2svvFQn6oLrPAoByvNutfetKhd8z7NFpVeIOWwtuPzO7wU5M7zESHww0JF78vjFwimQYYhQ,iv:fVjeVez4dTGSrANi5ZeP9PJhsSySqeqqJzBDbd0gFW4=,tag:Aa89+bWLljxV1tlSHtpddw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVaW94M3VwcFJ2elcrRGlv\nUGdzVk9vU2ZweFpIVVlIRUEyRVlSMlEyeHpVCnJuV0xIS3hMLy9IbG92S0pvL2RP\nL0J0WkVuWVhQdldHekdYNTVXdFkrUlEKLS0tIFQzdGErZVBwQUFNMXErbDBQVURZ\naHlsY2hDa1Zud1E2dFh0ZHl4VEJ2S0kKVABqwRcCUTcsBInfo9CpFtoM3kl4KMyU\nGXDjHOSjlX5df7OKZAvYukgX7Q2penvq+Fq4fa4A1Cmkqga7cHdJ+A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tyyx2ratu8s9ugyre36xyksnquth9gxeh7wjdhvsk89rtf8yu5wq0pk04c",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnbHRSVEg3Vi9qTnAwWGF6\nbEdIR2gvZ2laZnJMbVF3NjcvN25OdXF3WXowCnVUODdEa1NWU3JISXlrNldOMjVi\ndUlMTVdBaWxvZHlwSTdJY3NCcll4SjAKLS0tIEp6ZVlDTklqVXdNYzJ2dElCR21o\nUWphMDdyVVppVnFHOVlHZTNtajZzOXMKRB61lUrAkUXSYl3ffOOK8k4QgLA4bFln\naQ7GOol8f8W5H68zXBMZrhjP6k4kZDfknc9jgyoWM7jaZNSWC5J19Q==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-20T13:33:59Z",
"mac": "ENC[AES256_GCM,data:NjVpDweqxTSQGt9VKR/CMfvbvHQJHCi8P7XbOuKLZKQ4GVoeZ5r4PsC6nxKHHikN6YL1oJCmaSxr0mJRk/sFZg/+wdW8L7F5aQeFRiWo9jCjH0MDMnfiu5a0xjRt21uPl/7LUJ9jNon5nyxPTlZMeYSvTP2Q9spnNuN8vqipP68=,iv:DPvbN9IvWiUfxiJk6mey/us8N1GGVJcSJrT8Bty4kB4=,tag:+emK8uSkfIGUXoYpaWeu3A==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1,6 +0,0 @@
{ fetchgit }:
fetchgit {
url = "https://git.clan.lol/clan/clan-core.git";
rev = "eea93ea22c9818da67e148ba586277bab9e73cea";
sha256 = "sha256-PV0Z+97QuxQbkYSVuNIJwUNXMbHZG/vhsA9M4cDTCOE=";
}

View File

@@ -1,44 +1,19 @@
(
(import ../lib/container-test.nix) (
{ ... }:
{
name = "container";
name = "secrets";
nodes.machine1 =
nodes.machine =
{ ... }:
{
networking.hostName = "machine1";
networking.hostName = "machine";
services.openssh.enable = true;
services.openssh.startWhenNeeded = false;
};
nodes.machine2 =
{ ... }:
{
networking.hostName = "machine2";
services.openssh.enable = true;
services.openssh.startWhenNeeded = false;
};
testScript = ''
import subprocess
start_all()
machine1.succeed("systemctl status sshd")
machine2.succeed("systemctl status sshd")
machine1.wait_for_unit("sshd")
machine2.wait_for_unit("sshd")
p1 = subprocess.run(["ip", "a"], check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
assert p1.returncode == 0
bridge_output = p1.stdout.decode("utf-8")
assert "br0" in bridge_output, f"bridge not found in ip a output: {bridge_output}"
for m in [machine1, machine2]:
out = machine1.succeed("ip addr show eth1")
assert "UP" in out, f"UP not found in ip addr show output: {out}"
assert "inet" in out, f"inet not found in ip addr show output: {out}"
assert "inet6" in out, f"inet6 not found in ip addr show output: {out}"
machine1.succeed("ping -c 1 machine2")
machine.succeed("systemctl status sshd")
machine.wait_for_unit("sshd")
'';
}
)

View File

@@ -0,0 +1,29 @@
(import ../lib/container-test.nix) (
{ pkgs, ... }:
{
name = "secrets";
nodes.machine =
{ self, ... }:
{
imports = [
self.clanModules.deltachat
self.nixosModules.clanCore
{
clanCore.machineName = "machine";
clanCore.clanDir = ./.;
}
];
};
testScript = ''
start_all()
machine.wait_for_unit("maddy")
# imap
machine.succeed("${pkgs.netcat}/bin/nc -z -v ::1 143")
# smtp submission
machine.succeed("${pkgs.netcat}/bin/nc -z -v ::1 587")
# smtp
machine.succeed("${pkgs.netcat}/bin/nc -z -v ::1 25")
'';
}
)

View File

@@ -1,22 +0,0 @@
{ ... }:
{
perSystem =
{ self', pkgs, ... }:
{
checks.devshell =
pkgs.runCommand "check-devshell-not-depends-on-clan-cli"
{
exportReferencesGraph = [
"graph"
self'.devShells.default
];
}
''
if grep -q "${self'.packages.clan-cli}" ./graph; then
echo "devshell depends on clan-cli, which is not allowed";
exit 1;
fi
mkdir $out
'';
};
}

View File

@@ -1,122 +0,0 @@
{
...
}:
{
perSystem =
{
system,
pkgs,
self',
lib,
...
}:
let
clanCore = self'.packages.clan-core-flake;
clanCoreHash = lib.substring 0 12 (builtins.hashString "sha256" "${clanCore}");
/*
construct a flake for the test which contains a single check which depends
on all checks of clan-core.
*/
testFlakeFile = pkgs.writeText "flake.nix" ''
{
inputs.clan-core.url = path:///to/nowhere;
outputs = {clan-core, ...}:
let
checks =
builtins.removeAttrs
clan-core.checks.${system}
[
"dont-depend-on-repo-root"
"package-dont-depend-on-repo-root"
"package-clan-core-flake"
];
checksOutPaths = map (x: "''${x}") (builtins.attrValues checks);
in
{
checks.${system}.check = builtins.derivation {
name = "all-clan-core-checks";
system = "${system}";
builder = "/bin/sh";
args = ["-c" '''
of outPath in ''${toString checksOutPaths}; do
echo "$outPath" >> $out
done
'''];
};
};
}
'';
in
lib.optionalAttrs (system == "x86_64-linux") {
packages.dont-depend-on-repo-root =
pkgs.runCommand
# append repo hash to this tests name to ensure it gets invalidated on each chain
# This is needed because this test is an FOD (due to networking) and would get cached indefinitely.
"check-dont-depend-on-repo-root-${clanCoreHash}"
{
buildInputs = [
pkgs.nix
pkgs.cacert
pkgs.nix-diff
];
outputHashAlgo = "sha256";
outputHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
}
''
mkdir clanCore testFlake store
clanCore=$(realpath clanCore)
testFlake=$(realpath testFlake)
# copy clan core flake and make writable
cp -r ${clanCore}/* clanCore/
chmod +w -R clanCore\
# copy test flake and make writable
cp ${testFlakeFile} testFlake/flake.nix
chmod +w -R testFlake
# enable flakes
export NIX_CONFIG="experimental-features = nix-command flakes"
# give nix a $HOME
export HOME=$(realpath ./store)
# override clan-core flake input to point to $clanCore\
echo "locking clan-core to $clanCore"
nix flake lock --override-input clan-core "path://$clanCore" "$testFlake" --store "$HOME"
# evaluate all tests
echo "evaluating all tests for clan core"
nix eval "$testFlake"#checks.${system}.check.drvPath --store "$HOME" --raw > drvPath1 &
# slightly modify clan core
cp -r $clanCore clanCore2
cp -r $testFlake testFlake2
export clanCore2=$(realpath clanCore2)
export testFlake2=$(realpath testFlake2)
touch clanCore2/fly-fpv
# re-evaluate all tests
echo "locking clan-core to $clanCore2"
nix flake lock --override-input clan-core "path://$clanCore2" "$testFlake2" --store "$HOME"
echo "evaluating all tests for clan core with added file"
nix eval "$testFlake2"#checks.${system}.check.drvPath --store "$HOME" --raw > drvPath2
# wait for first nix eval to return as well
while ! grep -q drv drvPath1; do sleep 1; done
# raise error if outputs are different
if [ "$(cat drvPath1)" != "$(cat drvPath2)" ]; then
echo -e "\n\nERROR: Something in clan-core depends on the whole repo" > /dev/stderr
echo -e "See details in the nix-diff below which shows the difference between two evaluations:"
echo -e " 1. Evaluation of clan-core checks without any changes"
echo -e " 1. Evaluation of clan-core checks after adding a file to the top-level of the repo"
echo "nix-diff:"
export NIX_REMOTE="$HOME"
nix-diff $(cat drvPath1) $(cat drvPath2)
exit 1
fi
touch $out
'';
};
}

View File

@@ -1,159 +1,63 @@
{ self, ... }:
{
self,
lib,
inputs,
...
}:
let
inherit (lib)
attrNames
attrValues
elem
filter
filterAttrs
flip
genAttrs
hasPrefix
pathExists
;
nixosLib = import (self.inputs.nixpkgs + "/nixos/lib") { };
in
{
imports = filter pathExists [
./backups/flake-module.nix
../nixosModules/clanCore/machine-id/tests/flake-module.nix
../nixosModules/clanCore/state-version/tests/flake-module.nix
./devshell/flake-module.nix
./flash/flake-module.nix
imports = [
./impure/flake-module.nix
./backups/flake-module.nix
./installation/flake-module.nix
./morph/flake-module.nix
./nixos-documentation/flake-module.nix
./dont-depend-on-repo-root.nix
./flash/flake-module.nix
];
flake.check = genAttrs [ "x86_64-linux" "aarch64-darwin" ] (
system:
let
checks = flip filterAttrs self.checks.${system} (
name: _check:
!(hasPrefix "nixos-test-" name)
&& !(hasPrefix "nixos-" name)
&& !(hasPrefix "darwin-test-" name)
&& !(hasPrefix "service-" name)
&& !(hasPrefix "vars-check-" name)
&& !(hasPrefix "devShell-" name)
&& !(elem name [
"clan-core-for-checks"
"clan-deps"
])
);
in
inputs.nixpkgs.legacyPackages.${system}.runCommand "fast-flake-checks-${system}"
{ passthru.checks = checks; }
''
echo "Executed the following checks for ${system}..."
echo " - ${lib.concatStringsSep "\n" (map (n: " - " + n) (attrNames checks))}"
echo ${toString (attrValues checks)} >/dev/null
echo "All checks succeeded"
touch $out
''
);
perSystem =
{
pkgs,
lib,
self',
system,
...
}:
{
checks =
let
# ensure all options can be rendered after importing clan into nixos
renderClanOptions =
let
docs = pkgs.nixosOptionsDoc {
options =
(pkgs.nixos {
imports = [ self.nixosModules.clanCore ];
clanCore.clanDir = ./.;
}).options;
warningsAreErrors = false;
};
in
docs.optionsJSON;
nixosTestArgs = {
# reference to nixpkgs for the current system
inherit pkgs lib nixosLib;
inherit pkgs;
# this gives us a reference to our flake but also all flake inputs
inherit self;
inherit (self) clanLib;
clan-core = self;
};
nixosTests = lib.optionalAttrs (pkgs.stdenv.isLinux) {
# Base Tests
nixos-test-secrets = self.clanLib.test.baseTest ./secrets nixosTestArgs;
nixos-test-borgbackup-legacy = self.clanLib.test.baseTest ./borgbackup-legacy nixosTestArgs;
nixos-test-wayland-proxy-virtwl = self.clanLib.test.baseTest ./wayland-proxy-virtwl nixosTestArgs;
# Container Tests
nixos-test-container = self.clanLib.test.containerTest ./container nixosTestArgs;
nixos-test-zt-tcp-relay = self.clanLib.test.containerTest ./zt-tcp-relay nixosTestArgs;
nixos-test-matrix-synapse = self.clanLib.test.containerTest ./matrix-synapse nixosTestArgs;
nixos-test-postgresql = self.clanLib.test.containerTest ./postgresql nixosTestArgs;
nixos-test-user-firewall-iptables = self.clanLib.test.containerTest ./user-firewall/iptables.nix nixosTestArgs;
nixos-test-user-firewall-nftables = self.clanLib.test.containerTest ./user-firewall/nftables.nix nixosTestArgs;
service-dummy-test = import ./service-dummy-test nixosTestArgs;
service-dummy-test-from-flake = import ./service-dummy-test-from-flake nixosTestArgs;
# import our test
secrets = import ./secrets nixosTestArgs;
container = import ./container nixosTestArgs;
deltachat = import ./deltachat nixosTestArgs;
matrix-synapse = import ./matrix-synapse nixosTestArgs;
zt-tcp-relay = import ./zt-tcp-relay nixosTestArgs;
borgbackup = import ./borgbackup nixosTestArgs;
syncthing = import ./syncthing nixosTestArgs;
wayland-proxy-virtwl = import ./wayland-proxy-virtwl nixosTestArgs;
};
packagesToBuild = lib.removeAttrs self'.packages [
# exclude the check that checks that nothing depends on the repo root
# We might want to include this later once everything is fixed
"dont-depend-on-repo-root"
];
flakeOutputs =
lib.mapAttrs' (
name: config: lib.nameValuePair "nixos-${name}" config.config.system.build.toplevel
) (lib.filterAttrs (n: _: !lib.hasPrefix "test-" n) self.nixosConfigurations)
// lib.mapAttrs' (
name: config: lib.nameValuePair "darwin-${name}" config.config.system.build.toplevel
) (self.darwinConfigurations or { })
// lib.mapAttrs' (n: lib.nameValuePair "package-${n}") packagesToBuild
) self.nixosConfigurations
// lib.mapAttrs' (n: lib.nameValuePair "package-${n}") self'.packages
// lib.mapAttrs' (n: lib.nameValuePair "devShell-${n}") self'.devShells
// lib.mapAttrs' (name: config: lib.nameValuePair "home-manager-${name}" config.activation-script) (
self'.legacyPackages.homeConfigurations or { }
);
in
nixosTests
// flakeOutputs
// {
# TODO: Automatically provide this check to downstream users to check their modules
clan-modules-json-compatible =
let
allSchemas = lib.mapAttrs (
_n: m:
let
schema =
(self.clanLib.evalService {
modules = [ m ];
prefix = [
"checks"
system
];
}).config.result.api.schema;
in
schema
) self.clan.modules;
in
pkgs.runCommand "combined-result"
{
schemaFile = builtins.toFile "schemas.json" (builtins.toJSON allSchemas);
}
''
mkdir -p $out
cat $schemaFile > $out/allSchemas.json
'';
clan-core-for-checks = pkgs.runCommand "clan-core-for-checks" { } ''
cp -r ${pkgs.callPackage ./clan-core-for-checks.nix { }} $out
chmod +w $out/flake.lock
cp ${../flake.lock} $out/flake.lock
'';
};
packages = lib.optionalAttrs (pkgs.stdenv.isLinux) {
run-vm-test-offline = pkgs.callPackage ../pkgs/run-vm-test-offline { };
};
{ inherit renderClanOptions; } // nixosTests // flakeOutputs;
legacyPackages = {
nixosTests =
let
@@ -166,10 +70,8 @@ in
in
lib.optionalAttrs (pkgs.stdenv.isLinux) {
# import our test
nixos-test-secrets = import ./secrets nixosTestArgs;
nixos-test-container = import ./container nixosTestArgs;
# Clan app tests
nixos-test-app-ocr = self.clanLib.test.baseTest ./app-ocr nixosTestArgs;
secrets = import ./secrets nixosTestArgs;
container = import ./container nixosTestArgs;
};
};
};

View File

@@ -1,87 +1,33 @@
{ ... }:
{
config,
self,
lib,
...
}:
{
clan.machines = lib.listToAttrs (
lib.map (
system:
lib.nameValuePair "test-flash-machine-${system}" {
clan.core.networking.targetHost = "test-flash-machine";
fileSystems."/".device = lib.mkDefault "/dev/vda";
boot.loader.grub.device = lib.mkDefault "/dev/vda";
# We need to use `mkForce` because we inherit from `test-install-machine`
# which currently hardcodes `nixpkgs.hostPlatform`
nixpkgs.hostPlatform = lib.mkForce system;
imports = [ self.nixosModules.test-flash-machine ];
}
) (lib.filter (lib.hasSuffix "linux") config.systems)
);
flake.nixosModules = {
test-flash-machine =
{ lib, ... }:
{
imports = [ self.nixosModules.test-install-machine-without-system ];
clan.core.vars.generators.test = lib.mkForce { };
disko.devices.disk.main.preCreateHook = lib.mkForce "";
};
};
perSystem =
{ ... }:
{
pkgs,
lib,
...
}:
let
dependencies = [
pkgs.disko
pkgs.buildPackages.xorg.lndir
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".pkgs.perlPackages.ConfigIniFiles
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".pkgs.perlPackages.FileSlurp
# checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux) {
# flash = (import ../lib/test-base.nix) {
# name = "flash";
# nodes.target = {
# virtualisation.emptyDiskImages = [ 4096 ];
# virtualisation.memorySize = 3000;
# environment.systemPackages = [ self.packages.${pkgs.system}.clan-cli ];
# environment.etc."install-closure".source = "${closureInfo}/store-paths";
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".config.system.build.toplevel
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".config.system.build.diskoScript
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".config.system.build.diskoScript.drvPath
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
in
{
checks = pkgs.lib.mkIf pkgs.stdenv.isLinux {
nixos-test-flash = self.clanLib.test.baseTest {
name = "flash";
nodes.target = {
virtualisation.emptyDiskImages = [ 4096 ];
virtualisation.memorySize = 4096;
environment.systemPackages = [ self.packages.${pkgs.system}.clan-cli ];
environment.etc."install-closure".source = "${closureInfo}/store-paths";
nix.settings = {
substituters = lib.mkForce [ ];
hashed-mirrors = null;
connect-timeout = lib.mkForce 3;
flake-registry = pkgs.writeText "flake-registry" ''{"flakes":[],"version":2}'';
experimental-features = [
"nix-command"
"flakes"
];
};
};
testScript = ''
start_all()
# Some distros like to automount disks with spaces
machine.succeed('mkdir -p "/mnt/with spaces" && mkfs.ext4 /dev/vdb && mount /dev/vdb "/mnt/with spaces"')
machine.succeed("clan flash write --debug --flake ${self.checks.x86_64-linux.clan-core-for-checks} --yes --disk main /dev/vdb test-flash-machine-${pkgs.hostPlatform.system}")
'';
} { inherit pkgs self; };
};
# nix.settings = {
# substituters = lib.mkForce [ ];
# hashed-mirrors = null;
# connect-timeout = lib.mkForce 3;
# flake-registry = pkgs.writeText "flake-registry" ''{"flakes":[],"version":2}'';
# experimental-features = [
# "nix-command"
# "flakes"
# ];
# };
# };
# testScript = ''
# start_all()
# machine.succeed("clan --debug --flake ${../..} flash --yes --disk main /dev/vdb test_install_machine")
# '';
# } { inherit pkgs self; };
# };
};
}

View File

@@ -1,11 +1,6 @@
{
perSystem =
{
pkgs,
lib,
self',
...
}:
{ pkgs, lib, ... }:
{
# a script that executes all other checks
packages.impure-checks = pkgs.writeShellScriptBin "impure-checks" ''
@@ -15,37 +10,15 @@
unset CLAN_DIR
export PATH="${
lib.makeBinPath (
[
pkgs.gitMinimal
pkgs.nix
pkgs.coreutils
pkgs.rsync # needed to have rsync installed on the dummy ssh server
]
++ self'.packages.clan-cli-full.runtimeDependencies
)
lib.makeBinPath [
pkgs.gitMinimal
pkgs.nix
pkgs.rsync # needed to have rsync installed on the dummy ssh server
]
}"
ROOT=$(git rev-parse --show-toplevel)
cd "$ROOT/pkgs/clan-cli"
# Set up custom git configuration for tests
export GIT_CONFIG_GLOBAL=$(mktemp)
git config --file "$GIT_CONFIG_GLOBAL" user.name "Test User"
git config --file "$GIT_CONFIG_GLOBAL" user.email "test@example.com"
export GIT_CONFIG_SYSTEM=/dev/null
# this disables dynamic dependency loading in clan-cli
export CLAN_NO_DYNAMIC_DEPS=1
jobs=$(nproc)
# Spawning worker in pytest is relatively slow, so we limit the number of jobs to 13
# (current number of impure tests)
jobs="$((jobs > 13 ? 13 : jobs))"
nix develop "$ROOT#clan-cli" -c bash -c "TMPDIR=/tmp python -m pytest -n $jobs -m impure ./clan_cli $@"
# Clean up temporary git config
rm -f "$GIT_CONFIG_GLOBAL"
nix develop "$ROOT#clan-cli" -c bash -c "TMPDIR=/tmp python -m pytest -s -m impure ./tests $@"
'';
};
}

View File

@@ -1,345 +1,114 @@
{ self, lib, ... }:
{
self,
lib,
clan.machines.test_install_machine = {
clan.networking.targetHost = "test_install_machine";
fileSystems."/".device = lib.mkDefault "/dev/null";
boot.loader.grub.device = lib.mkDefault "/dev/null";
...
}:
{
# The purpose of this test is to ensure `clan machines install` works
# for machines that don't have a hardware config yet.
# If this test starts failing it could be due to the `facter.json` being out of date
# you can get a new one by adding
# client.fail("cat test-flake/machines/test-install-machine/facter.json >&2")
# to the installation test.
clan.machines.test-install-machine-without-system = {
fileSystems."/".device = lib.mkDefault "/dev/vda";
boot.loader.grub.device = lib.mkDefault "/dev/vda";
imports = [ self.nixosModules.test-install-machine-without-system ];
imports = [ self.nixosModules.test_install_machine ];
};
clan.machines.test-install-machine-with-system =
{ pkgs, ... }:
{
# https://git.clan.lol/clan/test-fixtures
facter.reportPath = builtins.fetchurl {
url = "https://git.clan.lol/clan/test-fixtures/raw/commit/4a2bc56d886578124b05060d3fb7eddc38c019f8/nixos-vm-facter-json/${pkgs.hostPlatform.system}.json";
sha256 =
{
aarch64-linux = "sha256:1rlfymk03rmfkm2qgrc8l5kj5i20srx79n1y1h4nzlpwaz0j7hh2";
x86_64-linux = "sha256:16myh0ll2gdwsiwkjw5ba4dl23ppwbsanxx214863j7nvzx42pws";
}
.${pkgs.hostPlatform.system};
};
fileSystems."/".device = lib.mkDefault "/dev/vda";
boot.loader.grub.device = lib.mkDefault "/dev/vda";
imports = [ self.nixosModules.test-install-machine-without-system ];
};
flake.nixosModules = {
test-install-machine-without-system =
test_install_machine =
{ lib, modulesPath, ... }:
{
imports = [
self.clanModules.disk-layouts
(modulesPath + "/testing/test-instrumentation.nix") # we need these 2 modules always to be able to run the tests
(modulesPath + "/profiles/qemu-guest.nix")
self.clanLib.test.minifyModule
];
networking.hostName = "test-install-machine";
clan.disk-layouts.singleDiskExt4.device = "/dev/vdb";
environment.etc."install-successful".text = "ok";
# Enable SSH and add authorized key for testing
services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false;
users.users.nonrootuser = {
isNormalUser = true;
openssh.authorizedKeys.keys = [ (builtins.readFile ../assets/ssh/pubkey) ];
extraGroups = [ "wheel" ];
home = "/home/nonrootuser";
createHome = true;
};
users.users.root.openssh.authorizedKeys.keys = [ (builtins.readFile ../assets/ssh/pubkey) ];
# Allow users to manage their own SSH keys
services.openssh.authorizedKeysFiles = [
"/root/.ssh/authorized_keys"
"/home/%u/.ssh/authorized_keys"
"/etc/ssh/authorized_keys.d/%u"
];
security.sudo.wheelNeedsPassword = false;
boot.consoleLogLevel = lib.mkForce 100;
boot.kernelParams = [ "boot.shell_on_fail" ];
# disko config
boot.loader.grub.efiSupport = lib.mkDefault true;
boot.loader.grub.efiInstallAsRemovable = lib.mkDefault true;
clan.core.vars.settings.secretStore = "vm";
clan.core.vars.generators.test = {
files.test.neededFor = "partitioning";
script = ''
echo "notok" > "$out"/test
'';
};
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/vda";
preCreateHook = ''
test -e /run/partitioning-secrets/test/test
'';
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
};
};
perSystem =
{
nodes,
pkgs,
lib,
...
}:
let
dependencies = [
self
self.nixosConfigurations.test_install_machine.config.system.build.toplevel
self.nixosConfigurations.test_install_machine.config.system.build.diskoScript
self.nixosConfigurations.test_install_machine.config.system.clan.deployment.file
pkgs.stdenv.drvPath
pkgs.nixos-anywhere
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
in
{
# On aarch64-linux, hangs on reboot with after installation:
# vm-test-run-test-installation-> installer # [ 288.002871] reboot: Restarting system
# vm-test-run-test-installation-> server # [test-install-machine] ### Done! ###
# vm-test-run-test-installation-> server # [test-install-machine] + step 'Done!'
# vm-test-run-test-installation-> server # [test-install-machine] + echo '### Done! ###'
# vm-test-run-test-installation-> server # [test-install-machine] + rm -rf /tmp/tmp.qb16EAq7hJ
# vm-test-run-test-installation-> (finished: must succeed: clan machines install --debug --flake test-flake --yes test-install-machine --target-host root@installer --update-hardware-config nixos-facter >&2, in 154.62 seconds)
# vm-test-run-test-installation-> target: starting vm
# vm-test-run-test-installation-> target: QEMU running (pid 144)
# vm-test-run-test-installation-> target: waiting for unit multi-user.target
# vm-test-run-test-installation-> target: waiting for the VM to finish booting
# vm-test-run-test-installation-> target: Guest root shell did not produce any data yet...
# vm-test-run-test-installation-> target: To debug, enter the VM and run 'systemctl status backdoor.service'.
checks =
let
# Custom Python package for port management utilities
closureInfo = pkgs.closureInfo {
rootPaths = [
self.checks.x86_64-linux.clan-core-for-checks
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.toplevel
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.initialRamdisk
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.diskoScript
pkgs.stdenv.drvPath
pkgs.bash.drvPath
pkgs.buildPackages.xorg.lndir
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux) {
test-installation = (import ../lib/test-base.nix) {
name = "test-installation";
nodes.target = {
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keyFiles = [ ../lib/ssh/pubkey ];
system.nixos.variant_id = "installer";
virtualisation.emptyDiskImages = [ 4096 ];
nix.settings = {
substituters = lib.mkForce [ ];
hashed-mirrors = null;
connect-timeout = lib.mkForce 3;
flake-registry = pkgs.writeText "flake-registry" ''{"flakes":[],"version":2}'';
experimental-features = [
"nix-command"
"flakes"
];
};
};
nodes.client = {
environment.systemPackages = [
self.packages.${pkgs.system}.clan-cli
] ++ self.packages.${pkgs.system}.clan-cli.runtimeDependencies;
environment.etc."install-closure".source = "${closureInfo}/store-paths";
virtualisation.memorySize = 2048;
nix.settings = {
substituters = lib.mkForce [ ];
hashed-mirrors = null;
connect-timeout = lib.mkForce 3;
flake-registry = pkgs.writeText "flake-registry" ''{"flakes":[],"version":2}'';
experimental-features = [
"nix-command"
"flakes"
];
};
system.extraDependencies = dependencies;
};
in
pkgs.lib.mkIf (pkgs.stdenv.isLinux && !pkgs.stdenv.isAarch64) {
nixos-test-installation = self.clanLib.test.baseTest {
name = "installation";
nodes.target = (import ./test-helpers.nix { inherit lib pkgs self; }).target;
extraPythonPackages = _p: [
self.legacyPackages.${pkgs.system}.nixosTestLib
];
testScript = ''
import tempfile
import os
import subprocess
from nixos_test_lib.ssh import setup_ssh_connection # type: ignore[import-untyped]
from nixos_test_lib.nix_setup import prepare_test_flake # type: ignore[import-untyped]
testScript = ''
def create_test_machine(oldmachine=None, args={}): # taken from <nixpkgs/nixos/tests/installer.nix>
startCommand = "${pkgs.qemu_test}/bin/qemu-kvm"
startCommand += " -cpu max -m 1024 -virtfs local,path=/nix/store,security_model=none,mount_tag=nix-store"
startCommand += f' -drive file={oldmachine.state_dir}/empty0.qcow2,id=drive1,if=none,index=1,werror=report'
startCommand += ' -device virtio-blk-pci,drive=drive1'
machine = create_machine({
"startCommand": startCommand,
} | args)
driver.machines.append(machine)
return machine
def create_test_machine(oldmachine, qemu_test_bin: str, **kwargs):
"""Create a new test machine from an installed disk image"""
start_command = [
f"{qemu_test_bin}/bin/qemu-kvm",
"-cpu",
"max",
"-m",
"3048",
"-virtfs",
"local,path=/nix/store,security_model=none,mount_tag=nix-store",
"-drive",
f"file={oldmachine.state_dir}/target.qcow2,id=drive1,if=none,index=1,werror=report",
"-device",
"virtio-blk-pci,drive=drive1",
"-netdev",
"user,id=net0",
"-device",
"virtio-net-pci,netdev=net0",
]
machine = create_machine(start_command=" ".join(start_command), **kwargs)
driver.machines.append(machine)
return machine
start_all()
target.start()
client.succeed("${pkgs.coreutils}/bin/install -Dm 600 ${../lib/ssh/privkey} /root/.ssh/id_ed25519")
client.wait_until_succeeds("ssh -o StrictHostKeyChecking=accept-new -v root@target hostname")
# Set up test environment
with tempfile.TemporaryDirectory() as temp_dir:
# Prepare test flake and Nix store
flake_dir = prepare_test_flake(
temp_dir,
"${self.checks.x86_64-linux.clan-core-for-checks}",
"${closureInfo}"
)
client.succeed("clan --debug --flake ${../..} machines install --yes test_install_machine root@target >&2")
try:
target.shutdown()
except BrokenPipeError:
# qemu has already exited
pass
# Set up SSH connection
ssh_conn = setup_ssh_connection(
target,
temp_dir,
"${../assets/ssh/privkey}"
)
# Run clan install from host using port forwarding
clan_cmd = [
"${self.packages.${pkgs.system}.clan-cli-full}/bin/clan",
"machines",
"install",
"--phases", "disko,install",
"--debug",
"--flake", flake_dir,
"--yes", "test-install-machine-without-system",
"--target-host", f"nonrootuser@localhost:{ssh_conn.host_port}",
"-i", ssh_conn.ssh_key,
"--option", "store", os.environ['CLAN_TEST_STORE'],
"--update-hardware-config", "nixos-facter",
]
subprocess.run(clan_cmd, check=True)
# Shutdown the installer machine gracefully
try:
target.shutdown()
except BrokenPipeError:
# qemu has already exited
pass
# Create a new machine instance that boots from the installed system
installed_machine = create_test_machine(target, "${pkgs.qemu_test}", name="after_install")
installed_machine.start()
installed_machine.wait_for_unit("multi-user.target")
installed_machine.succeed("test -f /etc/install-successful")
'';
} { inherit pkgs self; };
nixos-test-update-hardware-configuration = self.clanLib.test.baseTest {
name = "update-hardware-configuration";
nodes.target = (import ./test-helpers.nix { inherit lib pkgs self; }).target;
extraPythonPackages = _p: [
self.legacyPackages.${pkgs.system}.nixosTestLib
];
testScript = ''
import tempfile
import os
import subprocess
from nixos_test_lib.ssh import setup_ssh_connection # type: ignore[import-untyped]
from nixos_test_lib.nix_setup import prepare_test_flake # type: ignore[import-untyped]
target.start()
# Set up test environment
with tempfile.TemporaryDirectory() as temp_dir:
# Prepare test flake and Nix store
flake_dir = prepare_test_flake(
temp_dir,
"${self.checks.x86_64-linux.clan-core-for-checks}",
"${closureInfo}"
)
# Set up SSH connection
ssh_conn = setup_ssh_connection(
target,
temp_dir,
"${../assets/ssh/privkey}"
)
# Verify files don't exist initially
hw_config_file = os.path.join(flake_dir, "machines/test-install-machine/hardware-configuration.nix")
facter_file = os.path.join(flake_dir, "machines/test-install-machine/facter.json")
assert not os.path.exists(hw_config_file), "hardware-configuration.nix should not exist initially"
assert not os.path.exists(facter_file), "facter.json should not exist initially"
# Set CLAN_FLAKE for the commands
os.environ["CLAN_FLAKE"] = flake_dir
# Test facter backend
clan_cmd = [
"${self.packages.${pkgs.system}.clan-cli-full}/bin/clan",
"machines",
"update-hardware-config",
"--debug",
"--flake", ".",
"--host-key-check", "none",
"test-install-machine-without-system",
"-i", ssh_conn.ssh_key,
"--option", "store", os.environ['CLAN_TEST_STORE'],
f"nonrootuser@localhost:{ssh_conn.host_port}"
]
result = subprocess.run(clan_cmd, capture_output=True, cwd=flake_dir)
if result.returncode != 0:
print(f"Clan update-hardware-config failed: {result.stderr.decode()}")
raise Exception(f"Clan update-hardware-config failed with return code {result.returncode}")
facter_without_system_file = os.path.join(flake_dir, "machines/test-install-machine-without-system/facter.json")
assert os.path.exists(facter_without_system_file), "facter.json should exist after update"
os.remove(facter_without_system_file)
# Test nixos-generate-config backend
clan_cmd = [
"${self.packages.${pkgs.system}.clan-cli-full}/bin/clan",
"machines",
"update-hardware-config",
"--debug",
"--backend", "nixos-generate-config",
"--host-key-check", "none",
"--flake", ".",
"test-install-machine-without-system",
"-i", ssh_conn.ssh_key,
"--option", "store", os.environ['CLAN_TEST_STORE'],
f"nonrootuser@localhost:{ssh_conn.host_port}"
]
result = subprocess.run(clan_cmd, capture_output=True, cwd=flake_dir)
if result.returncode != 0:
print(f"Clan update-hardware-config (nixos-generate-config) failed: {result.stderr.decode()}")
raise Exception(f"Clan update-hardware-config failed with return code {result.returncode}")
hw_config_without_system_file = os.path.join(flake_dir, "machines/test-install-machine-without-system/hardware-configuration.nix")
assert os.path.exists(hw_config_without_system_file), "hardware-configuration.nix should exist after update"
'';
} { inherit pkgs self; };
};
new_machine = create_test_machine(oldmachine=target, args={ "name": "new_machine" })
assert(new_machine.succeed("cat /etc/install-successful").strip() == "ok")
'';
} { inherit pkgs self; };
};
};
}

View File

@@ -1,44 +0,0 @@
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "nixos-test-lib"
version = "1.0.0"
description = "NixOS test utilities for clan VM testing"
authors = [
{name = "Clan Core Team"}
]
dependencies = []
[project.optional-dependencies]
dev = [
"mypy",
"ruff"
]
[tool.setuptools.packages.find]
where = ["."]
include = ["nixos_test_lib*"]
[tool.setuptools.package-data]
"nixos_test_lib" = ["py.typed"]
[tool.mypy]
python_version = "3.12"
strict = true
warn_return_any = true
warn_unused_configs = true
[tool.ruff]
target-version = "py312"
line-length = 88
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"D", # docstrings
"ANN", # type annotations
"COM812", # trailing comma
"ISC001", # string concatenation
]

View File

@@ -1,173 +0,0 @@
{
lib,
pkgs,
self,
...
}:
let
# Common target VM configuration used by both installation and update tests
target =
{ modulesPath, pkgs, ... }:
{
imports = [
(modulesPath + "/../tests/common/auto-format-root-device.nix")
];
networking.useNetworkd = true;
services.openssh.enable = true;
services.openssh.settings.UseDns = false;
services.openssh.settings.PasswordAuthentication = false;
system.nixos.variant_id = "installer";
environment.systemPackages = [
pkgs.nixos-facter
];
# Disable cache.nixos.org to speed up tests
nix.settings.substituters = [ ];
nix.settings.trusted-public-keys = [ ];
virtualisation.emptyDiskImages = [ 512 ];
virtualisation.diskSize = 8 * 1024;
virtualisation.rootDevice = "/dev/vdb";
# both installer and target need to use the same diskImage
virtualisation.diskImage = "./target.qcow2";
virtualisation.memorySize = 3048;
users.users.nonrootuser = {
isNormalUser = true;
openssh.authorizedKeys.keys = [ (builtins.readFile ../assets/ssh/pubkey) ];
extraGroups = [ "wheel" ];
};
users.users.root.openssh.authorizedKeys.keys = [ (builtins.readFile ../assets/ssh/pubkey) ];
# Allow users to manage their own SSH keys
services.openssh.authorizedKeysFiles = [
"/root/.ssh/authorized_keys"
"/home/%u/.ssh/authorized_keys"
"/etc/ssh/authorized_keys.d/%u"
];
security.sudo.wheelNeedsPassword = false;
};
# Common base test machine configuration
baseTestMachine =
{ lib, modulesPath, ... }:
{
imports = [
(modulesPath + "/testing/test-instrumentation.nix")
(modulesPath + "/profiles/qemu-guest.nix")
self.clanLib.test.minifyModule
];
# Enable SSH and add authorized key for testing
services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false;
users.users.nonrootuser = {
isNormalUser = true;
openssh.authorizedKeys.keys = [ (builtins.readFile ../assets/ssh/pubkey) ];
extraGroups = [ "wheel" ];
home = "/home/nonrootuser";
createHome = true;
};
users.users.root.openssh.authorizedKeys.keys = [ (builtins.readFile ../assets/ssh/pubkey) ];
# Allow users to manage their own SSH keys
services.openssh.authorizedKeysFiles = [
"/root/.ssh/authorized_keys"
"/home/%u/.ssh/authorized_keys"
"/etc/ssh/authorized_keys.d/%u"
];
security.sudo.wheelNeedsPassword = false;
boot.consoleLogLevel = lib.mkForce 100;
boot.kernelParams = [ "boot.shell_on_fail" ];
# disko config
boot.loader.grub.efiSupport = lib.mkDefault true;
boot.loader.grub.efiInstallAsRemovable = lib.mkDefault true;
clan.core.vars.settings.secretStore = "vm";
clan.core.vars.generators.test = {
files.test.neededFor = "partitioning";
script = ''
echo "notok" > "$out"/test
'';
};
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/vda";
preCreateHook = ''
test -e /run/partitioning-secrets/test/test
'';
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
};
# NixOS test library combining port utils and clan VM test utilities
nixosTestLib = pkgs.python3Packages.buildPythonPackage {
pname = "nixos-test-lib";
version = "1.0.0";
format = "pyproject";
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./pyproject.toml
./nixos_test_lib
];
};
nativeBuildInputs = with pkgs.python3Packages; [
setuptools
wheel
];
doCheck = false;
};
# Common closure info
closureInfo = pkgs.closureInfo {
rootPaths = [
self.checks.x86_64-linux.clan-core-for-checks
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.toplevel
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.initialRamdisk
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.diskoScript
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.clan.deployment.file
pkgs.stdenv.drvPath
pkgs.bash.drvPath
pkgs.buildPackages.xorg.lndir
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
};
in
{
inherit
target
baseTestMachine
nixosTestLib
closureInfo
;
}

View File

@@ -7,19 +7,9 @@
let
testDriver = hostPkgs.python3.pkgs.callPackage ./package.nix {
inherit (config) extraPythonPackages;
inherit (hostPkgs.pkgs) util-linux systemd nix;
inherit (hostPkgs.pkgs) util-linux systemd;
};
containers =
testScript:
map (m: [
m.system.build.toplevel
(hostPkgs.closureInfo {
rootPaths = [
m.system.build.toplevel
(hostPkgs.writeText "testScript" testScript)
];
})
]) (lib.attrValues config.nodes);
containers = map (m: m.system.build.toplevel) (lib.attrValues config.nodes);
pythonizeName =
name:
let
@@ -36,10 +26,7 @@ let
machineNames = map (name: "${name}: Machine;") pythonizedNames;
pythonizedNames = map pythonizeName nodeHostNames;
in
lib.mkIf (config.clan.test.useContainers or true) {
defaults.imports = [
./nixos-module.nix
];
{
driver = lib.mkForce (
hostPkgs.runCommand "nixos-test-driver-${config.name}"
{
@@ -57,6 +44,8 @@ lib.mkIf (config.clan.test.useContainers or true) {
''
mkdir -p $out/bin
containers=(${toString containers})
${lib.optionalString (!config.skipTypeCheck) ''
# prepend type hints so the test script can be type checked with mypy
cat "${./test-script-prepend.py}" >> testScriptWithTypes
@@ -77,13 +66,7 @@ lib.mkIf (config.clan.test.useContainers or true) {
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-test-driver
wrapProgram $out/bin/nixos-test-driver \
${
lib.concatStringsSep " " (
map (container: "--add-flags '--container ${builtins.toString container}'") (
containers config.testScriptString
)
)
} \
${lib.concatStringsSep " " (map (name: "--add-flags '--container ${name}'") containers)} \
--add-flags "--test-script '$out/test-script'"
''
);
@@ -92,7 +75,7 @@ lib.mkIf (config.clan.test.useContainers or true) {
lib.lazyDerivation {
# lazyDerivation improves performance when only passthru items and/or meta are used.
derivation = hostPkgs.stdenv.mkDerivation {
name = "container-test-run-${config.name}";
name = "vm-test-run-${config.name}";
requiredSystemFeatures = [ "uid-range" ];
@@ -105,12 +88,6 @@ lib.mkIf (config.clan.test.useContainers or true) {
${config.driver}/bin/nixos-test-driver -o $out
'';
nativeBuildInputs = [
hostPkgs.util-linux
hostPkgs.coreutils
hostPkgs.iproute2
];
passthru = config.passthru;
meta = config.meta;

View File

@@ -0,0 +1,19 @@
{
extraPythonPackages,
python3Packages,
buildPythonApplication,
setuptools,
util-linux,
systemd,
}:
buildPythonApplication {
pname = "test-driver";
version = "0.0.1";
propagatedBuildInputs = [
util-linux
systemd
] ++ extraPythonPackages python3Packages;
nativeBuildInputs = [ setuptools ];
format = "pyproject";
src = ./.;
}

View File

@@ -14,8 +14,16 @@ find = {}
[tool.setuptools.package-data]
test_driver = ["py.typed"]
[tool.ruff]
target-version = "py311"
line-length = 88
lint.select = [ "E", "F", "I", "U", "N", "RUF", "ANN", "A" ]
lint.ignore = ["E501", "ANN101", "ANN401", "A003"]
[tool.mypy]
python_version = "3.13"
python_version = "3.11"
warn_redundant_casts = true
disallow_untyped_calls = true
disallow_untyped_defs = true

View File

@@ -0,0 +1,354 @@
import argparse
import os
import re
import subprocess
import time
from collections.abc import Callable
from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Any
def prepare_machine_root(machinename: str, root: Path) -> None:
root.mkdir(parents=True, exist_ok=True)
root.joinpath("etc").mkdir(parents=True, exist_ok=True)
root.joinpath(".env").write_text(
"\n".join(f"{k}={v}" for k, v in os.environ.items())
)
def pythonize_name(name: str) -> str:
return re.sub(r"^[^A-z_]|[^A-z0-9_]", "_", name)
def retry(fn: Callable, timeout: int = 900) -> None:
"""Call the given function repeatedly, with 1 second intervals,
until it returns True or a timeout is reached.
"""
for _ in range(timeout):
if fn(False):
return
time.sleep(1)
if not fn(True):
raise Exception(f"action timed out after {timeout} seconds")
class Machine:
def __init__(self, name: str, toplevel: Path, rootdir: Path, out_dir: str) -> None:
self.name = name
self.toplevel = toplevel
self.out_dir = out_dir
self.process: subprocess.Popen | None = None
self.rootdir: Path = rootdir
def start(self) -> None:
prepare_machine_root(self.name, self.rootdir)
cmd = [
"systemd-nspawn",
"--keep-unit",
"-M",
self.name,
"-D",
self.rootdir,
"--register=no",
"--resolv-conf=off",
"--bind-ro=/nix/store",
"--bind",
self.out_dir,
"--bind=/proc:/run/host/proc",
"--bind=/sys:/run/host/sys",
"--private-network",
self.toplevel.joinpath("init"),
]
env = os.environ.copy()
env["SYSTEMD_NSPAWN_UNIFIED_HIERARCHY"] = "1"
self.process = subprocess.Popen(cmd, stdout=subprocess.PIPE, text=True, env=env)
self.container_pid = self.get_systemd_process()
def get_systemd_process(self) -> int:
assert self.process is not None, "Machine not started"
assert self.process.stdout is not None, "Machine has no stdout"
for line in self.process.stdout:
print(line, end="")
if line.startswith("systemd[1]: Startup finished in"):
break
else:
raise RuntimeError(f"Failed to start container {self.name}")
childs = (
Path(f"/proc/{self.process.pid}/task/{self.process.pid}/children")
.read_text()
.split()
)
assert (
len(childs) == 1
), f"Expected exactly one child process for systemd-nspawn, got {childs}"
try:
return int(childs[0])
except ValueError:
raise RuntimeError(f"Failed to parse child process id {childs[0]}")
def get_unit_info(self, unit: str) -> dict[str, str]:
proc = self.systemctl(f'--no-pager show "{unit}"')
if proc.returncode != 0:
raise Exception(
f'retrieving systemctl info for unit "{unit}"'
+ f" failed with exit code {proc.returncode}"
)
line_pattern = re.compile(r"^([^=]+)=(.*)$")
def tuple_from_line(line: str) -> tuple[str, str]:
match = line_pattern.match(line)
assert match is not None
return match[1], match[2]
return dict(
tuple_from_line(line)
for line in proc.stdout.split("\n")
if line_pattern.match(line)
)
def execute(
self,
command: str,
check_return: bool = True,
check_output: bool = True,
timeout: int | None = 900,
) -> subprocess.CompletedProcess:
"""
Execute a shell command, returning a list `(status, stdout)`.
Commands are run with `set -euo pipefail` set:
- If several commands are separated by `;` and one fails, the
command as a whole will fail.
- For pipelines, the last non-zero exit status will be returned
(if there is one; otherwise zero will be returned).
- Dereferencing unset variables fails the command.
- It will wait for stdout to be closed.
If the command detaches, it must close stdout, as `execute` will wait
for this to consume all output reliably. This can be achieved by
redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
a file. Examples of detaching commands are `sleep 365d &`, where the
shell forks a new process that can write to stdout and `xclip -i`, where
the `xclip` command itself forks without closing stdout.
Takes an optional parameter `check_return` that defaults to `True`.
Setting this parameter to `False` will not check for the return code
and return -1 instead. This can be used for commands that shut down
the VM and would therefore break the pipe that would be used for
retrieving the return code.
A timeout for the command can be specified (in seconds) using the optional
`timeout` parameter, e.g., `execute(cmd, timeout=10)` or
`execute(cmd, timeout=None)`. The default is 900 seconds.
"""
# Always run command with shell opts
command = f"set -euo pipefail; {command}"
proc = subprocess.run(
[
"nsenter",
"--target",
str(self.container_pid),
"--mount",
"--uts",
"--ipc",
"--net",
"--pid",
"--cgroup",
"/bin/sh",
"-c",
command,
],
timeout=timeout,
check=False,
stdout=subprocess.PIPE,
text=True,
)
return proc
def systemctl(self, q: str) -> subprocess.CompletedProcess:
"""
Runs `systemctl` commands with optional support for
`systemctl --user`
```py
# run `systemctl list-jobs --no-pager`
machine.systemctl("list-jobs --no-pager")
# spawn a shell for `any-user` and run
# `systemctl --user list-jobs --no-pager`
machine.systemctl("list-jobs --no-pager", "any-user")
```
"""
return self.execute(f"systemctl {q}")
def wait_for_unit(self, unit: str, timeout: int = 900) -> None:
"""
Wait for a systemd unit to get into "active" state.
Throws exceptions on "failed" and "inactive" states as well as after
timing out.
"""
def check_active(_: bool) -> bool:
info = self.get_unit_info(unit)
state = info["ActiveState"]
if state == "failed":
raise Exception(f'unit "{unit}" reached state "{state}"')
if state == "inactive":
proc = self.systemctl("list-jobs --full 2>&1")
if "No jobs" in proc.stdout:
info = self.get_unit_info(unit)
if info["ActiveState"] == state:
raise Exception(
f'unit "{unit}" is inactive and there are no pending jobs'
)
return state == "active"
retry(check_active, timeout)
def succeed(self, command: str, timeout: int | None = None) -> str:
res = self.execute(command, timeout=timeout)
if res.returncode != 0:
raise RuntimeError(f"Failed to run command {command}")
return res.stdout
def shutdown(self) -> None:
"""
Shut down the machine, waiting for the VM to exit.
"""
if self.process:
self.process.terminate()
self.process.wait()
self.process = None
def release(self) -> None:
self.shutdown()
def setup_filesystems() -> None:
# We don't care about cleaning up the mount points, since we're running in a nix sandbox.
Path("/run").mkdir(parents=True, exist_ok=True)
subprocess.run(["mount", "-t", "tmpfs", "none", "/run"], check=True)
subprocess.run(["mount", "-t", "cgroup2", "none", "/sys/fs/cgroup"], check=True)
Path("/etc").chmod(0o755)
Path("/etc/os-release").touch()
Path("/etc/machine-id").write_text("a5ea3f98dedc0278b6f3cc8c37eeaeac")
class Driver:
def __init__(self, containers: list[Path], testscript: str, out_dir: str) -> None:
self.containers = containers
self.testscript = testscript
self.out_dir = out_dir
setup_filesystems()
self.tempdir = TemporaryDirectory()
tempdir_path = Path(self.tempdir.name)
self.machines = []
for container in containers:
name_match = re.match(r".*-nixos-system-(.+)-(.+)", container.name)
if not name_match:
raise ValueError(f"Unable to extract hostname from {container.name}")
name = name_match.group(1)
self.machines.append(
Machine(
name=name,
toplevel=container,
rootdir=tempdir_path / name,
out_dir=self.out_dir,
)
)
def start_all(self) -> None:
for machine in self.machines:
machine.start()
def test_symbols(self) -> dict[str, Any]:
general_symbols = dict(
start_all=self.start_all,
machines=self.machines,
driver=self,
Machine=Machine, # for typing
)
machine_symbols = {pythonize_name(m.name): m for m in self.machines}
# If there's exactly one machine, make it available under the name
# "machine", even if it's not called that.
if len(self.machines) == 1:
(machine_symbols["machine"],) = self.machines
print(
"additionally exposed symbols:\n "
+ ", ".join(map(lambda m: m.name, self.machines))
+ ",\n "
+ ", ".join(list(general_symbols.keys()))
)
return {**general_symbols, **machine_symbols}
def test_script(self) -> None:
"""Run the test script"""
exec(self.testscript, self.test_symbols(), None)
def run_tests(self) -> None:
"""Run the test script (for non-interactive test runs)"""
self.test_script()
def __enter__(self) -> "Driver":
return self
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:
for machine in self.machines:
machine.release()
def writeable_dir(arg: str) -> Path:
"""Raises an ArgumentTypeError if the given argument isn't a writeable directory
Note: We want to fail as early as possible if a directory isn't writeable,
since an executed nixos-test could fail (very late) because of the test-driver
writing in a directory without proper permissions.
"""
path = Path(arg)
if not path.is_dir():
raise argparse.ArgumentTypeError(f"{path} is not a directory")
if not os.access(path, os.W_OK):
raise argparse.ArgumentTypeError(f"{path} is not a writeable directory")
return path
def main() -> None:
arg_parser = argparse.ArgumentParser(prog="nixos-test-driver")
arg_parser.add_argument(
"--containers",
nargs="+",
type=Path,
help="container system toplevel paths",
)
arg_parser.add_argument(
"--test-script",
help="the test script to run",
type=Path,
)
arg_parser.add_argument(
"-o",
"--output-directory",
default=Path.cwd(),
help="the directory to bind to /run/test-results",
type=writeable_dir,
)
args = arg_parser.parse_args()
with Driver(
args.containers,
args.test_script.read_text(),
args.output_directory.resolve(),
) as driver:
driver.run_tests()

View File

@@ -0,0 +1,33 @@
test:
{ pkgs, self, ... }:
let
inherit (pkgs) lib;
nixos-lib = import (pkgs.path + "/nixos/lib") { };
in
(nixos-lib.runTest (
{ hostPkgs, ... }:
{
hostPkgs = pkgs;
# speed-up evaluation
defaults = {
documentation.enable = lib.mkDefault false;
boot.isContainer = true;
# undo qemu stuff
system.build.initialRamdisk = "";
virtualisation.sharedDirectories = lib.mkForce { };
networking.useDHCP = false;
# we have not private networking so far
networking.interfaces = lib.mkForce { };
#networking.primaryIPAddress = lib.mkForce null;
systemd.services.backdoor.enable = false;
};
# to accept external dependencies such as disko
node.specialArgs.self = self;
imports = [
test
./container-driver/module.nix
];
}
)).config.result

18
checks/lib/test-base.nix Normal file
View File

@@ -0,0 +1,18 @@
test:
{ pkgs, self, ... }:
let
inherit (pkgs) lib;
nixos-lib = import (pkgs.path + "/nixos/lib") { };
in
(nixos-lib.runTest {
hostPkgs = pkgs;
# speed-up evaluation
defaults = {
documentation.enable = lib.mkDefault false;
nix.settings.min-free = 0;
};
# to accept external dependencies such as disko
node.specialArgs.self = self;
imports = [ test ];
}).config.result

View File

@@ -1,69 +1,29 @@
(
(import ../lib/container-test.nix) (
{ pkgs, ... }:
{
name = "matrix-synapse";
nodes.machine =
{
config,
self,
lib,
...
}:
{ self, lib, ... }:
{
imports = [
self.clanModules.matrix-synapse
self.nixosModules.clanCore
{
clan.core.settings.directory = ./.;
clanCore.machineName = "machine";
clanCore.clanDir = ./.;
clan.matrix-synapse = {
enable = true;
domain = "clan.test";
};
}
{
# secret override
clanCore.facts.services.matrix-synapse.secret.synapse-registration_shared_secret.path = "${./synapse-registration_shared_secret}";
services.nginx.virtualHosts."matrix.clan.test" = {
enableACME = lib.mkForce false;
forceSSL = lib.mkForce false;
};
clan.nginx.acme.email = "admins@clan.lol";
clan.matrix-synapse = {
server_tld = "clan.test";
app_domain = "matrix.clan.test";
};
clan.matrix-synapse.users.admin.admin = true;
clan.matrix-synapse.users.someuser = { };
clan.core.facts.secretStore = "vm";
clan.core.vars.settings.secretStore = "vm";
clan.core.vars.settings.publicStore = "in_repo";
# because we use systemd-tmpfiles to copy the secrets, we need to a separate systemd-tmpfiles call to provision them.
boot.postBootCommands = "${config.systemd.package}/bin/systemd-tmpfiles --create /etc/tmpfiles.d/00-vmsecrets.conf";
systemd.tmpfiles.settings."00-vmsecrets" = {
# run before 00-nixos.conf
"/etc/secrets" = {
d.mode = "0700";
z.mode = "0700";
};
"/etc/secrets/matrix-synapse/synapse-registration_shared_secret" = {
f.argument = "supersecret";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/matrix-password-admin/matrix-password-admin" = {
f.argument = "matrix-password1";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/matrix-password-someuser/matrix-password-someuser" = {
f.argument = "matrix-password2";
z = {
mode = "0400";
user = "root";
};
};
};
}
];
};
@@ -71,12 +31,6 @@
start_all()
machine.wait_for_unit("matrix-synapse")
machine.succeed("${pkgs.netcat}/bin/nc -z -v ::1 8008")
machine.wait_until_succeeds("${pkgs.curl}/bin/curl -Ssf -L http://localhost/_matrix/static/ -H 'Host: matrix.clan.test'")
machine.systemctl("restart matrix-synapse >&2") # check if user creation is idempotent
machine.execute("journalctl -u matrix-synapse --no-pager >&2")
machine.wait_for_unit("matrix-synapse")
machine.succeed("${pkgs.netcat}/bin/nc -z -v ::1 8008")
machine.succeed("${pkgs.curl}/bin/curl -Ssf -L http://localhost/_matrix/static/ -H 'Host: matrix.clan.test'")
'';
}

View File

@@ -1,63 +0,0 @@
{
self,
...
}:
{
clan.machines.test-morph-machine = {
imports = [
./template/configuration.nix
self.nixosModules.clanCore
];
nixpkgs.hostPlatform = "x86_64-linux";
environment.etc."testfile".text = "morphed";
};
clan.templates.machine.test-morph-template = {
description = "Morph a machine";
path = ./template;
};
perSystem =
{
pkgs,
...
}:
{
checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux && !pkgs.stdenv.isAarch64) {
nixos-test-morph = self.clanLib.test.baseTest {
name = "morph";
nodes = {
actual =
{ pkgs, ... }:
let
dependencies = [
pkgs.stdenv.drvPath
pkgs.stdenvNoCC
self.nixosConfigurations.test-morph-machine.config.system.build.toplevel
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
in
{
environment.etc."install-closure".source = "${closureInfo}/store-paths";
system.extraDependencies = dependencies;
virtualisation.memorySize = 2048;
virtualisation.useNixStoreImage = true;
virtualisation.writableStore = true;
environment.systemPackages = [ self.packages.${pkgs.system}.clan-cli-full ];
};
};
testScript = ''
start_all()
actual.fail("cat /etc/testfile")
actual.succeed("env CLAN_DIR=${self.checks.x86_64-linux.clan-core-for-checks} clan machines morph test-morph-template --i-will-be-fired-for-using-this --debug --name test-morph-machine")
assert actual.succeed("cat /etc/testfile") == "morphed"
'';
} { inherit pkgs self; };
};
};
}

View File

@@ -1,15 +0,0 @@
{ modulesPath, ... }:
{
imports = [
# we need these 2 modules always to be able to run the tests
(modulesPath + "/testing/test-instrumentation.nix")
(modulesPath + "/virtualisation/qemu-vm.nix")
(modulesPath + "/profiles/minimal.nix")
];
virtualisation.useNixStoreImage = true;
virtualisation.writableStore = true;
clan.core.enableRecommendedDefaults = false;
}

View File

@@ -1,53 +0,0 @@
{
pkgs,
nixosLib,
clan-core,
...
}:
nixosLib.runTest (
{ ... }:
{
imports = [
clan-core.modules.nixosTest.clanTest
];
hostPkgs = pkgs;
name = "service-mycelium";
clan = {
test.useContainers = false;
directory = ./.;
modules."@clan/mycelium" = ../../clanServices/mycelium/default.nix;
inventory = {
machines.server = { };
instances = {
mycelium-test = {
module.name = "@clan/mycelium";
module.input = "self";
roles.peer.machines."server".settings = {
openFirewall = true;
addHostedPublicNodes = true;
};
};
};
};
};
nodes = {
server = { };
};
testScript = ''
start_all()
# Check that mycelium service is running
server.wait_for_unit("mycelium")
server.succeed("systemctl status mycelium")
# Check that mycelium is listening on its default port
server.wait_until_succeeds("${pkgs.iproute2}/bin/ss -tulpn | grep -q 'mycelium'", 10)
'';
}
)

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age122lc4fvw2p22gcvwqeme5k49qxtjanqkl2xvr6qvf3r0zyh7scuqz28cam",
"type": "age"
}
]

View File

@@ -1,15 +0,0 @@
{
"data": "ENC[AES256_GCM,data:hLJS+CJllYM50KxKuiYamxBLGd9lwoeIFapP9mZAlVGH5DSenylcKUfsphxafASoB516qns2DznBoS9mWqg9uTsRZjk4WlR3x6A=,iv:uRiIpUKIiV3riNcBAWUqhZbE+Vb7lLMfU0C/TClVZ6M=,tag:4+nsMssiSyq9Iv7sDuWmoQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPUWFOMzluRmdOQXBmRjRN\ncXNSUlB5Z0t6dWYxNVkvMmhrN1FDdmxHcTNJCkhPL3BYMFFXMmU5ZGRqOC9KWEgv\nSHB5OUJqTk5Dd0tDTks1R1ZhYktrLzgKLS0tIHJIMlFRVWphZXlISmR3VUJKUjNk\ndWF4eCt6UHBrSndBay95RVJ3dldiaFkKCgYqrt0aCGRTaHycBoeqv/zeByu2ZZ3Z\nVfgxnD9liIQkS2wERbpk0/Yq9wkKgVxj+DZoWwHYhP0eKCw2UOorCA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-06-04T11:54:59Z",
"mac": "ENC[AES256_GCM,data:xoeOz7FRCPJ18UTsfbY1x/N65pxbTsehT9Kv3MgEd6NQJn6FTvquaj3HEZ0KvIzStBz1FNOhSql9CZUFc4StYps05EbX61MMMnz6Nlj3xcTwuVQFabGoinxcXbCDSA+tAW7VqzVxumj6FMDg+r77gdcIApZjGJg4Z9ws2RZd3u4=,iv:U8IUDwmfg8Umob9mtKgGaKoIY4SKNL895BABJxzx5n8=,tag:tnMCx6D/17ZYgI6SgNS29A==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../users/admin

View File

@@ -1,4 +0,0 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -1 +0,0 @@
52d:87c1:4222:b550:ee01:a7ae:254:5a66

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,19 +0,0 @@
{
"data": "ENC[AES256_GCM,data:DGzl2G4H+NkwXq0fCUQS0+8FG1x9xoIsYvAgUxP4Qp8=,iv:CXOJVgYNthVOZ4vbdI3n4KLXSFVemzaoEnRGMC+m0i8=,tag:/u+pV3xWpUq0ZtAm6LKuGQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age122lc4fvw2p22gcvwqeme5k49qxtjanqkl2xvr6qvf3r0zyh7scuqz28cam",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZZHZjdXMwclBTeGthcGpM\nV1ArVy83akNHNEpXVFhoR1FWNlJUeHNKTW00CjJFTFZneFNrL0hDMXJpaTQ2M1ln\nTmdPMGhzeUp0NU55QnhCZEU2QVk1OG8KLS0tIDFhQmJhOHJsTjhYNEhITEw0WFgy\nWC9pTi9od0wyMWtZRVZJYWo0Nmo5SHMKDohnAAfrnGOiw55huMme2EEWE53N/feS\nutvbiTZh1ECHCi/uoK757fjnJ/WrQMSxUpctT9I8bpJRtbTqkx3XRw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZeTZENGFpWndDbmdsWDRw\nMTBCVXg5Zkg2a2s5Yk1HSERIVlVQRXdUSUNnCnREbno0dEN0ZEgvOFNMRG1ReGx4\na0h1YUFuMkxBZXJUTE9xOUVUMitEalkKLS0tIFZMZ21qclRqUFR0dlAyMFkzdUNX\nNjRLTWVRVWtHSDlDakEzMmpRVWkyc0EKabm8mTKJVxQNTaIgU+8rb/xk9Dpg+Zjz\nb+wgD0+TlARlenMtIub8Y6N06ENOc20oovylfu+g7xV+EkvRPCd6tA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-06-04T11:55:02Z",
"mac": "ENC[AES256_GCM,data:UIBaD/3mACgFzkajkFXz3oKai8IxpYQriR2t0mc5fL92P5ECloxCobY386TDZYOEVrDJ45Bw+IzqZbsCx/G9f1xCCTR2JvqygxYIsK3TpQPsboJzb9Cz3dBNBCXGboVykcg/NobEMaJBw1xtdAQBhuo8S7ymIuOPtGz0vPFJkf8=,iv:g0YAOBsRpgAOikKDMJDyOtcVx+0QwetfA8R6wQFH7lY=,tag:sfdFLjtiqFHdP/Qe1suBBQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
2125c6b039374467eaa3eaf552bd3e97f434d16006433cfbba3e6823c958b728

View File

@@ -1,27 +0,0 @@
{ self, ... }:
let
documentationModule = {
# This is how some downstream users currently generate documentation
# If this breaks notify them via matrix since we spent ~5 hrs for bughunting last time.
documentation.nixos.enable = true;
documentation.nixos.extraModules = [
self.nixosModules.clanCore
# This is the only option that is not part of the
# module because it is usually set by flake-parts
{ clan.core.settings.directory = ./.; }
];
};
in
{
clan = {
machines.test-documentation = {
# Dummy file system
fileSystems."/".device = "/dev/null";
boot.loader.grub.device = "/dev/null";
nixpkgs.hostPlatform = "x86_64-linux";
imports = [
documentationModule
];
};
};
}

View File

@@ -1,73 +0,0 @@
({
name = "postgresql";
nodes.machine =
{ self, config, ... }:
{
imports = [
self.nixosModules.clanCore
self.clanModules.postgresql
self.clanModules.localbackup
];
clan.postgresql.users.test = { };
clan.postgresql.databases.test.create.options.OWNER = "test";
clan.postgresql.databases.test.restore.stopOnRestore = [ "sample-service" ];
clan.localbackup.targets.hdd.directory = "/mnt/external-disk";
clan.core.settings.directory = ./.;
systemd.services.sample-service = {
wantedBy = [ "multi-user.target" ];
script = ''
while true; do
echo "Hello, world!"
sleep 5
done
'';
};
environment.systemPackages = [ config.services.postgresql.package ];
};
testScript =
{ nodes, ... }:
''
start_all()
machine.wait_for_unit("postgresql")
machine.wait_for_unit("sample-service")
# Create a test table
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -c 'CREATE TABLE test (id serial PRIMARY KEY);' test")
machine.succeed("/run/current-system/sw/bin/localbackup-create >&2")
timestamp_before = int(machine.succeed("systemctl show --property=ExecMainStartTimestampMonotonic sample-service | cut -d= -f2").strip())
machine.succeed("test -e /mnt/external-disk/snapshot.0/machine/var/backup/postgres/test/pg-dump || { echo 'pg-dump not found'; exit 1; }")
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -d test -c 'INSERT INTO test DEFAULT VALUES;'")
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -d test -c 'DROP TABLE test;'")
machine.succeed("test -e /var/backup/postgres/test/pg-dump || { echo 'pg-dump not found'; exit 1; }")
machine.succeed("rm -rf /var/backup/postgres")
machine.succeed("NAME=/mnt/external-disk/snapshot.0 FOLDERS=/var/backup/postgres/test /run/current-system/sw/bin/localbackup-restore >&2")
machine.succeed("test -e /var/backup/postgres/test/pg-dump || { echo 'pg-dump not found'; exit 1; }")
machine.succeed("""
set -x
${nodes.machine.clan.core.state.test.postRestoreCommand}
""")
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -l >&2")
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -d test -c '\dt' >&2")
timestamp_after = int(machine.succeed("systemctl show --property=ExecMainStartTimestampMonotonic sample-service | cut -d= -f2").strip())
assert timestamp_before < timestamp_after, f"{timestamp_before} >= {timestamp_after}: expected sample-service to be restarted after restore"
# Check that the table is still there
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -d test -c 'SELECT * FROM test;'")
output = machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql --csv -c \"SELECT datdba::regrole FROM pg_database WHERE datname = 'test'\"")
owner = output.split("\n")[1]
assert owner == "test", f"Expected database owner to be 'test', got '{owner}'"
# check if restore works if the database does not exist
machine.succeed("runuser -u postgres -- dropdb test")
machine.succeed("${nodes.machine.clan.core.state.test.postRestoreCommand}")
machine.succeed("runuser -u postgres -- /run/current-system/sw/bin/psql -d test -c '\dt' >&2")
'';
})

View File

@@ -1,4 +1,4 @@
{
(import ../lib/test-base.nix) {
name = "secrets";
nodes.machine =
@@ -10,7 +10,8 @@
environment.etc."group-secret".source = config.sops.secrets.group-secret.path;
sops.age.keyFile = "/etc/privkey.age";
clan.core.settings.directory = "${./.}";
clanCore.clanDir = "${./.}";
clanCore.machineName = "machine";
networking.hostName = "machine";
};

View File

@@ -1,4 +1,4 @@
{
"publickey": "age15x8u838dwqflr3t6csf4tlghxm4tx77y379ncqxav7y2n8qp7yzqgrwt00",
"type": "age"
}
}

View File

@@ -1,4 +1,4 @@
{
"publickey": "age15x8u838dwqflr3t6csf4tlghxm4tx77y379ncqxav7y2n8qp7yzqgrwt00",
"type": "age"
}
}

View File

@@ -1,66 +0,0 @@
{
pkgs,
nixosLib,
clan-core,
...
}:
nixosLib.runTest (
{ hostPkgs, config, ... }:
{
imports = [
clan-core.modules.nixosTest.clanTest
];
hostPkgs = pkgs;
# This tests the compatibility of the inventory
# With the test framework
# - legacy-modules
# - clan.service modules
name = "service-dummy-test-from-flake";
clan.test.fromFlake = ./.;
extraPythonPackages = _p: [
clan-core.legacyPackages.${hostPkgs.system}.nixosTestLib
];
testScript =
{ nodes, ... }:
''
from nixos_test_lib.nix_setup import setup_nix_in_nix # type: ignore[import-untyped]
setup_nix_in_nix(None) # No closure info for this test
def run_clan(cmd: list[str], **kwargs) -> str:
import subprocess
clan = "${clan-core.packages.${hostPkgs.system}.clan-cli}/bin/clan"
clan_args = ["--flake", "${config.clan.test.flakeForSandbox}"]
return subprocess.run(
["${hostPkgs.util-linux}/bin/unshare", "--user", "--map-user", "1000", "--map-group", "1000", clan, *cmd, *clan_args],
**kwargs,
check=True,
).stdout
start_all()
admin1.wait_for_unit("multi-user.target")
peer1.wait_for_unit("multi-user.target")
# Provided by the legacy module
print(admin1.succeed("systemctl status dummy-service"))
print(peer1.succeed("systemctl status dummy-service"))
# peer1 should have the 'hello' file
peer1.succeed("cat ${nodes.peer1.clan.core.vars.generators.new-service.files.not-a-secret.path}")
ls_out = peer1.succeed("ls -la ${nodes.peer1.clan.core.vars.generators.new-service.files.a-secret.path}")
# Check that the file is owned by 'nobody'
assert "nobody" in ls_out, f"File is not owned by 'nobody': {ls_out}"
# Check that the file is in the 'users' group
assert "users" in ls_out, f"File is not in the 'users' group: {ls_out}"
# Check that the file is in the '0644' mode
assert "-rw-r--r--" in ls_out, f"File is not in the '0644' mode: {ls_out}"
run_clan(["machines", "list"])
'';
}
)

View File

@@ -1,71 +0,0 @@
{
inputs.clan-core.url = "https://git.clan.lol/clan/clan-core/archive/main.tar.gz";
inputs.nixpkgs.follows = "clan-core/nixpkgs";
outputs =
{ self, clan-core, ... }:
let
# Usage see: https://docs.clan.lol
clan = clan-core.lib.clan {
inherit self;
inventory =
{ ... }:
{
meta.name = "foo";
machines.peer1 = { };
machines.admin1 = { };
services = {
legacy-module.default = {
roles.peer.machines = [ "peer1" ];
roles.admin.machines = [ "admin1" ];
};
};
instances."test" = {
module.name = "new-service";
module.input = "self";
roles.peer.machines.peer1 = { };
};
modules = {
legacy-module = ./legacy-module;
};
};
modules.new-service = {
_class = "clan.service";
manifest.name = "new-service";
roles.peer = { };
perMachine = {
nixosModule = {
# This should be generated by:
# nix run .#generate-test-vars -- checks/service-dummy-test service-dummy-test
clan.core.vars.generators.new-service = {
files.not-a-secret = {
secret = false;
deploy = true;
};
files.a-secret = {
secret = true;
deploy = true;
owner = "nobody";
group = "users";
mode = "0644";
};
script = ''
# This is a dummy script that does nothing
echo -n "not-a-secret" > $out/not-a-secret
echo -n "a-secret" > $out/a-secret
'';
};
};
};
};
};
in
{
# all machines managed by Clan
inherit (clan.config) nixosConfigurations nixosModules clanInternals;
};
}

View File

@@ -1,10 +0,0 @@
---
description = "Set up dummy-module"
categories = ["System"]
features = [ "inventory" ]
[constraints]
roles.admin.min = 1
roles.admin.max = 1
---

View File

@@ -1,5 +0,0 @@
{
imports = [
../shared.nix
];
}

View File

@@ -1,5 +0,0 @@
{
imports = [
../shared.nix
];
}

View File

@@ -1,34 +0,0 @@
{ config, ... }:
{
systemd.services.dummy-service = {
enable = true;
description = "Dummy service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
generated_password_path="${config.clan.core.vars.generators.dummy-generator.files.generated-password.path}"
if [ ! -f "$generated_password_path" ]; then
echo "Generated password file not found: $generated_password_path"
exit 1
fi
host_id_path="${config.clan.core.vars.generators.dummy-generator.files.host-id.path}"
if [ ! -e "$host_id_path" ]; then
echo "Host ID file not found: $host_id_path"
exit 1
fi
'';
};
# TODO: add and prompt and make it work in the test framework
clan.core.vars.generators.dummy-generator = {
files.host-id.secret = false;
files.generated-password.secret = true;
script = ''
echo $RANDOM > "$out"/host-id
echo $RANDOM > "$out"/generated-password
'';
};
}

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age12yt078p9ewxy2sh0a36nxdpgglv8wqqftmj4dkj9rgy5fuyn4p0q5nje9m",
"type": "age"
}
]

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age12w2ld4vxfyf3hdq2d8la4cu0tye4pq97egvv3me4wary7xkdnq2snh0zx2",
"type": "age"
}
]

View File

@@ -1,15 +0,0 @@
{
"data": "ENC[AES256_GCM,data:GPpsUhSzWPtTP8EUNKsobFXjYqDldhkkIH6hBk11RsDLAGWdhVrwcISGbhsWpYhvAdPKA84DB6Zqyh9lL2bLM9//ybC1kzY20BQ=,iv:NrxMLdedT2FCkUAD00SwsAHchIsxWvqe7BQekWuJcxw=,tag:pMDXcMyHnLF2t3Qhb1KolA==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzb2tWb1ExKzdmUTRzaGVj\nK3cyYTBHZTJwVjM1SzUvbHFiMnVhY05iKzFZCnJTSE1VSVdpcUFLSEJuaE1CZzJD\nWjZxYzN2cUltdThNMVRKU3FIb20vUXMKLS0tIFlHQXRIdnMybDZFUVEzWlQrc1dw\nbUxhZURXblhHd0pka0JIK1FTZEVqdUEKI/rfxQRBc+xGRelhswkJQ9GcZs6lzfgy\nuCxS5JI9npdPLQ/131F3b21+sP5YWqks41uZG+vslM1zQ+BlENNhDw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-04T12:44:13Z",
"mac": "ENC[AES256_GCM,data:fWxLHXBWolHVxv6Q7utcy6OVLV13ziswrIYyNKiwy1vsU8i7xvvuGO1HlnE+q43D2WuHR53liKq1UHuf1JMrWzTwZ0PYe+CVugtoEtbR2qu3rK/jAkOyMyhmmHzmf6Rp4ZMCzKgZeC/X2bDKY/z0firHAvjWydEyogutHpvtznM=,iv:OQI3FfkLneqbdztAXVQB3UkHwDPK+0hWu5hZ9m8Oczg=,tag:em6GfS2QHsXs391QKPxfmA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1,15 +0,0 @@
{
"data": "ENC[AES256_GCM,data:W3cOkUYL5/YulW2pEISyTlMaA/t7/WBE7BoCdFlqrqgaCL7tG4IV2HgjiPWzIVMs0zvDSaghdEvAIoB4wOf470d1nSWs0/E8SDk=,iv:wXXaZIw3sPY8L/wxsu7+C5v+d3RQRuwxZRP4YLkS8K4=,tag:HeK4okj7O7XDA9JDz2KULw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxRC83b3dtSVpXcGovNnVs\nTzFka2J2MEFhYkF1ajVrdjMrNUtPWGRObjM4Cm5zSUR5OGw0T0FaL3BaWmR6L29W\nU2syMFIyMUhFRUZpWFpCT28vWko2ZU0KLS0tIFpHK3BjU1V1L0FrMGtwTGFuU3Mz\nRkV5VjI2Vndod202bUR3RWQwNXpmVzQKNk8/y7M62wTIIKqY4r3ZRk5aUCRUfine\n1LUSHMKa2bRe+hR7nS7AF4BGXp03h2UPY0FP5+U5q8XuIj1jfMX8kg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-04T12:44:16Z",
"mac": "ENC[AES256_GCM,data:yTkQeFvKrN1+5FP+yInsaRWSAG+ZGG0uWF3+gVRvzJTFxab8kT2XkAMc+4D7SKgcjsmwBBb77GNoAKaKByhZ92UaCfZ2X66i7ZmYUwLM1NVVmm+xiwwjsh7PJXlZO/70anTzd1evtlZse0jEmRnV5Y0F0M6YqXmuwU+qGUJU2F8=,iv:sy6ozhXonWVruaQfa7pdEoV5GkNZR/UbbINKAPbgWeg=,tag:VMruQ1KExmlMR7TsGNgMlg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../users/admin

View File

@@ -1,4 +0,0 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -1,19 +0,0 @@
{
"data": "ENC[AES256_GCM,data:T8edCvw=,iv:7/G5xt5fv38I9uFzk7WMIr9xQdz/6lFxqOC+18HBg8Q=,tag:F39Cxbgmzml+lZLsZ59Kmg==,type:str]",
"sops": {
"age": [
{
"recipient": "age12yt078p9ewxy2sh0a36nxdpgglv8wqqftmj4dkj9rgy5fuyn4p0q5nje9m",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPNUhiYkZWK3dPMHNiRTVM\nRHNvaHFsOFp1c0UxQitwVG0zY01MNDZRV1E4CjEybENoTVIzN29vQ3FtUTRSYmFU\nNXIzQllVSllXRGN2M1B6WXJLdHZSajgKLS0tIDllZ0ZmZUcxMHhDQUpUOEdWbmkv\neUQweHArYTdFSmNteVpuQ3BKdnh0Y0UKs8Hm3D+rXRRfpUVSZM3zYjs6b9z8g10D\nGTkvreUMim4CS22pjdQ3eNA9TGeDXfWXE7XzwXLCb+wVcf7KwbDmvg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKSDhpT3cvck9PenZYVEZH\ndFQreVRBdG93L1dBUGlvYjFWcDlHWUJsZUVBCm9DMTJ4UytiYzlEVHNWdUcwS1ds\nT0dhbzAzNDdmbDBCU0dvL2xNeHpXcGsKLS0tIFArbmpsbzU3WnpJdUt1MGN0L1d0\nV1JkTDJYWUxsbmhTQVNOeVRaSUhTODQKk9Vph2eldS5nwuvVX0SCsxEm4B+sO76Z\ndIjJ3OQxzoZmXMaOOuKHC5U0Y75Qn7eXC43w5KHsl2CMIUYsBGJOZw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-04T12:44:14Z",
"mac": "ENC[AES256_GCM,data:6fKrS1eLLUWlHkQpxLFXBRk6f2wa5ADLMViVvYXXGU24ayl9UuNSKrCRHp9cbzhqhti3HdwyNt6TM+2X6qhiiAQanKEB2PF7JRYX74NfNKil9BEDjt5AqqtpSgVv5l7Ku/uSHaPkd2sDmzHsy5Q4bSGxJQokStk1kidrwle+mbc=,iv:I/Aad82L/TCxStM8d8IZICUrwdjRbGx2fuGWqexr21o=,tag:BfgRbGUxhPZzK2fLik1kxA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1,19 +0,0 @@
{
"data": "ENC[AES256_GCM,data:vp0yW0Gt,iv:FO2cy+UpEl5aRay/LUGu//c82QiVxuKuGSaVh0rGJvc=,tag:vf2RAOPpcRW0HwxHoGy17A==,type:str]",
"sops": {
"age": [
{
"recipient": "age12w2ld4vxfyf3hdq2d8la4cu0tye4pq97egvv3me4wary7xkdnq2snh0zx2",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjaFVNMEd2YUxpSm5XVVRi\nY2ZUc3NTOStJUFNMWWVPQTgxZ2tCK1QrMW1ZCjYwMlA4dkIzSlc0TGtvZjcyK3Bi\nM3pob2JOOFUyeVJ6M2JpaTRCZlc1R0kKLS0tIDJMb1dFcVRWckhwYWNCQng0RlFO\nTkw3OGt4dkFIZVY5aVEzZE5mMzJSM0EKUv8bUqg48L2FfYVUVlpXvyZvPye699of\nG6PcjLh1ZMbNCfnsCzr+P8Vdk/F4J/ifxL66lRGfu2xOLxwciwQ+5Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnZ2dDbVhoQngxM3lTSmZF\nUTAwS1lCTGhEMU1GVXpFUzlIUFdqZy9LajF3Ck9mdVpBRjlyVUNhZXZIUFZjUzF1\nNlhFN28vNmwzcUVkNmlzUnpkWjJuZE0KLS0tIHpXVHVlNk9vU1ZPTGRrYStWbmRO\nbDM4U2o1SlEwYWtqOXBqd3BFUTAvMHcKkI8UVd0v+x+ELZ5CoGq9DzlA6DnVNU2r\nrV9wLfbFd7RHxS0/TYZh5tmU42nO3iMYA9FqERQXCtZgXS9KvfqHwQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-04T12:44:18Z",
"mac": "ENC[AES256_GCM,data:1ZZ+ZI1JsHmxTov1bRijfol3kTkyheg2o3ivLsMHRhCmScsUry97hQJchF78+y2Izt7avaQEHYn6pVbYt/0rLrSYD7Ru7ITVxXoYHOiN5Qb98masUzpibZjrdyg5nO+LW5/Hmmwsc3yn/+o3IH1AUYpsxlJRdnHHCmoSOFaiFFM=,iv:OQlgmpOTw4ljujNzqwQ5/0Mz8pQpCSUtqRvj3FJAxDs=,tag:foZvdeW7gK9ZVKkWqnlxGA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/peer1

View File

@@ -1,19 +0,0 @@
{
"data": "ENC[AES256_GCM,data:prFl0EJy8bM=,iv:zITWxf+6Ebk0iB5vhhd7SBQa1HFrIJXm8xpSM+D9I0M=,tag:NZCRMCs1SzNKLBu/KUDKMQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age12w2ld4vxfyf3hdq2d8la4cu0tye4pq97egvv3me4wary7xkdnq2snh0zx2",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0S0RZRWxaZVZvTUhjdWVL\naU9WZmtEcm1qa2JsRmdvdmZmNENMaWFEVUFRCmdoVnRXSGlpRlFjNmVVbDJ5VnFT\nMnVJUlVnM3lxNmZCRTdoRVJ4NW1oYWcKLS0tIFFNbXBFUk1RWnlUTW1SeG1vYzlM\nVVpEclFVOE9PWWQxVkZ0eEgwWndoRWcKDAOHe+FIxqGsc6LhxMy164qjwG6t2Ei2\nP0FSs+bcKMDpudxeuxCjnDm/VoLxOWeuqkB+9K2vSm2W/c/fHTSbrA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2VU5jOEpwYUtDVEVFcVpU\nQkExTVZ3ejZHcGo5TG8zdUQwNktoV09WdUZvCmQ0dE1TOWRFbTlxdVd4WWRxd3VF\nQUNTTkNNT3NKYjQ5dEJDY0xVZ3pZVUUKLS0tIDFjajRZNFJZUTdNeS8yN05FMFZU\ncEtjRjhRbGE0MnRLdk10NkFLMkxqencKGzJ66dHluIghH04RV/FccfEQP07yqnfb\n25Hi0XIVJfXBwje4UEyszrWTxPPwVXdQDQmoNKf76Qy2jYqJ56uksw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-04T12:44:20Z",
"mac": "ENC[AES256_GCM,data:FIkilsni5kOdNlVwDuLsQ/zExypHRWdqIBQDNWMLTwe8OrsNPkX+KYutUvt9GaSoGv4iDULaMRoizO/OZUNfc2d8XYSdj0cxOG1Joov4GPUcC/UGyNuQneAejZBKolvlnidKZArofnuK9g+lOTANEUtEXUTnx8L+VahqPZayQas=,iv:NAo6sT3L8OOB3wv1pjr3RY2FwXgVmZ4N0F4BEX4YPUY=,tag:zHwmXygyvkdpASZCodQT9Q==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1,97 +0,0 @@
{
pkgs,
nixosLib,
clan-core,
...
}:
nixosLib.runTest (
{ ... }:
{
imports = [
clan-core.modules.nixosTest.clanTest
];
hostPkgs = pkgs;
# This tests the compatibility of the inventory
# With the test framework
# - legacy-modules
# - clan.service modules
name = "service-dummy-test";
clan = {
directory = ./.;
inventory = {
machines.peer1 = { };
machines.admin1 = { };
services = {
legacy-module.default = {
roles.peer.machines = [ "peer1" ];
roles.admin.machines = [ "admin1" ];
};
};
instances."test" = {
module.name = "new-service";
module.input = "self";
roles.peer.machines.peer1 = { };
};
modules = {
legacy-module = ./legacy-module;
};
};
modules.new-service = {
_class = "clan.service";
manifest.name = "new-service";
roles.peer = { };
perMachine = {
nixosModule = {
# This should be generated by:
# nix run .#generate-test-vars -- checks/service-dummy-test service-dummy-test
clan.core.vars.generators.new-service = {
files.not-a-secret = {
secret = false;
deploy = true;
};
files.a-secret = {
secret = true;
deploy = true;
owner = "nobody";
group = "users";
mode = "0644";
};
script = ''
# This is a dummy script that does nothing
echo -n "not-a-secret" > $out/not-a-secret
echo -n "a-secret" > $out/a-secret
'';
};
};
};
};
};
testScript =
{ nodes, ... }:
''
start_all()
admin1.wait_for_unit("multi-user.target")
peer1.wait_for_unit("multi-user.target")
# Provided by the legacy module
print(admin1.succeed("systemctl status dummy-service"))
print(peer1.succeed("systemctl status dummy-service"))
# peer1 should have the 'hello' file
peer1.succeed("cat ${nodes.peer1.clan.core.vars.generators.new-service.files.not-a-secret.path}")
ls_out = peer1.succeed("ls -la ${nodes.peer1.clan.core.vars.generators.new-service.files.a-secret.path}")
# Check that the file is owned by 'nobody'
assert "nobody" in ls_out, f"File is not owned by 'nobody': {ls_out}"
# Check that the file is in the 'users' group
assert "users" in ls_out, f"File is not in the 'users' group: {ls_out}"
# Check that the file is in the '0644' mode
assert "-rw-r--r--" in ls_out, f"File is not in the '0644' mode: {ls_out}"
'';
}
)

View File

@@ -1,10 +0,0 @@
---
description = "Set up dummy-module"
categories = ["System"]
features = [ "inventory" ]
[constraints]
roles.admin.min = 1
roles.admin.max = 1
---

View File

@@ -1,5 +0,0 @@
{
imports = [
../shared.nix
];
}

View File

@@ -1,5 +0,0 @@
{
imports = [
../shared.nix
];
}

View File

@@ -1,34 +0,0 @@
{ config, ... }:
{
systemd.services.dummy-service = {
enable = true;
description = "Dummy service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
generated_password_path="${config.clan.core.vars.generators.dummy-generator.files.generated-password.path}"
if [ ! -f "$generated_password_path" ]; then
echo "Generated password file not found: $generated_password_path"
exit 1
fi
host_id_path="${config.clan.core.vars.generators.dummy-generator.files.host-id.path}"
if [ ! -e "$host_id_path" ]; then
echo "Host ID file not found: $host_id_path"
exit 1
fi
'';
};
# TODO: add and prompt and make it work in the test framework
clan.core.vars.generators.dummy-generator = {
files.host-id.secret = false;
files.generated-password.secret = true;
script = ''
echo $RANDOM > "$out"/host-id
echo $RANDOM > "$out"/generated-password
'';
};
}

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age12yt078p9ewxy2sh0a36nxdpgglv8wqqftmj4dkj9rgy5fuyn4p0q5nje9m",
"type": "age"
}
]

Some files were not shown because too many files have changed in this diff Show More