From 938091c9fb353b5e8ff5c7d52c7864285f83f96a Mon Sep 17 00:00:00 2001 From: Magnus Skjegstad Date: Fri, 26 May 2017 12:36:40 +0200 Subject: [PATCH] linuxkit: add -vpnkit-socket flag Add a new flag to set the VPNKit ethernet socket path. Defaults to the standard location for the socket in Docker for Mac. This flag can be used to connect to the VPNKit instance started by another linuxkit VM launched with `-start-vpnkit`. VMs connected to the same VPNKit instance will be on the same virtual internal network. Signed-off-by: Magnus Skjegstad --- src/cmd/linuxkit/run_hyperkit.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/cmd/linuxkit/run_hyperkit.go b/src/cmd/linuxkit/run_hyperkit.go index edabe5a06..a76204165 100644 --- a/src/cmd/linuxkit/run_hyperkit.go +++ b/src/cmd/linuxkit/run_hyperkit.go @@ -35,6 +35,8 @@ func runHyperKit(args []string) { state := flags.String("state", "", "Path to directory to keep VM state in") vsockports := flags.String("vsock-ports", "", "List of vsock ports to forward from the guest on startup (comma separated). A unix domain socket for each port will be created in the state directory") startVPNKit := flags.Bool("start-vpnkit", false, "Launch a new VPNKit instead of reusing the instance from Docker for Mac. The new instance will be on a separate internal network. This enables IP port forwarding from the host to the guest if the guest supports it.") + vpnKitDefaultSocket := filepath.Join(os.Getenv("HOME"), "Library/Containers/com.docker.docker/Data/s50") + vpnKitEthernetSocket := flags.String("vpnkit-socket", vpnKitDefaultSocket, "Path to VPNKit ethernet socket. The Docker for Mac socket is used by default. Overridden if -start-vpnkit is set.") if err := flags.Parse(args); err != nil { log.Fatal("Unable to parse args") @@ -103,16 +105,15 @@ func runHyperKit(args []string) { *disk = filepath.Join(*state, "disk.img") } - vpnKitEthernetSocket := "auto" var vpnKitPortSocket string var vpnKitProcess *os.Process // Launch new VPNKit if needed if *startVPNKit { - vpnKitEthernetSocket = filepath.Join(*state, "vpnkit_eth.sock") + *vpnKitEthernetSocket = filepath.Join(*state, "vpnkit_eth.sock") vpnKitPortSocket = filepath.Join(*state, "vpnkit_port.sock") vsockSocket := filepath.Join(*state, "connect") - vpnKitProcess, err = launchVPNKit(vpnKitEthernetSocket, vsockSocket, vpnKitPortSocket) + vpnKitProcess, err = launchVPNKit(*vpnKitEthernetSocket, vsockSocket, vpnKitPortSocket) if err != nil { log.Fatalln("Unable to start vpnkit: ", err) } @@ -126,7 +127,7 @@ func runHyperKit(args []string) { }() } - h, err := hyperkit.New(*hyperkitPath, vpnKitEthernetSocket, *state) + h, err := hyperkit.New(*hyperkitPath, *vpnKitEthernetSocket, *state) if err != nil { log.Fatalln("Error creating hyperkit: ", err) }