mirror of
				https://github.com/containers/podman.git
				synced 2025-11-04 08:56:05 +08:00 
			
		
		
		
	this pr has the basic plumbing that allows the e2e machine tests to run with the hyperv provider. it requires a special fcos image right now because gvforwarder was not in the upstream fcos images for hyperv. changed the way "provider" is set; moved GetProvider functions to pkg/machine/provider. provider is now set at the machine level. Signed-off-by: Brent Baude <bbaude@redhat.com>
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
//go:build darwin && arm64
 | 
						|
 | 
						|
package provider
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"os"
 | 
						|
 | 
						|
	"github.com/containers/common/pkg/config"
 | 
						|
	"github.com/containers/podman/v4/pkg/machine"
 | 
						|
	"github.com/containers/podman/v4/pkg/machine/applehv"
 | 
						|
	"github.com/containers/podman/v4/pkg/machine/qemu"
 | 
						|
	"github.com/sirupsen/logrus"
 | 
						|
)
 | 
						|
 | 
						|
func Get() (machine.VirtProvider, error) {
 | 
						|
	cfg, err := config.Default()
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
	provider := cfg.Machine.Provider
 | 
						|
	if providerOverride, found := os.LookupEnv("CONTAINERS_MACHINE_PROVIDER"); found {
 | 
						|
		provider = providerOverride
 | 
						|
	}
 | 
						|
	resolvedVMType, err := machine.ParseVMType(provider, machine.QemuVirt)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	logrus.Debugf("Using Podman machine with `%s` virtualization provider", resolvedVMType.String())
 | 
						|
	switch resolvedVMType {
 | 
						|
	case machine.QemuVirt:
 | 
						|
		return qemu.VirtualizationProvider(), nil
 | 
						|
	case machine.AppleHvVirt:
 | 
						|
		return applehv.VirtualizationProvider(), nil
 | 
						|
	default:
 | 
						|
		return nil, fmt.Errorf("unsupported virtualization provider: `%s`", resolvedVMType.String())
 | 
						|
	}
 | 
						|
}
 |