Fix compatibility with Kube 1.6

This commit is contained in:
Arthur Barr
2017-10-31 10:57:20 +00:00
parent 0ffa87be31
commit e6c4a21726
8 changed files with 29 additions and 4 deletions

View File

@@ -40,6 +40,7 @@ func TestHelmPredefinedVolume(t *testing.T) {
func TestHelmStorageClass(t *testing.T) {
cs := kubeLogin(t)
release := strings.ToLower(t.Name())
assertKubeVersion(t, cs, 1, 6)
if !storageClassesDefined(t, cs) {
t.Skipf("Skipping test because no storage classes were found")
}

View File

@@ -21,6 +21,7 @@ import (
"os"
"os/exec"
"runtime"
"strconv"
"strings"
"testing"
"time"
@@ -257,4 +258,23 @@ func volumesAvailable(t *testing.T, cs *kubernetes.Clientset) bool {
return false
}
// assertKubeVersion is used to assert that a test requires a specific version of Kubernetes
func assertKubeVersion(t *testing.T, cs *kubernetes.Clientset, major int, minor int) {
v, err := cs.Discovery().ServerVersion()
if err != nil {
t.Fatal(err)
}
maj, err := strconv.Atoi(v.Major)
if err != nil {
t.Fatal(err)
}
min, err := strconv.Atoi(v.Minor)
if err != nil {
t.Fatal(err)
}
if maj <= major && min < minor {
t.Skipf("Skipping test because it's not suitable for Kubernetes %v.%v", v.Major, v.Minor)
}
}
// TODO: On Minikube, need to make sure Helm is initialized first