Skip to content

Commit 18aa784

Browse files
Merge pull request #27546 from jakecorrenti/libkrun-as-default
machine: change default macOS provider to libkrun
2 parents 7cd9b81 + 453a451 commit 18aa784

File tree

3 files changed

+11
-30
lines changed

3 files changed

+11
-30
lines changed

pkg/machine/e2e/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ above.
6767
## MacOS
6868

6969
Macs now support two different machine providers: `applehv` and `libkrun`. The
70-
`applehv` provider is the default.
70+
`libkrun` provider is the default.
7171

7272
Note: On macOS, an error will occur if the path length of `$TMPDIR` is longer
7373
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
7777

7878
1. `brew install vfkit`
7979
1. `make podman-remote`
80+
1. `export CONTAINERS_MACHINE_PROVIDER="applehv"`
8081
1. `make localmachine`
8182

8283
### [Libkrun](https://github.com/containers/libkrun)
8384

8485
1. `brew install krunkit`
8586
1. `make podman-remote`
86-
1. `export CONTAINERS_MACHINE_PROVIDER="libkrun"`
8787
1. `make localmachine`

pkg/machine/provider/platform_darwin.go

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package provider
22

33
import (
44
"bytes"
5-
"errors"
65
"fmt"
76
"os"
87
"os/exec"
@@ -27,7 +26,7 @@ func Get() (vmconfigs.VMProvider, error) {
2726
if providerOverride, found := os.LookupEnv("CONTAINERS_MACHINE_PROVIDER"); found {
2827
provider = providerOverride
2928
}
30-
resolvedVMType, err := define.ParseVMType(provider, define.AppleHvVirt)
29+
resolvedVMType, err := define.ParseVMType(provider, define.LibKrun)
3130
if err != nil {
3231
return nil, err
3332
}
@@ -43,30 +42,19 @@ func GetByVMType(resolvedVMType define.VMType) (vmconfigs.VMProvider, error) {
4342
case define.AppleHvVirt:
4443
return new(applehv.AppleHVStubber), nil
4544
case define.LibKrun:
46-
if runtime.GOARCH == "amd64" {
47-
return nil, errors.New("libkrun is not supported on Intel based machines. Please revert to the applehv provider")
48-
}
4945
return new(libkrun.LibKrunStubber), nil
5046
default:
5147
}
5248
return nil, fmt.Errorf("unsupported virtualization provider: `%s`", resolvedVMType.String())
5349
}
5450

5551
func GetAll() []vmconfigs.VMProvider {
56-
configs := []vmconfigs.VMProvider{new(applehv.AppleHVStubber)}
57-
if runtime.GOARCH == "arm64" {
58-
configs = append(configs, new(libkrun.LibKrunStubber))
59-
}
60-
return configs
52+
return []vmconfigs.VMProvider{new(libkrun.LibKrunStubber), new(applehv.AppleHVStubber)}
6153
}
6254

6355
// SupportedProviders returns the providers that are supported on the host operating system
6456
func SupportedProviders() []define.VMType {
65-
supported := []define.VMType{define.AppleHvVirt}
66-
if runtime.GOARCH == "arm64" {
67-
return append(supported, define.LibKrun)
68-
}
69-
return supported
57+
return []define.VMType{define.AppleHvVirt, define.LibKrun}
7058
}
7159

7260
func IsInstalled(provider define.VMType) (bool, error) {

pkg/machine/provider/platform_test.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,7 @@ import (
1111
func TestSupportedProviders(t *testing.T) {
1212
switch runtime.GOOS {
1313
case "darwin":
14-
if runtime.GOARCH == "arm64" {
15-
assert.Equal(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
16-
} else {
17-
assert.Equal(t, []define.VMType{define.AppleHvVirt}, SupportedProviders())
18-
}
14+
assert.Equal(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
1915
case "windows":
2016
assert.Equal(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, SupportedProviders())
2117
case "linux":
@@ -28,8 +24,7 @@ func TestInstalledProviders(t *testing.T) {
2824
assert.NoError(t, err)
2925
switch runtime.GOOS {
3026
case "darwin":
31-
// TODO: need to verify if an arm64 machine reports {applehv, libkrun}
32-
assert.Equal(t, []define.VMType{define.AppleHvVirt}, installed)
27+
assert.Equal(t, []define.VMType{define.LibKrun, define.AppleHvVirt}, installed)
3328
case "windows":
3429
provider, err := Get()
3530
assert.NoError(t, err)
@@ -60,9 +55,8 @@ func TestBadSupportedProviders(t *testing.T) {
6055
switch runtime.GOOS {
6156
case "darwin":
6257
assert.NotEqual(t, []define.VMType{define.QemuVirt}, SupportedProviders())
63-
if runtime.GOARCH != "arm64" {
64-
assert.NotEqual(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
65-
}
58+
assert.NotEqual(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, SupportedProviders())
59+
assert.NotEqual(t, []define.VMType{define.AppleHvVirt}, SupportedProviders())
6660
case "windows":
6761
assert.NotEqual(t, []define.VMType{define.QemuVirt}, SupportedProviders())
6862
case "linux":
@@ -76,9 +70,8 @@ func TestBadInstalledProviders(t *testing.T) {
7670
switch runtime.GOOS {
7771
case "darwin":
7872
assert.NotEqual(t, []define.VMType{define.QemuVirt}, installed)
79-
if runtime.GOARCH != "arm64" {
80-
assert.NotEqual(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, installed)
81-
}
73+
assert.NotEqual(t, []define.VMType{define.AppleHvVirt}, installed)
74+
assert.NotEqual(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, installed)
8275
case "windows":
8376
assert.NotContains(t, installed, define.QemuVirt)
8477
case "linux":

0 commit comments

Comments
 (0)