[DCAEMOD] Uses new tpls for repos / images
[oom.git] / kubernetes / clamp / components / clamp-dash-es / templates / deployment.yaml
1 {{/*
2 # Copyright © 2017 Amdocs, Bell Canada
3 # Modifications Copyright © 2018 AT&T
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 */}}
17
18 apiVersion: apps/v1
19 kind: Deployment
20 metadata:
21   name: {{ include "common.fullname" . }}
22   namespace: {{ include "common.namespace" . }}
23   labels:
24     app: {{ include "common.name" . }}
25     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
26     release: {{ include "common.release" . }}
27     heritage: {{ .Release.Service }}
28 spec:
29   replicas: {{ .Values.replicaCount }}
30   selector:
31     matchLabels:
32       app: {{ include "common.name" . }}
33   template:
34     metadata:
35       labels:
36         app: {{ include "common.name" . }}
37         release: {{ include "common.release" . }}
38     spec:
39       initContainers:
40       - command:
41         - /bin/sh
42         - -c
43         - |
44           sysctl -w vm.max_map_count=262144
45           mkdir -p /usr/share/elasticsearch/logs
46           mkdir -p /usr/share/elasticsearch/data
47           chmod -R 777 /usr/share/elasticsearch
48         env:
49         - name: NAMESPACE
50           valueFrom:
51             fieldRef:
52               apiVersion: v1
53               fieldPath: metadata.namespace
54         securityContext:
55           privileged: true
56         image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
57         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
58         name: init-sysctl
59         volumeMounts:
60         - name: {{ include "common.fullname" . }}-logs
61           mountPath: /usr/share/elasticsearch/logs/
62         - name: {{ include "common.fullname" . }}-data
63           mountPath: /usr/share/elasticsearch/data/
64 {{ include "common.certInitializer.initContainer" . | indent 6 }}
65       containers:
66         - name: {{ include "common.name" . }}
67           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
68           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
69           {{- if .Values.global.aafEnabled }}
70           command:
71           - sh
72           args:
73           - -c
74           - |
75             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.clamp_key }} /usr/share/elasticsearch/config/{{ .Values.certInitializer.clamp_key }}
76             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.clamp_pem }} /usr/share/elasticsearch/config/{{ .Values.certInitializer.clamp_pem }}
77             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.clamp_ca_certs_pem }} /usr/share/elasticsearch/config/{{ .Values.certInitializer.clamp_ca_certs_pem }}
78             /usr/local/bin/docker-entrypoint.sh
79           {{- end }}
80           ports:
81           - containerPort: {{ .Values.service.internalPort }}
82             name: {{ include "common.servicename" . }}
83           - containerPort: {{ .Values.service.internalPort2 }}
84             name: {{ include "common.servicename" . }}2
85 # disable liveness probe when breakpoints set in debugger
86           # so K8s doesn't restart unresponsive container
87           {{- if eq .Values.liveness.enabled true }}
88           livenessProbe:
89             tcpSocket:
90               port: {{ .Values.service.internalPort }}
91             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
92             periodSeconds: {{ .Values.liveness.periodSeconds }}
93             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
94           {{ end -}}
95           readinessProbe:
96             tcpSocket:
97               port: {{ .Values.service.internalPort2 }}
98             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
99             periodSeconds: {{ .Values.readiness.periodSeconds }}
100             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
101           env:
102           volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
103           - mountPath: /etc/localtime
104             name: localtime
105             readOnly: true
106           - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
107             name: {{ include "common.fullname" . }}-config
108             subPath: elasticsearch.yml
109           - mountPath: /usr/share/elasticsearch/data/
110             name: {{ include "common.fullname" . }}-data
111           resources:
112 {{ include "common.resources" . | indent 12 }}
113         {{- if .Values.nodeSelector }}
114         nodeSelector:
115 {{ toYaml .Values.nodeSelector | indent 10 }}
116         {{- end -}}
117         {{- if .Values.affinity }}
118         affinity:
119 {{ toYaml .Values.affinity | indent 10 }}
120         {{- end }}
121       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
122         - name: localtime
123           hostPath:
124             path: /etc/localtime
125         - name: {{ include "common.fullname" . }}-config
126           configMap:
127             name: {{ include "common.fullname" . }}-configmap
128             items:
129             - key: elasticsearch.yml
130               path: elasticsearch.yml
131         - name: {{ include "common.fullname" . }}-data
132           persistentVolumeClaim:
133             claimName: {{ include "common.fullname" . }}
134         - name: {{ include "common.fullname" . }}-logs
135           hostPath:
136             path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.mountSubPathLogs }}
137       imagePullSecrets:
138       - name: "{{ include "common.namespace" . }}-docker-registry-key"