[CONSUL] Add limits to consul chart.
[oom.git] / kubernetes / clamp / components / 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 {{ include "common.certInitializer.initContainer" . | indent 6 }}
63       containers:
64         - name: {{ include "common.name" . }}
65           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
66           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
67           {{- if .Values.global.aafEnabled }}
68           command:
69           - sh
70           args:
71           - -c
72           - |
73             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.clamp_key }} /usr/share/elasticsearch/config/{{ .Values.certInitializer.clamp_key }}
74             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.clamp_pem }} /usr/share/elasticsearch/config/{{ .Values.certInitializer.clamp_pem }}
75             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.clamp_ca_certs_pem }} /usr/share/elasticsearch/config/{{ .Values.certInitializer.clamp_ca_certs_pem }}
76             /usr/local/bin/docker-entrypoint.sh
77           {{- end }}
78           ports:
79           - containerPort: {{ .Values.service.internalPort }}
80             name: {{ include "common.servicename" . }}
81           - containerPort: {{ .Values.service.internalPort2 }}
82             name: {{ include "common.servicename" . }}2
83 # disable liveness probe when breakpoints set in debugger
84           # so K8s doesn't restart unresponsive container
85           {{- if eq .Values.liveness.enabled true }}
86           livenessProbe:
87             tcpSocket:
88               port: {{ .Values.service.internalPort }}
89             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
90             periodSeconds: {{ .Values.liveness.periodSeconds }}
91             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
92           {{ end -}}
93           readinessProbe:
94             tcpSocket:
95               port: {{ .Values.service.internalPort2 }}
96             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
97             periodSeconds: {{ .Values.readiness.periodSeconds }}
98             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
99           env:
100           volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
101           - mountPath: /etc/localtime
102             name: localtime
103             readOnly: true
104           - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
105             name: {{ include "common.fullname" . }}-config
106             subPath: elasticsearch.yml
107           - mountPath: /usr/share/elasticsearch/data/
108             name: {{ include "common.fullname" . }}-data
109           resources:
110 {{ include "common.resources" . | indent 12 }}
111         {{- if .Values.nodeSelector }}
112         nodeSelector:
113 {{ toYaml .Values.nodeSelector | indent 10 }}
114         {{- end -}}
115         {{- if .Values.affinity }}
116         affinity:
117 {{ toYaml .Values.affinity | indent 10 }}
118         {{- end }}
119       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
120         - name: localtime
121           hostPath:
122             path: /etc/localtime
123         - name: {{ include "common.fullname" . }}-config
124           configMap:
125             name: {{ include "common.fullname" . }}-configmap
126             items:
127             - key: elasticsearch.yml
128               path: elasticsearch.yml
129         - name: {{ include "common.fullname" . }}-data
130           persistentVolumeClaim:
131             claimName: {{ include "common.fullname" . }}
132         - name: {{ include "common.fullname" . }}-logs
133           hostPath:
134             path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.mountSubPathLogs }}
135       imagePullSecrets:
136       - name: "{{ include "common.namespace" . }}-docker-registry-key"