mirror of
https://github.com/containers/podman.git
synced 2025-11-28 09:09:44 +08:00
Merge pull request #27546 from jakecorrenti/libkrun-as-default
machine: change default macOS provider to libkrun
This commit is contained in:
@@ -67,7 +67,7 @@ above.
|
||||
## MacOS
|
||||
|
||||
Macs now support two different machine providers: `applehv` and `libkrun`. The
|
||||
`applehv` provider is the default.
|
||||
`libkrun` provider is the default.
|
||||
|
||||
Note: On macOS, an error will occur if the path length of `$TMPDIR` is longer
|
||||
than 22 characters. Please set the appropriate path to `$TMPDIR`. Also, if
|
||||
@@ -77,11 +77,11 @@ than 22 characters. Please set the appropriate path to `$TMPDIR`. Also, if
|
||||
|
||||
1. `brew install vfkit`
|
||||
1. `make podman-remote`
|
||||
1. `export CONTAINERS_MACHINE_PROVIDER="applehv"`
|
||||
1. `make localmachine`
|
||||
|
||||
### [Libkrun](https://github.com/containers/libkrun)
|
||||
|
||||
1. `brew install krunkit`
|
||||
1. `make podman-remote`
|
||||
1. `export CONTAINERS_MACHINE_PROVIDER="libkrun"`
|
||||
1. `make localmachine`
|
||||
|
||||
@@ -2,7 +2,6 @@ package provider
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
@@ -27,7 +26,7 @@ func Get() (vmconfigs.VMProvider, error) {
|
||||
if providerOverride, found := os.LookupEnv("CONTAINERS_MACHINE_PROVIDER"); found {
|
||||
provider = providerOverride
|
||||
}
|
||||
resolvedVMType, err := define.ParseVMType(provider, define.AppleHvVirt)
|
||||
resolvedVMType, err := define.ParseVMType(provider, define.LibKrun)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -43,9 +42,6 @@ func GetByVMType(resolvedVMType define.VMType) (vmconfigs.VMProvider, error) {
|
||||
case define.AppleHvVirt:
|
||||
return new(applehv.AppleHVStubber), nil
|
||||
case define.LibKrun:
|
||||
if runtime.GOARCH == "amd64" {
|
||||
return nil, errors.New("libkrun is not supported on Intel based machines. Please revert to the applehv provider")
|
||||
}
|
||||
return new(libkrun.LibKrunStubber), nil
|
||||
default:
|
||||
}
|
||||
@@ -53,20 +49,12 @@ func GetByVMType(resolvedVMType define.VMType) (vmconfigs.VMProvider, error) {
|
||||
}
|
||||
|
||||
func GetAll() []vmconfigs.VMProvider {
|
||||
configs := []vmconfigs.VMProvider{new(applehv.AppleHVStubber)}
|
||||
if runtime.GOARCH == "arm64" {
|
||||
configs = append(configs, new(libkrun.LibKrunStubber))
|
||||
}
|
||||
return configs
|
||||
return []vmconfigs.VMProvider{new(libkrun.LibKrunStubber), new(applehv.AppleHVStubber)}
|
||||
}
|
||||
|
||||
// SupportedProviders returns the providers that are supported on the host operating system
|
||||
func SupportedProviders() []define.VMType {
|
||||
supported := []define.VMType{define.AppleHvVirt}
|
||||
if runtime.GOARCH == "arm64" {
|
||||
return append(supported, define.LibKrun)
|
||||
}
|
||||
return supported
|
||||
return []define.VMType{define.AppleHvVirt, define.LibKrun}
|
||||
}
|
||||
|
||||
func IsInstalled(provider define.VMType) (bool, error) {
|
||||
|
||||
@@ -11,11 +11,7 @@ import (
|
||||
func TestSupportedProviders(t *testing.T) {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
if runtime.GOARCH == "arm64" {
|
||||
assert.Equal(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
|
||||
} else {
|
||||
assert.Equal(t, []define.VMType{define.AppleHvVirt}, SupportedProviders())
|
||||
}
|
||||
assert.Equal(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
|
||||
case "windows":
|
||||
assert.Equal(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, SupportedProviders())
|
||||
case "linux":
|
||||
@@ -28,8 +24,7 @@ func TestInstalledProviders(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
// TODO: need to verify if an arm64 machine reports {applehv, libkrun}
|
||||
assert.Equal(t, []define.VMType{define.AppleHvVirt}, installed)
|
||||
assert.Equal(t, []define.VMType{define.LibKrun, define.AppleHvVirt}, installed)
|
||||
case "windows":
|
||||
provider, err := Get()
|
||||
assert.NoError(t, err)
|
||||
@@ -60,9 +55,8 @@ func TestBadSupportedProviders(t *testing.T) {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
assert.NotEqual(t, []define.VMType{define.QemuVirt}, SupportedProviders())
|
||||
if runtime.GOARCH != "arm64" {
|
||||
assert.NotEqual(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
|
||||
}
|
||||
assert.NotEqual(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, SupportedProviders())
|
||||
assert.NotEqual(t, []define.VMType{define.AppleHvVirt}, SupportedProviders())
|
||||
case "windows":
|
||||
assert.NotEqual(t, []define.VMType{define.QemuVirt}, SupportedProviders())
|
||||
case "linux":
|
||||
@@ -76,9 +70,8 @@ func TestBadInstalledProviders(t *testing.T) {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
assert.NotEqual(t, []define.VMType{define.QemuVirt}, installed)
|
||||
if runtime.GOARCH != "arm64" {
|
||||
assert.NotEqual(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, installed)
|
||||
}
|
||||
assert.NotEqual(t, []define.VMType{define.AppleHvVirt}, installed)
|
||||
assert.NotEqual(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, installed)
|
||||
case "windows":
|
||||
assert.NotContains(t, installed, define.QemuVirt)
|
||||
case "linux":
|
||||
|
||||
Reference in New Issue
Block a user