While we are at it, rename disk-checkup.nix to btrfs-auto-scrub.nix and move it into //ops/modules. I originally wanted to have additionally disk health related services in that module, but the btrfs scrub functionality is nicely self-contained and reusable, so I think it makes sense to have this in a more central location. Change-Id: Iabdd62838eef009540ca71abafd921afda2a9b47 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10128 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			710 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			710 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # Automatically performs a scrub on all btrfs filesystems configured in
 | |
| # `config.fileSystems` on a daily schedule (by default). Activated by importing.
 | |
| { config, lib, ... }:
 | |
| 
 | |
| {
 | |
|   config = {
 | |
|     services = {
 | |
|       btrfs.autoScrub = {
 | |
|         enable = true;
 | |
|         interval = lib.mkDefault "daily";
 | |
|         # gather all btrfs fileSystems, extra ones can be added via the NixOS
 | |
|         # module merging mechanism, of course.
 | |
|         fileSystems = lib.concatLists (
 | |
|           lib.mapAttrsToList
 | |
|             (
 | |
|               _:
 | |
|               { fsType, mountPoint, ... }:
 | |
|               if fsType == "btrfs" then [ mountPoint ] else [ ]
 | |
|             )
 | |
|             config.fileSystems
 | |
|         );
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |