From 276ad6c7c740d7a5193b41feadaa216431d0d929 Mon Sep 17 00:00:00 2001 From: hetong07 Date: Sun, 31 Jan 2021 12:34:05 -0800 Subject: [PATCH] First step to address #10311: disallow running minikube.exe insided WSL. --- cmd/minikube/main.go | 9 +++++++++ pkg/minikube/reason/reason.go | 1 + 2 files changed, 10 insertions(+) diff --git a/cmd/minikube/main.go b/cmd/minikube/main.go index 648a265654..8cb320ce34 100644 --- a/cmd/minikube/main.go +++ b/cmd/minikube/main.go @@ -24,9 +24,13 @@ import ( "os" "regexp" "strconv" + "path/filepath" "github.com/spf13/pflag" "k8s.io/klog/v2" + "k8s.io/minikube/pkg/minikube/driver" + "k8s.io/minikube/pkg/minikube/exit" + "k8s.io/minikube/pkg/minikube/reason" // Register drivers _ "k8s.io/minikube/pkg/minikube/registry/drvs" @@ -72,6 +76,11 @@ func main() { } out.SetOutFile(os.Stdout) out.SetErrFile(os.Stderr) + + if filepath.Ext(os.Args[0]) == ".exe" && driver.IsMicrosoftWSL() { + exit.Message(reason.WslExeConflict, "Cannot run windows binary inside WSL.") + } + cmd.Execute() } diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go index ee406919d9..e1496ad00f 100644 --- a/pkg/minikube/reason/reason.go +++ b/pkg/minikube/reason/reason.go @@ -286,6 +286,7 @@ var ( EnvMultiConflict = Kind{ID: "ENV_MULTINODE_CONFLICT", ExitCode: ExGuestConflict} EnvDockerUnavailable = Kind{ID: "ENV_DOCKER_UNAVAILABLE", ExitCode: ExRuntimeUnavailable} EnvPodmanUnavailable = Kind{ID: "ENV_PODMAN_UNAVAILABLE", ExitCode: ExRuntimeUnavailable} + WslExeConflict = Kind{ID: "WSL_EXE_CONFLICT", ExitCode: ExGuestConflict} AddonUnsupported = Kind{ID: "SVC_ADDON_UNSUPPORTED", ExitCode: ExSvcUnsupported} AddonNotEnabled = Kind{ID: "SVC_ADDON_NOT_ENABLED", ExitCode: ExProgramConflict}