[AAF] v1.16+ compatible templates

Use the different "common" templates in order to create consistent and
v1.16+ compatible templates for the different resources of AAF

Issue-ID: AAF-1122
Issue-ID: OOM-1971
Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Change-Id: Iefc1391211a69b6584ea127066ce430d4f5eb389
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
index eb785e2..309a9f3 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
@@ -1,4 +1,5 @@
 # Copyright © 2017 Amdocs, Bell Canada
+# Modifications © 2020 Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,23 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: extensions/v1beta1
+apiVersion: apps/v1
 kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
-  replicas: {{ .Values.global.aaf.cass.replicas }}
+  selector: {{- include "common.selectors" . | nindent 4 }}
+  replicas: {{ .Values.replicaCount }}
   template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
+    metadata: {{- include "common.templateMetadata" . | nindent 6 }}
     spec:
       initContainers:
       - name: fix-permission
@@ -37,47 +29,38 @@
         args:
         - -c
         - |
-          chmod -R 775 /opt/app/aaf/status
           chown -R 1000:1000 /opt/app/aaf/status
-          chmod -R 775 /var/lib/cassandra
           chown -R 1000:1000 /var/lib/cassandra
         image: "{{ .Values.global.busyboxRepository }}/{{ .Values.global.busyboxImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
-          - mountPath: /opt/app/aaf/status
-            name: aaf-status-vol
           - mountPath: /var/lib/cassandra
             name: aaf-cass-vol
+        resources:
+          limits:
+            cpu: 100m
+            memory: 100Mi
+          requests:
+            cpu: 30m
+            memory: 100Mi
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository }}/{{.Values.global.aaf.cass.image}}
+        image: {{ include "common.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         # installing with cmd "onap" will not only initialize the DB, but add ONAP bootstrap data as well
         command: ["/bin/bash","/opt/app/aaf/cass_init/cmd.sh","onap"]
-        lifecycle:
-          preStop:
-            exec:
-              command: ["/bin/sh","-c","rm /opt/app/aaf/status/aaf-cass"]
-        ports:
-        - name: storage
-          containerPort: {{.Values.global.aaf.cass.storage_port}}
-        - name: ssl-storage
-          containerPort: {{.Values.global.aaf.cass.ssl_storage_port}}
-        - name: native-trans
-          containerPort: {{.Values.global.aaf.cass.native_trans_port}}
-        - name: rpc
-          containerPort: {{.Values.global.aaf.cass.rpc_port}}
+        ports: {{ include "common.containerPorts" . | nindent 10  }}
         env:
         - name: CASSANDRA_CLUSTER_NAME
-          value: {{.Values.global.aaf.cass.cluster_name}}
+          value: {{ .Values.config.cluster_name }}
         - name: CASSANDRA_DC
-          value: {{.Values.global.aaf.cass.dc}}
+          value: {{ .Values.config.dc }}
         - name: CQLSH
           value: "/opt/cassandra/bin/cqlsh"
         - name: HEAP_NEWSIZE
-          value: {{.Values.global.aaf.cass.heap_new_size}}
+          value: {{ .Values.config.heap_new_size }}
         - name: MAX_HEAP_SIZE
-          value: {{.Values.global.aaf.cass.max_heap_size}}
+          value: {{ .Values.config.max_heap_size }}
         - name: MY_POD_NAME
           valueFrom:
             fieldRef:
@@ -93,44 +76,36 @@
         volumeMounts:
         - mountPath: /var/lib/cassandra
           name: aaf-cass-vol
-        - mountPath: /opt/app/aaf/status
-          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{.Values.global.aaf.cass.native_trans_port}}
+            port: tcp-cql
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{.Values.global.aaf.cass.native_trans_port}}
+            port: tcp-cql
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
-        resources:
-{{ include "common.resources" . | indent 10 }}
+        resources: {{ include "common.resources" . | nindent 10 }}
       {{- if .Values.nodeSelector }}
-      nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
+      nodeSelector: {{ toYaml .Values.nodeSelector | nindent 10 }}
       {{- end -}}
       {{- if .Values.affinity }}
-      affinity:
-{{ toYaml .Values.affinity | indent 10 }}
+      affinity: {{ toYaml .Values.affinity | nindent 10 }}
       {{- end }}
       volumes:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: aaf-status-vol
-        persistentVolumeClaim:
-          claimName: {{ include "common.release" . }}-aaf-status
       - name: aaf-cass-vol
       {{- if .Values.persistence.enabled }}
         persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}-data
