Hi All, I am working on PR to change kubernetes integration testing and use the `minikube kubectl -- config view --minify` output to build the kubernetes client config. This solution has the advantage of not using hardcoded values like 8443 for server port (which is wrong when the vm-driver is docker as the port in that case is 32788 by default).
But my question is bit more generic than my PR. It is about the supported Minikube versions and kubernetes cluster version this why I decided to write this mail. To test this new solution I have created shell script to install each Minikube versions one by one, start a kubernetes cluster and view the config with the command above. Running the test I found some issues. Currently for k8s testing we suggest to use *minikube version v0.34.1 or greater* with *kubernetes version v1.15.12* (for details check "Testing K8S" section in the developer tools page <https://spark.apache.org/developer-tools.html>). *The following three findings I have:* 1) Looking the Minikube documentation I came across an advice <https://minikube.sigs.k8s.io/docs/handbook/config/#selecting-a-kubernetes-version> about checking which kubernetes cluster versions are supported for a Minikube version: *"For up to date information on supported versions, see OldestKubernetesVersion and NewestKubernetesVersion in constants.go <https://github.com/kubernetes/minikube/blob/master/pkg/minikube/constants/constants.go>"* I think it would be a good idea to follow the official support matrix of Minikube so I have collected some relevant versions into this table (the link navigates to the relevant lines in `constants.go`): | kubernetes version | minikube version | oldest | newest | default | ==================================================================== v0.34.1 <https://github.com/kubernetes/minikube/blob/v0.34.1/pkg/minikube/constants/constants.go#L133> | ??? | ??? | v1.13.3 | v1.1.0 (22 May 2019) <https://github.com/kubernetes/minikube/blob/v1.1.0/pkg/minikube/constants/constants.go#L164-L171> | v1.10.13 | v1.14.2 | v1.14.2 | v1.2.0 <https://github.com/kubernetes/minikube/blob/v1.2.0/pkg/minikube/constants/constants.go#L164-L171> | v1.10.13 | v1.15.0 | v1.15.0 | v1.3.0 (6 Aug 2019) <https://github.com/kubernetes/minikube/blob/v1.3.0/pkg/minikube/constants/constants.go#L178-L185> | v1.10.13 | v1.15.2 | v1.15.2 | v1.6.0 (11 Dec 2019) <https://github.com/kubernetes/minikube/blob/v1.6.0/pkg/minikube/constants/constants.go#L67-L74> | v1.11.10 | v1.17.0 | v1.17.0 | v1.7.3 (8 Feb 2020) <https://github.com/kubernetes/minikube/blob/436667c819c324e35d7e839f8116b968a2d0a3ff/pkg/minikube/constants/constants.go#L30-L35> | v1.11.10 | v1.17.3 | v1.17.3 | v1.13.1 <https://github.com/kubernetes/minikube/blob/v1.13.1/pkg/minikube/constants/constants.go#L29-L35> | v1.13.0 | v1.19.2 | v1.19.2 | v1.17.1 <https://github.com/kubernetes/minikube/blob/v1.17.1/pkg/minikube/constants/constants.go#L30-L36> | v1.13.0 | v1.20.2 | v1.20.3-rc.0 | Looking this we can see if we intend to support v1.15.12 as kubernetes version we should drop everything under v1.3.0. 2) I would suggest to drop v1.15.12 as kubernetes version version because of this issue <https://github.com/kubernetes/minikube/issues/10663> (I just found it by running my script). 3) On Minikube v1.7.2 there is this permission denied issue <https://github.com/kubernetes/minikube/issues/6583> so I suggest to support Minikube version 1.7.3 and greater. My test script is check_minikube_versions.zsh <https://gist.github.com/attilapiros/8648a782e0b956b59f03f914c88c2df3#file-check_minikube_versions-zsh>. It was executed on Mac but with a simple sed expression it can be tailored to linux too. *After all of this my questions:* *A) What about to change the required versions and suggest to use kubernetes v1.17.3 and Minikube v1.7.3 and greater for integration testing?* I would chose v1.17.3 for k8s cluster as that is the newest supported k8s version for that Minikube v1.7.3 (hoping it will be good for us for a long time). If you agree with this suggestion I go ahead and update the relevant documentation. *B) How about extending the integration test to check whether the Minikube version is sufficient? *By this we can provide a meaningful error when it is violated. Bests, Attila