mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-20 17:49:10 +00:00
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 <magnus@skjegstad.com>
This commit is contained in:
parent
df141841c5
commit
938091c9fb
@ -35,6 +35,8 @@ func runHyperKit(args []string) {
|
|||||||
state := flags.String("state", "", "Path to directory to keep VM state in")
|
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")
|
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.")
|
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 {
|
if err := flags.Parse(args); err != nil {
|
||||||
log.Fatal("Unable to parse args")
|
log.Fatal("Unable to parse args")
|
||||||
@ -103,16 +105,15 @@ func runHyperKit(args []string) {
|
|||||||
*disk = filepath.Join(*state, "disk.img")
|
*disk = filepath.Join(*state, "disk.img")
|
||||||
}
|
}
|
||||||
|
|
||||||
vpnKitEthernetSocket := "auto"
|
|
||||||
var vpnKitPortSocket string
|
var vpnKitPortSocket string
|
||||||
var vpnKitProcess *os.Process
|
var vpnKitProcess *os.Process
|
||||||
|
|
||||||
// Launch new VPNKit if needed
|
// Launch new VPNKit if needed
|
||||||
if *startVPNKit {
|
if *startVPNKit {
|
||||||
vpnKitEthernetSocket = filepath.Join(*state, "vpnkit_eth.sock")
|
*vpnKitEthernetSocket = filepath.Join(*state, "vpnkit_eth.sock")
|
||||||
vpnKitPortSocket = filepath.Join(*state, "vpnkit_port.sock")
|
vpnKitPortSocket = filepath.Join(*state, "vpnkit_port.sock")
|
||||||
vsockSocket := filepath.Join(*state, "connect")
|
vsockSocket := filepath.Join(*state, "connect")
|
||||||
vpnKitProcess, err = launchVPNKit(vpnKitEthernetSocket, vsockSocket, vpnKitPortSocket)
|
vpnKitProcess, err = launchVPNKit(*vpnKitEthernetSocket, vsockSocket, vpnKitPortSocket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln("Unable to start vpnkit: ", err)
|
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 {
|
if err != nil {
|
||||||
log.Fatalln("Error creating hyperkit: ", err)
|
log.Fatalln("Error creating hyperkit: ", err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user