forked from jan-leila/nix-config
		
	moved disko needed configuration to disko.nix
This commit is contained in:
		
							parent
							
								
									7979b4ed17
								
							
						
					
					
						commit
						a68f81cf3b
					
				
					 2 changed files with 39 additions and 29 deletions
				
			
		|  | @ -20,6 +20,8 @@ | |||
|       disk: lib.attrsets.nameValuePair (hashDisk disk) disk | ||||
|     ) | ||||
|     config.host.storage.pool.cache; | ||||
| 
 | ||||
|   datasets = config.host.storage.pool.datasets // config.host.storage.pool.extraDatasets; | ||||
| in { | ||||
|   options.host.storage = { | ||||
|     enable = lib.mkEnableOption "are we going create zfs disks with disko on this device"; | ||||
|  | @ -63,6 +65,39 @@ in { | |||
|         description = "list of drives that are going to be used as cache"; | ||||
|         default = []; | ||||
|       }; | ||||
|       # Default datasets that are needed to make a functioning system | ||||
|       datasets = lib.mkOption { | ||||
|         type = lib.types.attrsOf (inputs.disko.lib.subType { | ||||
|           types = {inherit (inputs.disko.lib.types) zfs_fs zfs_volume;}; | ||||
|         }); | ||||
|         default = { | ||||
|           "local" = { | ||||
|             type = "zfs_fs"; | ||||
|             options.canmount = "off"; | ||||
|           }; | ||||
|           # nix directory needs to be available pre persist and doesn't need to be snapshotted or backed up | ||||
|           "local/system/nix" = { | ||||
|             type = "zfs_fs"; | ||||
|             mountpoint = "/nix"; | ||||
|             options = { | ||||
|               atime = "off"; | ||||
|               relatime = "off"; | ||||
|               canmount = "on"; | ||||
|             }; | ||||
|           }; | ||||
|           # dataset for root that gets rolled back on every boot | ||||
|           "local/system/root" = { | ||||
|             type = "zfs_fs"; | ||||
|             mountpoint = "/"; | ||||
|             options = { | ||||
|               canmount = "on"; | ||||
|             }; | ||||
|             postCreateHook = '' | ||||
|               zfs snapshot rpool/local/system/root@blank | ||||
|             ''; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|       extraDatasets = lib.mkOption { | ||||
|         type = lib.types.attrsOf (inputs.disko.lib.subType { | ||||
|           types = {inherit (inputs.disko.lib.types) zfs_fs zfs_volume;}; | ||||
|  | @ -222,13 +257,15 @@ in { | |||
|             ); | ||||
| 
 | ||||
|           datasets = lib.mkMerge [ | ||||
|             (lib.attrsets.mapAttrs (name: value: { | ||||
|             ( | ||||
|               lib.attrsets.mapAttrs (name: value: { | ||||
|                 type = value.type; | ||||
|                 options = value.options; | ||||
|                 mountpoint = value.mountpoint; | ||||
|                 postCreateHook = value.postCreateHook; | ||||
|               }) | ||||
|               config.host.storage.pool.extraDatasets) | ||||
|               datasets | ||||
|             ) | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue