Merge "[DCAEMOD] Uses new tpls for repos / images"
[oom.git] / kubernetes / portal / components / portal-cassandra / 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   selector:
30     matchLabels:
31       app: {{ include "common.name" . }}
32   replicas: {{ .Values.replicaCount }}
33   template:
34     metadata:
35       labels:
36         app: {{ include "common.name" . }}
37         release: {{ include "common.release" . }}
38     spec:
39       containers:
40       - name: {{ include "common.name" . }}
41         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
42         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
43         ports:
44         - containerPort: {{ .Values.service.internalPort }}
45         - containerPort: {{ .Values.service.internalPort2 }}
46         - containerPort: {{ .Values.service.internalPort3 }}
47         - containerPort: {{ .Values.service.internalPort4 }}
48         - containerPort: {{ .Values.service.internalPort5 }}
49         {{ if eq .Values.liveness.enabled true }}
50         livenessProbe:
51           exec:
52             command:
53             - /bin/bash
54             - -c
55             - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
56           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
57           periodSeconds: {{ .Values.liveness.periodSeconds }}
58         {{ end }}
59         readinessProbe:
60           exec:
61             command:
62             - /bin/bash
63             - -c
64             - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
65           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
66           periodSeconds: {{ .Values.readiness.periodSeconds }}
67         env:
68           - name: CASSUSER
69             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-creds" "key" "login") | indent 12}}
70           - name: CASSPASS
71             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-creds" "key" "password") | indent 12}}
72           - name: JVM_OPTS
73             value: "{{ .Values.config.cassandraJvmOpts }}"
74           - name: POD_IP
75             valueFrom:
76               fieldRef:
77                 fieldPath: status.podIP
78         volumeMounts:
79         - mountPath: /etc/localtime
80           name: localtime
81           readOnly: true
82         - name: cassandra-docker-entrypoint-initdb
83           mountPath: /docker-entrypoint-initdb.d/aaa_portal_single.cql
84           subPath: portal_single.cql
85         - name: {{ include "common.fullname" . }}-data
86           mountPath: /var/lib/cassandra/data
87         resources:
88 {{ include "common.resources" . | indent 12 }}
89       {{- if .Values.nodeSelector }}
90       nodeSelector:
91 {{ toYaml .Values.nodeSelector | indent 10 }}
92       {{- end -}}
93       {{- if .Values.affinity }}
94       affinity:
95 {{ toYaml .Values.affinity | indent 10 }}
96       {{- end }}
97       volumes:
98         - name: cassandra-docker-entrypoint-initdb
99           configMap:
100             name: {{ include "common.fullname" . }}-docker-entry-initd
101         - name: localtime
102           hostPath:
103             path: /etc/localtime
104       {{- if .Values.persistence.enabled }}
105         - name: {{ include "common.fullname" . }}-data
106           persistentVolumeClaim:
107             claimName: {{ include "common.fullname" . }}
108       {{- else }}
109           emptyDir: {}
110       {{- end }}
111       imagePullSecrets:
112       - name: "{{ include "common.namespace" . }}-docker-registry-key"