[GENERAL] Use readiness container v3.0.1
[oom.git] / kubernetes / dmaap / components / message-router / templates / statefulset.yaml
1 # Copyright © 2017 Amdocs, Bell Canada
2 # Modifications Copyright © 2018 AT&T
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 apiVersion: apps/v1
17 kind: StatefulSet
18 metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
19 spec:
20   selector: {{- include "common.selectors" . | nindent 4 }}
21   serviceName: {{ include "common.servicename" . }}
22   replicas: {{ .Values.replicaCount }}
23   template:
24     metadata: {{- include "common.templateMetadata" . | nindent 6 }}
25     spec:
26       initContainers:
27       - command:
28         - /app/ready.py
29         args:
30         - --container-name
31         - {{ .Values.kafka.name }}
32         - --container-name
33         - {{ .Values.zookeeper.name }}
34         env:
35         - name: NAMESPACE
36           valueFrom:
37             fieldRef:
38               apiVersion: v1
39               fieldPath: metadata.namespace
40         image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
41         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
42         name: {{ include "common.name" . }}-readiness
43       containers:
44       {{- if .Values.prometheus.jmx.enabled }}
45         - name: prometheus-jmx-exporter
46           image: "{{ .Values.prometheus.jmx.imageRepository }}/{{ .Values.prometheus.jmx.image }}:{{ .Values.prometheus.jmx.imageTag }}"
47           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
48           command:
49           - java
50           - -XX:+UnlockExperimentalVMOptions
51           - -XX:+UseCGroupMemoryLimitForHeap
52           - -XX:MaxRAMFraction=1
53           - -XshowSettings:vm
54           - -jar
55           - jmx_prometheus_httpserver.jar
56           - {{ .Values.prometheus.jmx.port | quote }}
57           - /etc/jmx-kafka/jmx-mrservice-prometheus.yml
58           ports:
59           - containerPort: {{ .Values.prometheus.jmx.port }}
60           resources:
61           volumeMounts:
62           - name: jmx-config
63             mountPath: /etc/jmx-kafka
64       {{- end }}
65         - name: {{ include "common.name" . }}
66           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
67           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
68           ports: {{ include "common.containerPorts" . | nindent 10  }}
69           {{- if eq .Values.liveness.enabled true }}
70           livenessProbe:
71             tcpSocket:
72               port: {{ .Values.liveness.port }}
73             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
74             periodSeconds: {{ .Values.liveness.periodSeconds }}
75             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
76           {{ end -}}
77           readinessProbe:
78             tcpSocket:
79               port: {{ .Values.readiness.port }}
80             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
81             periodSeconds: {{ .Values.readiness.periodSeconds }}
82             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
83           env:
84           - name: enableCadi
85             value: "{{ .Values.global.aafEnabled }}"
86           volumeMounts:
87           - mountPath: /etc/localtime
88             name: localtime
89             readOnly: true
90           - mountPath: /appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
91             subPath: MsgRtrApi.properties
92             name: appprops
93           - mountPath: /appl/dmaapMR1/bundleconfig/etc/logback.xml
94             subPath: logback.xml
95             name: logback
96           - mountPath: /appl/dmaapMR1/etc/cadi.properties
97             subPath: cadi.properties
98             name: cadi
99           - mountPath: /appl/dmaapMR1/etc/keyfile
100             subPath: mykey
101             name: mykey
102           resources: {{ include "common.resources" . | nindent 12 }}
103       volumes:
104         - name: localtime
105           hostPath:
106             path: /etc/localtime
107         - name: appprops
108           configMap:
109             name: {{ include "common.fullname" . }}-msgrtrapi-prop-configmap
110         - name: logback
111           configMap:
112             name: {{ include "common.fullname" . }}-logback-xml-configmap
113         - name: cadi
114           configMap:
115             name: {{ include "common.fullname" . }}-cadi-prop-configmap
116         {{- if .Values.prometheus.jmx.enabled }}
117         - name: jmx-config
118           configMap:
119             name: {{ include "common.fullname" . }}-prometheus-configmap
120         {{- end }}
121         - name: mykey
122           secret:
123             secretName: {{ include "common.fullname" . }}-secret
124       imagePullSecrets:
125       - name: "{{ include "common.namespace" . }}-docker-registry-key"