Merge "[DMAAP] DMaaP ServiceMesh compatibility"
[oom.git] / kubernetes / portal / components / portal-cassandra / templates / deployment.yaml
index 16b8971..9becdaa 100644 (file)
@@ -1,5 +1,7 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
+{{/*
+# Copyright (c) 2017 Amdocs, Bell Canada
+# Modifications Copyright (c) 2018 AT&T
+# Modifications Copyright (c) 2020 Nokia, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,6 +14,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+*/}}
 
 apiVersion: apps/v1
 kind: Deployment
@@ -36,8 +39,13 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - /bin/bash
+        - -c
+        - |
+          /opt/bitnami/scripts/cassandra/entrypoint.sh /opt/bitnami/scripts/cassandra/run.sh
         ports:
         - containerPort: {{ .Values.service.internalPort }}
         - containerPort: {{ .Values.service.internalPort2 }}
@@ -49,37 +57,76 @@ spec:
           exec:
             command:
             - /bin/bash
-            - -c
-            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
+            - -ec
+            - |
+              nodetool status
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
+          timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
+          successThreshold: {{ .Values.liveness.successThreshold }}
+          failureThreshold: {{ .Values.liveness.failureThreshold }}
         {{ end }}
         readinessProbe:
           exec:
             command:
             - /bin/bash
-            - -c
-            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
+            - -ec
+            - |
+              nodetool status | grep -E "^UN\\s+${POD_IP}"
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
+          timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
+          successThreshold: {{ .Values.readiness.successThreshold }}
+          failureThreshold: {{ .Values.readiness.failureThreshold }}
+        lifecycle:
+          preStop:
+            exec:
+              command:
+              - bash
+              - -ec
+              - nodetool decommission
         env:
-          - name: CASSUSER
+          - name: CASSANDRA_USER
             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-creds" "key" "login") | indent 12}}
-          - name: CASSPASS
+          - name: CASSANDRA_PASSWORD
             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-creds" "key" "password") | indent 12}}
-          - name: JVM_OPTS
-            value: "{{ .Values.config.cassandraJvmOpts }}"
           - name: POD_IP
             valueFrom:
               fieldRef:
                 fieldPath: status.podIP
+          - name: CASSANDRA_PASSWORD_SEEDER
+            value: "yes"
+          - name: BITNAMI_DEBUG
+            value: "true"
+          - name: CASSANDRA_CLUSTER_NAME
+            value: cassandra
+          - name: CASSANDRA_NUM_TOKENS
+            value: "256"
+          - name: CASSANDRA_DATACENTER
+            value: dc1
+          - name: CASSANDRA_ENDPOINT_SNITCH
+            value: SimpleSnitch
+          - name: CASSANDRA_RACK
+            value: rack1
+          - name: CASSANDRA_ENABLE_RPC
+            value: "true"
+          {{- $flavor := include "common.flavor" . }}
+          {{- $heap := pluck $flavor .Values.heap | first }}
+          {{- if (hasKey $heap "max") }}
+          - name: MAX_HEAP_SIZE
+            value: {{ $heap.max }}
+          {{- end }}
+          {{- if (hasKey $heap "new") }}
+          - name: HEAP_NEWSIZE
+            value: {{ $heap.new }}
+          {{- end }}
         volumeMounts:
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         - name: cassandra-docker-entrypoint-initdb
-          mountPath: /docker-entrypoint-initdb.d/aaa_portal_single.cql
-          subPath: portal_single.cql
+          mountPath: /docker-entrypoint-initdb.d/aaa_portal.cql
+          subPath: portal.cql
         - name: {{ include "common.fullname" . }}-data
           mountPath: /var/lib/cassandra/data
         resources:
@@ -92,6 +139,7 @@ spec:
       affinity:
 {{ toYaml .Values.affinity | indent 10 }}
       {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: cassandra-docker-entrypoint-initdb
           configMap: