Commit Graph

220 Commits

Author SHA1 Message Date
b1bb887dbf zerotier: add support for moons
All checks were successful
checks-impure / test (pull_request) Successful in 1m20s
checks / test (pull_request) Successful in 2m15s
2024-01-12 18:26:00 +01:00
e941334ecf zerotier: configure alternative tcp fallback relay
All checks were successful
checks / test (pull_request) Successful in 40s
checks-impure / test (pull_request) Successful in 1m25s
2024-01-12 15:13:20 +01:00
cedd1d7492 zerotier: set interface altname
Some checks failed
checks-impure / test (pull_request) Successful in 1m17s
checks / test (pull_request) Failing after 2m29s
2024-01-11 15:51:34 +01:00
7bf76eea06 zerotier: use configuration file instead to set the network name 2024-01-11 14:57:00 +01:00
0e62348d72 make zerotier name configureable 2024-01-11 14:57:00 +01:00
3563b6eaa4 zerotier: delete old networks
All checks were successful
checks-impure / test (pull_request) Successful in 1m30s
checks / test (pull_request) Successful in 2m9s
2024-01-11 13:24:00 +01:00
a5132a4f81 meshnamed: mark networkmanager interfaces as unmanaged
All checks were successful
checks-impure / test (pull_request) Successful in 1m18s
checks / test (pull_request) Successful in 2m24s
2024-01-11 12:17:44 +01:00
7a4b176248 open up zerotier ports 2024-01-10 17:24:41 +00:00
414f475802 state: declare /home as state by default
All checks were successful
checks-impure / test (pull_request) Successful in 1m17s
checks / test (pull_request) Successful in 2m22s
2024-01-10 17:37:40 +07:00
9f8e719b48 state: move options clanCore.state to a separate file
All checks were successful
checks-impure / test (pull_request) Successful in 1m18s
checks / test (pull_request) Successful in 2m12s
2024-01-10 17:10:10 +07:00
c29e0086a4 VMs: persist state folders on host
All checks were successful
checks-impure / test (pull_request) Successful in 1m24s
checks / test (pull_request) Successful in 2m40s
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
0922856fa5 switch to xwayland display :1
no conflict with Xorg
2024-01-04 16:18:27 +01:00
9dfc3f9613 add wayland-proxy-virtwl module
All checks were successful
checks / test (pull_request) Successful in 58s
checks-impure / test (pull_request) Successful in 1m13s
2023-12-15 14:14:20 +01:00
8ee72ba5fa clanCore: refactor flake-module.nix into smaller files 2023-12-15 14:14:20 +01:00
9f4ab67fc2 Merge pull request 'clanCore: Fixed missing type null for clanIcon' (#634) from Qubasa-main into main
All checks were successful
assets1 / test (push) Successful in 22s
checks-impure / test (push) Successful in 1m8s
checks / test (push) Successful in 2m0s
2023-12-08 18:33:58 +00:00
4a5e5feb73 clanCore: Fixed missing type null for clanIcon
All checks were successful
checks-impure / test (pull_request) Successful in 1m9s
checks / test (pull_request) Successful in 1m56s
2023-12-08 19:30:04 +01:00
d6052c3497 clanCore: Fixed missing type null for clanIcon 2023-12-08 19:27:58 +01:00
28a6613bde Merge pull request 'backups: support services for restore' (#631) from lassulus-HEAD into main
All checks were successful
assets1 / test (push) Successful in 18s
checks-impure / test (push) Successful in 1m11s
checks / test (push) Successful in 1m37s
2023-12-08 18:16:08 +00:00
dec431e69f backups: support services for restore 2023-12-08 19:09:29 +01:00
eba34bf2f7 Changed clanIcon to be included into clanCore
All checks were successful
checks-impure / test (pull_request) Successful in 1m35s
checks / test (pull_request) Successful in 2m18s
2023-12-08 19:08:57 +01:00
57bded996b Merge pull request 'move clanName into nixos machine configuration' (#630) from Mic92-main into main
All checks were successful
assets1 / test (push) Successful in 18s
checks-impure / test (push) Successful in 1m11s
checks / test (push) Successful in 2m0s
2023-12-08 15:21:59 +00:00
2a0a50fb5e switch to initrd.systemd by default 2023-12-08 16:17:58 +01:00
4aa60317fa move clanName into nixos machine configuration 2023-12-08 15:05:56 +00:00
4b9635c706 move clanName into nixos machine configuration
All checks were successful
checks-impure / test (pull_request) Successful in 1m33s
checks / test (pull_request) Successful in 2m11s
2023-12-08 16:03:29 +01:00
76c3c77886 Merge pull request 'add serial module to vms' (#621) from Mic92-main into main
All checks were successful
assets1 / test (push) Successful in 18s
checks-impure / test (push) Successful in 1m6s
checks / test (push) Successful in 1m36s
2023-12-08 11:37:50 +00:00
64944f896a add serial module to vms
All checks were successful
checks-impure / test (pull_request) Successful in 1m23s
checks / test (pull_request) Successful in 1m56s
This is useful for debugging in the cli.
2023-12-08 12:35:33 +01:00
cf68bd41d6 backups: implement list/create and dry-run restore
All checks were successful
checks-impure / test (pull_request) Successful in 1m7s
checks / test (pull_request) Successful in 2m0s
2023-12-07 18:23:22 +01:00
45e9ab45f7 backups: implement list the easy way
All checks were successful
checks-impure / test (pull_request) Successful in 1m6s
checks / test (pull_request) Successful in 1m57s
2023-12-07 13:22:41 +01:00
0b772668a8 Merge pull request 'backups: add clanCore backup & clan borgbackup module' (#605) from lassulus-backups into main
All checks were successful
assets1 / test (push) Successful in 21s
checks-impure / test (push) Successful in 1m8s
checks / test (push) Successful in 2m0s
2023-12-04 16:51:33 +00:00
e772d29f44 implement backup cli for borgbackup
All checks were successful
checks-impure / test (pull_request) Successful in 1m4s
checks / test (pull_request) Successful in 2m33s
2023-12-04 17:47:23 +01:00
4fd84d1c48 disallow variable shadowing 2023-11-30 14:31:37 +01:00
780ffb9c8f make type checking more strict 2023-11-30 14:31:37 +01:00
373fc83160 add option to extend path for generator
All checks were successful
checks-impure / test (pull_request) Successful in 1m9s
checks / test (pull_request) Successful in 2m6s
2023-11-30 14:15:40 +01:00
41afc65f34 clan-core/secrets: escape facts trailing newline
All checks were successful
checks-impure / test (pull_request) Successful in 1m21s
checks / test (pull_request) Successful in 1m35s
2023-11-29 13:29:20 +01:00
640430075a backups: add clanCore backup & clan borgbackup module
All checks were successful
checks-impure / test (pull_request) Successful in 1m10s
checks / test (pull_request) Successful in 1m49s
2023-11-23 18:12:49 +01:00
1f03a9b7ec Fix typo
All checks were successful
checks-impure / test (pull_request) Successful in 1m28s
checks / test (pull_request) Successful in 1m40s
2023-11-16 14:39:15 +01:00
0604d5a83d Configure nix inside the machines
All checks were successful
checks-impure / test (pull_request) Successful in 1m56s
checks / test (pull_request) Successful in 2m16s
Add sane nix defaults for debugging and usability reasons
2023-11-16 14:08:50 +01:00
d2fecd0a94 clanCore: install essential tools for debugging 2023-11-16 13:46:13 +01:00
2bda2293cb
meshnamed: fix container
All checks were successful
checks-impure / test (pull_request) Successful in 1m33s
checks / test (pull_request) Successful in 1m47s
2023-11-15 11:20:56 +01:00
df1e166afb
clanCore/networking: allow ping unconditionally 2023-11-15 11:07:03 +01:00
1e49bf3378
zerotier: also install identity secrets for non-controllers 2023-11-15 11:07:03 +01:00
fcb22f254c
move resolved configuration to a dummy interface 2023-11-15 11:07:03 +01:00
dca61fa5fa
explicitly set networkd as the default 2023-11-15 07:21:26 +01:00
8cda86d34c
integrated meshnamed with systemd-resolved 2023-11-15 07:21:26 +01:00
75f1815f98
move clan-imports into clanCore 2023-11-15 07:21:26 +01:00
2306b2ec50
zerotier: fix eval if meshname is not known yet 2023-11-15 07:21:26 +01:00
fdfe02fb77
zerotier: also enable meshnamed for non-controllers
All checks were successful
checks-impure / test (pull_request) Successful in 1m35s
checks / test (pull_request) Successful in 1m46s
2023-11-14 17:45:30 +01:00
b2422f9c74
zerotier: write hostname to file 2023-11-14 17:45:30 +01:00
d2303df18b
enable meshnamed in zerotier module
All checks were successful
checks-impure / test (pull_request) Successful in 1m54s
checks / test (pull_request) Successful in 2m1s
2023-11-14 14:40:26 +01:00
cf9f24a3b2 zerotier: add leading zeros at subnet
All checks were successful
checks-impure / test (pull_request) Successful in 1m55s
checks / test (pull_request) Successful in 1m59s
2023-11-14 14:25:58 +01:00
99649f77d4 zerotier: compute ipv6 subnets
All checks were successful
checks-impure / test (pull_request) Successful in 1m56s
checks / test (pull_request) Successful in 2m3s
2023-11-14 14:04:05 +01:00
5d41bcee7f drop zerotier-subnet, we can compute this.
All checks were successful
checks-impure / test (pull_request) Successful in 1m58s
checks / test (pull_request) Successful in 1m58s
2023-11-14 13:50:44 +01:00
bdc8ef63ed add module for meshnamed
All checks were successful
checks / test (pull_request) Successful in 47s
checks-impure / test (pull_request) Successful in 1m39s
2023-11-14 12:58:15 +01:00
c28089d4b2 allow to persist zerotier identities/ips/meshnames for non-controller
All checks were successful
checks-impure / test (pull_request) Successful in 1m32s
checks / test (pull_request) Successful in 2m19s
2023-11-10 11:56:54 +01:00
0efbb461e6 drop bloatware module
All checks were successful
checks / test (pull_request) Successful in 1m9s
checks-impure / test (pull_request) Successful in 1m44s
2023-11-08 14:47:31 +01:00
7b3d3e20b4 clan-cli secrets: flake_name -> flake_dir
All checks were successful
checks / test (pull_request) Successful in 46s
checks-impure / test (pull_request) Successful in 1m26s
2023-11-05 16:58:48 +01:00
52a56701ff zerotier: enable networkd
All checks were successful
checks-impure / test (pull_request) Successful in 1m32s
checks / test (pull_request) Successful in 2m21s
2023-10-31 15:35:09 +01:00
3581e0c9a8 Fixing a multitude of tests 2023-10-27 19:21:50 +02:00
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
bf176ad277 api/machines: allow importing extra modules
All checks were successful
checks-impure / test (pull_request) Successful in 36s
checks / test (pull_request) Successful in 2m6s
- 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
c5b2e9b5f3 secrets: fix: don't generate secrets if no secrets are defined
All checks were successful
checks-impure / test (pull_request) Successful in 57s
checks / test (pull_request) Successful in 1m56s
2023-10-06 18:34:49 +02:00
2d2e097f6d secrets.password-store: mkdir correct fact folder
All checks were successful
checks-impure / test (pull_request) Successful in 33s
checks / test (pull_request) Successful in 36s
2023-10-05 20:22:30 +02:00
386da9e6c4 zerotier generate-network: terminate fakeroot for process cleanup 2023-10-05 19:14:10 +02:00
13e8dba417 password-store: generate each secret in tmpdir 2023-10-05 19:14:10 +02:00
9559357c56 clanCore: specify interface for system.clan
All checks were successful
checks-impure / test (pull_request) Successful in 58s
checks / test (pull_request) Successful in 1m3s
2023-10-05 17:08:59 +02:00
dbf80595fd zerotier: fix: find free port without collissions
All checks were successful
checks-impure / test (pull_request) Successful in 55s
checks / test (pull_request) Successful in 2m0s
2023-10-05 17:03:01 +02:00
3fb36b3ac1 secrets upload: skip on exit 23, cleanup
All checks were successful
checks-impure / test (pull_request) Successful in 33s
checks / test (pull_request) Successful in 1m32s
2023-10-04 21:29:19 +02:00
bc36ec4c1a vms: support secrets and fix cross compilation
Some checks failed
checks-impure / test (pull_request) Failing after 13s
checks / test (pull_request) Successful in 1m29s
2023-10-04 18:04:27 +02:00
3c1d7a0553 secrets.password-store: ignore ssh errors 2023-10-04 16:34:37 +02:00
fcd1d18e15 restore possibility to update all machines without having to specify them
All checks were successful
checks-impure / test (pull_request) Successful in 21s
checks / test (pull_request) Successful in 30s
2023-10-04 08:35:59 +02:00
62caf98f15 secrets.password-store: optimize secret existence check
All checks were successful
checks-impure / test (pull_request) Successful in 13s
checks / test (pull_request) Successful in 24s
2023-09-30 09:36:39 +02:00
347d9676c5 secrets.password-store: fix multi-secret check
All checks were successful
checks-impure / test (pull_request) Successful in 13s
checks / test (pull_request) Successful in 24s
2023-09-30 09:27:25 +02:00
d810d2b4e1 secrets: allow empty facts
All checks were successful
checks-impure / test (pull_request) Successful in 13s
checks / test (pull_request) Successful in 24s
2023-09-30 09:18:24 +02:00
6cdf5615fe clanCore.zerotier: create network-id only if fact exists
All checks were successful
checks-impure / test (pull_request) Successful in 13s
checks / test (pull_request) Successful in 1m22s
2023-09-29 20:05:35 +02:00
89b7ffce6c clan-cli secrets upload: secrets are populated into tmpdir 2023-09-29 20:05:35 +02:00
7ca9c49163 restore clanInternals with valid nixos config 2023-09-29 19:39:35 +02:00
a5f181a430 clan-cli: init vm command 2023-09-29 19:18:27 +02:00
89e69e5cb6 add treewide pyproject.toml
All checks were successful
checks / test (pull_request) Successful in 26s
checks-impure / test (pull_request) Successful in 8s
Than we don't need a pyproject.toml per script
2023-09-29 16:41:14 +02:00
9daeaf5c62 zerotier: fix creating controller directory 2023-09-29 16:41:14 +02:00
5f15ec4495 add zerotier-members script 2023-09-29 16:07:22 +02:00
739d3b3578 zerotier: document mdns ports; drop duplicate udp firewall rules
All checks were successful
checks-impure / test (pull_request) Successful in 8s
checks / test (pull_request) Successful in 27s
the nixos module already opens the zerotier port
2023-09-28 17:58:42 +02:00
b587bd1b49 secrets.password-store: readd targetDirectory
All checks were successful
checks-impure / test (pull_request) Successful in 8s
checks / test (pull_request) Successful in 22s
2023-09-27 21:26:58 +02:00
2f73e6b472 drop requirement for importing qemu-vm.nix
All checks were successful
checks-impure / test (pull_request) Successful in 13s
checks / test (pull_request) Successful in 22s
2023-09-27 14:54:01 +02:00
c1a124d0bf clan.networking.zerotier: create init script only if fact exists
All checks were successful
checks-impure / test (pull_request) Successful in 8s
checks / test (pull_request) Successful in 22s
2023-09-27 11:02:54 +02:00
5cf9b4428f clanCore.secrets: facts.value can be null or str
Some checks failed
checks-impure / test (pull_request) Failing after 7s
checks / test (pull_request) Successful in 22s
2023-09-27 10:34:53 +02:00
0d41bec9ef zerotier: fix eval 2023-09-26 16:19:43 +00:00
6e1a5ad81f move zerotier secret generation into nixos module
Some checks failed
checks-impure / test (pull_request) Failing after 8s
checks / test (pull_request) Successful in 20s
2023-09-26 18:14:00 +02:00
74a3c85c29 move zerotier secret generation into nixos module
Some checks failed
checks-impure / test (pull_request) Failing after 7s
checks / test (pull_request) Successful in 23s
2023-09-26 17:57:43 +02:00
5d9ee64ddc make zerotier module a directory 2023-09-26 15:55:41 +02:00
2cdc959a77 clan.networking.zerotier: fix controller mode
All checks were successful
checks-impure / test (pull_request) Successful in 8s
checks / test (pull_request) Successful in 24s
2023-09-25 19:11:16 +02:00
f518088d4c clanCore.clanPkgs: set defaultText make it internal
All checks were successful
checks-impure / test (pull_request) Successful in 8s
checks / test (pull_request) Successful in 20s
2023-09-22 15:03:40 +02:00
51e8da2a74 config: get rid of impure eval
All checks were successful
checks-impure / test (pull_request) Successful in 8s
checks / test (pull_request) Successful in 23s
2023-09-22 14:32:38 +02:00
0540fb7103 document networking.deploymentAddress 2023-09-22 12:09:53 +02:00
aeed648bd0 secrets: use clanInternal for crosscompiling, move sops generators to new file 2023-09-21 17:25:32 +02:00
4096ea3adb don't set age keyfile if don't have a secret for it 2023-09-21 17:22:20 +02:00
0314132a1a rewrite sops backend for secret generation and add tests 2023-09-21 17:22:20 +02:00
521f4ee5bc secrets sops: deploy age key 2023-09-21 17:22:20 +02:00
9b6fafcb2d clan config: re-enable clan config 2023-09-19 15:12:29 +02:00
a29f301f84 add vms 2023-09-15 14:02:40 +00:00
8d29d0e69c clan-cli: get deploymentAddress from clan.networking 2023-09-15 12:17:07 +00:00
0132abc547 secrets: use CLAN_DIR instead of clanCore.clanDir for fact storage 2023-09-15 12:17:07 +00:00
6b7301cefb clanCore secrets: document custom store 2023-09-15 12:17:07 +00:00
c5c2a848c7 secrets pass: append openssh to PATH so we use systems openssh first 2023-09-15 12:17:07 +00:00
c5786614bf clan-cli secrets: deploy -> upload 2023-09-15 12:17:07 +00:00
6153a9ee71 clanCore.secrets: set default and add generate/deploy composite 2023-09-15 12:17:07 +00:00
285041026d clanCore sops: add dummy deployScript 2023-09-15 12:17:07 +00:00
5285423479 secrets: add password-store implementation 2023-09-15 12:17:07 +00:00
3f6fa0eeca clanCore secrets: add secretStore option 2023-09-15 12:17:07 +00:00
4d9a59c792 move facts to machine subdirectory
This makes it easier to delete facts when removing machines
2023-09-06 15:07:49 +00:00
89cdbdd62a also auto-import group secrets
Some checks failed
checks-impure / test (pull_request) Failing after 11s
checks / test (pull_request) Successful in 33s
2023-09-03 14:58:07 +02:00
2a9be18d31 generate-secrets: use - instead of _ as file seperator 2023-09-03 14:17:00 +02:00
cfec69fec4 different fix for missing secrets 2023-09-03 14:07:31 +02:00
0a3982d0ac fix machines folder not beeing present yet
All checks were successful
checks-impure / test (pull_request) Successful in 11s
checks / test (pull_request) Successful in 24s
2023-09-03 13:33:41 +02:00
4e19b7c085 secrets/sops: set dummy default sops file 2023-09-03 07:59:28 +00:00
c9bfd0a5b5 clanCore: add example options
All checks were successful
checks-impure / test (pull_request) Successful in 12s
checks / test (pull_request) Successful in 21s
2023-09-02 19:15:29 +02:00
a0d1b09b1d clanCore module: add clanSchema top level option 2023-09-02 18:28:31 +02:00
ac7e3f6407 sops: fix module to accept missing ./sops dir 2023-09-02 18:25:27 +02:00
4afd9910e9 Revert "rename clanCore to clan.core"
This reverts commit fef796fa6e.
2023-08-30 15:24:33 +02:00
fef796fa6e rename clanCore to clan.core 2023-08-30 12:46:49 +00:00
9fca1e7f43 move clanCore into nixosModules, add secrets generate command
All checks were successful
checks-impure / test (pull_request) Successful in 2s
checks / test (pull_request) Successful in 2s
2023-08-29 16:28:50 +02:00