github.com/containers/podman/v4@v4.9.4/pkg/machine/provider/platform_windows.go (about) 1 package provider 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/containers/common/pkg/config" 8 "github.com/containers/podman/v4/pkg/machine" 9 "github.com/containers/podman/v4/pkg/machine/hyperv" 10 "github.com/containers/podman/v4/pkg/machine/wsl" 11 "github.com/sirupsen/logrus" 12 ) 13 14 func Get() (machine.VirtProvider, error) { 15 cfg, err := config.Default() 16 if err != nil { 17 return nil, err 18 } 19 provider := cfg.Machine.Provider 20 if providerOverride, found := os.LookupEnv("CONTAINERS_MACHINE_PROVIDER"); found { 21 provider = providerOverride 22 } 23 resolvedVMType, err := machine.ParseVMType(provider, machine.WSLVirt) 24 if err != nil { 25 return nil, err 26 } 27 28 logrus.Debugf("Using Podman machine with `%s` virtualization provider", resolvedVMType.String()) 29 switch resolvedVMType { 30 case machine.WSLVirt: 31 return wsl.VirtualizationProvider(), nil 32 case machine.HyperVVirt: 33 return hyperv.VirtualizationProvider(), nil 34 default: 35 return nil, fmt.Errorf("unsupported virtualization provider: `%s`", resolvedVMType.String()) 36 } 37 }