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

@@ -15,6 +15,6 @@
apiVersion: v1 apiVersion: v1
description: IBM MQ queue manager description: IBM MQ queue manager
name: ibm-mqadvanced-server-dev name: ibm-mqadvanced-server-dev
version: 1.0.1 version: 1.0.2
icon: https://developer.ibm.com/messaging/wp-content/uploads/sites/18/2017/07/IBM-MQ-Square-200.png icon: https://developer.ibm.com/messaging/wp-content/uploads/sites/18/2017/07/IBM-MQ-Square-200.png
tillerVersion: ">=2.4.0" tillerVersion: ">=2.4.0"

View File

@@ -10,7 +10,7 @@ This chart deploys a single IBM MQ Advanced for Developers server (queue manager
## Prerequisites ## Prerequisites
- Kubernetes 1.7 or greater, with beta APIs enabled - Kubernetes 1.6 or greater, with beta APIs enabled
- If persistence is enabled (see [configuration](#configuration)), then you either need to create a PersistentVolume, or specify a Storage Class if classes are defined in your cluster. - If persistence is enabled (see [configuration](#configuration)), then you either need to create a PersistentVolume, or specify a Storage Class if classes are defined in your cluster.
## Installing the Chart ## Installing the Chart

View File

@@ -24,8 +24,10 @@ metadata:
spec: spec:
serviceName: {{ .Values.service.name }} serviceName: {{ .Values.service.name }}
replicas: 1 replicas: 1
{{- if and (ge (.Capabilities.KubeVersion.Major | int) 1) (ge (.Capabilities.KubeVersion.Minor | int) 7) }}
updateStrategy: updateStrategy:
type: RollingUpdate type: RollingUpdate
{{- end }}
template: template:
metadata: metadata:
labels: labels:

View File

@@ -15,6 +15,6 @@
apiVersion: v1 apiVersion: v1
description: IBM MQ queue manager description: IBM MQ queue manager
name: ibm-mqadvanced-server-prod name: ibm-mqadvanced-server-prod
version: 1.0.1 version: 1.0.2
icon: https://developer.ibm.com/messaging/wp-content/uploads/sites/18/2017/07/IBM-MQ-Square-200.png icon: https://developer.ibm.com/messaging/wp-content/uploads/sites/18/2017/07/IBM-MQ-Square-200.png
tillerVersion: ">=2.4.0" tillerVersion: ">=2.4.0"

View File

@@ -10,7 +10,7 @@ This chart deploys a single IBM MQ Advanced server (queue manager) into an IBM C
## Prerequisites ## Prerequisites
- Kubernetes 1.7 or greater, with beta APIs enabled - Kubernetes 1.6 or greater, with beta APIs enabled
- If persistence is enabled (see [configuration](#configuration)), then you either need to create a PersistentVolume, or specify a Storage Class if classes are defined in your cluster. - If persistence is enabled (see [configuration](#configuration)), then you either need to create a PersistentVolume, or specify a Storage Class if classes are defined in your cluster.
## Installing the Chart ## Installing the Chart

View File

@@ -24,8 +24,10 @@ metadata:
spec: spec:
serviceName: {{ .Values.service.name }} serviceName: {{ .Values.service.name }}
replicas: 1 replicas: 1
{{- if and (ge (.Capabilities.KubeVersion.Major | int) 1) (ge (.Capabilities.KubeVersion.Minor | int) 7) }}
updateStrategy: updateStrategy:
type: RollingUpdate type: RollingUpdate
{{- end }}
template: template:
metadata: metadata:
labels: labels:

View File

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

View File

@@ -21,6 +21,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"runtime" "runtime"
"strconv"
"strings" "strings"
"testing" "testing"
"time" "time"
@@ -257,4 +258,23 @@ func volumesAvailable(t *testing.T, cs *kubernetes.Clientset) bool {
return false 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 // TODO: On Minikube, need to make sure Helm is initialized first