Added a module for SOPS
This commit is contained in:
		
							parent
							
								
									cb39f82a48
								
							
						
					
					
						commit
						d53e395d42
					
				
							
								
								
									
										39
									
								
								modules/home/utilities/secrets.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/home/utilities/secrets.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | |||||||
|  | { | ||||||
|  |   inputs, | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.modules.secrets; | ||||||
|  |   secrets = inputs.secrets; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.modules.secrets = { | ||||||
|  |     enable = mkEnableOption "secrets"; | ||||||
|  |     defaultFile = mkOption { | ||||||
|  |       type = types.str; | ||||||
|  |       default = "${secrets}/secrets/common.enc.yaml"; | ||||||
|  |       description = '' | ||||||
|  |         The default file to use for SOPS. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |     secrets = mkOption { | ||||||
|  |       type = types.attrs; | ||||||
|  |       default = { }; | ||||||
|  |       description = '' | ||||||
|  |         All secrets that should be made available. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     # Set up SOPS | ||||||
|  |     sops.defaultSopsFile = cfg.defaultFile; | ||||||
|  |     sops.age.sshKeyPaths = [ "${config.home.homeDirectory}/.config/sops/sops_ed25519_key" ]; | ||||||
|  |     sops.secrets = cfg.secrets; | ||||||
|  |     modules.impermanence.directories = [ ".config/" ]; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										39
									
								
								modules/nixos/secrets.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/nixos/secrets.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | |||||||
|  | { | ||||||
|  |   inputs, | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.modules.secrets; | ||||||
|  |   secrets = inputs.secrets; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.modules.secrets = { | ||||||
|  |     enable = mkEnableOption "secrets"; | ||||||
|  |     defaultFile = mkOption { | ||||||
|  |       type = types.str; | ||||||
|  |       default = "${secrets}/secrets/common.enc.yaml"; | ||||||
|  |       description = '' | ||||||
|  |         The default file to use for SOPS. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |     secrets = mkOption { | ||||||
|  |       type = types.attrs; | ||||||
|  |       default = { }; | ||||||
|  |       description = '' | ||||||
|  |         All secrets that should be made available. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     # Set up SOPS | ||||||
|  |     sops.defaultSopsFile = cfg.defaultFile; | ||||||
|  |     sops.age.sshKeyPaths = [ "/etc/sops/sops_ed25519_key" ]; | ||||||
|  |     sops.secrets = cfg.secrets; | ||||||
|  |     modules.impermanence.directories = [ "/etc/sops" ]; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -1,5 +1,4 @@ | |||||||
| { | { | ||||||
|   mkModule, |  | ||||||
|   pkgs, |   pkgs, | ||||||
|   lib, |   lib, | ||||||
|   config, |   config, | ||||||
|  | |||||||
| @ -1,5 +1,4 @@ | |||||||
| { | { | ||||||
|   mkModule, |  | ||||||
|   pkgs, |   pkgs, | ||||||
|   lib, |   lib, | ||||||
|   config, |   config, | ||||||
| @ -30,6 +29,13 @@ in | |||||||
|           zfs rollback -r tank/root@blank |           zfs rollback -r tank/root@blank | ||||||
|         ''; |         ''; | ||||||
|       }; |       }; | ||||||
|  |       secrets = { | ||||||
|  |         enable = true; | ||||||
|  |         secrets = { | ||||||
|  |           "ssh-keys/deploy/private-key" = { }; | ||||||
|  |           "ssh-keys/deploy/public-key" = { }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|       ssh.enable = true; |       ssh.enable = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jan-Bulthuis
						Jan-Bulthuis