+          claimName: {{ include "common.fullname" . }}
       {{- else }}
         emptyDir: {}
       {{- end }}
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
index 0f0a305..187e9b7 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
@@ -1,5 +1,6 @@
 {{/*
 # Copyright © 2017 Amdocs, Bell Canada
+# Modifications © 2020 Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,27 +15,4 @@
 # limitations under the License.
 */}}
 
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) }}
-{{- if eq "True" (include "common.needPV" .) }}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-data
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: {{ include "common.release" . }}
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.mountSubPath }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-{{- end -}}
-{{- end -}}
+{{ include "common.PV" . }}
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
index 3cc4356..e56c987 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
@@ -1,5 +1,6 @@
 {{/*
 # Copyright © 2017 Amdocs, Bell Canada
+# Modifications © 2020 Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,26 +15,4 @@
 # limitations under the License.
 */}}
 
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" .}}-data
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ include "common.release" . }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-  storageClassName: {{ include "common.storageClass" . }}
-{{- end -}}
+{{ include "common.PVC" . }}
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/service.yaml b/kubernetes/aaf/charts/aaf-cass/templates/service.yaml
index d5c615f..8f80ee1 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/service.yaml
@@ -1,4 +1,5 @@
 # Copyright © 2017 Amdocs, Bell Canada
+# Modifications © 2020 Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,38 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-#  annotations:
-#    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    - name: storage
-      protocol: TCP
-      port: {{.Values.global.aaf.cass.storage_port}}
-      containerPort: {{.Values.global.aaf.cass.storage_port}}
-    - name: ssl-storage
-      protocol: TCP
-      port: {{.Values.global.aaf.cass.ssl_storage_port}}
-      containerPort: {{.Values.global.aaf.cass.ssl_storage_port}}
-    - name: native-trans
-      protocol: TCP
-      port: {{.Values.global.aaf.cass.native_trans_port}}
-      containerPort: {{.Values.global.aaf.cass.native_trans_port}}
-    - name: rpc
-      protocol: TCP
-      port: {{.Values.global.aaf.cass.rpc_port}}
-      containerPort: {{.Values.global.aaf.cass.rpc_port}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
-  clusterIP: None
+{{ include "common.service" . }}
diff --git a/kubernetes/aaf/charts/aaf-cass/values.yaml b/kubernetes/aaf/charts/aaf-cass/values.yaml
index 9f6ec56..3d9f21e 100644
--- a/kubernetes/aaf/charts/aaf-cass/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/values.yaml
@@ -1,5 +1,5 @@
 # Copyright © 2017 Amdocs, Bell Canada
-# Modifications © 2020 AT&T
+# Modifications © 2020 AT&T, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@
 # Application configuration defaults.
 #################################################################
 # application configuration
-config: {}
+replicaCount: 1
 
 nodeSelector: {}
 
@@ -32,6 +32,15 @@
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
+  port: tcp-cql
+
+image: onap/aaf/aaf_cass:2.1.20
+
+config:
+  cluster_name: osaaf
+  heap_new_size: 512M
+  max_heap_size: 1024M
+  dc: dc1
 
 readiness:
   initialDelaySeconds: 5
@@ -40,39 +49,36 @@
 service:
   name: aaf-cass
   type: ClusterIP
-  portName: aaf-cass
-  #targetPort
-  internalPort: 7000
-  #port
-  externalPort: 7000
-
-  internalPort2: 7001
-  externalPort2: 7001
-  internalPort3: 9042
-  externalPort3: 9042
-  internalPort4: 9160
-  externalPort4: 9160
+  ports:
+    - name: tcp-intra
+      port: 7000
+    - name: tls
+      port: 7001
+    - name: tcp-cql
+      port: 9042
+    - name: tcp-thrift
+      port: 9160
 
 ingress:
   enabled: false
 
 # Configure resource requests and limits
 resources:
- small:
-   limits:
-     cpu: 2100m
-     memory: 1792Mi
-   requests:
-     cpu: 30m
-     memory: 1280Mi
- large:
-   limits:
-     cpu: 4
-     memory: 12000Mi
-   requests:
-     cpu: 40m
-     memory: 9000Mi
- unlimited: {}
+  small:
+    limits:
+      cpu: 2100m
+      memory: 1792Mi
+    requests:
+      cpu: 30m
+      memory: 1280Mi
+  large:
+    limits:
+      cpu: 4
+      memory: 12000Mi
+    requests:
+      cpu: 40m
+      memory: 9000Mi
+  unlimited: {}
 
 persistence:
   enabled: true