diff --git a/charts/ibm-mqadvanced-server-dev/Chart.yaml b/charts/ibm-mqadvanced-server-dev/Chart.yaml index 7888daf..dcfb384 100644 --- a/charts/ibm-mqadvanced-server-dev/Chart.yaml +++ b/charts/ibm-mqadvanced-server-dev/Chart.yaml @@ -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" diff --git a/charts/ibm-mqadvanced-server-dev/README.md b/charts/ibm-mqadvanced-server-dev/README.md index 98818c9..4ad0405 100644 --- a/charts/ibm-mqadvanced-server-dev/README.md +++ b/charts/ibm-mqadvanced-server-dev/README.md @@ -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 diff --git a/charts/ibm-mqadvanced-server-dev/templates/stateful-set.yaml b/charts/ibm-mqadvanced-server-dev/templates/stateful-set.yaml index 4f9736f..1d567aa 100644 --- a/charts/ibm-mqadvanced-server-dev/templates/stateful-set.yaml +++ b/charts/ibm-mqadvanced-server-dev/templates/stateful-set.yaml @@ -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: diff --git a/charts/ibm-mqadvanced-server-prod/Chart.yaml b/charts/ibm-mqadvanced-server-prod/Chart.yaml index 4f8a054..f6a303e 100644 --- a/charts/ibm-mqadvanced-server-prod/Chart.yaml +++ b/charts/ibm-mqadvanced-server-prod/Chart.yaml @@ -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" diff --git a/charts/ibm-mqadvanced-server-prod/README.md b/charts/ibm-mqadvanced-server-prod/README.md index 401acd1..ee506c0 100644 --- a/charts/ibm-mqadvanced-server-prod/README.md +++ b/charts/ibm-mqadvanced-server-prod/README.md @@ -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 diff --git a/charts/ibm-mqadvanced-server-prod/templates/stateful-set.yaml b/charts/ibm-mqadvanced-server-prod/templates/stateful-set.yaml index bfcd3b3..fd65853 100644 --- a/charts/ibm-mqadvanced-server-prod/templates/stateful-set.yaml +++ b/charts/ibm-mqadvanced-server-prod/templates/stateful-set.yaml @@ -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: diff --git a/test/kubernetes/helm_test.go b/test/kubernetes/helm_test.go index 6e33c4e..af8e41e 100644 --- a/test/kubernetes/helm_test.go +++ b/test/kubernetes/helm_test.go @@ -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") } diff --git a/test/kubernetes/helm_test_util.go b/test/kubernetes/helm_test_util.go index 9e72dd7..2b5a118 100644 --- a/test/kubernetes/helm_test_util.go +++ b/test/kubernetes/helm_test_util.go @@ -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