42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								import ./make-test.nix ({ pkgs, ...}: {
							 | 
						||
| 
								 | 
							
								  name = "haproxy";
							 | 
						||
| 
								 | 
							
								  nodes = {
							 | 
						||
| 
								 | 
							
								    machine = { config, ...}: {
							 | 
						||
| 
								 | 
							
								      imports = [ ../modules/profiles/minimal.nix ];
							 | 
						||
| 
								 | 
							
								      services.haproxy = {
							 | 
						||
| 
								 | 
							
								        enable = true;
							 | 
						||
| 
								 | 
							
								        config = ''
							 | 
						||
| 
								 | 
							
								          defaults
							 | 
						||
| 
								 | 
							
								            timeout connect 10s
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          backend http_server
							 | 
						||
| 
								 | 
							
								            mode http
							 | 
						||
| 
								 | 
							
								            server httpd [::1]:8000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          frontend http
							 | 
						||
| 
								 | 
							
								            bind *:80
							 | 
						||
| 
								 | 
							
								            mode http
							 | 
						||
| 
								 | 
							
								            use_backend http_server
							 | 
						||
| 
								 | 
							
								        '';
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								      services.httpd = {
							 | 
						||
| 
								 | 
							
								        enable = true;
							 | 
						||
| 
								 | 
							
								        documentRoot = pkgs.writeTextDir "index.txt" "We are all good!";
							 | 
						||
| 
								 | 
							
								        adminAddr = "notme@yourhost.local";
							 | 
						||
| 
								 | 
							
								        listen = [{
							 | 
						||
| 
								 | 
							
								          ip = "::1";
							 | 
						||
| 
								 | 
							
								          port = 8000;
							 | 
						||
| 
								 | 
							
								        }];
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  testScript = ''
							 | 
						||
| 
								 | 
							
								    startAll;
							 | 
						||
| 
								 | 
							
								    $machine->waitForUnit('multi-user.target');
							 | 
						||
| 
								 | 
							
								    $machine->waitForUnit('haproxy.service');
							 | 
						||
| 
								 | 
							
								    $machine->waitForUnit('httpd.service');
							 | 
						||
| 
								 | 
							
								    $machine->succeed('curl -k http://localhost:80/index.txt | grep "We are all good!"');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  '';
							 | 
						||
| 
								 | 
							
								})
							 |