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