74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| import ./make-test.nix rec {
 | |
|   name = "simple";
 | |
| 
 | |
|   nodes = {
 | |
|     node1 =
 | |
|       { config, pkgs, ... }:
 | |
|         {
 | |
|           services = {
 | |
|             etcd = {
 | |
|               enable = true;
 | |
|               listenPeerUrls = ["http://0.0.0.0:7001"];
 | |
|               initialAdvertisePeerUrls = ["http://node1:7001"];
 | |
|               initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"];
 | |
|             };
 | |
|          };
 | |
| 
 | |
|           services.fleet = {
 | |
|             enable = true;
 | |
|             metadata.name = "node1";
 | |
|           };
 | |
| 
 | |
|           networking.firewall.allowedTCPPorts = [ 7001 ];
 | |
|         };
 | |
| 
 | |
|     node2 =
 | |
|       { config, pkgs, ... }:
 | |
|         {
 | |
|           services = {
 | |
|             etcd = {
 | |
|               enable = true;
 | |
|               listenPeerUrls = ["http://0.0.0.0:7001"];
 | |
|               initialAdvertisePeerUrls = ["http://node2:7001"];
 | |
|               initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"];
 | |
|             };
 | |
|            };
 | |
| 
 | |
|           services.fleet = {
 | |
|             enable = true;
 | |
|             metadata.name = "node2";
 | |
|           };
 | |
| 
 | |
|           networking.firewall.allowedTCPPorts = [ 7001 ];
 | |
|         };
 | |
|   };
 | |
| 
 | |
|   service = builtins.toFile "hello.service" ''
 | |
|     [Unit]
 | |
|     Description=Hello World
 | |
| 
 | |
|     [Service]
 | |
|     ExecStart=/bin/sh -c "while true; do echo \"Hello, world\"; /var/run/current-system/sw/bin/sleep 1; done"
 | |
| 
 | |
|     [X-Fleet]
 | |
|     MachineMetadata=name=node2
 | |
|   '';
 | |
| 
 | |
|   testScript =
 | |
|     ''
 | |
|       startAll;
 | |
|       $node1->waitForUnit("fleet.service");
 | |
|       $node2->waitForUnit("fleet.service");
 | |
| 
 | |
|       $node2->waitUntilSucceeds("fleetctl list-machines | grep node1");
 | |
|       $node1->waitUntilSucceeds("fleetctl list-machines | grep node2");
 | |
| 
 | |
|       $node1->succeed("cp ${service} hello.service && fleetctl submit hello.service");
 | |
|       $node1->succeed("fleetctl list-unit-files | grep hello");
 | |
|       $node1->succeed("fleetctl start hello.service");
 | |
|       $node1->waitUntilSucceeds("fleetctl list-units | grep running");
 | |
|       $node1->succeed("fleetctl stop hello.service");
 | |
|       $node1->succeed("fleetctl destroy hello.service");
 | |
|     '';
 | |
| }
 | 
