[PORTAL][CASSANDRA] Configure Heap

When on small flavor, limits set are too small to allow a smooth start
of cassandra with usual Heap configurations.
This patch adds heap configuration when on small.

Issue-ID: PORTAL-1037
Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Change-Id: Icdbc4fd5892c3f350642ffdd924e4c36f0135019
diff --git a/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml b/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml
index 84a78ab..39cd029 100644
--- a/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml
@@ -1,7 +1,7 @@
 {{/*
 # Copyright (c) 2017 Amdocs, Bell Canada
 # Modifications Copyright (c) 2018 AT&T
-# Modifications Copyright (c) 2020 Nokia
+# 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.
@@ -108,6 +108,12 @@
             value: rack1
           - name: CASSANDRA_ENABLE_RPC
             value: "true"
+          {{- if eq "small" .Values.flavor }}
+          - name: MAX_HEAP_SIZE
+            value: {{ .Values.resources.small.heap.max }}
+          - name: HEAP_NEWSIZE
+            value: {{ .Values.resources.small.heap.new }}
+          {{- end }}
         volumeMounts:
         - mountPath: /etc/localtime
           name: localtime
diff --git a/kubernetes/portal/components/portal-cassandra/values.yaml b/kubernetes/portal/components/portal-cassandra/values.yaml
index ec76d08..c185155 100644
--- a/kubernetes/portal/components/portal-cassandra/values.yaml
+++ b/kubernetes/portal/components/portal-cassandra/values.yaml
@@ -1,6 +1,6 @@
 # Copyright (c) 2017 Amdocs, Bell Canada
 # Modifications Copyright (c) 2018 AT&T
-# Modifications Copyright (c) 2020 Nokia
+# 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.
@@ -112,12 +112,20 @@
 # Segregation for Different environment (Small and Large)
 resources:
   small:
+    # Heap size is tightly correlated to RAM limits.
+    # If limit > 8G, Cassandra should define itself the best value.
+    # If not, you must set up it in a coherent way with limits set
+    # Refer to https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/operations/opsTuneJVM.html#Determiningtheheapsize
+    # for more informations.
+    heap:
+      max: 3G
+      new: 100M
     limits:
       cpu: 500m
       memory: 3.75Gi
     requests:
       cpu: 160m
-      memory: 2.8Gi
+      memory: 3.1Gi
   large:
     limits:
       cpu: 4