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