| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  | # Test for NixOS' container support. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-25 21:57:46 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  |   name = "containers-hosts"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib.maintainers; { | 
					
						
							| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  |     maintainers = [ montag451 ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   machine = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     { lib, ... }: | 
					
						
							| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  |     { | 
					
						
							|  |  |  |       virtualisation.memorySize = 256; | 
					
						
							|  |  |  |       virtualisation.vlans = []; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       networking.bridges.br0.interfaces = []; | 
					
						
							| 
									
										
										
										
											2017-12-03 05:14:54 +01:00
										 |  |  |       networking.interfaces.br0.ipv4.addresses = [ | 
					
						
							|  |  |  |         { address = "10.11.0.254"; prefixLength = 24; } | 
					
						
							|  |  |  |       ]; | 
					
						
							| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # Force /etc/hosts to be the only source for host name resolution | 
					
						
							|  |  |  |       environment.etc."nsswitch.conf".text = lib.mkForce ''
 | 
					
						
							|  |  |  |         hosts: files | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       containers.simple = { | 
					
						
							|  |  |  |         autoStart = true; | 
					
						
							|  |  |  |         privateNetwork = true; | 
					
						
							|  |  |  |         localAddress = "10.10.0.1"; | 
					
						
							|  |  |  |         hostAddress = "10.10.0.254"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         config = {}; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       containers.netmask = { | 
					
						
							|  |  |  |         autoStart = true; | 
					
						
							|  |  |  |         privateNetwork = true; | 
					
						
							|  |  |  |         hostBridge = "br0"; | 
					
						
							|  |  |  |         localAddress = "10.11.0.1/24"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         config = {}; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							| 
									
										
										
										
											2019-11-25 21:57:46 +01:00
										 |  |  |     start_all() | 
					
						
							|  |  |  |     machine.wait_for_unit("default.target") | 
					
						
							| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-25 21:57:46 +01:00
										 |  |  |     with subtest("Ping the containers using the entries added in /etc/hosts"): | 
					
						
							|  |  |  |         for host in "simple.containers", "netmask.containers": | 
					
						
							|  |  |  |             machine.succeed(f"ping -n -c 1 {host}") | 
					
						
							| 
									
										
										
										
											2016-12-06 23:32:17 +01:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |