[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-hello/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
index 1e120bd..891b829 100644
--- a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/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.
@@ -11,112 +12,49 @@
 # 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: extensions/v1beta1
+apiVersion: apps/v1
 kind: Deployment
-metadata:
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
-  replicas: {{ .Values.global.aaf.hello.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:
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: aaf-hello-vol
-      {{- if and .Values.persistence.enabled }}
-          persistentVolumeClaim:
-            claimName: {{ include "common.release" . }}-aaf-hello-pvc
-      {{- else }}
-          emptyDir: {}
-      {{- end }}
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
-      initContainers:
-      - name: fix-permission
-        command: ["/bin/sh","-c","chmod -R 775 /opt/app/osaaf/local && chown -R 1000:1000 /opt/app/osaaf"]
-        image: "{{ .Values.global.busyboxRepository }}/{{ .Values.global.busyboxImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: "/opt/app/osaaf/local"
-          name: aaf-hello-vol
-      - name: {{ include "common.name" . }}-config-container
-        image: {{ .Values.global.repository }}/{{.Values.aaf_init.image}}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        command: ["bash","-c","cd /opt/app/aaf_config && bin/agent.sh"]
-#        command: ["bash","-c","cd /opt/app/aaf_config && echo Sleeping && sleep 480"]
-#        command: ["bash","-c","chown 1000:1000 /opt/app/osaaf && cd /opt/app/aaf_config && sleep 480"]
-        volumeMounts:
-        - mountPath: "/opt/app/osaaf/local"
-          name: aaf-hello-vol
-        env:
-          - name: APP_FQI
-            value: "{{ .Values.aaf_init.fqi }}"
-          - name: aaf_locate_url
-            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
-          - name: aaf_locator_container
-            value: "oom"
-          - name: aaf_locator_container_ns
-            value: "{{ .Release.Namespace }}"
-# This should the APP's FQDN to be put in Locator
-# This MUST match what is entered for AAF Certificate Artifacts
-          - name: aaf_locator_fqdn
-            value: "{{.Values.aaf_init.fqdn}}"
-# Hello specific.  Clients don't don't need this, unless Registering with AAF Locator
-# This should be the APP's PUBLIC FQDN, if applicable
-          - name: aaf_locator_public_fqdn
-            value: "{{.Values.aaf_init.locator_public_fqdn}}"
-          - name: LATITUDE
-            value: "{{ .Values.aaf_init.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.aaf_init.cadi_longitude }}"
-# Note: We want to put this in Secrets or at LEAST ConfigMaps
-          - name: "DEPLOY_FQI"
-            value: "deployer@people.osaaf.org"
-# Note: want to put this on Nodes, evenutally
-          - name: "DEPLOY_PASSWORD"
-            value: "demo123456!"
+      initContainers: {{ include "common.aaf-config" (dict "aafRoot" .Values.aaf_init "dot" .) | nindent 6 }}
 # CONTAINER Definition
       containers:
       - name: {{ include "common.name" . }}
         command: ["bash","-c","cd /opt/app/aaf && if [ ! -d /opt/app/osaaf/etc ]; then cp -Rf etc logs /opt/app/osaaf; fi && exec bin/hello"]
-        image: {{ .Values.global.repository }}/{{.Values.service.image }}
+        image: {{ .Values.global.repository }}/{{.Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: "/opt/app/osaaf/local"
-          name: aaf-hello-vol
+        ports: {{ include "common.containerPorts" . | nindent 10  }}
+        volumeMounts:  {{ include "common.aaf-config-volume-mountpath" . | nindent 8 }}
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.port }}
+            port: {{ .Values.liveness.port }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
-        {{ end -}}
+        {{- end }}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.port }}
+            port: {{ .Values.readiness.port }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
-        resources:
-{{ include "common.resources" . | indent 12 }}
+        resources: {{ include "common.resources" . | nindent 12 }}
       {{- 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: {{ include "common.aaf-config-volumes" (dict "aafRoot" .Values.aaf_init "dot" .) | nindent 6 }}
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"