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