Merge "[CLAMP] Update mariadb db to latest"
[oom.git] / kubernetes / clamp / charts / clamp-dash-es / templates / deployment.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: Deployment
18 metadata:
19   name: {{ include "common.fullname" . }}
20   namespace: {{ include "common.namespace" . }}
21   labels:
22     app: {{ include "common.name" . }}
23     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
24     release: {{ include "common.release" . }}
25     heritage: {{ .Release.Service }}
26 spec:
27   replicas: {{ .Values.replicaCount }}
28   selector:
29     matchLabels:
30       app: {{ include "common.name" . }}
31   template:
32     metadata:
33       labels:
34         app: {{ include "common.name" . }}
35         release: {{ include "common.release" . }}
36     spec:
37       initContainers:
38       - command:
39         - /bin/sh
40         - -c
41         - |
42           sysctl -w vm.max_map_count=262144
43           mkdir -p /usr/share/elasticsearch/logs
44           mkdir -p /usr/share/elasticsearch/data
45           chmod -R 777 /usr/share/elasticsearch
46         env:
47         - name: NAMESPACE
48           valueFrom:
49             fieldRef:
50               apiVersion: v1
51               fieldPath: metadata.namespace
52         securityContext:
53           privileged: true
54         image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
55         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
56         name: init-sysctl
57         volumeMounts:
58         - name: {{ include "common.fullname" . }}-logs
59           mountPath: /usr/share/elasticsearch/logs/
60         - name: {{ include "common.fullname" . }}-data
61           mountPath: /usr/share/elasticsearch/data/
62       containers:
63         - name: {{ include "common.name" . }}
64           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
65           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
66           ports:
67           - containerPort: {{ .Values.service.internalPort }}
68             name: {{ include "common.servicename" . }}
69           - containerPort: {{ .Values.service.internalPort2 }}
70             name: {{ include "common.servicename" . }}2
71 # disable liveness probe when breakpoints set in debugger
72           # so K8s doesn't restart unresponsive container
73           {{- if eq .Values.liveness.enabled true }}
74           livenessProbe:
75             tcpSocket:
76               port: {{ .Values.service.internalPort }}
77             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
78             periodSeconds: {{ .Values.liveness.periodSeconds }}
79             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
80           {{ end -}}
81           readinessProbe:
82             tcpSocket:
83               port: {{ .Values.service.internalPort2 }}
84             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
85             periodSeconds: {{ .Values.readiness.periodSeconds }}
86             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
87           env:
88           volumeMounts:
89           - mountPath: /etc/localtime
90             name: localtime
91             readOnly: true
92           - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
93             name: {{ include "common.fullname" . }}-config
94             subPath: elasticsearch.yml
95           - mountPath: /usr/share/elasticsearch/data/
96             name: {{ include "common.fullname" . }}-data
97           resources:
98 {{ include "common.resources" . | indent 12 }}
99         {{- if .Values.nodeSelector }}
100         nodeSelector:
101 {{ toYaml .Values.nodeSelector | indent 10 }}
102         {{- end -}}
103         {{- if .Values.affinity }}
104         affinity:
105 {{ toYaml .Values.affinity | indent 10 }}
106         {{- end }}
107       volumes:
108         - name: localtime
109           hostPath:
110             path: /etc/localtime
111         - name: {{ include "common.fullname" . }}-config
112           configMap:
113             name: {{ include "common.fullname" . }}-configmap
114             items:
115             - key: elasticsearch.yml
116               path: elasticsearch.yml
117         - name: {{ include "common.fullname" . }}-data
118           persistentVolumeClaim:
119             claimName: {{ include "common.fullname" . }}
120         - name: {{ include "common.fullname" . }}-logs
121           hostPath:
122             path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.mountSubPathLogs }}
123       imagePullSecrets:
124       - name: "{{ include "common.namespace" . }}-docker-registry-key"