flake.nix: Move vm out of nixosConfigurations so that checks work
				
					
				
			This commit is contained in:
		
							parent
							
								
									61d3008bc3
								
							
						
					
					
						commit
						59a44261b8
					
				
					 2 changed files with 34 additions and 31 deletions
				
			
		
							
								
								
									
										43
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										43
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -31,35 +31,11 @@ | |||
|     ################## | ||||
|     # Configurations # | ||||
|     ################## | ||||
|     nixosConfigurations = let | ||||
|       # Modules that should be generic to all systems | ||||
|       genericModule = {...}: { | ||||
|         imports = [ | ||||
|           # Inject flake dependencies | ||||
|           sops-nix.nixosModules.sops | ||||
|           tlaternet-webserver.nixosModules.default | ||||
| 
 | ||||
|           # Import actual configuration | ||||
|           (import ./configuration) | ||||
|         ]; | ||||
|       }; | ||||
|     in { | ||||
|     nixosConfigurations = { | ||||
|       # The actual system definition | ||||
|       tlaternet = nixpkgs.lib.nixosSystem { | ||||
|       tlaternet = self.lib.makeNixosSystem { | ||||
|         inherit system; | ||||
|         modules = [ | ||||
|           genericModule | ||||
|           (import ./configuration/hardware-specific/linode) | ||||
|         ]; | ||||
|       }; | ||||
| 
 | ||||
|       # A qemu VM to test the above with | ||||
|       vm = nixpkgs.lib.nixosSystem { | ||||
|         inherit system; | ||||
|         modules = [ | ||||
|           genericModule | ||||
|           (import ./configuration/hardware-specific/vm.nix) | ||||
|         ]; | ||||
|         extraModules = [(import ./configuration/hardware-specific/linode)]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|  | @ -89,7 +65,10 @@ | |||
|     #################### | ||||
|     # Helper functions # | ||||
|     #################### | ||||
|     lib = import ./lib {lib = nixpkgs.lib;}; | ||||
|     lib = import ./lib { | ||||
|       inherit nixpkgs sops-nix tlaternet-webserver; | ||||
|       lib = nixpkgs.lib; | ||||
|     }; | ||||
| 
 | ||||
|     #################### | ||||
|     # VM launch script # | ||||
|  | @ -98,7 +77,11 @@ | |||
|       inherit (nixpkgs.legacyPackages.${system}) writeShellScript; | ||||
|     in { | ||||
|       default = let | ||||
|         inherit (self.nixosConfigurations.vm.config.system.build) vm; | ||||
|         vm = self.lib.makeNixosSystem { | ||||
|           inherit system; | ||||
|           extraModules = [(import ./configuration/hardware-specific/vm.nix)]; | ||||
|         }; | ||||
| 
 | ||||
|         qemuNetOpts = self.lib.makeQemuNetOpts { | ||||
|           "2222" = "2222"; | ||||
|           "3080" = "80"; | ||||
|  | @ -110,7 +93,7 @@ | |||
|         program = builtins.toString (writeShellScript "run-vm" '' | ||||
|           export QEMU_OPTS="-m 3941 -smp 2 -display curses" | ||||
|           export QEMU_NET_OPTS="${qemuNetOpts}" | ||||
|           "${vm}/bin/run-tlaternet-vm" | ||||
|           "${vm.config.system.build.vm}/bin/run-tlaternet-vm" | ||||
|         ''); | ||||
|       }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,9 @@ | |||
| {lib}: let | ||||
| { | ||||
|   lib, | ||||
|   nixpkgs, | ||||
|   sops-nix, | ||||
|   tlaternet-webserver, | ||||
| }: let | ||||
|   inherit (lib.attrsets) mapAttrsToList; | ||||
|   inherit (lib.strings) concatStringsSep; | ||||
| in { | ||||
|  | @ -7,4 +12,19 @@ in { | |||
|     (mapAttrsToList | ||||
|       (host: vm: "hostfwd=::${host}-:${vm}") | ||||
|       portMapping); | ||||
| 
 | ||||
|   makeNixosSystem = { | ||||
|     system, | ||||
|     extraModules, | ||||
|   }: | ||||
|     nixpkgs.lib.nixosSystem { | ||||
|       inherit system; | ||||
|       modules = | ||||
|         [ | ||||
|           sops-nix.nixosModules.sops | ||||
|           tlaternet-webserver.nixosModules.default | ||||
|           (import ../configuration) | ||||
|         ] | ||||
|         ++ extraModules; | ||||
|     }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue