[VFC] Use common mariadb-galera instance

Have following updates for VFC:
- Add section under .Values.global for shared mariadb instance default
info with a condition to instantiate local instance.
- Update the related section of Mariadb-galera under .Values
- Add condition under requirments.yaml to install local mariadb instance
* Note: Since Components initiate their own DBs and Users, there is no
need to initiate the common mariadb-galera with mariadb-init, instead
root password will injected to components to be able to create the DBs.

Have following updates for nslcm, vnflcm, vnfmgr and vnfres:
- Update .Values to accommodate for the new changes in parent .Values
file.
- Update root secret with the condition of having local mariadb or using
the common.
- Update deployments to include the definitions of mariadb service and
port defined in (common/_mariadb.tpl)

Issue-ID: OOM-2840
Signed-off-by: Mahmoud Abdelhamid <mahmoud.abdelhamid@orange.com>
Change-Id: Ia6a8e91ca3978928c4bf336a3a86ab1c6d64597a
diff --git a/kubernetes/vfc/components/vfc-vnflcm/templates/deployment.yaml b/kubernetes/vfc/components/vfc-vnflcm/templates/deployment.yaml
index b93d7af..75968b2 100644
--- a/kubernetes/vfc/components/vfc-vnflcm/templates/deployment.yaml
+++ b/kubernetes/vfc/components/vfc-vnflcm/templates/deployment.yaml
@@ -42,7 +42,7 @@
         - /app/ready.py
         args:
         - --container-name
-        - {{ .Values.config.mariadbService }}
+        - '{{ ternary (index .Values "mariadb-galera" "nameOverride") .Values.global.mariadbGalera.service .Values.global.mariadbGalera.localCluster }}'
         env:
         - name: NAMESPACE
           valueFrom:
@@ -58,7 +58,7 @@
             - sh
           args:
             - -c
-            - 'MYSQL_AUTH=root:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
+            - 'MYSQL_AUTH=${MYSQL_ROOT_USER}:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
@@ -83,7 +83,7 @@
             - name: SSL_ENABLED
               value: "{{ .Values.global.config.ssl_enabled }}"
             - name: MYSQL_ADDR
-              value: "{{ .Values.config.mariadbService }}:{{ .Values.config.mariadbPort }}"
+              value: '{{ include "common.mariadbService" . }}:{{ include "common.mariadbPort" . }}'
             - name: MYSQL_ROOT_USER
               value: "{{ .Values.global.config.mariadb_admin }}"
             - name: MYSQL_ROOT_PASSWORD
diff --git a/kubernetes/vfc/components/vfc-vnflcm/values.yaml b/kubernetes/vfc/components/vfc-vnflcm/values.yaml
index acdf006..cd5e999 100644
--- a/kubernetes/vfc/components/vfc-vnflcm/values.yaml
+++ b/kubernetes/vfc/components/vfc-vnflcm/values.yaml
@@ -19,15 +19,20 @@
   nodePortPrefix: 302
   config:
     ssl_enabled: false
+  mariadbGalera:
+    localCluster: false
+    service: mariadb-galera
+    internalPort: 3306
+    nameOverride: mariadb-galera
 
 #################################################################
 # Secrets metaconfig
 #################################################################
 secrets:
-  - uid: "db-root-pass"
-    externalSecret: '{{ tpl (default "" .Values.config.mariadbRootPasswordExternalSecret) . }}'
+  - uid: db-root-pass
+    externalSecret: '{{ ternary (index .Values "mariadb-galera" "rootUser" "externalSecret") (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" (default "mariadb-galera" .Values.global.mariadbGalera.nameOverride))) .Values.global.mariadbGalera.localCluster }}'
     type: password
-    password: '{{ .Values.config.mariadbRootPassword }}'
+    password: '{{ index .Values "mariadb-galera" "rootUser" "password" }}'
     policy: required
 
 #################################################################
@@ -45,13 +50,11 @@
 # flag to enable debugging - application support required
 debugEnabled: false
 
-# application configuration
-config:
-  mariadbService: vfc-mariadb
-  mariadbPort: 3306
-  mariadbRootPassword: secretpassword
-  # mariadbRootPasswordExternalSecret: some secret
-
+# Local mariadb galera instance default name
+mariadb-galera:
+  rootUser:
+    externalSecret: '{{ include "common.release" . }}-vfc-db-root-pass'
+  nameOverride: vfc-mariadb
 
 # default number of instances
 replicaCount: 1