44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								{ config, options, lib, ... }:
							 | 
						|||
| 
								 | 
							
								let
							 | 
						|||
| 
								 | 
							
								  path = [ "deployment" "autoLuks" ];
							 | 
						|||
| 
								 | 
							
								  hasAutoLuksConfig = lib.hasAttrByPath path config && (lib.attrByPath path {} config) != {};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  inherit (config.nixops) enableDeprecatedAutoLuks;
							 | 
						|||
| 
								 | 
							
								in {
							 | 
						|||
| 
								 | 
							
								  options.nixops.enableDeprecatedAutoLuks = lib.mkEnableOption "Enable the deprecated NixOps AutoLuks module";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  config = {
							 | 
						|||
| 
								 | 
							
								    assertions = [
							 | 
						|||
| 
								 | 
							
								      {
							 | 
						|||
| 
								 | 
							
								        assertion = if hasAutoLuksConfig then hasAutoLuksConfig && enableDeprecatedAutoLuks else true;
							 | 
						|||
| 
								 | 
							
								        message = ''
							 | 
						|||
| 
								 | 
							
								          ⚠️  !!! WARNING !!! ⚠️
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            NixOps autoLuks is deprecated. The feature was never widely used and the maintenance did outgrow the benefit.
							 | 
						|||
| 
								 | 
							
								            If you still want to use the module:
							 | 
						|||
| 
								 | 
							
								              a) Please raise your voice in the issue tracking usage of the module:
							 | 
						|||
| 
								 | 
							
								                 https://github.com/NixOS/nixpkgs/issues/62211
							 | 
						|||
| 
								 | 
							
								              b) make sure you set the `_netdev` option for each of the file
							 | 
						|||
| 
								 | 
							
								                 systems referring to block devices provided by the autoLuks module.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                 ⚠️ If you do not set the option your system will not boot anymore! ⚠️
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                  {
							 | 
						|||
| 
								 | 
							
								                    fileSystems."/secret" = { options = [ "_netdev" ]; };
							 | 
						|||
| 
								 | 
							
								                  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								              b) set the option >nixops.enableDeprecatedAutoLuks = true< to remove this error.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            For more details read through the following resources:
							 | 
						|||
| 
								 | 
							
								              - https://github.com/NixOS/nixops/pull/1156
							 | 
						|||
| 
								 | 
							
								              - https://github.com/NixOS/nixpkgs/issues/47550
							 | 
						|||
| 
								 | 
							
								              - https://github.com/NixOS/nixpkgs/issues/62211
							 | 
						|||
| 
								 | 
							
								              - https://github.com/NixOS/nixpkgs/pull/61321
							 | 
						|||
| 
								 | 
							
								        '';
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    ];
							 | 
						|||
| 
								 | 
							
								  };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 |