Commit Graph
48 Commits
Author SHA1 Message Date
Richie ae18feb0fd feat(zfs): manage jeeves datasets declaratively from nix
treefmt / nix fmt (pull_request) Successful in 6s
pytest / pytest (pull_request) Successful in 37s
build_systems / build-brain (pull_request) Successful in 57s
test ebook search / test-ebook-search (pull_request) Successful in 44s
build_systems / build-bob (pull_request) Successful in 58s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m11s
build_systems / build-jeeves (pull_request) Successful in 3m1s
Add a zfs_manager module that reconciles the live datasets on jeeves
against a nix declaration, and generate the snapshot retention config
from that same declaration so the two can no longer drift apart.

systems/jeeves/datasets.nix declares every dataset on the media, storage
and scratch pools, nested the way zfs nests them and flattened into
pool/parent/child names. Values were transcribed from the live pools
rather than from scripts/zfs.sh, which had gone stale: acltype reads back
as posix, and media/secure/important, scratch/kestra and storage/nomad
were never recorded. root_pool datasets are declared for retention only,
their properties stay unmanaged for now.

python.tools.zfs_manager creates missing datasets and corrects drifted
properties, and never destroys anything. Undeclared properties are judged
by the zfs source field, so inherited and default values stay quiet while
locally set ones warn. Size values are normalised to bytes so that 16K and
16384 do not re-issue zfs set on every run.

vars.nix now derives its paths from the declared mountpoints instead of
repeating them, dropping three zfs_* keys that nothing referenced.

Replaces systems/jeeves/snapshot_config.toml, which listed a dataset that
does not exist and omitted thirteen that do.
2026-07-27 23:26:44 -04:00
Richie 374d7e8d38 setting up resource monitoring for bob and jeeves 2026-04-30 10:16:37 -04:00
Richie 73e221716f adding nornsight 2026-04-25 16:33:45 -04:00
Richie 68671a1e84 adding steve 2026-04-18 11:56:56 -04:00
Richie d6eec926e7 made web_services dir 2026-04-13 19:12:32 -04:00
Richie 14dd1fe52e removed nvidia gpu from jeeves 2025-12-21 08:35:01 -05:00
Richie f4996b71e4 updating to inputs.self 2025-11-11 00:11:30 -05:00
Richie 58a29214d3 testing "${self}/ in imports 2025-11-11 00:11:30 -05:00
Richie 2ed08501fe adding user for dov 2025-09-26 22:03:12 -04:00
Richie 4686a85bcd added EnvironmentFile to snapshot_manager 2025-09-15 08:55:55 -04:00
Richie 324721ff8d adding zerotier network to jeeves 2025-09-01 13:01:46 -04:00
Richie 501a838be9 updated matts user 2025-08-17 10:35:37 -04:00
Richie 559ca7a45e adding update the jeeves 2025-07-28 12:47:17 -04:00
Richie ccfde41209 enabled powertop by default 2025-04-05 14:16:41 -04:00
Richie eb90251671 testing scsiLinkPolicy 2025-04-05 14:16:41 -04:00
Richie 4694d75a62 added scratch pool 2025-04-05 14:16:41 -04:00
Richie fa3f14785c removed torrenting pool 2025-04-05 14:16:41 -04:00
Richie 5b750043ce testing powertop 2025-04-05 14:16:41 -04:00
Richie da721a32f3 treefmt 2025-04-05 14:16:41 -04:00
Richie 9dd32c7c06 adding cpuFreqGovernor ondemand 2025-04-05 14:16:41 -04:00
Richie 0a50d94af4 added whisper and piper to home-assistant 2025-03-23 19:06:29 -04:00
Richie cd5ad0dcae added runners dir 2025-02-04 21:28:10 -05:00
Richie fa38cc6321 added services import to jeeves default 2025-02-04 21:28:10 -05:00
Richie e8d971340b made nix_serve.nix 2025-02-04 21:28:10 -05:00
Richie c87e653ad7 moved zfs services to global/default.nix 2025-01-19 14:41:24 -05:00
Richie 2e26035693 removing plex 2025-01-19 13:29:40 -05:00
Richie 7995d383ca added jellyfin.nix 2025-01-18 17:07:00 -05:00
Richie db60b2f1a9 removed docker.nix from global default.nix 2024-12-08 18:14:45 -05:00
Richie 467a42b5cf decommissioning arch mirror 2024-12-01 16:57:55 -05:00
Richie 03b177ddfb creating github-runners nix_builder 2024-11-25 14:25:57 -05:00
Richie 10277825eb opened firewall for nix-serve 2024-10-26 19:45:51 -04:00
Richie 366f7f2a7b enabled firewall on jeeves 2024-10-26 17:38:16 -04:00
Richie f706463500 moved common out of systems 2024-10-25 16:47:36 -04:00
Richie 51fe1f673b replacing root_pool drives 2024-10-13 18:45:28 -04:00
Richie b727f67c2d updated jeeves snapshot_manager and config 2024-10-13 12:12:21 -04:00
Richie 133af1854b added services dir 2024-10-10 23:00:14 -04:00
Richie 5c8a55c420 moved cache-priv-key.pem to storage_secrets 2024-10-10 23:00:14 -04:00
Richie d670af616a settings up nixos binary cache 2024-10-10 23:00:14 -04:00
Richie d9c3f36341 created home_assistant.nix for jeeves 2024-09-29 09:59:03 -04:00
Richie ff2f07739e created syncthing.nix for jeeves 2024-09-29 09:59:03 -04:00
Richie 9aaec0f1f8 disabled postgres 2024-09-29 09:48:17 -04:00
Richie 87109b1fdc fixed snapshot_manager 2024-09-29 09:48:17 -04:00
Richie 964353d269 updated syncthing folders 2024-09-15 12:58:52 -04:00
Richie 71ad29b6a1 moved zfs kernelPackages to global default.nix 2024-09-15 12:56:48 -04:00
Richie eb16e67c72 added zfs kernelPackages restriction 2024-09-15 12:28:09 -04:00
Richie 990d5c2f82 added ssh_decrypt 2024-09-14 21:13:04 -04:00
Richie d19a485c54 removed sops dependency
fixed syncthing
2024-09-14 16:05:53 -04:00
Richie 1dff87b044 adding jeeves 2024-09-13 20:58:40 -04:00