From af5d6d060b9737dcfbb58490f47573c14bc5aeb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sun, 13 Sep 2020 22:17:10 +0200 Subject: [PATCH 1/2] Fix ForwardedPort for podman version 2.0.1 and up Increasing Docker compatibility broke Podman v1 --- pkg/drivers/kic/oci/network.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/drivers/kic/oci/network.go b/pkg/drivers/kic/oci/network.go index cafaa6a2b38b..ca9e53bdb627 100644 --- a/pkg/drivers/kic/oci/network.go +++ b/pkg/drivers/kic/oci/network.go @@ -24,6 +24,7 @@ import ( "strconv" "strings" + "github.com/blang/semver" "github.com/golang/glog" "github.com/pkg/errors" ) @@ -124,8 +125,22 @@ func containerGatewayIP(ociBin, containerName string) (net.IP, error) { func ForwardedPort(ociBin string, ociID string, contPort int) (int, error) { var rr *RunResult var err error + var v semver.Version if ociBin == Podman { + rr, err = runCmd(exec.Command(Podman, "version", "--format", "{{.Version}}")) + if err != nil { + return 0, errors.Wrapf(err, "podman version") + } + output := strings.TrimSpace(rr.Stdout.String()) + v, err = semver.Make(output) + if err != nil { + return 0, errors.Wrapf(err, "podman version") + } + } + + // podman 2.0.1 introduced docker syntax for .NetworkSettings.Ports (podman#5380) + if ociBin == Podman && v.LT(semver.Version{Major: 2, Minor: 0, Patch: 1}) { rr, err = runCmd(exec.Command(ociBin, "container", "inspect", "-f", fmt.Sprintf("{{range .NetworkSettings.Ports}}{{if eq .ContainerPort %s}}{{.HostPort}}{{end}}{{end}}", fmt.Sprint(contPort)), ociID)) if err != nil { return 0, errors.Wrapf(err, "get port %d for %q", contPort, ociID) From 48d44221a9868bc853a036e64f272ef2a0b6540a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sun, 13 Sep 2020 22:28:00 +0200 Subject: [PATCH 2/2] Don't validate Docker storage driver for Podman For podman, "overlay" and "overlay2" are the same --- cmd/minikube/cmd/start.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 21214cc48c95..fc3acd592d47 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -252,7 +252,9 @@ func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing * validateFlags(cmd, driverName) validateUser(driverName) - validateDockerStorageDriver(driverName) + if driverName == oci.Docker { + validateDockerStorageDriver(driverName) + } // Download & update the driver, even in --download-only mode if !viper.GetBool(dryRun) {