# © Copyright IBM Corporation 2017 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: {{ template "fullname" . }} labels: app: {{ template "fullname" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" 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: app: {{ template "fullname" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" QM_IDENTIFIER: "{{ .Release.Name }}" spec: {{- if .Values.image.pullSecret }} imagePullSecrets: - name: {{ .Values.image.pullSecret }} {{- end }} containers: - name: qmgr image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - containerPort: 1414 env: - name: LICENSE value: {{ .Values.license }} - name: MQ_QMGR_NAME value: {{ .Values.queueManager.name | default .Release.Name | replace "-" "" }} {{- if .Values.persistence.enabled }} volumeMounts: - mountPath: "/mnt/mqm" name: "{{ template "fullname" . }}-{{ .Values.dataPVC.name }}" {{- end }} # Set liveness probe to determine if the queue manager is running livenessProbe: exec: command: - chkmqhealthy initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.livenessProbe.periodSeconds }} timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} failureThreshold: {{ .Values.livenessProbe.failureThreshold }} # Set readiness probe to determine if the MQ listener is running readinessProbe: exec: command: - chkmqready initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.readinessProbe.periodSeconds }} timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} failureThreshold: {{ .Values.readinessProbe.failureThreshold }} resources: limits: {{ toYaml .Values.resources.limits | indent 14 }} requests: {{ toYaml .Values.resources.requests | indent 14 }} volumeClaimTemplates: {{- if .Values.persistence.enabled }} - metadata: name: "{{ template "fullname" . }}-{{ .Values.dataPVC.name }}" labels: app: {{ template "fullname" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" spec: {{- if .Values.persistence.useDynamicProvisioning }} ## If present, use the storageClassName from the values.yaml, else use the ## default storageClass setup by Kubernetes Administrator ## ## Setting storageClassName to nil means use the default storage class storageClassName: {{ default nil .Values.dataPVC.storageClassName | quote }} {{- else }} ## Disable dynamic provisioning storageClassName: "" {{- end }} accessModes: [ "ReadWriteOnce" ] resources: requests: storage: {{ .Values.dataPVC.size | quote }} {{- end }}