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
description: IBM MQ queue manager
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
tillerVersion: ">=2.4.0"

View File

@@ -10,7 +10,7 @@ This chart deploys a single IBM MQ Advanced for Developers server (queue manager
## 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.
## Installing the Chart

View File

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

View File

@@ -15,6 +15,6 @@
apiVersion: v1
description: IBM MQ queue manager
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
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
- 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.
## Installing the Chart

View File

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

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