Skip to content

Commit 6681a4c

Browse files
Merge pull request #97 from ibm-messaging/9.4.0
Updates for 9.4.0
2 parents 818df02 + 4f8979a commit 6681a4c

File tree

19 files changed

+60
-12
lines changed

19 files changed

+60
-12
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# IBM MQ Sample Helm Chart
2-
This repository provides a helm chart to deploy an IBM® MQ container built from the [IBM MQ Container GitHub repository](https://github.com/ibm-messaging/mq-container), and has been verified against the [9.3.5 branch](https://github.com/ibm-messaging/mq-container/tree/9.3.5).
2+
This repository provides a helm chart to deploy an IBM® MQ container built from the [IBM MQ Container GitHub repository](https://github.com/ibm-messaging/mq-container), and has been verified against the [9.4.0 branch](https://github.com/ibm-messaging/mq-container/tree/9.4.0).
33

44
## Pre-reqs
55
Prior to using the Helm chart you will need to install two dependencies:

charts/ibm-mq/Chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
apiVersion: v2
1515
name: ibm-mq
1616
description: IBM MQ queue manager
17-
version: 9.0.0
17+
version: 10.0.0
1818
type: application
19-
appVersion: 9.3.5.0
19+
appVersion: 9.4.0.0
2020
kubeVersion: ">=1.18.0-0"
2121
keywords:
2222
- IBM MQ

charts/ibm-mq/README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## Introduction
66

7-
This chart deploys a single IBM® MQ server (Queue Manager) built from the [IBM MQ Container GitHub repository](https://github.com/ibm-messaging/mq-container), and has been verified using the [9.3.5 branch](https://github.com/ibm-messaging/mq-container/tree/9.3.5). IBM MQ is messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. It uses message queues, topics and subscriptions to facilitate the exchanges of information and offers a single messaging solution for cloud and on-premises environments.
7+
This chart deploys a single IBM® MQ server (Queue Manager) built from the [IBM MQ Container GitHub repository](https://github.com/ibm-messaging/mq-container), and has been verified using the [9.4.0 branch](https://github.com/ibm-messaging/mq-container/tree/9.4.0). IBM MQ is messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. It uses message queues, topics and subscriptions to facilitate the exchanges of information and offers a single messaging solution for cloud and on-premises environments.
88

99
## Chart Details
1010

@@ -106,7 +106,7 @@ Alternatively, each parameter can be specified by using the `--set key=value[,ke
106106
| ------------------------------- | --------------------------------------------------------------- | ------------------------------------------ |
107107
| `license` | Set to `accept` to accept the terms of the IBM license | `"not accepted"` |
108108
| `image.repository` | Image full name including repository | `ibmcom/mq` |
109-
| `image.tag` | Image tag | `9.3.5.0-r1` |
109+
| `image.tag` | Image tag | `9.4.0.0-r1` |
110110
| `image.pullPolicy` | Setting that controls when the kubelet attempts to pull the specified image. | `IfNotPresent` |
111111
| `image.pullSecret` | An optional list of references to secrets in the same namespace to use for pulling any of the images used by this QueueManager. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honoured. For more information, see [here](https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod) | `nil` |
112112
| `metadata.labels` | The labels field serves as a pass-through for Pod labels. Users can add any label to this field and have it apply to the Pod. | `{}` |
@@ -148,6 +148,7 @@ Alternatively, each parameter can be specified by using the `--set key=value[,ke
148148
| `security.context.seccompProfile.type` | Seccomp stands for secure computing mode and when enabled restricts the calls that can be made to the kernel. For more information, see https://kubernetes.io/docs/tutorials/security/seccomp/ | `nil` |
149149
| `security.context.supplementalGroups` | A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. | `nil` |
150150
| `security.initVolumeAsRoot` | This affects the securityContext used by the container which initializes the PersistentVolume. Set this to true if you are using a storage provider which requires you to be the root user to access newly provisioned volumes. Setting this to true affects which Security Context Constraints (SCC) object you can use, and the Queue Manager may fail to start if you are not authorized to use an SCC which allows the root user. Defaults to false. For more information, see https://docs.openshift.com/container-platform/latest/authentication/managing-security-context-constraints.html. | `false` |
151+
| `security.readOnlyRootFilesystem` | Enable readonly root filesystem. | `false` |
151152
| `security.runAsUser` | Controls which user ID the containers are run with. | `nil` |
152153
| `livenessProbe.initialDelaySeconds` | Number of seconds after the container has started before the probe is initiated. Defaults to 90 seconds for SingleInstance. Defaults to 0 seconds for a Native HA and Multi-instance deployments. | `90` - single instance, `0` - Native HA and Multi-instance |
153154
| `livenessProbe.periodSeconds` | How often (in seconds) to perform the probe. | 10 |
@@ -175,14 +176,15 @@ Alternatively, each parameter can be specified by using the `--set key=value[,ke
175176
| `route.nodePort.mqtraffic ` | Controls if a node port is created for the MQ data traffic. | `false` |
176177
| `route.openShiftRoute.webconsole` | Controls if an OpenShift Route is created for the MQ web console. | `false` |
177178
| `route.openShiftRoute.mqtraffic ` | Controls if an OpenShift Route is created for the MQ data traffic. | `false` |
178-
| `log.format` | Which log format to use for this container. Use `json`` for JSON-formatted logs from the container. Use `basic` for text-formatted messages. | `basic` |
179+
| `log.format` | Which log format to use for this container. Use `json` for JSON-formatted logs from the container. Use `basic` for text-formatted messages. | `basic` |
179180
| `log.debug` | Enables additional log output for debug purposes. | `false` |
180181
| `trace.strmqm` | Whether to enable MQ trace on the `strmqm` command | `false` |
181182
| `trace.crtmqdir` | Whether to enable MQ trace on the `crtmqdir` command | `false` |
182183
| `trace.crtmqm` | Whether to enable MQ trace on `crtmqm` command | `false` |
183184
| `metrics.enabled` | Whether or not to enable an endpoint for Prometheus-compatible metrics. | `true` |
184185
| `affinity.nodeAffinity.matchExpressions` | Force deployments to particular nodes. Corresponds to the Kubernetes specification for [NodeSelectorRequirement](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#nodeselectorrequirement-v1-core) | `` |
185186
| `tolerations` | Allow pods to be scheduled on nodes with particular taints. Corresponds to the Kubernetes specification for [Torleration](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#toleration-v1-core) | `` |
187+
| `topologySpreadConstraints` | Control how pods are spread across the Kubernetes cluster. Corresponds to the Kubernetes specification for [Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) | `` |
186188

187189
## Storage
188190

charts/ibm-mq/templates/stateful-set.yaml

+22-3
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ spec:
8787
- {{ . }}
8888
{{- end }}
8989
{{- end }}
90+
{{- if .Values.topologySpreadConstraints }}
91+
topologySpreadConstraints: {{ toYaml .Values.topologySpreadConstraints | nindent 8 }}
92+
{{- end }}
9093
{{- if .Values.tolerations }}
9194
tolerations:
9295
{{- range $index, $source := .Values.tolerations }}
@@ -126,6 +129,8 @@ spec:
126129
volumes:
127130
{{- else if .Values.queueManager.multiinstance.enable }}
128131
volumes:
132+
{{- else if .Values.security.readOnlyRootFilesystem }}
133+
volumes:
129134
{{- end}}
130135
{{- if .Values.queueManager.multiinstance.enable }}
131136
- name: {{ $dataVolumeClaimName }}
@@ -249,6 +254,12 @@ spec:
249254
- key: mqwebuser.xml
250255
path: mqwebuser.xml
251256
{{- end }}
257+
{{- if .Values.security.readOnlyRootFilesystem }}
258+
- name: run-volume
259+
emptyDir: {}
260+
- name: tmp-volume
261+
emptyDir: {}
262+
{{- end }}
252263
terminationGracePeriodSeconds: {{.Values.queueManager.terminationGracePeriodSeconds}}
253264
containers:
254265
- name: qmgr
@@ -299,7 +310,7 @@ spec:
299310
- name: MQ_NATIVE_HA_INSTANCE_2_REPLICATION_ADDRESS
300311
value: {{ include "ibm-mq.pod2.service" . }}(9414)
301312
{{- end }}
302-
- name: LOG_FORMAT
313+
- name: MQ_LOGGING_CONSOLE_FORMAT
303314
value: {{ .Values.log.format | default "basic" }}
304315
- name: MQ_ENABLE_METRICS
305316
value: "{{ .Values.metrics.enabled | default false }}"
@@ -339,6 +350,8 @@ spec:
339350
volumeMounts:
340351
{{- else if .Values.queueManager.multiinstance.enable }}
341352
volumeMounts:
353+
{{- else if .Values.security.readOnlyRootFilesystem }}
354+
volumeMounts:
342355
{{- end}}
343356
{{- if .Values.queueManager.nativeha.tls }}
344357
{{- if .Values.queueManager.nativeha.tls.secretName }}
@@ -424,9 +437,15 @@ spec:
424437
subPath: "mqwebuser.xml"
425438
readOnly: true
426439
{{- end }}
440+
{{- if .Values.security.readOnlyRootFilesystem }}
441+
- mountPath: "/run"
442+
name: run-volume
443+
- mountPath: "/tmp"
444+
name: tmp-volume
445+
{{- end }}
427446
securityContext:
428447
allowPrivilegeEscalation: false
429-
readOnlyRootFilesystem: false
448+
readOnlyRootFilesystem: {{ .Values.security.readOnlyRootFilesystem }}
430449
{{- if .Values.security.runAsUser }}
431450
runAsUser: {{ .Values.security.runAsUser }}
432451
{{- end }}
@@ -491,7 +510,7 @@ spec:
491510
value: "{{ .Values.queueManager.name | default .Release.Name | replace "-" "" }}"
492511
- name: MQ_NATIVE_HA
493512
value: "{{ .Values.queueManager.nativeha.enable | default false }}"
494-
- name: LOG_FORMAT
513+
- name: MQ_LOGGING_CONSOLE_FORMAT
495514
value: {{ .Values.log.format | default "basic" }}
496515
- name: DEBUG
497516
value: "{{ .Values.log.debug | default false }}"

charts/ibm-mq/values.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ image:
1919
# repository is the container repository to use
2020
repository: icr.io/ibm-messaging/mq
2121
# tag is the tag to use for the container repository
22-
tag: 9.3.5.0-r1
22+
tag: 9.4.0.0-r1
2323
# pullSecret is the secret to use when pulling the image from a private registry
2424
pullSecret:
2525
# pullPolicy is either IfNotPresent or Always (https://kubernetes.io/docs/concepts/containers/images/)
@@ -85,6 +85,7 @@ security:
8585
# initVolumeAsRoot specifies whether or not storage provider requires root permissions to initialize
8686
initVolumeAsRoot: false
8787
runAsUser:
88+
readOnlyRootFilesystem: false
8889

8990
# queueManager section specifies settings for the MQ Queue Manager
9091
queueManager:
@@ -186,6 +187,8 @@ affinity:
186187
nodeAffinity:
187188
matchExpressions: []
188189

190+
topologySpreadConstraints: {}
191+
189192
tolerations: []
190193

191194
web:

samples/AWSEKS/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Prior to using the Helm chart you will need to install four dependencies:
1919
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep secureapp`. Wait until one of the three Pods is showing `1/1` under the ready status (only one will ever show this, the remainding two will be `0/1` showing they are replicas).
2020

2121
## Testing
22+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
23+
2224
Navigate to *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
2325

2426
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/AWSEKSPartnerSolution/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Prior to using the Helm chart you will need to install four dependencies:
2020
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep secureapp`. Wait until one of the three Pods is showing `1/1` under the ready status (only one will ever show this, the remainding two will be `0/1` showing they are replicas).
2121

2222
## Testing
23+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
24+
2325
Navigate to *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
2426

2527
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/AzureAKS/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ Prior to using the Helm chart you will need to install four dependencies:
2727
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep secureapp`. Wait until one of the three Pods is showing `1/1` under the ready status (only one will ever show this, the remainding two will be `0/1` showing they are replicas).
2828
2929
## Testing
30+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
31+
3032
Navigate to the *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
3133
3234
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/AzureAKSFreeTier/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Prior to using the Helm chart you will need to install four dependencies:
2929
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep secureapp`. Wait until the Pod is showing `1/1` under the ready status.
3030
3131
## Testing
32+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
33+
3234
Navigate to the *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
3335
3436
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/AzureAKSMultiInstance/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Prior to using the Helm chart you will need to install four dependencies:
2828
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep multiinstance`. Wait until one of the three Pods is showing `1/1` under the ready status (only one will ever show this, the remainding two will be `0/1` showing they are replicas).
2929
3030
## Testing
31+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
32+
3133
Navigate to the *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
3234
3335
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/IBMKubernetesService/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Prior to using the Helm chart you will need to install/config four dependencies:
2020
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep secureapp`. Wait until one of the three Pods is showing `1/1` under the ready status (only one will ever show this, the remainding two will be `0/1` showing they are replicas).
2121

2222
## Testing
23+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
24+
2325
Navigate to *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
2426

2527
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/Minikube/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ Prior to using the Helm chart you will need to install three dependencies:
2525
Within minikube there is an unfortunate behavior on certain platforms where it is not immediately possible to communicate from the host machine to a node port. The issue was reported in this [GitHub issue](https://github.com/kubernetes/minikube/issues/7344). Therefore there are two sets of instructions, one for Linux and another for alternative platforms.
2626

2727
### Testing on Linux
28+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
29+
2830
Navigate to *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
2931

3032
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/OpenShiftIBMPower/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Prior to using the Helm chart you will need to install three dependencies:
1919
1. This will take a minute or so to deploy, and the status can be checked with the following command: `kubectl get pods | grep secureapp`. Wait until the Pod is showing `1/1` under the ready status.
2020

2121
## Testing
22+
The prerequisite is that the IBM MQ is installed under `/opt/mqm` directory or binaries (Redistributable client) are available in the same path on the host machine on which the testing is carried out.
23+
2224
Navigate to *../test* directory. No modifications should be required, as the endpoint configuration for your environment will be discovered automatically.
2325

2426
1. To initiate the testing, run the **./sendMessage.sh \<namespace\>** command. It will then connect to MQ and start sending messages immediately.

samples/OpenShiftIBMPower/deploy/ibmpower.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
license: accept
1515
image:
1616
repository: cp.icr.io/cp/ibm-mqadvanced-server
17-
tag: 9.3.5.0-r1-ppc64le
17+
tag: 9.4.0.0-r1-ppc64le
1818
pullSecret: ibm-entitlement-key
1919
queueManager:
2020
mqscConfigMaps:

0 commit comments

Comments
 (0)