mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
| //go:build amd64 || arm64
 | |
| 
 | |
| package connection
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"strconv"
 | |
| 
 | |
| 	"github.com/containers/podman/v5/pkg/machine/define"
 | |
| )
 | |
| 
 | |
| // AddSSHConnectionsToPodmanSocket adds SSH connections to the podman socket if
 | |
| // no ignition path is provided
 | |
| func AddSSHConnectionsToPodmanSocket(uid, port int, identityPath, name, remoteUsername string, opts define.InitOptions) error {
 | |
| 	if len(opts.IgnitionPath) > 0 {
 | |
| 		fmt.Println("An ignition path was provided.  No SSH connection was added to Podman")
 | |
| 		return nil
 | |
| 	}
 | |
| 
 | |
| 	cons := createConnections(name, uid, port, remoteUsername)
 | |
| 
 | |
| 	// The first connection defined when connections is empty will become the default
 | |
| 	// regardless of IsDefault, so order according to rootful
 | |
| 	if opts.Rootful {
 | |
| 		cons[0], cons[1] = cons[1], cons[0]
 | |
| 	}
 | |
| 
 | |
| 	return addConnection(cons, identityPath, opts.IsDefault)
 | |
| }
 | |
| 
 | |
| func createConnections(name string, uid, port int, remoteUsername string) []connection {
 | |
| 	uri := makeSSHURL(LocalhostIP, fmt.Sprintf("/run/user/%d/podman/podman.sock", uid), strconv.Itoa(port), remoteUsername)
 | |
| 	uriRoot := makeSSHURL(LocalhostIP, "/run/podman/podman.sock", strconv.Itoa(port), "root")
 | |
| 
 | |
| 	return []connection{
 | |
| 		{
 | |
| 			name: name,
 | |
| 			uri:  uri,
 | |
| 		},
 | |
| 		{
 | |
| 			name: name + "-root",
 | |
| 			uri:  uriRoot,
 | |
| 		},
 | |
| 	}
 | |
| }
 |