From b4b2265a9d860af16b2966970aa8fd78d149d18f Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Mon, 15 Sep 2025 12:50:47 -0700 Subject: [PATCH] verify aux drivers --verson exit 0 --- pkg/minikube/driver/auxdriver/install.go | 30 +++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/pkg/minikube/driver/auxdriver/install.go b/pkg/minikube/driver/auxdriver/install.go index 76e3b78333..920a47fa15 100644 --- a/pkg/minikube/driver/auxdriver/install.go +++ b/pkg/minikube/driver/auxdriver/install.go @@ -65,7 +65,35 @@ func InstallOrUpdate(name string, directory string, v semver.Version, interactiv return err } } - return fixDriverPermissions(name, path, interactive) + if err := fixDriverPermissions(name, path, interactive); err != nil { + return err + } + return verifyExecutes(name) +} + +// verifyExecutes ensures the installed auxiliary driver binary executes successfully. +func verifyExecutes(name string) error { + if name != driver.KVM2 && name != driver.HyperKit { + return nil + } + + executable := fmt.Sprintf("docker-machine-driver-%s", name) + path, err := exec.LookPath(executable) + if err != nil { + return errors.Wrapf(err, "%s not found in PATH", executable) + } + + cmd := exec.Command(path, "version") + output, err := cmd.CombinedOutput() + if err != nil { + details := strings.TrimSpace(string(output)) + if details != "" { + return errors.Wrapf(err, "%s failed:\n%s", strings.Join(cmd.Args, " "), details) + } + return errors.Wrapf(err, "%s failed", strings.Join(cmd.Args, " ")) + } + + return nil } // fixDriverPermissions fixes the permissions on a driver