Merge "Mavenized image creation for readiness-check"
diff --git a/.gitignore b/.gitignore
index 96e76c1..fcf3cdd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+# Unit tests
+__snapshot__
+
 # Application
 kubernetes/config/onap-parameters.yaml
 kubernetes/dist/*
@@ -22,4 +25,3 @@
 
 # Mac OS
 *DS_Store*
-
diff --git a/docs/oom_quickstart_guide.rst b/docs/oom_quickstart_guide.rst
index 2399dc3..2607805 100644
--- a/docs/oom_quickstart_guide.rst
+++ b/docs/oom_quickstart_guide.rst
@@ -29,25 +29,25 @@
   > sudo cp -R ~/oom/kubernetes/helm/plugins/ ~/.helm
 
 
-**Step 3.** Customize the helm charts like oom/kubernetes/onap/values.yaml or an override
-file like onap-all.yaml, onap-vfw.yaml or openstack.yaml file to suit your deployment with items like the
-OpenStack tenant information.
+**Step 3.** Customize the helm charts like `oom/kubernetes/onap/values.yaml` or an override
+file like `onap-all.yaml`, `onap-vfw.yaml` or `openstack.yaml` file to suit your deployment
+with items like the OpenStack tenant information.
 
 .. note::
-  Standard and example override files (e.g. onap-all.yaml, openstack.yaml) can be found in
-  the oom/kubernetes/onap/resources/overrides/ directory.
+  Standard and example override files (e.g. `onap-all.yaml`, `openstack.yaml`) can be found in
+  the `oom/kubernetes/onap/resources/overrides/` directory.
 
 
  a. You may want to selectively enable or disable ONAP components by changing
-    the `enabled: true/false` flags.
+    the ``enabled: true/false`` flags.
 
 
- b. Encyrpt the OpenStack password using the shell tool for robot and put it in
-    the robot helm charts or robot section of openstack.yaml
+ b. Encrypt the OpenStack password using the shell tool for robot and put it in
+    the robot helm charts or robot section of `openstack.yaml`
 
 
  c. Encrypt the OpenStack password using the java based script for SO helm charts
-    or SO section of openstack.yaml.
+    or SO section of `openstack.yaml`.
 
 
  d. Update the OpenStack parameters that will be used by robot, SO and APPC helm
@@ -60,7 +60,7 @@
 Here is an example of the nominal entries that need to be provided.
 We have different values file available for different contexts.
 
-.. literalinclude:: onap-values.yaml
+.. literalinclude:: ../kubernetes/onap/values.yaml
    :language: yaml
 
 
@@ -69,11 +69,10 @@
 openssl algorithm that works with the python based Robot Framework.
 
 .. note::
-  To generate ROBOT openStackEncryptedPasswordHere :
+  To generate ROBOT ``openStackEncryptedPasswordHere``::
 
-  ``cd so/resources/config/mso/``
-
-  ``/oom/kubernetes/so/resources/config/mso# echo -n "<openstack tenant password>" | openssl aes-128-ecb -e -K `cat encryption.key` -nosalt | xxd -c 256 -p``
+    cd so/resources/config/mso/
+    /oom/kubernetes/so/resources/config/mso# echo -n "<openstack tenant password>" | openssl aes-128-ecb -e -K `cat encryption.key` -nosalt | xxd -c 256 -p``
 
 c. Generating SO Encrypted Password:
 The SO Encrypted Password uses a java based encryption utility since the
@@ -81,23 +80,21 @@
 ROBOT uses in Dublin.
 
 .. note::
-  To generate SO openStackEncryptedPasswordHere and openStackSoEncryptedPassword:
+  To generate SO ``openStackEncryptedPasswordHere`` and ``openStackSoEncryptedPassword``
+  ensure `default-jdk` is installed::
 
-  SO_ENCRYPTION_KEY=`cat ~/oom/kubernetes/so/resources/config/mso/encryption.key`
+    apt-get update; apt-get install default-jdk
 
-  OS_PASSWORD=XXXX_OS_CLEARTESTPASSWORD_XXXX
+  Then execute::
 
-  git clone http://gerrit.onap.org/r/integration
+    SO_ENCRYPTION_KEY=`cat ~/oom/kubernetes/so/resources/config/mso/encryption.key`
+    OS_PASSWORD=XXXX_OS_CLEARTESTPASSWORD_XXXX
 
-  cd integration/deployment/heat/onap-rke/scripts
+    git clone http://gerrit.onap.org/r/integration
+    cd integration/deployment/heat/onap-rke/scripts
 
-
-  javac Crypto.java
-
-  [ if javac is not installed 'apt-get update ; apt-get install default-jdk' ]
-
-  java Crypto "$OS_PASSWORD" "$SO_ENCRYPTION_KEY"
-
+    javac Crypto.java
+    java Crypto "$OS_PASSWORD" "$SO_ENCRYPTION_KEY"
 
 d. Update the OpenStack parameters:
 
@@ -106,35 +103,34 @@
 automation that can help confirm the setup is correct, please observe the following 
 constraints.
 
-openStackPublicNetId: 
+``openStackPublicNetId:``
+  This network should allow heat templates to add interfaces.
+  This need not be an external network, floating IPs can be assigned to the ports on
+  the VMs that are created by the heat template but its important that neutron allow
+  ports to be created on them.
 
-This network should allow heat templates to add interfaces. 
-This need not be an external network, floating IPs can be assigned to the ports on 
-the VMs that are created by the heat template but its important that neutron allow 
-ports to be created on them.
+``openStackPrivateNetCidr: "10.0.0.0/16"``
+  This ip address block is used to assign OA&M addresses on VNFs to allow ONAP connectivity.
+  The demonstration heat templates assume that 10.0 prefix can be used by the VNFs and the
+  demonstration ip addressing plan embodied in the preload template prevent conflicts when
+  instantiating the various VNFs. If you need to change this, you will need to modify the preload
+  data in the robot helm chart like integration_preload_parametes.py and the demo/heat/preload_data
+  in the robot container. The size of the CIDR should be sufficient for ONAP and the VMs you expect
+  to create.
 
-openStackPrivateNetCidr: "10.0.0.0/16"
-
-This ip address block is used to assign OA&M addresses on VNFs to allow ONAP connectivity.
-The demonstration heat templates assume that 10.0 prefix can be used by the VNFs and the 
-demonstration ip addressing plan embodied in the preload template prevent conflicts when 
-instantiating the various VNFs. If you need to change this, you will need to modify the preload 
-data in the robot helm chart like integration_preload_parametes.py and the demo/heat/preload_data 
-in the robot container. The size of the CIDR should be sufficient for ONAP and the VMs you expect 
-to create.
-
-openStackOamNetworkCidrPrefix: "10.0"
-
-This ip prefix mush match the openStackPrivateNetCidr and is a helper variable to some of the
-robot scripts for demonstration. A production deployment need not worry about this
-setting but for the demonstration VNFs the ip asssignment strategy assumes 10.0 ip prefix.
+``openStackOamNetworkCidrPrefix: "10.0"``
+  This ip prefix mush match the openStackPrivateNetCidr and is a helper variable to some of the
+  robot scripts for demonstration. A production deployment need not worry about this
+  setting but for the demonstration VNFs the ip asssignment strategy assumes 10.0 ip prefix.
 
 
 Example Keystone v2.0 
+
 .. literalinclude:: example-integration-override.yaml
    :language: yaml
 
 Example Keystone v3  (required for Rocky and later releases)
+
 .. literalinclude:: example-integration-override-v3.yaml
    :language: yaml
 
@@ -166,13 +162,13 @@
 .. literalinclude:: helm-search.txt
 
 .. note::
-  The setup of the Helm repository is a one time activity. If you make changes to your deployment charts or values be sure to use `make` to update your local Helm repository.
+  The setup of the Helm repository is a one time activity. If you make changes to your deployment charts or values be sure to use ``make`` to update your local Helm repository.
 
 **Step 8.** Once the repo is setup, installation of ONAP can be done with a
 single command
 
 .. note::
-  The --timeout 900 is currently required in Dublin to address long running initialization tasks
+  The ``--timeout 900`` is currently required in Dublin to address long running initialization tasks
   for DMaaP and SO. Without this timeout value both applications may fail to deploy.
 
 To deploy all ONAP applications use this command::
@@ -182,18 +178,15 @@
 
 All override files may be customized (or replaced by other overrides) as per needs.
 
-onap-all.yaml
-
+`onap-all.yaml`
   Enables the modules in the ONAP deployment. As ONAP is very modular, it is possible to customize ONAP and disable some components through this configuration file.
 
-environment.yaml
-
+`environment.yaml`
   Includes configuration values specific to the deployment environment.
 
   Example: adapt readiness and liveness timers to the level of performance of your infrastructure
 
-openstack.yaml
-
+`openstack.yaml`
   Includes all the Openstack related information for the default target tenant you want to use to deploy VNFs from ONAP and/or additional parameters for the embedded tests.
 
 **Step 9.** Verify ONAP installation
@@ -205,12 +198,12 @@
 .. note::
   While all pods may be in a Running state, it is not a guarantee that all components are running fine.
 
-  Launch the healthcheck tests using Robot to verify that the components are healthy.
+  Launch the healthcheck tests using Robot to verify that the components are healthy::
 
-  > ~/oom/kubernetes/robot/ete-k8s.sh onap health
+    > ~/oom/kubernetes/robot/ete-k8s.sh onap health
 
-**Step 10.** Undeploy ONAP
+**Step 10.** Undeploy ONAP::
 
-> helm undeploy dev --purge
+  > helm undeploy dev --purge
 
 More examples of using the deploy and undeploy plugins can be found here: https://wiki.onap.org/display/DW/OOM+Helm+%28un%29Deploy+plugins
diff --git a/docs/oom_user_guide.rst b/docs/oom_user_guide.rst
index f19924d..48701f7 100644
--- a/docs/oom_user_guide.rst
+++ b/docs/oom_user_guide.rst
@@ -250,7 +250,7 @@
 The top level onap/values.yaml file contains the values required to be set
 before deploying ONAP.  Here is the contents of this file:
 
-.. include:: onap_values.yaml
+.. include:: ../kubernetes/onap/values.yaml
    :code: yaml
 
 One may wish to create a value file that is specific to a given deployment such
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index ee63937..fd90a37 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -38,6 +38,7 @@
 * [`OOM-2075 <https://jira.onap.org/browse/OOM-2075>`_] - Invalid MTU for Canal CNI interfaces
 * [`OOM-2080 <https://jira.onap.org/browse/OOM-2080>`_] - Need for "ReadWriteMany" access on storage when deploying on Kubernetes?
 * [`OOM-2091 <https://jira.onap.org/browse/OOM-2091>`_] - incorrect release deployed
+* [`OOM-2132 <https://jira.onap.org/browse/OOM-2132>`_] - Common Galera server.cnf does not contain Camunda required settings
 
 **Security Notes**
 
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
index 5bbb1d7..d541f1e 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
@@ -106,11 +106,11 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-cass-vol
       {{- if .Values.persistence.enabled }}
         persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}-pvc
+          claimName: {{ include "common.fullname" . }}-data
       {{- else }}
         emptyDir: {}
       {{- end }}
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
index 8249d84..ac49d28 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
@@ -14,11 +14,12 @@
 # limitations under the License.
 */}}
 
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- 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" . }}-pv
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -34,11 +35,6 @@
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
index 4f9dac0..39fd993 100644
--- a/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
@@ -18,7 +18,7 @@
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" .}}-pvc
+  name: {{ include "common.fullname" .}}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -30,19 +30,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-cass/values.yaml b/kubernetes/aaf/charts/aaf-cass/values.yaml
index ee05a19..ea8da6e 100644
--- a/kubernetes/aaf/charts/aaf-cass/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/values.yaml
@@ -61,23 +61,22 @@
   enabled: false
 
 # Configure resource requests and limits
-resources: {}
-  # Following AAI's advice, and not trying to guess on Cass usage.  Guessing just makes it slow
-#  small:
-#    limits:
-#      cpu: "1000m"
-#      memory: 4096Mi
-#    requests:
-#      cpu: 20m
-#      memory: 2048Mi
-#  large:
-#    limits:
-#      cpu: 400m
-#      memory: 12000Mi
-#    requests:
-#      cpu: 40m
-#      memory: 9000Mi
-#  unlimited: {}
+resources:
+ 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
@@ -87,4 +86,3 @@
   volumeReclaimPolicy: Retain
   accessMode: ReadWriteOnce
   size: 20Gi
-  storageClass: "manual"
diff --git a/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
index 19d7625..cb5ec35 100644
--- a/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
@@ -114,9 +114,9 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-config-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-config-pvc
+          claimName: {{ .Release.Name }}-aaf-config
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-cm/templates/ingress.yaml b/kubernetes/aaf/charts/aaf-cm/templates/ingress.yaml
new file mode 100644
index 0000000..40b4bba
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-cm/templates/ingress.yaml
@@ -0,0 +1,4 @@
+
+{{ include "common.ingress" . }}
+
+
diff --git a/kubernetes/aaf/charts/aaf-cm/values.yaml b/kubernetes/aaf/charts/aaf-cm/values.yaml
index 6ace7d1..2bd05d8 100644
--- a/kubernetes/aaf/charts/aaf-cm/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cm/values.yaml
@@ -52,22 +52,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aafcm"
+      name: "aaf-cm"
+      port: 8150
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#  small:
-#    limits:
-#      cpu: 200m
-#      memory: 800Mi
-#    requests:
-#      cpu: 20m
-#      memory: 500Mi
-#  large:
-#    limits:
-#      cpu: 400m
-#      memory: 1Gi
-#    requests:
-#      cpu: 40m
-#      memory: 600Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 20m
+     memory: 300Mi
+   requests:
+     cpu: 1m
+     memory: 200Mi
+ large:
+   limits:
+     cpu: 400m
+     memory: 1Gi
+   requests:
+     cpu: 40m
+     memory: 600Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
index cd72fdd..53d6ed0 100644
--- a/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
@@ -114,9 +114,9 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-config-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-config-pvc
+          claimName: {{ .Release.Name }}-aaf-config
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-fs/templates/ingress.yaml b/kubernetes/aaf/charts/aaf-fs/templates/ingress.yaml
new file mode 100644
index 0000000..40b4bba
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-fs/templates/ingress.yaml
@@ -0,0 +1,4 @@
+
+{{ include "common.ingress" . }}
+
+
diff --git a/kubernetes/aaf/charts/aaf-fs/values.yaml b/kubernetes/aaf/charts/aaf-fs/values.yaml
index 48ad7c1..d1a35a7 100644
--- a/kubernetes/aaf/charts/aaf-fs/values.yaml
+++ b/kubernetes/aaf/charts/aaf-fs/values.yaml
@@ -54,22 +54,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aaffs"
+      name: "aaf-fs"
+      port: 8096
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#  small:
-#    limits:
-#      cpu: 200m
-#      memory: 800Mi
-#    requests:
-#      cpu: 10m
-#      memory: 300Mi
-#  large:
-#    limits:
-#      cpu: 500m
-#      memory: 700Mi
-#    requests:
-#      cpu: 100m
-#      memory: 400Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 200m
+     memory: 110Mi
+   requests:
+     cpu: 1m
+     memory: 80Mi
+ large:
+   limits:
+     cpu: 500m
+     memory: 700Mi
+   requests:
+     cpu: 100m
+     memory: 400Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
index 4a433cc..6fa750b 100644
--- a/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
@@ -114,9 +114,9 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-config-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-config-pvc
+          claimName: {{ .Release.Name }}-aaf-config
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-gui/templates/ingress.yaml b/kubernetes/aaf/charts/aaf-gui/templates/ingress.yaml
new file mode 100644
index 0000000..40b4bba
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-gui/templates/ingress.yaml
@@ -0,0 +1,4 @@
+
+{{ include "common.ingress" . }}
+
+
diff --git a/kubernetes/aaf/charts/aaf-gui/values.yaml b/kubernetes/aaf/charts/aaf-gui/values.yaml
index 3068f14..1f7abd4 100644
--- a/kubernetes/aaf/charts/aaf-gui/values.yaml
+++ b/kubernetes/aaf/charts/aaf-gui/values.yaml
@@ -56,23 +56,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aafgui"
+      name: "aaf-gui"
+      port: 8200
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#resources:
-#  small:
-#    limits:
-#      cpu: 100m
-#      memory: 500Mi
-#    requests:
-#      cpu: 10m
-#      memory: 200Mi
-#  large:
-#    limits:
-#      cpu: 200m
-#      memory: 1Gi
-#    requests:
-#      cpu: 100m
-#      memory: 500Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 20m
+     memory: 280Mi
+   requests:
+     cpu: 1m
+     memory: 170Mi
+ large:
+   limits:
+     cpu: 200m
+     memory: 1Gi
+   requests:
+     cpu: 100m
+     memory: 500Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pv.yaml b/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pv.yaml
index 066bf38..af82689 100644
--- a/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pv.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pv.yaml
@@ -1,4 +1,6 @@
+{{- if ne 0 (int .Values.global.aaf.hello.replicas) }}
 {{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 #########
 ##  ============LICENSE_START====================================================
 ##  org.onap.aaf
@@ -37,12 +39,8 @@
     - {{ .Values.persistence.config.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.config.volumeReclaimPolicy }}
   hostPath:
-     path: {{ .Values.persistence.config.mountPath }}
-{{- if .Values.persistence.config.storageClass }}
-{{- if (eq "-" .Values.persistence.config.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.config.storageClass }}"
-{{- end }}
-{{- end }}
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+{{- end -}}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pvc.yaml b/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pvc.yaml
index 7c45b8b..6882876 100644
--- a/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/templates/aaf-hello-pvc.yaml
@@ -1,3 +1,4 @@
+{{- if ne 0 (int .Values.global.aaf.hello.replicas) }}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 #########
 ##  ============LICENSE_START====================================================
@@ -33,20 +34,11 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}-hello
   accessModes:
     - {{ .Values.persistence.config.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.config.size }}
-{{- if .Values.persistence.config.storageClass }}
-{{- if (eq "-" .Values.persistence.config.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.config.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
-
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
index c5fcf68..2135f1e 100644
--- a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
@@ -34,8 +34,12 @@
         hostPath:
           path: /etc/localtime
       - name: aaf-hello-vol
+      {{- if and .Values.persistence.enabled }}
         persistentVolumeClaim:
           claimName: {{ .Release.Name }}-aaf-hello-pvc
+      {{- else }}
+        emptyDir: {}
+      {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
       initContainers:
diff --git a/kubernetes/aaf/charts/aaf-hello/templates/ingress.yaml b/kubernetes/aaf/charts/aaf-hello/templates/ingress.yaml
new file mode 100644
index 0000000..40b4bba
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-hello/templates/ingress.yaml
@@ -0,0 +1,4 @@
+
+{{ include "common.ingress" . }}
+
+
diff --git a/kubernetes/aaf/charts/aaf-hello/values.yaml b/kubernetes/aaf/charts/aaf-hello/values.yaml
index ea6665c..36bed9d 100644
--- a/kubernetes/aaf/charts/aaf-hello/values.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/values.yaml
@@ -44,14 +44,13 @@
 
 persistence:
   enabled: true
-  config:
     #existingClaim:
     # You will want "Reatan" in non-Hello Example.
-    volumeReclaimPolicy: Delete
-    accessMode: ReadWriteMany
-    size: 40M
-    storageClass: "manual"
-    mountPath: "/mnt/data/aaf/hello"
+  volumeReclaimPolicy: Delete
+  accessMode: ReadWriteMany
+  size: 40M
+  mountPath: /dockerdata-nfs
+  mountSubPath: aaf/hello
 
 nodeSelector: {}
 
@@ -71,23 +70,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aafhello"
+      name: "aaf-hello"
+      port: 8130
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#resources:
-#  small:
-#    limits:
-#      cpu: 200m
-#      memory: 500Mi
-#    requests:
-#      cpu: 10m
-#      memory: 200Mi
-#  large:
-#    limits:
-#      cpu: 400m
-#      memory: 1Gi
-#    requests:
-#      cpu: 20m
-#      memory: 500Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 200m
+     memory: 500Mi
+   requests:
+     cpu: 10m
+     memory: 200Mi
+ large:
+   limits:
+     cpu: 400m
+     memory: 1Gi
+   requests:
+     cpu: 20m
+     memory: 500Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
index 69d1612..e1a9c04 100644
--- a/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
@@ -114,9 +114,9 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-config-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-config-pvc
+          claimName: {{ .Release.Name }}-aaf-config
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-locate/templates/ingress.yaml b/kubernetes/aaf/charts/aaf-locate/templates/ingress.yaml
new file mode 100644
index 0000000..40b4bba
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-locate/templates/ingress.yaml
@@ -0,0 +1,4 @@
+
+{{ include "common.ingress" . }}
+
+
diff --git a/kubernetes/aaf/charts/aaf-locate/values.yaml b/kubernetes/aaf/charts/aaf-locate/values.yaml
index c13f834..ce59d2d 100644
--- a/kubernetes/aaf/charts/aaf-locate/values.yaml
+++ b/kubernetes/aaf/charts/aaf-locate/values.yaml
@@ -52,23 +52,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aaflocate"
+      name: "aaf-locate"
+      port: 8095
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#resources:
-#  small:
-#    limits:
-#      cpu: 200m
-#      memory: 600Mi
-#    requests:
-#      cpu: 20m
-#      memory: 300Mi
-#  large:
-#    limits:
-#      cpu: 400m
-#      memory: 1Gi
-#    requests:
-#      cpu: 40m
-#      memory: 500Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 40m
+     memory: 320Mi
+   requests:
+     cpu: 1m
+     memory: 210Mi
+ large:
+   limits:
+     cpu: 400m
+     memory: 1Gi
+   requests:
+     cpu: 40m
+     memory: 500Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
index b371c86..dfa7dc0 100644
--- a/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
@@ -114,9 +114,9 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-config-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-config-pvc
+          claimName: {{ .Release.Name }}-aaf-config
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-oauth/values.yaml b/kubernetes/aaf/charts/aaf-oauth/values.yaml
index 3c29a62..ef00a46 100644
--- a/kubernetes/aaf/charts/aaf-oauth/values.yaml
+++ b/kubernetes/aaf/charts/aaf-oauth/values.yaml
@@ -51,23 +51,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aafoauth"
+      name: "aaf-oauth"
+      port: 8140
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#resources:
-#  small:
-#    limits:
-#      cpu: 200m
-#      memory: 400Mi
-#    requests:
-#      cpu: 20m
-#      memory: 200Mi
-#  large:
-#    limits:
-#      cpu: 400m
-#      memory: 600Mi
-#    requests:
-#      cpu: 40m
-#      memory: 200Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 40m
+     memory: 320Mi
+   requests:
+     cpu: 1m
+     memory: 210Mi
+ large:
+   limits:
+     cpu: 400m
+     memory: 600Mi
+   requests:
+     cpu: 40m
+     memory: 200Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
index 1c09718..ec35115 100644
--- a/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
@@ -121,9 +121,9 @@
           path: /etc/localtime
       - name: aaf-status-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-status-pvc
+          claimName: {{ .Release.Name }}-aaf-status
       - name: aaf-config-vol
         persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-aaf-config-pvc
+          claimName: {{ .Release.Name }}-aaf-config
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-service/templates/ingress.yaml b/kubernetes/aaf/charts/aaf-service/templates/ingress.yaml
new file mode 100644
index 0000000..40b4bba
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-service/templates/ingress.yaml
@@ -0,0 +1,4 @@
+
+{{ include "common.ingress" . }}
+
+
diff --git a/kubernetes/aaf/charts/aaf-service/values.yaml b/kubernetes/aaf/charts/aaf-service/values.yaml
index 8794afe..190b284 100644
--- a/kubernetes/aaf/charts/aaf-service/values.yaml
+++ b/kubernetes/aaf/charts/aaf-service/values.yaml
@@ -52,23 +52,27 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "aafservice"
+      name: "aaf-service"
+      port: 8100
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
-resources: {}
-# Allow END users to do this, if they want.  Detrimental to Test services
-#resources:
-#  small:
-#    limits:
-#      cpu: 200m
-#      memory: 800Mi
-#    requests:
-#      cpu: 20m
-#      memory: 300Mi
-#  large:
-#    limits:
-#      cpu: 400m
-#      memory: 1Gi
-#    requests:
-#      cpu: 40m
-#      memory: 300Mi
-#  unlimited: {}
+resources:
+ small:
+   limits:
+     cpu: 250m
+     memory: 360Mi
+   requests:
+     cpu: 10m
+     memory: 250Mi
+ large:
+   limits:
+     cpu: 400m
+     memory: 1Gi
+   requests:
+     cpu: 40m
+     memory: 300Mi
+ unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml
index da09498..8c48bba 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml
@@ -13,25 +13,33 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 */}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- $global := . }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) }}
+{{- range $i := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
   labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    app: {{ include "common.name" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
 spec:
   capacity:
-    storage: {{ .Values.persistence.size}}
+    storage: {{ $global.Values.persistence.size}}
   accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml
index 16f8092..a5573c8 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml
@@ -31,6 +31,8 @@
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
       containers:
       - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         name: {{ include "common.name" . }}
@@ -44,8 +46,10 @@
           - mountPath: /quorumclient/config.json
             name: {{ include "common.name" .}}
             subPath: config.json
+{{- if .Values.persistence.enabled }}
           - mountPath: /quorumclient/auth
-            name: {{ include "common.fullname" . }}-auth
+            name: {{ include "common.fullname" . }}-data
+{{- end }}
         resources:
 {{ include "common.resources" . | indent 10 }}
         {{- if .Values.nodeSelector }}
@@ -67,8 +71,20 @@
           - key: config.json
             path: config.json
             mode: 0755
-      - name: {{ include "common.fullname" . }}-auth
-        persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+{{- if .Values.persistence.enabled }}
+  volumeClaimTemplates:
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
+    spec:
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size | quote }}
+{{- end }}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml
index 4dc13a5..142fbb5 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml
@@ -60,10 +60,10 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 40m
+      memory: 40Mi
     requests:
-      cpu: 10m
+      cpu: 1m
       memory: 10Mi
   large:
     limits:
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml
index da09498..8c48bba 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml
@@ -13,25 +13,33 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 */}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- $global := . }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) }}
+{{- range $i := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
   labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    app: {{ include "common.name" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
 spec:
   capacity:
-    storage: {{ .Values.persistence.size}}
+    storage: {{ $global.Values.persistence.size}}
   accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml
deleted file mode 100644
index e6aacd1..0000000
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{{/*
-# Copyright 2018 Intel Corporation, Inc
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml
index ab0ad17..f4151b5 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml
@@ -55,8 +55,10 @@
         - name: http
           containerPort: 8500
         volumeMounts:
+{{- if .Values.persistence.enabled }}
         - mountPath: /consul/data
-          name: {{ include "common.fullname" . }}-consuldata
+          name: {{ include "common.fullname" . }}-data
+{{- end }}
         - mountPath: /consul/config/config.json
           name: {{ include "common.fullname" . }}-consulconfiguration
           subPath: config.json
@@ -66,9 +68,6 @@
         resources:
 {{ include "common.resources" . | indent 10 }}
       volumes:
-        - name: {{ include "common.fullname" . }}-consuldata
-          persistentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}
         - name: {{ include "common.fullname" . }}-consulconfiguration
           configMap:
             name: {{ include "common.fullname" . }}-consul
@@ -79,4 +78,21 @@
           hostPath:
             path: /etc/localtime
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+{{- if .Values.persistence.enabled }}
+  volumeClaimTemplates:
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
+    spec:
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size | quote }}
+{{- end }}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml
index 360bf42..192d33d 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml
@@ -96,11 +96,11 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 40m
+      memory: 40Mi
     requests:
       cpu: 10m
-      memory: 10Mi
+      memory: 25Mi
   large:
     limits:
       cpu: 400m
diff --git a/kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml
index ca35fdc..a461b2e 100644
--- a/kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml
@@ -98,7 +98,11 @@
         configMap:
           name: {{ include "common.fullname" . }}
       - name: {{ include "common.fullname" . }}-auth
+      {{- if .Values.persistence.enabled }}
         persistentVolumeClaim:
           claimName: {{ include "common.fullname" . }}
+      {{- else }}
+        emptyDir: {}
+      {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-sms/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/templates/pv.yaml
index 37ed28e..ec88aae 100644
--- a/kubernetes/aaf/charts/aaf-sms/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/templates/pv.yaml
@@ -15,6 +15,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -32,6 +33,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml
index e6aacd1..7d1c6fd 100644
--- a/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml
@@ -30,19 +30,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/values.yaml b/kubernetes/aaf/charts/aaf-sms/values.yaml
index de005ed..2de7466 100644
--- a/kubernetes/aaf/charts/aaf-sms/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/values.yaml
@@ -88,8 +88,8 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 100m
+      memory: 15Mi
     requests:
       cpu: 10m
       memory: 10Mi
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml
index 1fcc155..2a73363 100644
--- a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml
@@ -45,8 +45,8 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 20m
+      memory: 50Mi
     requests:
       cpu: 10m
       memory: 10Mi
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pv.yaml
index fa5fd16..a07ebd0 100644
--- a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pv.yaml
@@ -15,12 +15,12 @@
 */}}
 
 {{- if .Values.global.distcenter.enabled -}}
-
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -34,8 +34,9 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pvc.yaml
index 6497639..8272597 100644
--- a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pvc.yaml
@@ -15,7 +15,6 @@
 */}}
 
 {{- if .Values.global.distcenter.enabled -}}
-
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolumeClaim
 apiVersion: v1
@@ -40,12 +39,6 @@
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml
index e8d2f7e..94791be 100644
--- a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml
@@ -54,8 +54,8 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 20m
+      memory: 50Mi
     requests:
       cpu: 10m
       memory: 10Mi
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml
index 5c3618d..3f7782c 100644
--- a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml
@@ -46,8 +46,8 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 20m
+      memory: 50Mi
     requests:
       cpu: 10m
       memory: 10Mi
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/pv-data.yaml
similarity index 81%
rename from kubernetes/vid/charts/vid-mariadb-galera/templates/pv.yaml
rename to kubernetes/aaf/charts/aaf-sshsm/templates/pv-data.yaml
index f682196..a12b4a0 100644
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/templates/pv-data.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,23 +15,26 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    name: {{ include "common.fullname" . }}-data
 spec:
   capacity:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.dataMountSubPath }}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/pv-dbus.yaml
similarity index 81%
copy from kubernetes/vid/charts/vid-mariadb-galera/templates/pv.yaml
copy to kubernetes/aaf/charts/aaf-sshsm/templates/pv-dbus.yaml
index f682196..bb5649c 100644
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/templates/pv-dbus.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,23 +15,26 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-dbus
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    name: {{ include "common.fullname" . }}-dbus
 spec:
   capacity:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-dbus"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.dbusMountSubPath }}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/pv.yaml
deleted file mode 100644
index b4d283f..0000000
--- a/kubernetes/aaf/charts/aaf-sshsm/templates/pv.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-{{/*
-# Copyright 2018 Intel Corporation, Inc
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-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: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}-data
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.dataMountSubPath }}
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-dbus
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}-dbus
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.dbusMountSubPath }}
-{{- end -}}
diff --git a/kubernetes/common/mongo/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/pvc-data.yaml
similarity index 81%
rename from kubernetes/common/mongo/templates/pvc.yaml
rename to kubernetes/aaf/charts/aaf-sshsm/templates/pvc-data.yaml
index 372c106..e8b82ca 100644
--- a/kubernetes/common/mongo/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/templates/pvc-data.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -21,11 +21,10 @@
   name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.fullname" . }}
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
 {{- if .Values.persistence.annotations }}
   annotations:
 {{ toYaml .Values.persistence.annotations | indent 4 }}
@@ -36,8 +35,5 @@
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/pvc-dbus.yaml
similarity index 79%
rename from kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pvc.yaml
rename to kubernetes/aaf/charts/aaf-sshsm/templates/pvc-dbus.yaml
index e6aacd1..9c3fb46 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/templates/pvc-dbus.yaml
@@ -18,7 +18,7 @@
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-dbus
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -30,19 +30,14 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
+{{- if eq "True" (include "common.needPV" .) }}
+  storageClassName: "{{ include "common.fullname" . }}-dbus"
 {{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end }}
 {{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/pvc.yaml
deleted file mode 100644
index c50a0bc..0000000
--- a/kubernetes/aaf/charts/aaf-sshsm/templates/pvc.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
-{{/*
-# Copyright 2018 Intel Corporation, Inc
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.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: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-data
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-dbus
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-dbus
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/values.yaml
index 2d20d57..6d4fbec 100644
--- a/kubernetes/aaf/charts/aaf-sshsm/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sshsm/values.yaml
@@ -50,8 +50,8 @@
 resources:
   small:
     limits:
-      cpu: 200m
-      memory: 500Mi
+      cpu: 20m
+      memory: 50Mi
     requests:
       cpu: 10m
       memory: 10Mi
diff --git a/kubernetes/aaf/templates/aaf-config-pv.yaml b/kubernetes/aaf/templates/aaf-config-pv.yaml
deleted file mode 100644
index 9a1e802..0000000
--- a/kubernetes/aaf/templates/aaf-config-pv.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
-#########
-##  ============LICENSE_START====================================================
-##  org.onap.aaf
-##  ===========================================================================
-##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
-##  ===========================================================================
-##  Licensed under the Apache License, Version 2.0 (the "License");
-##  you may not use this file except in compliance with the License.
-##  You may obtain a copy of the License at
-##
-##       http://www.apache.org/licenses/LICENSE-2.0
-##
-##  Unless required by applicable law or agreed to in writing, software
-##  distributed under the License is distributed on an "AS IS" BASIS,
-##  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.
-##  ============LICENSE_END====================================================
-##
-
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ .Release.Name }}-aaf-config-pv
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ .Chart.Name  }}-config
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.config.size}}
-  accessModes:
-    - {{ .Values.persistence.config.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.config.volumeReclaimPolicy }}
-  hostPath:
-     path: {{ .Values.persistence.config.mountPath }}
-{{- if .Values.persistence.config.storageClass }}
-{{- if (eq "-" .Values.persistence.config.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.config.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/aaf/templates/aaf-config-pvc.yaml b/kubernetes/aaf/templates/aaf-config-pvc.yaml
deleted file mode 100644
index b22df6d..0000000
--- a/kubernetes/aaf/templates/aaf-config-pvc.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
-#########
-##  ============LICENSE_START====================================================
-##  org.onap.aaf
-##  ===========================================================================
-##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
-##  ===========================================================================
-##  Licensed under the Apache License, Version 2.0 (the "License");
-##  you may not use this file except in compliance with the License.
-##  You may obtain a copy of the License at
-##
-##       http://www.apache.org/licenses/LICENSE-2.0
-##
-##  Unless required by applicable law or agreed to in writing, software
-##  distributed under the License is distributed on an "AS IS" BASIS,
-##  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.
-##  ============LICENSE_END====================================================
-##
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ .Release.Name }}-aaf-config-pvc
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}-config
-  accessModes:
-    - {{ .Values.persistence.config.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.config.size }}
-{{- if .Values.persistence.config.storageClass }}
-{{- if (eq "-" .Values.persistence.config.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.config.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
-
diff --git a/kubernetes/aaf/templates/aaf-status-pv.yaml b/kubernetes/aaf/templates/aaf-status-pv.yaml
deleted file mode 100644
index b8d12c5..0000000
--- a/kubernetes/aaf/templates/aaf-status-pv.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
-#########
-##  ============LICENSE_START====================================================
-##  org.onap.aaf
-##  ===========================================================================
-##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
-##  ===========================================================================
-##  Licensed under the Apache License, Version 2.0 (the "License");
-##  you may not use this file except in compliance with the License.
-##  You may obtain a copy of the License at
-##
-##       http://www.apache.org/licenses/LICENSE-2.0
-##
-##  Unless required by applicable law or agreed to in writing, software
-##  distributed under the License is distributed on an "AS IS" BASIS,
-##  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.
-##  ============LICENSE_END====================================================
-##
-
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ .Release.Name }}-aaf-status-pv
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ .Chart.Name  }}-status
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.status.size}}
-  accessModes:
-    - {{ .Values.persistence.status.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.status.volumeReclaimPolicy }}
-  hostPath:
-     path: {{ .Values.persistence.status.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.status.mountSubPath }}
-{{- if .Values.persistence.status.storageClass }}
-{{- if (eq "-" .Values.persistence.status.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.status.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/aaf/templates/aaf-status-pvc.yaml b/kubernetes/aaf/templates/aaf-status-pvc.yaml
deleted file mode 100644
index 870ac9c..0000000
--- a/kubernetes/aaf/templates/aaf-status-pvc.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
-#########
-##  ============LICENSE_START====================================================
-##  org.onap.aaf
-##  ===========================================================================
-##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
-##  ===========================================================================
-##  Licensed under the Apache License, Version 2.0 (the "License");
-##  you may not use this file except in compliance with the License.
-##  You may obtain a copy of the License at
-##
-##       http://www.apache.org/licenses/LICENSE-2.0
-##
-##  Unless required by applicable law or agreed to in writing, software
-##  distributed under the License is distributed on an "AS IS" BASIS,
-##  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.
-##  ============LICENSE_END====================================================
-##
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ .Release.Name }}-aaf-status-pvc
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}-status
-  accessModes:
-    - {{ .Values.persistence.status.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.status.size }}
-{{- if .Values.persistence.status.storageClass }}
-{{- if (eq "-" .Values.persistence.status.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.status.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
-
diff --git a/kubernetes/aaf/templates/pv-config.yaml b/kubernetes/aaf/templates/pv-config.yaml
new file mode 100644
index 0000000..b004fe4
--- /dev/null
+++ b/kubernetes/aaf/templates/pv-config.yaml
@@ -0,0 +1,40 @@
+{{/*
+#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  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.
+*/}}
+
+{{- 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" . }}-config
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}-config
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.config.size}}
+  accessModes:
+    - {{ .Values.persistence.config.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.config.volumeReclaimPolicy }}
+  hostPath:
+     path: {{ .Values.persistence.config.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.config.mountSubPath }}
+  storageClassName: "{{ include "common.fullname" . }}-config"
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/aaf/templates/pv-status.yaml b/kubernetes/aaf/templates/pv-status.yaml
new file mode 100644
index 0000000..455e322
--- /dev/null
+++ b/kubernetes/aaf/templates/pv-status.yaml
@@ -0,0 +1,40 @@
+{{/*
+#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  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.
+*/}}
+
+{{- 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" . }}-status
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}-status
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.status.size}}
+  accessModes:
+    - {{ .Values.persistence.status.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.status.volumeReclaimPolicy }}
+  hostPath:
+     path: {{ .Values.persistence.status.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.status.mountSubPath }}
+  storageClassName: "{{ include "common.fullname" . }}-status"
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/aaf/templates/pvc-config.yaml b/kubernetes/aaf/templates/pvc-config.yaml
new file mode 100644
index 0000000..3431fb0
--- /dev/null
+++ b/kubernetes/aaf/templates/pvc-config.yaml
@@ -0,0 +1,43 @@
+{{/*
+#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  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.
+*/}}
+
+{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ .Release.Name }}-aaf-config
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  accessModes:
+    - {{ .Values.persistence.config.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.config.size }}
+{{- if eq "True" (include "common.needPV" .) }}
+  storageClassName: "{{ include "common.fullname" . }}-config"
+{{- else }}
+  storageClassName: {{ include "common.storageClass" . }}
+{{- end }}
+{{- end -}}
diff --git a/kubernetes/aaf/templates/pvc-status.yaml b/kubernetes/aaf/templates/pvc-status.yaml
new file mode 100644
index 0000000..0413914
--- /dev/null
+++ b/kubernetes/aaf/templates/pvc-status.yaml
@@ -0,0 +1,43 @@
+{{/*
+#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  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.
+*/}}
+
+{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ .Release.Name }}-aaf-status
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  accessModes:
+    - {{ .Values.persistence.status.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.status.size }}
+{{- if eq "True" (include "common.needPV" .) }}
+  storageClassName: "{{ include "common.fullname" . }}-status"
+{{- else }}
+  storageClassName: {{ include "common.storageClass" . }}
+{{- end }}
+{{- end -}}
diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml
index 0109a5e..a19f102 100644
--- a/kubernetes/aaf/values.yaml
+++ b/kubernetes/aaf/values.yaml
@@ -129,20 +129,18 @@
     volumeReclaimPolicy: Delete
     accessMode: ReadWriteMany
     size: 2Gi
-    storageClass: "manual"
-    mountPath: "/mnt/data/aaf/config"
+    mountPath: /dockerdata-nfs
+    mountSubPath: "config"
   logs:
     #existingClaim:
     volumeReclaimPolicy: Retain
     accessMode: ReadWriteMany
     size: 2Gi
-    storageClass: "manual"
     mountPath: "/mnt/data/aaf/logs"
   status:
     volumeReclaimPolicy: Delete
     accessMode: ReadWriteMany
     size: 2M
-    storageClass: "manual"
     mountPath: /dockerdata-nfs
     mountSubPath: "status"
   cass:
@@ -150,7 +148,6 @@
     volumeReclaimPolicy: Retain
     accessMode: ReadWriteOnce
     size: 10Gi
-    storageClass: "manual"
     mountPath: /dockerdata-nfs
     mountSubPath: "cass"
 
diff --git a/kubernetes/aai b/kubernetes/aai
index 1a2274d..552da2c 160000
--- a/kubernetes/aai
+++ b/kubernetes/aai
@@ -1 +1 @@
-Subproject commit 1a2274dc0d8089b12a4b6feff328153dd9b26215
+Subproject commit 552da2c65b6af3f6328fcc6b11af9329d5efa30a
diff --git a/kubernetes/appc/charts/appc-ansible-server/resources/config/RestServer_config b/kubernetes/appc/charts/appc-ansible-server/resources/config/RestServer_config
index 74fcc49..8a417fc 100644
--- a/kubernetes/appc/charts/appc-ansible-server/resources/config/RestServer_config
+++ b/kubernetes/appc/charts/appc-ansible-server/resources/config/RestServer_config
@@ -24,15 +24,8 @@
 priv:	provide_privated_key.pem
 pub:	provide_public_key.pem
 
-# RestServer authentication
-id:	sdnc
-psswd:	sdnc
-
 # Mysql
 host:	{{.Values.config.mariadbGaleraSVCName}}
-user:	appc
-passwd:	appc
-db:	ansible
 
 # Playbooks
 from_files:		yes
diff --git a/kubernetes/appc/charts/appc-ansible-server/templates/pv.yaml b/kubernetes/appc/charts/appc-ansible-server/templates/pv.yaml
index 6fef70c..91ebe78 100644
--- a/kubernetes/appc/charts/appc-ansible-server/templates/pv.yaml
+++ b/kubernetes/appc/charts/appc-ansible-server/templates/pv.yaml
@@ -15,11 +15,12 @@
 */}}
 {{- $global := . }}
 {{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 {{- range $i, $t := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" $global }}-playbook{{$i}}
+  name: {{ include "common.fullname" $global }}-playbook-{{$i}}
   namespace: {{ include "common.namespace" $global }}
   labels:
     app: {{ include "common.fullname" $global }}
@@ -32,10 +33,13 @@
     storage: {{ $global.Values.persistence.size}}
   accessModes:
     - {{ $global.Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" $global }}-playbook"
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
 ---
 {{- end -}}
 {{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/appc/charts/appc-ansible-server/templates/statefulset.yaml b/kubernetes/appc/charts/appc-ansible-server/templates/statefulset.yaml
index f7fa15c..b9ef80d 100644
--- a/kubernetes/appc/charts/appc-ansible-server/templates/statefulset.yaml
+++ b/kubernetes/appc/charts/appc-ansible-server/templates/statefulset.yaml
@@ -95,9 +95,13 @@
       name: {{ include "common.fullname" . }}-playbook
       labels:
         name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-playbook
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
diff --git a/kubernetes/appc/charts/appc-ansible-server/values.yaml b/kubernetes/appc/charts/appc-ansible-server/values.yaml
index 7b0767c..b6bf77f 100644
--- a/kubernetes/appc/charts/appc-ansible-server/values.yaml
+++ b/kubernetes/appc/charts/appc-ansible-server/values.yaml
@@ -87,7 +87,7 @@
   ## If undefined (the default) or set to null, no storageClassName spec is
   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
   ##   GKE, AWS & OpenStack)
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 1Gi
   mountPath: /dockerdata-nfs
   mountSubPath: appc/ansible
@@ -112,5 +112,3 @@
       cpu: 1
       memory: 1Gi
   unlimited: {}
-
-
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
index c52c6e3..22d3836 100755
--- a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
+++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
@@ -171,6 +171,9 @@
 echo "Starting cdt-proxy-service jar, logging to ${APPC_HOME}/cdt-proxy-service/jar.log"
 java -jar ${APPC_HOME}/cdt-proxy-service/cdt-proxy-service.jar > ${APPC_HOME}/cdt-proxy-service/jar.log &
 
+echo "Starting dmaap-event-service jar, logging to ${APPC_HOME}/dmaap-event-service/jar.log"
+java -jar -Dorg_onap_appc_bootstrap_path=/opt/onap/appc/data/properties -Dorg_onap_appc_bootstrap_file=appc.properties ${APPC_HOME}/dmaap-event-service/dmaap-event-service.jar > ${APPC_HOME}/dmaap-event-service/jar.log &
+
 echo "Adding a property system.properties for AAF cadi.properties location"
 echo "" >> ${ODL_HOME}/etc/system.properties
 echo "cadi_prop_files=${APPC_HOME}/data/properties/cadi.properties" >> ${ODL_HOME}/etc/system.properties
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
index 58593d9..914d608 100644
--- a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
+++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
@@ -114,9 +114,9 @@
 
 # Properties used by EventSenderDmaapImpl.java
 DCAE.dmaap.event.topic.write=EventSenderTest
-DCAE.dmaap.appc.username=test
-DCAE.dmaap.appc.password=test
-DCAE.dmaap.event.pool.members=message-router.{{.Release.Namespace}}:3904
+DCAE.dmaap.event.username=test
+DCAE.dmaap.event.password=test
+DCAE.dmaap.event.poolMembers=message-router.{{.Release.Namespace}}:3904
 
 #OAM Listener
 appc.OAM.disabled=true
@@ -130,3 +130,8 @@
 appc.OAM.provider.pass={{.Values.config.odlPassword}}
 
 appc.asdc.env={{.Values.config.dmaapTopicEnv}}
+
+#Properties for communication between appc dmaap microservice and appc
+appc.srvcomm.messaging.username={{.Values.config.dmaapServiceUser}}
+appc.srvcomm.messaging.password={{.Values.config.dmaapServicePassword}}
+appc.srvcomm.messaging.url={{.Values.config.dmaapServiceUrl}}
diff --git a/kubernetes/appc/templates/pv.yaml b/kubernetes/appc/templates/pv.yaml
index 25257ea..955285b 100644
--- a/kubernetes/appc/templates/pv.yaml
+++ b/kubernetes/appc/templates/pv.yaml
@@ -15,11 +15,12 @@
 */}}
 {{- $global := . }}
 {{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 {{- range $i, $t := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" $global }}-data{{$i}}
+  name: {{ include "common.fullname" $global }}-data-{{$i}}
   namespace: {{ include "common.namespace" $global }}
   labels:
     app: {{ include "common.fullname" $global }}
@@ -36,6 +37,9 @@
   persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
 ---
 {{- end -}}
 {{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/appc/templates/statefulset.yaml b/kubernetes/appc/templates/statefulset.yaml
index 1401a82..0bee9f3 100644
--- a/kubernetes/appc/templates/statefulset.yaml
+++ b/kubernetes/appc/templates/statefulset.yaml
@@ -63,9 +63,8 @@
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.externalPort2 }}
           readinessProbe:
-            exec:
-              command:
-              - /opt/appc/bin/health_check.sh
+            tcpSocket:
+               port: {{ .Values.service.internalPort }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
@@ -225,9 +224,13 @@
       name: {{ include "common.fullname" . }}-data
       labels:
         name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-data
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml
index 2312638..12defea 100644
--- a/kubernetes/appc/values.yaml
+++ b/kubernetes/appc/values.yaml
@@ -65,6 +65,9 @@
   openStackUserName: admin
   openStackEncryptedPassword: enc:LDEbHEAvTF1R
   odlUser: admin
+  dmaapServiceUrl: http://localhost:8080/publish
+  dmaapServiceUser: appc
+  dmaapServicePassword: onapappc
 
 appc-ansible-server:
   service:
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/resources/config/application.properties b/kubernetes/cds/charts/cds-blueprints-processor/resources/config/application.properties
index ec2ce6b..2a67aa5 100755
--- a/kubernetes/cds/charts/cds-blueprints-processor/resources/config/application.properties
+++ b/kubernetes/cds/charts/cds-blueprints-processor/resources/config/application.properties
@@ -16,7 +16,7 @@
 # Web server config
 ### START -Controller Blueprints Properties
 # Load Resource Source Mappings
-resourceSourceMappings=processor-db=source-db,input=source-input,default=source-default,sdnc=source-rest,aai-data=source-rest,capability=source-capability,rest=source-rest,script=source-capability
+resourceSourceMappings=processor-db=source-db,input=source-input,default=source-default,sdnc=source-rest,aai-data=source-rest,capability=source-capability,rest=source-rest,vault-data=source-rest,script=source-capability
 
 # Blueprint Processor File Execution and Handling Properties
 blueprintsprocessor.blueprintDeployPath=/opt/app/onap/blueprints/deploy
@@ -106,7 +106,28 @@
 
 # Self Service Response Kafka Message Producer
 blueprintsprocessor.messageproducer.self-service-api.bootstrapServers=message-router-kafka:9092
+
+
+# Used in Health Check
 blueprintsprocessor.messageproducer.self-service-api.type=kafka-basic-auth
 blueprintsprocessor.messageproducer.self-service-api.clientId=cds-client
 blueprintsprocessor.messageproducer.self-service-api.topic=cds-producer
 
+
+blueprintprocessor.remoteScriptCommand.enabled=true
+
+#Encrypted username and password for health check service
+endpoints.user.name=eHbVUbJAj4AG2522cSbrOQ==
+endpoints.user.password=eHbVUbJAj4AG2522cSbrOQ==
+
+#BaseUrls for health check blueprint processor services
+blueprintprocessor.healthcheck.baseUrl=http://localhost:8080/
+blueprintprocessor.healthcheck.mapping-service-name-with-service-link=[Execution service,/api/v1/execution-service/health-check],[Resources service,/api/v1/resources/health-check],[Template service,/api/v1/template/health-check]
+
+#BaseUrls for health check Cds Listener services
+cdslistener.healthcheck.baseUrl=http://cds-sdc-listener:8080/
+cdslistener.healthcheck.mapping-service-name-with-service-link=[SDC Listener service,/api/v1/sdclistener/healthcheck]
+
+#Actuator properties
+management.endpoints.web.exposure.include=*
+management.endpoint.health.show-details=always
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/templates/deployment.yaml b/kubernetes/cds/charts/cds-blueprints-processor/templates/deployment.yaml
index 6cfc933..8e9b6db 100755
--- a/kubernetes/cds/charts/cds-blueprints-processor/templates/deployment.yaml
+++ b/kubernetes/cds/charts/cds-blueprints-processor/templates/deployment.yaml
@@ -71,6 +71,7 @@
                 value: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
+            timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
           {{ end }}
           readinessProbe:
             httpGet:
@@ -79,8 +80,9 @@
               httpHeaders:
               - name: Authorization
                 value: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+            timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/templates/ingress.yaml b/kubernetes/cds/charts/cds-blueprints-processor/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/cds/charts/cds-blueprints-processor/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/templates/pv.yaml b/kubernetes/cds/charts/cds-blueprints-processor/templates/pv.yaml
index 8121087..a4bf83e 100755
--- a/kubernetes/cds/charts/cds-blueprints-processor/templates/pv.yaml
+++ b/kubernetes/cds/charts/cds-blueprints-processor/templates/pv.yaml
@@ -15,6 +15,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 {{- if not .Values.persistence.storageClass -}}
 kind: PersistentVolume
 apiVersion: v1
@@ -33,7 +34,9 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/templates/pvc.yaml b/kubernetes/cds/charts/cds-blueprints-processor/templates/pvc.yaml
index 98b5571..601334e 100755
--- a/kubernetes/cds/charts/cds-blueprints-processor/templates/pvc.yaml
+++ b/kubernetes/cds/charts/cds-blueprints-processor/templates/pvc.yaml
@@ -30,21 +30,10 @@
 {{ .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-{{- if not .Values.persistence.storageClass }}
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-blueprints
-{{- end }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/values.yaml b/kubernetes/cds/charts/cds-blueprints-processor/values.yaml
index cb6d191..781b538 100755
--- a/kubernetes/cds/charts/cds-blueprints-processor/values.yaml
+++ b/kubernetes/cds/charts/cds-blueprints-processor/values.yaml
@@ -62,7 +62,8 @@
 # probe configuration parameters
 liveness:
   initialDelaySeconds: 120
-  periodSeconds: 10
+  periodSeconds: 20
+  timeoutSeconds: 20
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
@@ -70,6 +71,7 @@
 readiness:
   initialDelaySeconds: 120
   periodSeconds: 10
+  timeoutSeconds: 20
 
 service:
   http:
@@ -94,6 +96,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "blueprintsprocessorhttp"
+      name: "blueprints-processor-http"
+      port: 8080
+  config:
+    ssl: "none"
 
 resources: {}
   # We usually recommend not to specify default resources and to leave this as a conscious
diff --git a/kubernetes/cds/charts/cds-command-executor/templates/deployment.yaml b/kubernetes/cds/charts/cds-command-executor/templates/deployment.yaml
index 659eddb..bbeeea2 100755
--- a/kubernetes/cds/charts/cds-command-executor/templates/deployment.yaml
+++ b/kubernetes/cds/charts/cds-command-executor/templates/deployment.yaml
@@ -57,12 +57,14 @@
               port: {{ .Values.service.grpc.internalPort }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
+            timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
           {{ end }}
           readinessProbe:
             tcpSocket:
               port: {{ .Values.service.grpc.internalPort }}
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+            timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
diff --git a/kubernetes/cds/charts/cds-command-executor/values.yaml b/kubernetes/cds/charts/cds-command-executor/values.yaml
index 4698646..5bc0381 100755
--- a/kubernetes/cds/charts/cds-command-executor/values.yaml
+++ b/kubernetes/cds/charts/cds-command-executor/values.yaml
@@ -56,8 +56,9 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
+  initialDelaySeconds: 20
+  periodSeconds: 20
+  timeoutSeconds: 20
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
@@ -65,6 +66,7 @@
 readiness:
   initialDelaySeconds: 10
   periodSeconds: 10
+  timeoutSeconds: 20
 
 service:
   type: ClusterIP
diff --git a/kubernetes/cds/charts/cds-sdc-listener/resources/config/application.yaml b/kubernetes/cds/charts/cds-sdc-listener/resources/config/application.yaml
index 9d03025..cc611a1 100644
--- a/kubernetes/cds/charts/cds-sdc-listener/resources/config/application.yaml
+++ b/kubernetes/cds/charts/cds-sdc-listener/resources/config/application.yaml
@@ -17,4 +17,27 @@
     archivePath: /opt/app/onap/sdc-listener/
     grpcAddress: cds-blueprints-processor-grpc
     grpcPort: 9111
-    authHeader: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
\ No newline at end of file
+    authHeader: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+
+
+cdslistener:
+  healthcheck:
+    baseUrl: http://localhost:9000/
+    mapping-service-name-with-service-link: "[SDC Listener service,/api/v1/sdclistener/healthcheck]"
+
+
+management:
+  endpoint:
+    health:
+      show-details: always
+
+
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+
+endpoints:
+  user:
+    name: eHbVUbJAj4AG2522cSbrOQ==
+    password: eHbVUbJAj4AG2522cSbrOQ==
diff --git a/kubernetes/cds/charts/cds-ui/templates/deployment.yaml b/kubernetes/cds/charts/cds-ui/templates/deployment.yaml
index 562cd54..bdb1871 100644
--- a/kubernetes/cds/charts/cds-ui/templates/deployment.yaml
+++ b/kubernetes/cds/charts/cds-ui/templates/deployment.yaml
@@ -56,7 +56,7 @@
               value: {{ .Values.config.api.controller.http.baseUrl }}
             - name: API_BLUEPRINT_CONTROLLER_HTTP_AUTH_TOKEN
               value: {{ .Values.config.api.controller.http.authToken }}
-            - name: API_BLUEPRINT_PROCESSOR_HHTP_BASE_URL
+            - name: API_BLUEPRINT_PROCESSOR_HTTP_BASE_URL
               value: {{ .Values.config.api.processor.http.baseUrl }}
             - name: API_BLUEPRINT_PROCESSOR_HTTP_AUTH_TOKEN
               value: {{ .Values.config.api.processor.http.authToken }}
diff --git a/kubernetes/cds/charts/cds-ui/templates/ingress.yaml b/kubernetes/cds/charts/cds-ui/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/cds/charts/cds-ui/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/cds/charts/cds-ui/values.yaml b/kubernetes/cds/charts/cds-ui/values.yaml
index 3b7659a..e4a3e8a 100644
--- a/kubernetes/cds/charts/cds-ui/values.yaml
+++ b/kubernetes/cds/charts/cds-ui/values.yaml
@@ -40,7 +40,7 @@
   api:
     controller:
       http:
-       baseUrl: http://cds-controller-blueprints:8080/api/v1
+       baseUrl: http://cds-blueprints-processor-http:8081/api/v1
        authToken: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
     processor:
       http:
@@ -85,6 +85,13 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "cdsui"
+      name: "cds-ui"
+      port: 8080
+  config: 
+    ssl: "none"
+
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
diff --git a/kubernetes/cds/values.yaml b/kubernetes/cds/values.yaml
index a0dc0e8..fec8789 100644
--- a/kubernetes/cds/values.yaml
+++ b/kubernetes/cds/values.yaml
@@ -50,8 +50,9 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
+  initialDelaySeconds: 20
+  periodSeconds: 20
+  timeoutSeconds: 20
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
diff --git a/kubernetes/clamp/charts/clamp-dash-es/templates/pv.yaml b/kubernetes/clamp/charts/clamp-dash-es/templates/pv.yaml
index fd21cdf..a1408df 100644
--- a/kubernetes/clamp/charts/clamp-dash-es/templates/pv.yaml
+++ b/kubernetes/clamp/charts/clamp-dash-es/templates/pv.yaml
@@ -14,10 +14,11 @@
 # limitations under the License.
 */}}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -30,7 +31,9 @@
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+{{- end -}}
diff --git a/kubernetes/clamp/charts/clamp-dash-es/templates/pvc.yaml b/kubernetes/clamp/charts/clamp-dash-es/templates/pvc.yaml
index abab145..d2eddc2 100644
--- a/kubernetes/clamp/charts/clamp-dash-es/templates/pvc.yaml
+++ b/kubernetes/clamp/charts/clamp-dash-es/templates/pvc.yaml
@@ -29,11 +29,9 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
diff --git a/kubernetes/clamp/charts/mariadb/templates/pv.yaml b/kubernetes/clamp/charts/mariadb/templates/pv.yaml
index 252ca76..d166900 100644
--- a/kubernetes/clamp/charts/mariadb/templates/pv.yaml
+++ b/kubernetes/clamp/charts/mariadb/templates/pv.yaml
@@ -16,10 +16,11 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -32,7 +33,9 @@
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+{{- end -}}
diff --git a/kubernetes/clamp/charts/mariadb/templates/pvc.yaml b/kubernetes/clamp/charts/mariadb/templates/pvc.yaml
index 1deed4e..c3c2a22 100644
--- a/kubernetes/clamp/charts/mariadb/templates/pvc.yaml
+++ b/kubernetes/clamp/charts/mariadb/templates/pvc.yaml
@@ -31,19 +31,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
diff --git a/kubernetes/clamp/charts/mariadb/values.yaml b/kubernetes/clamp/charts/mariadb/values.yaml
index 5f31c79..8bf6100 100644
--- a/kubernetes/clamp/charts/mariadb/values.yaml
+++ b/kubernetes/clamp/charts/mariadb/values.yaml
@@ -70,7 +70,7 @@
   ##   GKE, AWS & OpenStack)
   ##
   # storageClass: "-"
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 2Gi
   mountPath: /dockerdata-nfs
   mountSubPath: clamp/mariadb/data
diff --git a/kubernetes/clamp/resources/config/nginx.conf b/kubernetes/clamp/resources/config/nginx.conf
index ce94eff..da7978a 100644
--- a/kubernetes/clamp/resources/config/nginx.conf
+++ b/kubernetes/clamp/resources/config/nginx.conf
@@ -4,8 +4,10 @@
   ssl_protocols TLSv1.2;
   ssl_certificate /etc/ssl/clamp.pem;
   ssl_certificate_key /etc/ssl/clamp.key;
+  ssl_verify_client optional_no_ca;
     location /restservices/clds/ {
         proxy_pass https://clamp-backend:443;
+        proxy_set_header X-SSL-Cert $ssl_client_escaped_cert;
     }
 
   location / {
diff --git a/kubernetes/clamp/templates/ingress.yaml b/kubernetes/clamp/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/clamp/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml
index 92d4bb7..d66273d 100644
--- a/kubernetes/clamp/values.yaml
+++ b/kubernetes/clamp/values.yaml
@@ -83,6 +83,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "clamp"
+      name: "clamp"
+      port: 443
+  config:
+    ssl: "redirect"
 
 #resources: {}
   # We usually recommend not to specify default resources and to leave this as a conscious
diff --git a/kubernetes/cli/templates/ingress.yaml b/kubernetes/cli/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/cli/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/cli/values.yaml b/kubernetes/cli/values.yaml
index 0fbe21d..7278c99 100644
--- a/kubernetes/cli/values.yaml
+++ b/kubernetes/cli/values.yaml
@@ -63,6 +63,15 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "cli"
+      name: "cli"
+      port: 8080
+    - baseaddr: "cli2"
+      name: cli
+      port: 9090
+  config:
+    ssl: "none"
 
 # Configure resource requests and limits
 # ref: http://kubernetes.io/docs/user-guide/compute-resources/
diff --git a/kubernetes/common/cassandra/templates/backup/cronjob.yaml b/kubernetes/common/cassandra/templates/backup/cronjob.yaml
index 630ac43..0d06318 100644
--- a/kubernetes/common/cassandra/templates/backup/cronjob.yaml
+++ b/kubernetes/common/cassandra/templates/backup/cronjob.yaml
@@ -75,7 +75,7 @@
 
                 echo "Executing cleanup!!"
                 command="nodetool cleanup"
-                /root/exec.py -p "cassandra" -c "$command"                
+                /root/exec.py -p "cassandra" -c "$command"
                 echo "Cleaned Node!! Backing up database now!!!"
 
                 command="nodetool snapshot -t $curr_time"
@@ -97,7 +97,7 @@
                     if [ 1 ] {{- range $t, $keyspace := $root.Values.backup.keyspacesToSkip }} && [ "{{ $keyspace.name }}" != "$keyspace_name" ] {{- end }}; then
                       /root/restore.sh -b $backup_dir/cassandra-{{ $i }}/data -s  /onap-data/cassandra-{{ $i }}/data/$keyspace_name -k $keyspace_name -t $curr_time &
                       pids="$pids $!"
-                    fi                  
+                    fi
                   done
                 {{- end }}
 
@@ -121,7 +121,7 @@
                   echo "Failed" > /backup/backup.log
                   exit 0
                 fi
-                
+
                 mv /backup/temp /backup/backup-${curr_time}
                 echo "Success" > /backup/backup.log
                 echo "Cassandra Backup Succeeded"
@@ -135,8 +135,10 @@
               - mountPath: /etc/localtime
                 name: localtime
                 readOnly: true
-              - mountPath: /onap-data
-                name: data-dir
+              {{- range $i := until (int .Values.replicaCount)}}
+              - mountPath: /onap-data/cassandra-{{ $i }}
+                name: data-dir-{{ $i }}
+              {{- end }}
               - mountPath: /backup
                 name: backup-dir
               - name: scripts
@@ -144,7 +146,7 @@
                 subPath: restore.sh
               - name: scripts
                 mountPath: /root/exec.py
-                subPath: exec.py           
+                subPath: exec.py
           containers:
             - name: cassandra-backup-validate
               image: "{{ .Values.image }}"
@@ -200,7 +202,7 @@
                   done
                   kill -9 $CASS_PID
                 {{- end }}
-                echo "Validation Successful!!!" 
+                echo "Validation Successful!!!"
                 cd /backup
                 totalFiles=`ls -t | grep "backup-" | wc -l`
                 if [ $totalFiles -gt {{ .Values.backup.retentionPeriod }} ]; then
@@ -230,13 +232,14 @@
               path: /etc/localtime
           - name: scripts
             configMap:
-              name: {{ include "common.fullname" $ }}-configmap
+              name: {{ include "common.fullname" . }}-configmap
               defaultMode: 0755
-          - name: data-dir
+          {{- range $i := until (int .Values.replicaCount)}}
+          - name: data-dir-{{ $i }}
             persistentVolumeClaim:
-              claimName: {{ include "common.fullname" . }}-db-data
+              claimName: {{ include "common.fullname" . }}-data-{{ $i }}
+          {{- end }}
           - name: backup-dir
             persistentVolumeClaim:
               claimName: {{ include "common.fullname" . }}-backup-data
 {{- end -}}
-              
diff --git a/kubernetes/common/cassandra/templates/backup/pv.yaml b/kubernetes/common/cassandra/templates/backup/pv.yaml
index 332dc95..10c3100 100644
--- a/kubernetes/common/cassandra/templates/backup/pv.yaml
+++ b/kubernetes/common/cassandra/templates/backup/pv.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2019 Amdocs, Bell Canada, AT&T
+# Copyright © 2019 Amdocs, Bell Canada, 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.
@@ -14,25 +14,8 @@
 # limitations under the License.
 */}}
 {{- if .Values.backup.enabled }}
-{{ if .Values.persistence.enabled }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: {{ include "common.fullname" . }}-db-data
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    heritage: {{ .Release.Service }}
-    name: {{ include "common.fullname" . }}-db-data
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-  - {{ .Values.persistence.accessMode }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 ---
 apiVersion: v1
 kind: PersistentVolume
@@ -49,9 +32,10 @@
     storage: {{ .Values.persistence.size }}
   accessModes:
   - {{ .Values.persistence.accessMode }}
-  hostPath:
-    path: {{ .Values.global.persistence.backup.mountPath | default .Values.persistence.backup.mountPath }}/{{ include "common.namespace" $ }}/{{ include "common.fullname" $ }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-{{ end }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  hostPath:
+    path: {{ .Values.global.persistence.backup.mountPath | default .Values.persistence.backup.mountPath }}/{{ include "common.namespace" . }}/{{ include "common.fullname" . }}
 {{- end -}}
-
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/cassandra/templates/backup/pvc.yaml b/kubernetes/common/cassandra/templates/backup/pvc.yaml
index 1f848c3..dd7f381 100644
--- a/kubernetes/common/cassandra/templates/backup/pvc.yaml
+++ b/kubernetes/common/cassandra/templates/backup/pvc.yaml
@@ -15,36 +15,6 @@
 */}}
 {{- if .Values.backup.enabled }}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-db-data
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}-backup
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-db-data
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 ---
 kind: PersistentVolumeClaim
 apiVersion: v1
@@ -61,20 +31,11 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-backup-data
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
 {{- end -}}
diff --git a/kubernetes/common/cassandra/templates/pv.yaml b/kubernetes/common/cassandra/templates/pv.yaml
index 06f41e7..fbbb5ba 100644
--- a/kubernetes/common/cassandra/templates/pv.yaml
+++ b/kubernetes/common/cassandra/templates/pv.yaml
@@ -12,28 +12,35 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{ if .Values.persistence.enabled }}
-{{- $root := . -}}
-{{ range $i, $e := until (int $root.Values.replicaCount) }}
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
 ---
 apiVersion: v1
 kind: PersistentVolume
 metadata:
-  name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
-  namespace: {{ $root.Release.Namespace }}
+  name: {{ $global.Release.Name }}-{{ $global.Values.service.name }}-{{ $i }}
+  namespace: {{ $global.Release.Namespace }}
   labels:
-    type: {{ $root.Values.persistence.storageType }}
-    app: {{ $root.Values.service.name }}
-    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
-    release: {{ $root.Release.Name }}
-    heritage: {{ $root.Release.Service }}
+    type: {{ $global.Values.persistence.storageType }}
+    app: {{ $global.Values.service.name }}
+    chart: {{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}
+    release: {{ $global.Release.Name }}
+    heritage: {{ $global.Release.Service }}
 spec:
   capacity:
-    storage: {{ $root.Values.persistence.size }}
+    storage: {{ $global.Values.persistence.size }}
   accessModes:
-    - {{ $root.Values.persistence.accessMode }}
+  {{- if $global.Values.backup.enabled }}
+  - ReadWriteMany
+  {{- else }}
+  - ReadWriteOnce
+  {{- end }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{ $i }}
-  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
-{{ end }}
-{{ end }}
+    path: {{ $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{ $i }}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/cassandra/templates/statefulset.yaml b/kubernetes/common/cassandra/templates/statefulset.yaml
index 4be3570..72e886d 100644
--- a/kubernetes/common/cassandra/templates/statefulset.yaml
+++ b/kubernetes/common/cassandra/templates/statefulset.yaml
@@ -49,7 +49,7 @@
         - containerPort: {{ $ports.port }}
         {{- end }}
         volumeMounts:
-          - name: cassandra-data
+          - name: {{ include "common.fullname" . }}-data
             mountPath: /var/lib/cassandra
           - name: localtime
             mountPath: /etc/localtime
@@ -151,25 +151,26 @@
           name: {{ include "common.fullname" . }}-entrypoint
           defaultMode: 0755
   {{- if not .Values.persistence.enabled }}
-      - name: cassandra-data
+      - name: {{ include "common.fullname" . }}-data
         emptyDir: {}
   {{- else }}
   volumeClaimTemplates:
     - metadata:
-        name: cassandra-data
+        name: {{ include "common.fullname" . }}-data
         labels:
-          app: {{ template "common.fullname" . }}
+          name: {{ include "common.fullname" . }}
+          chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
           release: "{{ .Release.Name }}"
           heritage: "{{ .Release.Service }}"
-      annotations:
-        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
       spec:
         accessModes:
-          - {{ .Values.persistence.accessMode | quote }}
+        {{- if .Values.backup.enabled }}
+        - ReadWriteMany
+        {{- else }}
+        - ReadWriteOnce
+        {{- end }}
+        storageClassName: {{ include "common.storageClass" . }}
         resources:
           requests:
             storage: {{ .Values.persistence.size | quote }}
-        selector:
-          matchLabels:
-            release: "{{ .Release.Name }}"
   {{- end }}
diff --git a/kubernetes/common/cassandra/values.yaml b/kubernetes/common/cassandra/values.yaml
index e568996..c3af7e5 100644
--- a/kubernetes/common/cassandra/values.yaml
+++ b/kubernetes/common/cassandra/values.yaml
@@ -115,12 +115,12 @@
   ##   GKE, AWS & OpenStack)
   ##
   ## storageClass: "-"
-  accessMode: ReadWriteOnce
+  ## Not set as it depends of the backup enabledment or not.
+  #accessMode: ReadWriteOnce
   size: 2Gi
   mountPath: /dockerdata-nfs
   mountSubPath: cassandra
   storageType: local
-  storageClass: ""
   backup:
       mountPath: /dockerdata-nfs/backup
 
diff --git a/kubernetes/common/common/templates/_createPassword.tpl b/kubernetes/common/common/templates/_createPassword.tpl
new file mode 100644
index 0000000..938b0ee
--- /dev/null
+++ b/kubernetes/common/common/templates/_createPassword.tpl
@@ -0,0 +1,62 @@
+{{/*
+# Copyright © 2019 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+*/}}
+
+{{/*
+  Resolve the master password to be used to derive other passwords. The value of
+  .Values.masterPassword is used by default, unless either override mechanism is
+  used:
+
+  - .Values.global.masterPassword  : override default master password for all charts
+  - .Values.masterPasswordOverride : override global and default masterPassword on a per chart basis
+*/}}
+{{- define "common.masterPassword" -}}
+  {{ if .Values.masterPasswordOverride }}
+    {{- printf "%d" .Values.masterPasswordOverride -}}
+  {{ else if .Values.global.masterPassword }}
+    {{- printf "%d" .Values.global.masterPassword -}}
+  {{ else if .Values.masterPassword }}
+    {{- printf "%d" .Values.masterPassword -}}
+  {{ else }}
+    {{ fail "masterPassword not provided" }}
+  {{ end }}
+{{- end -}}
+
+{{/*
+  Generate a new password based on masterPassword. The new password is not
+  random, it is derived from masterPassword, fully qualified chart name and
+  additional uid provided by the user. This ensures that every time when we
+  run this function from the same place, with the same password and uid we
+  get the same results. This allows to avoid password changes while you are
+  doing upgrade.
+
+  The function can take from one to three arguments (inside a dictionary):
+  - .dot : environment (.)
+  - .uid : unique identifier of password to be generated within this particular chart. Use only when you create more than a single password within one chart
+  - .strength : complexity of derived password. See derivePassword documentation for more details
+
+  Example calls:
+
+    {{ include "common.createPassword" . }}
+    {{ include "common.createPassword" (dict "dot" . "uid" "mysqlRootPasswd") }}
+
+*/}}
+{{- define "common.createPassword" -}}
+  {{- $dot := default . .dot -}}
+  {{- $uid := default "onap" .uid -}}
+  {{- $strength := default "long" .strength -}}
+  {{- $mp := include "common.masterPassword" $dot -}}
+  {{- derivePassword 1 $strength $mp (include "common.fullname" $dot) $uid -}}
+{{- end -}}
diff --git a/kubernetes/common/common/templates/_ingress.tpl b/kubernetes/common/common/templates/_ingress.tpl
index 49d7eeb..b4afe63 100644
--- a/kubernetes/common/common/templates/_ingress.tpl
+++ b/kubernetes/common/common/templates/_ingress.tpl
@@ -1,12 +1,24 @@
 {{- define "ingress.config.port" -}}
 {{- if .Values.ingress -}}
-{{- if .Values.ingress.service -}}
+{{- if or (not .Values.global.ingress.virtualhost) (not .Values.global.ingress.virtualhost.enabled) -}}
+  - http:
+      paths:
 {{- range .Values.ingress.service }}
-        - path: {{ .path }}
+        - path: {{  printf "/%s" (required "baseaddr" .baseaddr) }}
           backend:
             serviceName: {{ .name }}
             servicePort: {{ .port }}
 {{- end -}}
+{{- else if .Values.ingress.service -}}
+{{- $burl := (required "baseurl" .Values.global.ingress.virtualhost.baseurl) -}}
+{{ range .Values.ingress.service }}
+  - host: {{ printf "%s.%s" (required "baseaddr" .baseaddr) $burl }}
+    http:
+      paths:
+      - backend:
+          serviceName: {{ .name }}
+          servicePort: {{ .port }}
+{{- end -}}
 {{- else -}}
         - path: {{ printf "/%s" .Chart.Name }}
           backend:
@@ -17,18 +29,37 @@
 {{- end -}}
 
 
+{{- define "ingress.config.annotations.ssl" -}}
+{{- if .Values.ingress.config -}}
+{{- if .Values.ingress.config.ssl -}}
+{{- if eq .Values.ingress.config.ssl "redirect" -}}
+kubernetes.io/ingress.class: nginx
+nginx.ingress.kubernetes.io/ssl-passthrough: "true"
+nginx.ingress.kubernetes.io/ssl-redirect: "true"
+{{-  else if eq .Values.ingress.config.ssl "native" -}}
+nginx.ingress.kubernetes.io/ssl-redirect: "true"
+{{-  else if eq .Values.ingress.config.ssl "none" -}}
+nginx.ingress.kubernetes.io/ssl-redirect: "false"
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+
 {{- define "ingress.config.annotations" -}}
 {{- if .Values.ingress -}}
 {{- if .Values.ingress.annotations -}}
 {{ toYaml .Values.ingress.annotations | indent 4 | trim }}
 {{- end -}}
 {{- end -}}
+{{ include "ingress.config.annotations.ssl" . | indent 4 | trim }}
 {{- end -}}
 
 
 {{- define "common.ingress" -}}
 {{- if .Values.ingress -}}
-{{- if .Values.ingress.enabled -}}
+{{- if .Values.global.ingress -}}
+{{- if and .Values.ingress.enabled .Values.global.ingress.enabled -}}
 apiVersion: extensions/v1beta1
 kind: Ingress
 metadata:
@@ -42,9 +73,7 @@
     heritage: {{ .Release.Service }}
 spec:
   rules:
-  - http:
-      paths:
-        {{- include "ingress.config.port" . }}
+  {{ include "ingress.config.port" . | trim }}
 {{- if .Values.ingress.tls }}
   tls:
 {{ toYaml .Values.ingress.tls | indent 4 }}
@@ -52,4 +81,4 @@
 {{- end -}}
 {{- end -}}
 {{- end -}}
-
+{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/common/common/templates/_mariadb.tpl b/kubernetes/common/common/templates/_mariadb.tpl
new file mode 100644
index 0000000..cd7142f
--- /dev/null
+++ b/kubernetes/common/common/templates/_mariadb.tpl
@@ -0,0 +1,59 @@
+{{/*
+# Copyright © 2019 Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+*/}}
+
+{{/*
+  Choose the name of the mariadb service to use.
+*/}}
+{{- define "common.mariadbService" -}}
+  {{- if .Values.global.mariadbGalera.localCluster -}}
+    {{- index .Values "mariadb-galera" "service" "name" -}}
+  {{- else -}}
+    {{- .Values.global.mariadbGalera.service -}}
+  {{- end -}}
+{{- end -}}
+
+{{/*
+  Choose the value of mariadb port to use.
+*/}}
+{{- define "common.mariadbPort" -}}
+  {{- if .Values.global.mariadbGalera.localCluster -}}
+    {{- index .Values "mariadb-galera" "service" "internalPort" -}}
+  {{- else -}}
+    {{- .Values.global.mariadbGalera.internalPort -}}
+  {{- end -}}
+{{- end -}}
+
+{{/*
+  Choose the value of secret to retrieve user value.
+*/}}
+{{- define "common.mariadbSecret" -}}
+  {{- if .Values.global.mariadbGalera.localCluster -}}
+    {{ printf "%s-%s" (include "common.fullname" .) (index .Values "mariadb-galera" "nameOverride") -}}
+  {{- else -}}
+    {{ printf "%s-%s" (.Release.Name) (index .Values "mariadb-init" "nameOverride") -}}
+  {{- end -}}
+{{- end -}}
+
+{{/*
+  Choose the value of secret param to retrieve user value.
+*/}}
+{{- define "common.mariadbSecretParam" -}}
+  {{- if .Values.global.mariadbGalera.localCluster -}}
+    {{ printf "user-password" -}}
+  {{- else -}}
+    {{ printf "db-user-password" -}}
+  {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/common/templates/_name.tpl b/kubernetes/common/common/templates/_name.tpl
index 4299984..f84ca21 100644
--- a/kubernetes/common/common/templates/_name.tpl
+++ b/kubernetes/common/common/templates/_name.tpl
@@ -28,4 +28,14 @@
 {{- define "common.fullname" -}}
   {{- $name := default .Chart.Name .Values.nameOverride -}}
   {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+
+{{/*
+  Retrieve the "original" release from the component release:
+  if ONAP is deploy with "helm deploy --name toto", then cassandra components
+  will have "toto-cassandra" as release name.
+  this function would answer back "toto".
+*/}}
+{{- define "common.release" -}}
+  {{- regexReplaceAll "-[a-zA-Z0-9]*$" .Release.Name ""  }}
+{{- end -}}
diff --git a/kubernetes/common/common/templates/_storageClass.tpl b/kubernetes/common/common/templates/_storageClass.tpl
new file mode 100644
index 0000000..8fd1f97
--- /dev/null
+++ b/kubernetes/common/common/templates/_storageClass.tpl
@@ -0,0 +1,57 @@
+{{/*
+# Copyright © 2019 Amdocs, Bell Canada, Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+*/}}
+
+{{/*
+  Expand the name of the storage class.
+  The value "common.fullname"-data is used by default,
+  unless either override mechanism is used.
+
+  - .Values.global.persistence.storageClass  : override default storageClass for all charts
+  - .Values.persistence.storageClassOverride : override global and default storage class on a per chart basis
+  - .Values.persistence.storageClass         : override default storage class on a per chart basis
+*/}}
+{{- define "common.storageClass" -}}
+  {{- if .Values.persistence.storageClassOverride -}}
+    {{- if ne "-" .Values.persistence.storageClassOverride -}}
+      {{- printf "%s" .Values.persistence.storageClassOverride -}}
+    {{- else -}}
+      {{- $storage_class := "" -}}
+      {{- printf "%q" $storage_class -}}
+    {{- end -}}
+  {{- else -}}
+    {{- if or .Values.persistence.storageClass .Values.global.persistence.storageClass }}
+      {{- if ne "-" (default .Values.persistence.storageClass .Values.global.persistence.storageClass) -}}
+        {{- printf "%s" (default .Values.persistence.storageClass .Values.global.persistence.storageClass) -}}
+      {{- else -}}
+        {{- $storage_class := "" -}}
+        {{- printf "%q" $storage_class -}}
+      {{- end -}}
+    {{- else -}}
+      {{- printf "%s-data" (include "common.fullname" .) -}}
+    {{- end -}}
+  {{- end -}}
+{{- end -}}
+
+{{/*
+  Calculate if we need a PV. If a storageClass is provided, then we don't need.
+*/}}
+{{- define "common.needPV" -}}
+{{- if or (or .Values.persistence.storageClassOverride .Values.persistence.storageClass) .Values.global.persistence.storageClass -}}
+  False
+{{- else -}}
+  True
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/etcd/Chart.yaml b/kubernetes/common/etcd/Chart.yaml
index a01524c..012a4e1 100644
--- a/kubernetes/common/etcd/Chart.yaml
+++ b/kubernetes/common/etcd/Chart.yaml
@@ -11,7 +11,8 @@
 # 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: v1
 name: etcd
 home: https://github.com/coreos/etcd
 version: 5.0.0
diff --git a/kubernetes/common/etcd/templates/pv.yaml b/kubernetes/common/etcd/templates/pv.yaml
index 65993e5..da8dfb8 100644
--- a/kubernetes/common/etcd/templates/pv.yaml
+++ b/kubernetes/common/etcd/templates/pv.yaml
@@ -12,30 +12,34 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{ if .Values.persistence.enabled }}
-{{- $root := . -}}
-{{ range $i, $e := until (int $root.Values.replicaCount) }}
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
 ---
 apiVersion: v1
 kind: PersistentVolume
 metadata:
-  name: {{ include "common.fullname" $root }}-data-{{ $i }}
-  namespace: {{ $root.Release.Namespace }}
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
   labels:
-    type: {{ $root.Values.persistence.storageType }}
-    app: {{ include "common.fullname" $root }}
-    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
-    release: {{ $root.Release.Name }}
-    heritage: {{ $root.Release.Service }}
+    app: {{ include "common.fullname" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
 spec:
   capacity:
-    storage: {{ $root.Values.persistence.storage }}
+    storage: {{ $global.Values.persistence.storage }}
   accessModes:
-    - {{ $root.Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" $root }}-data"
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{ $i }}
-  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
-{{ end }}
-{{ end }}
-
+    path: {{ $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{ $i }}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/etcd/templates/statefulset.yaml b/kubernetes/common/etcd/templates/statefulset.yaml
index 7190c5b..cef1a48 100644
--- a/kubernetes/common/etcd/templates/statefulset.yaml
+++ b/kubernetes/common/etcd/templates/statefulset.yaml
@@ -213,14 +213,19 @@
   volumeClaimTemplates:
   - metadata:
       name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
     spec:
       accessModes:
-        - "{{ .Values.persistence.accessMode }}"
+      - "{{ .Values.persistence.accessMode }}"
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           # upstream recommended max is 700M
           storage: "{{ .Values.persistence.storage }}"
-      storageClassName: {{ include "common.fullname" . }}-data
   {{- else }}
       volumes:
       - name: {{ include "common.fullname" . }}-data
@@ -231,4 +236,3 @@
         emptyDir: {}
       {{- end }}
   {{- end }}
-
diff --git a/kubernetes/common/etcd/values.yaml b/kubernetes/common/etcd/values.yaml
index 7f53d22..d994f87 100644
--- a/kubernetes/common/etcd/values.yaml
+++ b/kubernetes/common/etcd/values.yaml
@@ -45,7 +45,7 @@
   enabled: true
 
 persistence:
-  enabled: false
+  enabled: true
   ## etcd data Persistent Volume Storage Class
   ## If defined, storageClassName: <storageClass>
   ## If set to "-", storageClassName: "", which disables dynamic provisioning
@@ -79,4 +79,3 @@
 affinity: {}
 extraEnv: []
 resources: {}
-
diff --git a/kubernetes/common/mariadb-galera/.helmignore b/kubernetes/common/mariadb-galera/.helmignore
index f0c1319..f3d010c 100644
--- a/kubernetes/common/mariadb-galera/.helmignore
+++ b/kubernetes/common/mariadb-galera/.helmignore
@@ -19,3 +19,6 @@
 .project
 .idea/
 *.tmproj
+
+# Unit tests folder
+tests
diff --git a/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml b/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml
index 7d3ec75..a5f1578 100644
--- a/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml
+++ b/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml
@@ -91,10 +91,8 @@
                   name: {{ include "common.fullname" . }}
                   key: db-root-password
             volumeMounts:
-            - name: backup-data
+            - name: backup-dir
               mountPath: /backup
-            - name: db-data
-              mountPath: /var/lib/mysql
           containers:
           - name: mariadb-backup-validate
             image: "{{ include "common.repository" . }}/{{ .Values.backupImage }}"
@@ -130,7 +128,7 @@
                 remove_dir $target_dir
                 exit 0
               fi
-              
+
               /docker-entrypoint.sh mysqld &
 
               count=0
@@ -163,16 +161,13 @@
             - mountPath: /etc/localtime
               name: localtime
               readOnly: true
-            - name: backup-data
+            - name: backup-dir
               mountPath: /backup
           volumes:
           - name: localtime
             hostPath:
               path: /etc/localtime
-          - name: db-data
+          - name: backup-dir
             persistentVolumeClaim:
-              claimName: {{ include "common.fullname" . }}-db-data
-          - name: backup-data
-            persistentVolumeClaim:
-              claimName: {{ include "common.fullname" . }}-backup 
+              claimName: {{ include "common.fullname" . }}-backup-data
 {{- end }}
diff --git a/kubernetes/common/mariadb-galera/templates/backup/pv.yaml b/kubernetes/common/mariadb-galera/templates/backup/pv.yaml
index 2972191..ec6f44d 100644
--- a/kubernetes/common/mariadb-galera/templates/backup/pv.yaml
+++ b/kubernetes/common/mariadb-galera/templates/backup/pv.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2019 Amdocs, Bell Canada
+# Copyright © 2019 Amdocs, Bell Canada, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,45 +15,27 @@
 */}}
 {{- if .Values.backup.enabled }}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-backup
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}-backup
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-  - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.backup.mountPath | default .Values.persistence.backup.mountPath }}/{{ include "common.namespace" . }}/{{include "common.name" . }}
+{{- if eq "True" (include "common.needPV" .) -}}
 ---
-kind: PersistentVolume
 apiVersion: v1
+kind: PersistentVolume
 metadata:
-  name: {{ include "common.fullname" . }}-db-data
+  name: {{ include "common.fullname" . }}-backup-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}-db-data
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    heritage: {{ .Release.Service }}
+    name: {{ include "common.fullname" . }}-backup-data
 spec:
   capacity:
-    storage: {{ .Values.persistence.size}}
+    storage: {{ .Values.persistence.size }}
   accessModes:
   - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data-backup"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}{{ sub .Values.replicaCount 1 }}
+    path: {{ .Values.global.persistence.backup.mountPath | default .Values.persistence.backup.mountPath }}/{{ include "common.namespace" $ }}/{{ include "common.fullname" $ }}
 {{- end -}}
 {{- end -}}
-
+{{- end -}}
diff --git a/kubernetes/common/mariadb-galera/templates/backup/pvc.yaml b/kubernetes/common/mariadb-galera/templates/backup/pvc.yaml
index a983c8a..06b590c 100644
--- a/kubernetes/common/mariadb-galera/templates/backup/pvc.yaml
+++ b/kubernetes/common/mariadb-galera/templates/backup/pvc.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2019 Amdocs, Bell Canada
+# Copyright © 2019 Amdocs, Bell Canada, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,10 +15,11 @@
 */}}
 {{- if .Values.backup.enabled }}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+---
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-backup
+  name: {{ include "common.fullname" . }}-backup-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}-backup
@@ -30,52 +31,15 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-backup
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
+{{- if eq "True" (include "common.needPV" .) -}}
+  storageClassName: "{{ include "common.fullname" . }}-data-backup"
 {{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-db-data
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}-db-data
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-db-data
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
 {{- end -}}
-
+{{- end -}}
diff --git a/kubernetes/common/mariadb-galera/templates/configmap.yaml b/kubernetes/common/mariadb-galera/templates/configmap.yaml
index 9c9a248..ff6e119 100644
--- a/kubernetes/common/mariadb-galera/templates/configmap.yaml
+++ b/kubernetes/common/mariadb-galera/templates/configmap.yaml
@@ -12,19 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-confd
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
----
 {{- if .Values.externalConfig }}
 apiVersion: v1
 kind: ConfigMap
@@ -39,4 +26,4 @@
 data:
   my_extra.cnf: |
 {{ .Values.externalConfig | indent 4 }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/common/mariadb-galera/templates/pv.yaml b/kubernetes/common/mariadb-galera/templates/pv.yaml
index a2096fd..795ad31 100644
--- a/kubernetes/common/mariadb-galera/templates/pv.yaml
+++ b/kubernetes/common/mariadb-galera/templates/pv.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright © 2019 Amdocs, Bell Canada, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,12 +14,13 @@
 # limitations under the License.
 */}}
 {{- $global := . }}
-{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) -}}
-{{- range $i, $t := until (int $global.Values.replicaCount)}}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" $global }}-data{{$i}}
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
   namespace: {{ include "common.namespace" $global }}
   labels:
     app: {{ include "common.fullname" $global }}
@@ -35,7 +36,10 @@
   persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
   storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}{{$i}}
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
 ---
 {{- end -}}
 {{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/mariadb-galera/templates/pvc.yaml b/kubernetes/common/mariadb-galera/templates/pvc.yaml
deleted file mode 100644
index e27c331..0000000
--- a/kubernetes/common/mariadb-galera/templates/pvc.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/common/mariadb-galera/templates/statefulset.yaml b/kubernetes/common/mariadb-galera/templates/statefulset.yaml
index b0b7174..c3cb4aa 100644
--- a/kubernetes/common/mariadb-galera/templates/statefulset.yaml
+++ b/kubernetes/common/mariadb-galera/templates/statefulset.yaml
@@ -1,4 +1,4 @@
-# Copyright © 2018 Amdocs, Bell Canada
+# Copyright © 2019 Amdocs, Bell Canada, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -112,7 +112,7 @@
           - mountPath: /var/lib/mysql
             name: {{ include "common.fullname" . }}-data
       initContainers:
-        - name: mariadb-galera-prepare
+        - name: {{ include "common.name" . }}-prepare
           image: "{{ include "common.repository" . }}/{{ .Values.imageInit }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
           command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"]
@@ -130,11 +130,8 @@
     spec:
       accessModes:
       - {{ .Values.persistence.accessMode | quote }}
-      storageClassName: {{ include "common.fullname" . }}-data
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           storage: {{ .Values.persistence.size | quote }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}
 {{- end }}
diff --git a/kubernetes/common/mariadb-galera/tests/pv_test.yaml b/kubernetes/common/mariadb-galera/tests/pv_test.yaml
new file mode 100644
index 0000000..cd40079
--- /dev/null
+++ b/kubernetes/common/mariadb-galera/tests/pv_test.yaml
@@ -0,0 +1,35 @@
+---
+suite: test pv behavior
+templates:
+  - pv.yaml
+tests:
+  - it: 'should render "" (global case))'
+    values:
+      - ./values/persistence.yaml
+    set:
+      global.persistence.storageClass: "-"
+    asserts:
+      - isEmpty:
+
+  - it: 'should "" (override case)'
+    values:
+      - ./values/persistence.yaml
+    set:
+      global.persistence.storageClass: "global"
+      persistence.storageClassOverride: "-"
+    asserts:
+      - isEmpty:
+
+  - it: 'should "" (local case)'
+    values:
+      - ./values/persistence.yaml
+    set:
+      persistence.storageClass: "-"
+    asserts:
+      - isEmpty:
+
+  - it: 'should render "RELEASE-NAME-mariadb-galera-data" as storageClassname'
+    asserts:
+      - equal:
+          path: spec.storageClassName
+          value: "RELEASE-NAME-mariadb-galera-data"
diff --git a/kubernetes/common/mariadb-galera/tests/storage_class_test.yaml b/kubernetes/common/mariadb-galera/tests/storage_class_test.yaml
new file mode 100644
index 0000000..9b7bdcb
--- /dev/null
+++ b/kubernetes/common/mariadb-galera/tests/storage_class_test.yaml
@@ -0,0 +1,67 @@
+---
+suite: test storage class behavior
+templates:
+  - statefulset.yaml
+tests:
+  - it: 'should render "" as storageClassname (global case)'
+    values:
+      - ./values/persistence.yaml
+    set:
+      global.persistence.storageClass: "-"
+    asserts:
+      - isEmpty:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+
+  - it: 'should "" as storageClassname (override case)'
+    values:
+      - ./values/persistence.yaml
+    set:
+      global.persistence.storageClass: "global"
+      persistence.storageClassOverride: "-"
+    asserts:
+      - isEmpty:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+
+  - it: 'should "" as storageClassname (local case)'
+    values:
+      - ./values/persistence.yaml
+    set:
+      persistence.storageClass: "-"
+    asserts:
+      - isEmpty:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+
+  - it: 'should render "global" as storageClassname'
+    values:
+      - ./values/persistence.yaml
+    set:
+      global.persistence.storageClass: "global"
+    asserts:
+      - equal:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+          value: "global"
+
+  - it: 'should render "local" as storageClassname'
+    values:
+      - ./values/persistence.yaml
+    asserts:
+      - equal:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+          value: "local"
+
+  - it: 'should render "override" as storageClassname'
+    values:
+      - ./values/persistence.yaml
+    set:
+      global.persistence.storageClass: "global"
+      persistence.storageClassOverride: "override"
+    asserts:
+      - equal:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+          value: "override"
+
+  - it: 'should render "RELEASE-NAME-mariadb-galera-data" as storageClassname'
+    asserts:
+      - equal:
+          path: spec.volumeClaimTemplates[0].spec.storageClassName
+          value: "RELEASE-NAME-mariadb-galera-data"
diff --git a/kubernetes/common/mariadb-galera/tests/values/persistence.yaml b/kubernetes/common/mariadb-galera/tests/values/persistence.yaml
new file mode 100644
index 0000000..a282f74
--- /dev/null
+++ b/kubernetes/common/mariadb-galera/tests/values/persistence.yaml
@@ -0,0 +1,6 @@
+---
+persistence:
+  enabled: true
+  existingClaim: false
+  size: 10Gb
+  storageClass: "local"
diff --git a/kubernetes/common/mariadb-galera/values.yaml b/kubernetes/common/mariadb-galera/values.yaml
index a662b1e..14215e4 100644
--- a/kubernetes/common/mariadb-galera/values.yaml
+++ b/kubernetes/common/mariadb-galera/values.yaml
@@ -35,7 +35,7 @@
 #repository: mysql
 repository: nexus3.onap.org:10001
 image: adfinissygroup/k8s-mariadb-galera-centos:v002
-backupImage: library/mariadb:10.1.38 
+backupImage: library/mariadb:10.1.38
 imageInit: busybox
 pullPolicy: IfNotPresent
 
@@ -91,7 +91,7 @@
   mountSubPath: "mariadb-galera/data"
   mysqlPath: /var/lib/mysql
   backup:
-    mountPath: /dockerdata-nfs/backup
+    mountPath: /dockerdata-nfs/backup{{- if or (or .Values.storageClassOverride .Values.persistence.storageClass) .Values.global.persistence.storageClass -}}
 
 service:
   internalPort: 3306
diff --git a/kubernetes/common/mysql/.helmignore b/kubernetes/common/mariadb-init/.helmignore
similarity index 97%
rename from kubernetes/common/mysql/.helmignore
rename to kubernetes/common/mariadb-init/.helmignore
index f0c1319..dadf202 100644
--- a/kubernetes/common/mysql/.helmignore
+++ b/kubernetes/common/mariadb-init/.helmignore
@@ -19,3 +19,5 @@
 .project
 .idea/
 *.tmproj
+
+tests
diff --git a/kubernetes/common/nfs-provisioner/Chart.yaml b/kubernetes/common/mariadb-init/Chart.yaml
similarity index 84%
rename from kubernetes/common/nfs-provisioner/Chart.yaml
rename to kubernetes/common/mariadb-init/Chart.yaml
index ad16ed7..47b8b8f 100644
--- a/kubernetes/common/nfs-provisioner/Chart.yaml
+++ b/kubernetes/common/mariadb-init/Chart.yaml
@@ -1,4 +1,4 @@
-# Copyright © 2019 Amdocs, Bell Canada
+# Copyright © 2018 Amdocs, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: NFS provisioner
-name: nfs-provisioner
+description: Chart for MariaDB Galera init job
+name: mariadb-init
 version: 5.0.0
diff --git a/kubernetes/common/nfs-provisioner/requirements.yaml b/kubernetes/common/mariadb-init/requirements.yaml
similarity index 88%
rename from kubernetes/common/nfs-provisioner/requirements.yaml
rename to kubernetes/common/mariadb-init/requirements.yaml
index 542c262..d323dda 100644
--- a/kubernetes/common/nfs-provisioner/requirements.yaml
+++ b/kubernetes/common/mariadb-init/requirements.yaml
@@ -1,4 +1,4 @@
-# Copyright © 2019 Amdocs, Bell Canada
+# Copyright © 2018 Amdocs, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,4 +15,4 @@
 dependencies:
   - name: common
     version: ~5.x-0
-    repository: '@local'
+    repository: 'file://../common'
\ No newline at end of file
diff --git a/kubernetes/common/mariadb-init/resources/config/db_init.sh b/kubernetes/common/mariadb-init/resources/config/db_init.sh
new file mode 100755
index 0000000..304835b
--- /dev/null
+++ b/kubernetes/common/mariadb-init/resources/config/db_init.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# Copyright © 2019 Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+
+echo "Creating database {{ .Values.config.mysqlDatabase }} and user {{ .Values.config.userName }}..."
+
+mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE OR REPLACE USER '{{ .Values.config.userName }}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}'"
+mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE IF NOT EXISTS {{ .Values.config.mysqlDatabase }}"
+mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD -e "GRANT ALL PRIVILEGES ON {{ .Values.config.mysqlDatabase }}.* TO '{{ .Values.config.userName }}'@'%'"
+
+echo "Created database {{ .Values.config.mysqlDatabase }} and user {{ .Values.config.userName }}."
+
+{{ range $db, $dbInfos := .Values.config.mysqlAdditionalDatabases -}}
+echo "Creating database {{ $db }} and user {{ $dbInfos.user }}..."
+
+mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE OR REPLACE USER '{{ $dbInfos.user }}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD_{{ $db | upper }}}'"
+mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE IF NOT EXISTS {{ $db }}"
+mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD -e "GRANT ALL PRIVILEGES ON {{ $db }}.* TO '{{ $dbInfos.user }}'@'%'"
+
+echo "Created database {{ $db }} and user {{ $dbInfos.user }}."
+{{ end }}
diff --git a/kubernetes/common/mongo/templates/storageclass.yaml b/kubernetes/common/mariadb-init/templates/_configmap.tpl
similarity index 62%
rename from kubernetes/common/mongo/templates/storageclass.yaml
rename to kubernetes/common/mariadb-init/templates/_configmap.tpl
index 3cd502e..ea612a0 100644
--- a/kubernetes/common/mongo/templates/storageclass.yaml
+++ b/kubernetes/common/mariadb-init/templates/_configmap.tpl
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright © 2019 Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,11 +14,13 @@
 # limitations under the License.
 */}}
 
-{{ if not .Values.disableNfsProvisioner }}
-kind: StorageClass
-apiVersion: storage.k8s.io/v1
-metadata:
-  name: "{{ include "common.fullname" . }}-data"
-  namespace: {{ include "common.namespace" . }}
-provisioner: {{ include "common.fullname" . }}/nfs
-{{ end }}
+{{/*
+  Choose the name of the configmap to use.
+*/}}
+{{- define "mariadbInit.configMap" -}}
+  {{- if (eq "default" .Values.config.config_map) -}}
+    {{- include "common.fullname" . -}}
+  {{- else -}}
+    {{- printf "%s-%s" (include "common.release" .) .Values.config.config_map -}}
+  {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/mariadb-init/templates/_mariadb.tpl b/kubernetes/common/mariadb-init/templates/_mariadb.tpl
new file mode 100644
index 0000000..4f111a5
--- /dev/null
+++ b/kubernetes/common/mariadb-init/templates/_mariadb.tpl
@@ -0,0 +1,26 @@
+{{/*
+# Copyright © 2019 Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+*/}}
+
+{{/*
+  Choose the name of the mariadb secret to use.
+*/}}
+{{- define "mariadbInit.mariadbClusterSecret" -}}
+  {{- if (eq "default" .Values.global.mariadbGalera.userRootSecret) -}}
+    {{- printf "%s-mariadb-galera-%s" (include "common.release" .) .Values.global.mariadbGalera.nameOverride -}}
+  {{- else -}}
+    {{- .Values.global.mariadbGalera.userRootSecret -}}
+  {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/mysql/templates/secrets.yaml b/kubernetes/common/mariadb-init/templates/configmap.yaml
similarity index 80%
rename from kubernetes/common/mysql/templates/secrets.yaml
rename to kubernetes/common/mariadb-init/templates/configmap.yaml
index 7f9b123..9da0366 100644
--- a/kubernetes/common/mysql/templates/secrets.yaml
+++ b/kubernetes/common/mariadb-init/templates/configmap.yaml
@@ -1,5 +1,5 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright © 2019 Orange
+# Modifications Copyright © 2018 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,18 +12,16 @@
 # 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: v1
-kind: Secret
+kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.fullname" . }}
+    app: {{ include "common.name" . }}
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-type: Opaque
 data:
-  db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/common/mariadb-init/templates/job.yaml b/kubernetes/common/mariadb-init/templates/job.yaml
new file mode 100644
index 0000000..679c10c
--- /dev/null
+++ b/kubernetes/common/mariadb-init/templates/job.yaml
@@ -0,0 +1,105 @@
+# Copyright © 2019 Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-config-job
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  backoffLimit: 20
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      initContainers:
+      - name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - {{ .Values.global.mariadbGalera.nameOverride }}
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - bash
+        - /db_init/db_init.sh
+        env:
+        - name: DB_HOST
+          value: "{{ .Values.global.mariadbGalera.nameOverride }}"
+        - name: DB_PORT
+          value: "{{ .Values.global.mariadbGalera.servicePort }}"
+        - name: MYSQL_ROOT_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              name: {{ include "mariadbInit.mariadbClusterSecret" . }}
+              key: {{ .Values.global.mariadbGalera.userRootSecretKey }}
+        - name: MYSQL_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              name: {{ template "common.fullname" . }}
+              key: db-user-password
+{{- $root := . }}
+{{ range $db, $_value := .Values.config.mysqlAdditionalDatabases }}
+        - name: {{ printf "MYSQL_PASSWORD_%s" $db | upper }}
+          valueFrom:
+            secretKeyRef:
+              name: {{ template "common.fullname" $root }}-secret
+              key: {{ printf "db-%s-user-password" $db }}
+{{ end }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - name: mariadb-conf
+          mountPath: /db_init/
+          readOnly: true
+        resources:
+{{ include "common.resources" . | indent 12 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+      {{- end }}
+      volumes:
+      - name: mariadb-conf
+        configMap:
+          name: {{ include "mariadbInit.configMap" . }}
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      restartPolicy: Never
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/nbi/templates/secrets.yaml b/kubernetes/common/mariadb-init/templates/secret.yaml
similarity index 75%
rename from kubernetes/nbi/templates/secrets.yaml
rename to kubernetes/common/mariadb-init/templates/secret.yaml
index c29cb1c..f30d582 100644
--- a/kubernetes/nbi/templates/secrets.yaml
+++ b/kubernetes/common/mariadb-init/templates/secret.yaml
@@ -15,7 +15,7 @@
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ include "common.fullname" . }}-secret
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -24,5 +24,7 @@
     heritage: {{ .Release.Service }}
 type: Opaque
 data:
-  db-user-password: {{ .Values.mariadb.config.db.password | b64enc | quote }}
-  db-root-password: {{ .Values.mariadb.config.db.root_password | b64enc | quote }}
+  db-user-password: {{ index .Values.config.userPassword | b64enc | quote }}
+{{ range $db, $dbInfos := .Values.config.mysqlAdditionalDatabases }}
+  {{ printf "db-%s-user-password" $db}}: {{ $dbInfos.password | b64enc | quote }}
+{{ end }}
diff --git a/kubernetes/common/mariadb-init/tests/configmap_test.yaml b/kubernetes/common/mariadb-init/tests/configmap_test.yaml
new file mode 100644
index 0000000..34914cd
--- /dev/null
+++ b/kubernetes/common/mariadb-init/tests/configmap_test.yaml
@@ -0,0 +1,114 @@
+---
+suite: test configmap behavior
+templates:
+  - configmap.yaml
+tests:
+  - it: "should render with default value"
+    asserts:
+      - isKind:
+          of: ConfigMap
+      - equal:
+          path: metadata.name
+          value: RELEASE-NAME-mariadb-init
+      - equal:
+          path: metadata.namespace
+          value: NAMESPACE
+      - matchRegex:
+          path: metadata.labels.app
+          pattern: mariadb-init
+      - equal:
+          path: data
+          value:
+            db_init.sh: |
+              #!/bin/sh
+              # Copyright © 2019 Orange
+              #
+              # Licensed under the Apache License, Version 2.0 (the "License");
+              # you may not use this file except in compliance with the License.
+              # You may obtain a copy of the License at
+              #
+              #       http://www.apache.org/licenses/LICENSE-2.0
+              #
+              # Unless required by applicable law or agreed to in writing, software
+              # distributed under the License is distributed on an "AS IS" BASIS,
+              # 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.
+
+              echo "Creating database ynsaUCru6mUNwGal and user u5WZ1GMSIS1wHZF..."
+
+              mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD << 'EOF' || exit 1
+              CREATE OR REPLACE USER 'u5WZ1GMSIS1wHZF'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD}';
+              CREATE OR REPLACE USER 'u5WZ1GMSIS1wHZF'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';
+              CREATE DATABASE IF NOT EXISTS ynsaUCru6mUNwGal;
+              GRANT ALL PRIVILEGES ON ynsaUCru6mUNwGal.* TO 'u5WZ1GMSIS1wHZF'@'%';
+              GRANT ALL PRIVILEGES ON ynsaUCru6mUNwGal.* TO 'u5WZ1GMSIS1wHZF'@'localhost';
+              EOF
+
+              echo "Created database ynsaUCru6mUNwGal and user u5WZ1GMSIS1wHZF."
+  - it: "shoud render with other databases"
+    set:
+      config:
+        userName: testUser
+        mysqlDatabase: testDB
+        mysqlAdditionalDatabases:
+          dbOne:
+            user: one
+            password: pwd1
+          dbTwo:
+            user: two
+            password: pwd2
+    asserts:
+      - equal:
+          path: data
+          value:
+            db_init.sh: |
+              #!/bin/sh
+              # Copyright © 2019 Orange
+              #
+              # Licensed under the Apache License, Version 2.0 (the "License");
+              # you may not use this file except in compliance with the License.
+              # You may obtain a copy of the License at
+              #
+              #       http://www.apache.org/licenses/LICENSE-2.0
+              #
+              # Unless required by applicable law or agreed to in writing, software
+              # distributed under the License is distributed on an "AS IS" BASIS,
+              # 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.
+
+              echo "Creating database testDB and user testUser..."
+
+              mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD << 'EOF' || exit 1
+              CREATE OR REPLACE USER 'testUser'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD}';
+              CREATE OR REPLACE USER 'testUser'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';
+              CREATE DATABASE IF NOT EXISTS testDB;
+              GRANT ALL PRIVILEGES ON testDB.* TO 'testUser'@'%';
+              GRANT ALL PRIVILEGES ON testDB.* TO 'testUser'@'localhost';
+              EOF
+
+              echo "Created database testDB and user testUser."
+
+              echo "Creating database dbOne and user one..."
+
+              mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD << 'EOF' || exit 1
+              CREATE OR REPLACE USER 'one'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD_DBONE}';
+              CREATE OR REPLACE USER 'one'@'%' IDENTIFIED BY '${MYSQL_PASSWORD_DBONE}';
+              CREATE DATABASE IF NOT EXISTS dbOne;
+              GRANT ALL PRIVILEGES ON dbOne.* TO 'one'@'%';
+              GRANT ALL PRIVILEGES ON dbOne.* TO 'one'@'localhost';
+              EOF
+
+              echo "Created database dbOne and user one."
+              echo "Creating database dbTwo and user two..."
+
+              mysql -h ${DB_HOST} -P ${DB_PORT} -uroot -p$MYSQL_ROOT_PASSWORD << 'EOF' || exit 1
+              CREATE OR REPLACE USER 'two'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD_DBTWO}';
+              CREATE OR REPLACE USER 'two'@'%' IDENTIFIED BY '${MYSQL_PASSWORD_DBTWO}';
+              CREATE DATABASE IF NOT EXISTS dbTwo;
+              GRANT ALL PRIVILEGES ON dbTwo.* TO 'two'@'%';
+              GRANT ALL PRIVILEGES ON dbTwo.* TO 'two'@'localhost';
+              EOF
+
+              echo "Created database dbTwo and user two."
diff --git a/kubernetes/common/mariadb-init/tests/job_test.yaml b/kubernetes/common/mariadb-init/tests/job_test.yaml
new file mode 100644
index 0000000..7523ee1
--- /dev/null
+++ b/kubernetes/common/mariadb-init/tests/job_test.yaml
@@ -0,0 +1,307 @@
+---
+suite: test job behavior
+templates:
+  - job.yaml
+tests:
+  - it: "should render with default value (global)"
+    asserts:
+      - isKind:
+          of: Job
+      - matchRegex:
+          path: metadata.name
+          pattern: -mariadb-init-config-job$
+      - equal:
+          path: metadata.namespace
+          value: NAMESPACE
+      - matchRegex:
+          path: metadata.labels.app
+          pattern: mariadb-init
+      - matchRegex:
+          path: spec.template.metadata.labels.app
+          pattern: mariadb-init
+      - matchRegex:
+          path: spec.template.metadata.name
+          pattern: mariadb-init
+      - isNull:
+          path: spec.template.spec.nodeSelector
+      - isNull:
+          path: spec.template.spec.affinity
+  - it: "should render with default value (init container)"
+    asserts:
+      - matchRegex:
+          path: spec.template.spec.initContainers[0].name
+          pattern: mariadb-init-readiness
+      - contains:
+          path: spec.template.spec.initContainers[0].args
+          content: mariadb-galera
+      - equal:
+          path: spec.template.spec.initContainers[0].image
+          value: oomk8s/readiness-check:2.0.2
+      - equal:
+          path: spec.template.spec.initContainers[0].imagePullPolicy
+          value: IfNotPresent
+  - it: "should render with default value (container)"
+    asserts:
+      - matchRegex:
+          path: spec.template.spec.containers[0].name
+          pattern: mariadb-init
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: nexus3.onap.org:10001/mariadb:10.1.38
+      - equal:
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: IfNotPresent
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DB_HOST
+            value: mariadb-galera
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DB_PORT
+            value: "3306"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_ROOT_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-mariadb-galera-mariadb-galera
+                key: db-root-password
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-mariadb-init-secret
+                key: db-user-password
+      - contains:
+          path: spec.template.spec.containers[0].volumeMounts
+          content:
+            name: mariadb-conf
+            mountPath: /db_init/
+            readOnly: true
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.cpu
+          value: 100m
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.memory
+          value: 500Mbi
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.cpu
+          value: 10m
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.memory
+          value: 10Mbi
+  - it: "should render with default value (volumes)"
+    asserts:
+      - contains:
+            path: spec.template.spec.volumes
+            content:
+              name: mariadb-conf
+              configMap:
+                name: RELEASE-NAME-mariadb-init
+
+  - it: "should render with nameOverride set"
+    set:
+      nameOverride: myJob
+    asserts:
+      - matchRegex:
+          path: metadata.name
+          pattern: -myJob-config-job$
+      - matchRegex:
+          path: metadata.labels.app
+          pattern: myJob
+      - matchRegex:
+          path: spec.template.metadata.labels.app
+          pattern: myJob
+      - matchRegex:
+          path: spec.template.metadata.name
+          pattern: myJob
+      - matchRegex:
+          path: spec.template.spec.initContainers[0].name
+          pattern: myJob-readiness
+      - matchRegex:
+          path: spec.template.spec.containers[0].name
+          pattern: myJob
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                # replicating name from mariadb galera cluster, kind of hardcoded...
+                name: RELEASE-NAME-myJob-secret
+                key: db-user-password
+      - contains:
+            path: spec.template.spec.volumes
+            content:
+              name: mariadb-conf
+              configMap:
+                name: RELEASE-NAME-myJob
+
+  - it: "should render with configmap set"
+    set:
+      config:
+        config_map: myCM
+    asserts:
+      - contains:
+          path: spec.template.spec.volumes
+          content:
+            name: mariadb-conf
+            configMap:
+              name: RELEASE-NAME-myCM
+
+  - it: "should render with mariadbGalera changes"
+    set:
+      global:
+        mariadbGalera:
+            nameOverride: myMaria
+            servicePort: 545
+    asserts:
+      - contains:
+          path: spec.template.spec.initContainers[0].args
+          content: myMaria
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DB_HOST
+            value: myMaria
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DB_PORT
+            value: "545"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_ROOT_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-mariadb-galera-myMaria
+                key: db-root-password
+
+  - it: "should render with full mariadbGalera changes"
+    set:
+      global:
+        mariadbGalera:
+            nameOverride: myMaria
+            servicePort: 545
+            userRootSecret: galera-secret
+            userRootSecretKey: root-password
+    asserts:
+      - contains:
+          path: spec.template.spec.initContainers[0].args
+          content: myMaria
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DB_HOST
+            value: myMaria
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DB_PORT
+            value: "545"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_ROOT_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: galera-secret
+                key: root-password
+
+  - it: "should set the right nodeSelector"
+    set:
+      nodeSelector:
+        disktype: ssd
+    asserts:
+      - equal:
+          path: spec.template.spec.nodeSelector.disktype
+          value: ssd
+
+  - it: "should set the right affinity"
+    set:
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+              - matchExpressions:
+                - key: kubernetes.io/e2e-az-name
+                  operator: In
+                  values:
+                    - e2e-az1
+                    - e2e-az2
+    asserts:
+      - equal:
+          path: spec.template.spec.affinity
+          value:
+            nodeAffinity:
+              requiredDuringSchedulingIgnoredDuringExecution:
+                nodeSelectorTerms:
+                  - matchExpressions:
+                    - key: kubernetes.io/e2e-az-name
+                      operator: In
+                      values:
+                        - e2e-az1
+                        - e2e-az2
+  - it: "should use large flavor"
+    set:
+      flavor: large
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.cpu
+          value: 200m
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.memory
+          value: 500Mbi
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.cpu
+          value: 20m
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.memory
+          value: 20Mbi
+  - it: "should use unlimited flavor"
+    set:
+      flavor: unlimited
+    asserts:
+      - isEmpty:
+          path: spec.template.spec.containers[0].resources
+  - it: "shoud render with other databases"
+    set:
+      config:
+        mysqlAdditionalDatabases:
+          dbOne:
+            user: one
+            password: pwd1
+          dbTwo:
+            user: two
+            password: pwd2
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-mariadb-init-secret
+                key: db-user-password
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_PASSWORD_DBONE
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-mariadb-init-secret
+                key: db-dbOne-user-password
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MYSQL_PASSWORD_DBTWO
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-mariadb-init-secret
+                key: db-dbTwo-user-password
diff --git a/kubernetes/common/mariadb-init/tests/secret_test.yaml b/kubernetes/common/mariadb-init/tests/secret_test.yaml
new file mode 100644
index 0000000..ef0565d
--- /dev/null
+++ b/kubernetes/common/mariadb-init/tests/secret_test.yaml
@@ -0,0 +1,49 @@
+---
+suite: test secret behavior
+templates:
+  - secret.yaml
+tests:
+  - it: "should render with default values"
+    asserts:
+      - isKind:
+          of: Secret
+      - equal:
+          path: metadata.name
+          value: RELEASE-NAME-mariadb-init
+      - equal:
+          path: metadata.namespace
+          value: NAMESPACE
+      - matchRegex:
+          path: metadata.labels.app
+          pattern: mariadb-init-config-job
+      - equal:
+          path: data.db-user-password
+          value: Q2lAc2hzT2QzcGt5MVZqaQ==
+  - it: "should render specific password value base64 encoded"
+    set:
+      config:
+        userPassword: yolo
+    asserts:
+      - equal:
+          path: data.db-user-password
+          value: eW9sbw==
+  - it: "shoud render with other databases"
+    set:
+      config:
+        mysqlAdditionalDatabases:
+          dbOne:
+            user: one
+            password: pwd1
+          dbTwo:
+            user: two
+            password: pwd2
+    asserts:
+      - equal:
+          path: data.db-user-password
+          value: Q2lAc2hzT2QzcGt5MVZqaQ==
+      - equal:
+          path: data.db-dbOne-user-password
+          value: cHdkMQ==
+      - equal:
+          path: data.db-dbTwo-user-password
+          value: cHdkMg==
diff --git a/kubernetes/common/mariadb-init/values.yaml b/kubernetes/common/mariadb-init/values.yaml
new file mode 100644
index 0000000..095ff62
--- /dev/null
+++ b/kubernetes/common/mariadb-init/values.yaml
@@ -0,0 +1,87 @@
+# Copyright © 2018 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.2
+  mariadbGalera:
+    nameOverride: mariadb-galera
+    servicePort: 3306
+    # set these two values if you want to access an 'out of ONAP' mariadb
+    userRootSecret: default
+    userRootSecretKey: db-root-password
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+image: mariadb:10.1.38
+pullPolicy: IfNotPresent
+
+# Set it if you want to change the name of the different components
+# nameOverride:
+
+config:
+  userPassword: Ci@shsOd3pky1Vji
+  userName: u5WZ1GMSIS1wHZF
+  mysqlDatabase: ynsaUCru6mUNwGal
+  mysqlAdditionalDatabases: {}
+  # add addtional dabases
+  # this is an dict
+  # Example:
+  # mysqlAdditionalDatabases:
+  #   dbOne:
+  #     user: one
+  #     password: pwd1
+  #   dbTwo:
+  #     user: two
+  #     password: pwd2
+  config_map: default
+
+nodeSelector: {}
+
+affinity: {}
+
+#resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  #
+  # Example:
+  # Configure resource requests and limits
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  # Minimum memory for development is 2 CPU cores and 4GB memory
+  # Minimum memory for production is 4 CPU cores and 8GB memory
+flavor: small
+resources:
+  small:
+    limits:
+      cpu: 100m
+      memory: 500Mi
+    requests:
+      cpu: 10m
+      memory: 10Mi
+  large:
+    limits:
+      cpu: 200m
+      memory: 500Mi
+    requests:
+      cpu: 20m
+      memory: 20Mi
+  unlimited: {}
diff --git a/kubernetes/common/mongo/templates/nfs-provisoner.yaml b/kubernetes/common/mongo/templates/nfs-provisoner.yaml
deleted file mode 100644
index 355ad38..0000000
--- a/kubernetes/common/mongo/templates/nfs-provisoner.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{ if not .Values.disableNfsProvisioner }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  #replicas: {{ .Values.replicaCount }}
-  strategy:
-    type: Recreate
-  template:
-    metadata:
-      labels:
-        app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-          image: "{{ .Values.global.nfsprovisionerRepository | default .Values.nfsprovisionerRepository }}/{{ .Values.nfsprovisionerImage }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-            - name: nfs
-              containerPort: {{ .Values.service.nfsPort }}
-            - name: mountd
-              containerPort: {{ .Values.service.mountdPort }}
-            - name: rpcbind
-              containerPort: {{ .Values.service.rpcbindPort }}
-            - name: rpcbind-udp
-              containerPort: {{ .Values.service.rpcbindUdpPort }}
-              protocol: UDP
-          securityContext:
-            capabilities:
-              add:
-                - DAC_READ_SEARCH
-                - SYS_RESOURCE
-          args:
-            - "-provisioner={{ include "common.fullname" . }}/nfs"
-          env:
-            - name: POD_IP
-              valueFrom:
-                fieldRef:
-                  fieldPath: status.podIP
-            - name: SERVICE_NAME
-              value: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-            - name: POD_NAMESPACE
-              valueFrom:
-                fieldRef:
-                  fieldPath: metadata.namespace
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          volumeMounts:
-            - name: export-volume
-              mountPath: /export
-      volumes:
-        - name: export-volume
-          hostPath:
-            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{ end }}
diff --git a/kubernetes/common/mongo/templates/pv.yaml b/kubernetes/common/mongo/templates/pv.yaml
index 824dcbb..edc50ae 100644
--- a/kubernetes/common/mongo/templates/pv.yaml
+++ b/kubernetes/common/mongo/templates/pv.yaml
@@ -14,25 +14,33 @@
 # limitations under the License.
 */}}
 
-{{- if (and (and (.Values.persistence.enabled) (not .Values.persistence.existingClaim)) ( .Values.disableNfsProvisioner)) -}}
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data
-  namespace: {{ include "common.namespace" . }}
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
   labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    app: {{ include "common.fullname" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
 spec:
   capacity:
-    storage: {{ .Values.persistence.size}}
+    storage: {{ $global.Values.persistence.size}}
   accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/common/mongo/templates/service.yaml b/kubernetes/common/mongo/templates/service.yaml
index df55854..d59243f 100644
--- a/kubernetes/common/mongo/templates/service.yaml
+++ b/kubernetes/common/mongo/templates/service.yaml
@@ -32,29 +32,6 @@
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
   clusterIP: None
-#{{ if not .Values.disableNfsProvisioner }}
----
-kind: Service
-apiVersion: v1
-metadata:
-  name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-spec:
-  ports:
-    - name: nfs
-      port: {{ .Values.service.nfsPort }}
-    - name: mountd
-      port: {{ .Values.service.mountdPort }}
-    - name: rpcbind
-      port: {{ .Values.service.rpcbindPort }}
-    - name: rpcbind-udp
-      port: {{ .Values.service.rpcbindUdpPort }}
-      protocol: UDP
-  selector:
-    app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-#{{ end }}
 ---
 # Client service for connecting to any Mongo instance for reads.
 apiVersion: v1
diff --git a/kubernetes/common/mongo/templates/statefulset.yaml b/kubernetes/common/mongo/templates/statefulset.yaml
index c79739f..0c6c9f4 100644
--- a/kubernetes/common/mongo/templates/statefulset.yaml
+++ b/kubernetes/common/mongo/templates/statefulset.yaml
@@ -33,24 +33,6 @@
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
-      initContainers:
-#{{ if not .Values.disableNfsProvisioner }}
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-#{{ end }}
-
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}"
@@ -79,8 +61,8 @@
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           volumeMounts:
-          - mountPath: /var/lib/mongo
-            name: {{ include "common.fullname" . }}-data
+          - name: {{ include "common.fullname" . }}-data
+            mountPath: /var/lib/mongo
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -95,10 +77,24 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
+  {{- if .Values.persistence.enabled }}
+  volumeClaimTemplates:
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
+    spec:
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size | quote }}
+  {{- else }}
+      volumes:
       - name: {{ include "common.fullname" . }}-data
-#{{ if .Values.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}-data
-#{{ else }}
         emptyDir: {}
-#{{ end }}
+  {{- end }}
diff --git a/kubernetes/common/mongo/values.yaml b/kubernetes/common/mongo/values.yaml
index 8a68129..3c04b42 100644
--- a/kubernetes/common/mongo/values.yaml
+++ b/kubernetes/common/mongo/values.yaml
@@ -40,8 +40,6 @@
 
 affinity: {}
 
-disableNfsProvisioner: true
-
 # probe configuration parameters
 liveness:
   initialDelaySeconds: 30
@@ -108,11 +106,6 @@
 #    cpu: 2
 #    memory: 4Gi
 
-
-nfsprovisionerRepository: quay.io
-nfsprovisionerImage: kubernetes_incubator/nfs-provisioner:v1.0.8
-nfsprovisionerPrefix: mongo
-
 sdnctlPrefix: mongo
 
 geoEnabled: false
diff --git a/kubernetes/common/music/charts/music-cassandra/templates/pv.yaml b/kubernetes/common/music/charts/music-cassandra/templates/pv.yaml
new file mode 100644
index 0000000..fb81540
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra/templates/pv.yaml
@@ -0,0 +1,46 @@
+{{/*
+# Copyright © 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+*/}}
+
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
+  labels:
+    app: {{ include "common.fullname" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
+spec:
+  capacity:
+    storage: {{ $global.Values.persistence.size}}
+  accessModes:
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
+  hostPath:
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml b/kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml
index ae5f7c5..c3c56f2 100644
--- a/kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml
+++ b/kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+# Copyright © 2019 AT&T, Amdocs, Bell Canada, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -102,40 +102,33 @@
             valueFrom:
               fieldRef:
                 fieldPath: status.podIP
+{{- if .Values.persistence.enabled }}
         volumeMounts:
-          - name: {{ template "common.name" . }}-data
+          - name: {{ include "common.fullname" . }}-data
             mountPath: /var/lib/cassandra
+{{- end }}
         resources:
-{{ toYaml .Values.resources | indent 10 }}
+{{ include "common.resources" . | indent 12 }}
       volumes:
       - name: localtime
         hostPath:
           path: /etc/localtime
-  {{- if not .Values.persistence.enabled }}
-      - name: {{ template "common.name" . }}-data
-        emptyDir: {}
-  {{- else }}
+{{- if .Values.persistence.enabled }}
   volumeClaimTemplates:
-    - metadata:
-        name: {{ template "common.name" . }}-data
-        labels:
-          app: {{ template "common.fullname" . }}
-          chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-          release: "{{ .Release.Name }}"
-          heritage: "{{ .Release.Service }}"
-      annotations:
-        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
-      spec:
-        storageClassName: {{ .Values.persistence.storageClass }}
-        accessModes:
-          - {{ .Values.persistence.accessMode | quote }}
-        resources:
-          requests:
-            storage: {{ .Values.persistence.size | quote }}
-        selector:
-          matchLabels:
-            app: {{ include "common.name" . }}
-            release: "{{ .Release.Name }}"
-  {{- end }}
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
+    spec:
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size | quote }}
+{{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/common/music/charts/music-cassandra/templates/volumes.yaml b/kubernetes/common/music/charts/music-cassandra/templates/volumes.yaml
deleted file mode 100644
index 83e7e18..0000000
--- a/kubernetes/common/music/charts/music-cassandra/templates/volumes.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-{{/*
-# Copyright © 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{ if .Values.persistence.enabled }}
-{{- $root := . -}}
-{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
-  namespace: {{ $root.Release.Namespace }}
-  labels:
-    type: {{ $root.Values.persistence.storageType }}
-    app: {{ $root.Values.service.name }}
-    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
-    release: {{ $root.Release.Name }}
-    heritage: {{ $root.Release.Service }}
-spec:
-  capacity:
-    storage: {{ $root.Values.persistence.size }}
-  accessModes:
-    - {{ $root.Values.persistence.accessMode }}
-  hostPath:
-    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{$i}}
-  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
-  podAntiAffinity:
-    preferredDuringSchedulingIgnoredDuringExecution:
-    - weight: 1
-      podAffinityTerm:
-        labelSelector:
-          matchExpressions:
-            - key: app
-              operator: In
-              values:
-              - "{{ $root.Chart.Name }}"
-        topologyKey: kubernetes.io/hostname
-{{ end }}
-{{ end }}
diff --git a/kubernetes/common/music/charts/music-cassandra/values.yaml b/kubernetes/common/music/charts/music-cassandra/values.yaml
index d18dc68..460671d 100644
--- a/kubernetes/common/music/charts/music-cassandra/values.yaml
+++ b/kubernetes/common/music/charts/music-cassandra/values.yaml
@@ -107,13 +107,23 @@
   size: 2Gi
   mountPath: /dockerdata-nfs/
   mountSubPath: common/cassandra/data
-  storageType: local
-  storageClass: ""
 
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
 resources:
-  limits:
-    cpu: 4
-    memory: 8Gi
-  requests:
-    cpu: 2
-    memory: 4Gi
+  small:
+    limits:
+      cpu: 500m
+      memory: 1.2Gi
+    requests:
+      cpu: 160m
+      memory: 900Mi
+  large:
+    limits:
+      cpu: 4
+      memory: 10Gi
+    requests:
+      cpu: 2
+      memory: 6Gi
+  unlimited: {}
diff --git a/kubernetes/common/music/charts/music-tomcat/templates/deployment.yaml b/kubernetes/common/music/charts/music-tomcat/templates/deployment.yaml
index 2e04b15..2a38a6a 100755
--- a/kubernetes/common/music/charts/music-tomcat/templates/deployment.yaml
+++ b/kubernetes/common/music/charts/music-tomcat/templates/deployment.yaml
@@ -40,7 +40,7 @@
         - /root/ready.py
         args:
         - --container-name
-        - zookeeper 
+        - zookeeper
         env:
         - name: NAMESPACE
           valueFrom:
@@ -101,7 +101,7 @@
             mountPath: /opt/app/music/etc/music.properties
             subPath: music.properties
           resources:
-{{ toYaml .Values.resources | indent 10 }}
+{{ include "common.resources" . | indent 12 }}
       volumes:
         - name: shared-data
           emptyDir: {}
diff --git a/kubernetes/common/music/charts/music-tomcat/values.yaml b/kubernetes/common/music/charts/music-tomcat/values.yaml
index 05a1b17..b91ffbd 100755
--- a/kubernetes/common/music/charts/music-tomcat/values.yaml
+++ b/kubernetes/common/music/charts/music-tomcat/values.yaml
@@ -81,14 +81,26 @@
 ingress:
   enabled: false
 
-#resources: {}
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
 resources:
-  limits:
-    cpu: 2
-    memory: 2Gi
-  requests:
-    cpu: 2
-    memory: 1Gi
+  small:
+    limits:
+      cpu: 900m
+      memory: 460Mi
+    requests:
+      cpu: 550m
+      memory: 360Mi
+  large:
+    limits:
+      cpu: 4
+      memory: 2Gi
+    requests:
+      cpu: 2
+      memory: 1Gi
+  unlimited: {}
+
 
 
 properties:
@@ -100,4 +112,3 @@
   # Admin API
   # ONAP AAF
   aafAdminUrl:
-
diff --git a/kubernetes/common/music/charts/zookeeper/templates/pv.yaml b/kubernetes/common/music/charts/zookeeper/templates/pv.yaml
new file mode 100644
index 0000000..795ad31
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/pv.yaml
@@ -0,0 +1,45 @@
+{{/*
+# Copyright © 2019 Amdocs, Bell Canada, Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+*/}}
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
+  labels:
+    app: {{ include "common.fullname" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
+spec:
+  capacity:
+    storage: {{ $global.Values.persistence.size}}
+  accessModes:
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
+  hostPath:
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml b/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml
index 9e3549f..580042d 100644
--- a/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml
+++ b/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml
@@ -82,7 +82,7 @@
           resources:
 {{ include "common.resources" . }}
           volumeMounts:
-            - name: zookeeper-data
+            - name: {{ include "common.fullname" . }}-data
               mountPath: /var/lib/zookeeper
 
 {{- if .Values.exporters.jmx.enabled }}
@@ -162,30 +162,21 @@
           configMap:
             name: {{ .Release.Name }}-jmx-exporter
         {{- end }}
-        {{- if not .Values.persistence.enabled }}
-        - name: zookeeper-data
-          emptyDir: {}
-        {{- end }}
       {{- end }}
   {{- if .Values.persistence.enabled }}
   volumeClaimTemplates:
-    - metadata:
-        name: zookeeper-data
-        labels:
-          app: {{ .Chart.Name }}
-          chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-          release: "{{ .Release.Name }}"
-          heritage: "{{ .Release.Service }}"
-      annotations:
-        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
-      spec:
-        storageClassName: {{ .Values.persistence.storageClass }}
-        accessModes:
-          - {{ .Values.persistence.accessMode | quote }}
-        resources:
-          requests:
-            storage: {{ .Values.persistence.size | quote }}
-        selector:
-          matchLabels:
-            release: "{{ .Release.Name }}"
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
+    spec:
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size | quote }}
   {{- end }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml b/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml
deleted file mode 100644
index b0c05fd..0000000
--- a/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-{{ if .Values.persistence.enabled }}
-{{- $root := . -}}
-{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
-  namespace: {{ $root.Release.Namespace }}
-  labels:
-    type: {{ $root.Values.persistence.storageType }}
-    app: {{ $root.Values.service.name }}
-    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
-    release: {{ $root.Release.Name }}
-    heritage: {{ $root.Release.Service }}
-spec:
-  capacity:
-    storage: {{ $root.Values.persistence.size }}
-  accessModes:
-    - {{ $root.Values.persistence.accessMode }}
-  hostPath:
-    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{$i}}
-  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
-{{ end }}
-{{ end }}
diff --git a/kubernetes/common/music/charts/zookeeper/values.yaml b/kubernetes/common/music/charts/zookeeper/values.yaml
index ea02e61..28c9711 100644
--- a/kubernetes/common/music/charts/zookeeper/values.yaml
+++ b/kubernetes/common/music/charts/zookeeper/values.yaml
@@ -54,23 +54,23 @@
     protocol: TCP  # Protocol for zookeeper container server port.
 
 # Resource Limit flavor -By Default using small
-flavor: large 
+flavor: small
 # Segregation for Different environment (Small and Large)
 resources:
   small:
     limits:
-      cpu: 1 
-      memory: 1Gi 
+      cpu: 500m
+      memory: 900Mi
     requests:
-      cpu: 500m 
-      memory: 500Mi 
+      cpu: 10m
+      memory: 730Mi
   large:
     limits:
       cpu: 3
       memory: 2Gi
     requests:
-      cpu: 2 
-      memory: 1Gi 
+      cpu: 2
+      memory: 1Gi
   unlimited: {}
 
 nodeSelector: {}  # Node label-values required to run zookeeper pods.
@@ -78,7 +78,7 @@
 tolerations: []  # Node taint overrides for zookeeper pods.
 
 affinity: {}  # Criteria by which pod label-values influence scheduling for zookeeper pods.
-affinity: 
+affinity:
   podAntiAffinity:
     requiredDuringSchedulingIgnoredDuringExecution:
     - topologyKey: "kubernetes.io/hostname"
@@ -119,8 +119,6 @@
   accessMode: ReadWriteOnce
   mountPath: /dockerdata-nfs
   mountSubPath: music/zookeeper
-  storageType: local
-  storageClass: ""
   size: 4Gi
 
 ## Exporters query apps for metrics and make those metrics available for
diff --git a/kubernetes/common/mysql/Chart.yaml b/kubernetes/common/mysql/Chart.yaml
deleted file mode 100644
index 7f27229..0000000
--- a/kubernetes/common/mysql/Chart.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-description: MySQL Server
-name: mysql
-version: 5.0.0
diff --git a/kubernetes/common/mysql/requirements.yaml b/kubernetes/common/mysql/requirements.yaml
deleted file mode 100644
index 79d7de4..0000000
--- a/kubernetes/common/mysql/requirements.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-dependencies:
-  - name: common
-    version: ~5.x-0
-    repository: '@local'
diff --git a/kubernetes/common/mysql/templates/configmap.yaml b/kubernetes/common/mysql/templates/configmap.yaml
deleted file mode 100644
index 65ac5f2..0000000
--- a/kubernetes/common/mysql/templates/configmap.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-db-configmap
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-  master.cnf: |
-    # Apply this config only on the master.
-    [mysqld]
-    sql_mode = "NO_ENGINE_SUBSTITUTION"
-    log-bin
-    [localpathprefix]
-    master
-  slave.cnf: |
-    # Apply this config only on slaves.
-    [mysqld]
-    sql_mode = "NO_ENGINE_SUBSTITUTION"
-    super-read-only
-    [localpathprefix]
-    slave
diff --git a/kubernetes/common/mysql/templates/nfs-provisoner.yaml b/kubernetes/common/mysql/templates/nfs-provisoner.yaml
deleted file mode 100644
index 355ad38..0000000
--- a/kubernetes/common/mysql/templates/nfs-provisoner.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{ if not .Values.disableNfsProvisioner }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  #replicas: {{ .Values.replicaCount }}
-  strategy:
-    type: Recreate
-  template:
-    metadata:
-      labels:
-        app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-          image: "{{ .Values.global.nfsprovisionerRepository | default .Values.nfsprovisionerRepository }}/{{ .Values.nfsprovisionerImage }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-            - name: nfs
-              containerPort: {{ .Values.service.nfsPort }}
-            - name: mountd
-              containerPort: {{ .Values.service.mountdPort }}
-            - name: rpcbind
-              containerPort: {{ .Values.service.rpcbindPort }}
-            - name: rpcbind-udp
-              containerPort: {{ .Values.service.rpcbindUdpPort }}
-              protocol: UDP
-          securityContext:
-            capabilities:
-              add:
-                - DAC_READ_SEARCH
-                - SYS_RESOURCE
-          args:
-            - "-provisioner={{ include "common.fullname" . }}/nfs"
-          env:
-            - name: POD_IP
-              valueFrom:
-                fieldRef:
-                  fieldPath: status.podIP
-            - name: SERVICE_NAME
-              value: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-            - name: POD_NAMESPACE
-              valueFrom:
-                fieldRef:
-                  fieldPath: metadata.namespace
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          volumeMounts:
-            - name: export-volume
-              mountPath: /export
-      volumes:
-        - name: export-volume
-          hostPath:
-            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{ end }}
diff --git a/kubernetes/common/mysql/templates/pv.yaml b/kubernetes/common/mysql/templates/pv.yaml
deleted file mode 100644
index 3bef651..0000000
--- a/kubernetes/common/mysql/templates/pv.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if (and (and (.Values.persistence.enabled) (not .Values.persistence.existingClaim)) ( .Values.disableNfsProvisioner)) -}}
-{{ $pvNum := default 1 .Values.replicaCount | int }}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-mysql0
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-mysql"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
-{{ if gt $pvNum 1 }}
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-mysql1
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-mysql"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
-{{ end }}
-{{- end -}}
diff --git a/kubernetes/common/mysql/templates/service.yaml b/kubernetes/common/mysql/templates/service.yaml
deleted file mode 100644
index e1771c6..0000000
--- a/kubernetes/common/mysql/templates/service.yaml
+++ /dev/null
@@ -1,146 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
-  clusterIP: None
-#{{ if not .Values.disableNfsProvisioner }}
----
-kind: Service
-apiVersion: v1
-metadata:
-  name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - name: nfs
-      port: {{ .Values.service.nfsPort }}
-    - name: mountd
-      port: {{ .Values.service.mountdPort }}
-    - name: rpcbind
-      port: {{ .Values.service.rpcbindPort }}
-    - name: rpcbind-udp
-      port: {{ .Values.service.rpcbindUdpPort }}
-      protocol: UDP
-  selector:
-    app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-#{{ end }}
----
-# Client service for connecting to any MySQL instance for reads.
-# Only master: sdnc-dbhost-0 accepts the write request.
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}-read
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Values.sdnctlPrefix }}-sdnctldb01
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
-  clusterIP: None
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Values.sdnctlPrefix }}-sdnctldb02
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
-  clusterIP: None
----
-{{ if .Values.geoEnabled }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}-nodeport
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-  - name: {{ .Values.service.portName | default .Values.service.name }}-1
-    port: {{ .Values.service.internalPort }}
-    targetPort: {{ .Values.service.internalPort }}
-    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodeport1 }}
-  - name: {{ .Values.service.portName | default .Values.service.name }}-2
-    port: {{ .Values.xtrabackup.internalPort }}
-    targetPort: {{ .Values.xtrabackup.internalPort }}
-    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodeport2 }}
-  type:  {{ .Values.service.type }}
-  selector:
-    statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
-    release: {{ .Release.Name }}
-{{ end }}
diff --git a/kubernetes/common/mysql/templates/statefulset.yaml b/kubernetes/common/mysql/templates/statefulset.yaml
deleted file mode 100644
index c3f8ae2..0000000
--- a/kubernetes/common/mysql/templates/statefulset.yaml
+++ /dev/null
@@ -1,263 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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/v1beta1
-kind: StatefulSet
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  serviceName: {{ .Values.service.name }}
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-        release: {{ .Release.Name }}
-        heritage: {{ .Release.Service }}
-    spec:
-      initContainers:
-#{{ if not .Values.disableNfsProvisioner }}
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-#{{ end }}
-      - name: init-mysql
-        image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        command:
-        - bash
-        - "-c"
-        - |
-          set -ex
-          # Generate mysql server-id from pod ordinal index.
-          [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
-          ordinal=${BASH_REMATCH[1]}
-          siteId={{ .Values.geoSiteId }}
-          echo BASH_REMATCH=${BASH_REMATCH}
-          echo [mysqld] > /mnt/conf.d/server-id.cnf
-          # Add an offset to avoid reserved server-id=0 value.
-          echo server-id=$(($siteId*100 + $ordinal)) >> /mnt/conf.d/server-id.cnf
-          # Copy appropriate conf.d files from config-map to emptyDir.
-          if [[ $ordinal -eq 0 ]]; then
-            cp /mnt/config-map/master.cnf /mnt/conf.d/
-          else
-            cp /mnt/config-map/slave.cnf /mnt/conf.d/
-          fi
-        volumeMounts:
-        - name: conf
-          mountPath: /mnt/conf.d
-        - name: config-map
-          mountPath: /mnt/config-map
-
-      - name: clone-mysql
-        image: "{{ .Values.global.xtrabackupRepository | default .Values.xtrabackupRepository }}/{{ .Values.xtrabackupImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        env:
-          - name: MYSQL_ROOT_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}
-                key: db-root-password
-        command:
-        - bash
-        - "-c"
-        - |
-          set -ex
-          # Skip the clone if data already exists.
-          [[ -d /var/lib/mysql/mysql ]] && exit 0
-          # Skip the clone on master (ordinal index 0).
-          [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
-          ordinal=${BASH_REMATCH[1]}
-          echo ${BASH_REMATCH}
-          [[ $ordinal -eq 0 ]] && exit 0
-          # Clone data from previous peer.
-          ncat --recv-only {{ include "common.fullname" . }}-$(($ordinal-1)).{{ .Values.service.name }}.{{ include "common.namespace" . }} 3307 | xbstream -x -C {{ .Values.persistence.mysqlPath }}
-          # Prepare the backup.
-          xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --prepare --target-dir=/var/lib/mysql
-          ls -l {{ .Values.persistence.mysqlPath }}
-        volumeMounts:
-        - name: {{ include "common.fullname" . }}-mysql
-          mountPath: {{ .Values.persistence.mysqlPath }}
-        - name: conf
-          mountPath: /etc/mysql/conf.d
-
-      containers:
-        - name: {{ include "common.name" . }}
-          image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
-          livenessProbe:
-            exec:
-              command: ["mysqladmin", "ping"]
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-            timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
-          {{end -}}
-          readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
-            - name: MYSQL_ROOT_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: db-root-password
-            - name: MYSQL_ROOT_HOST
-              value: '%'
-            - name: MYSQL_ALLOW_EMPTY_PASSWORD
-              value: {{ .Values.config.dbAllowEmptyPassword | default "0" | quote }}
-          volumeMounts:
-          - mountPath: {{ .Values.persistence.mysqlPath }}
-            name: {{ include "common.fullname" . }}-mysql
-          - mountPath: /etc/mysql/conf.d
-            name: conf
-          resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-
-        - name: xtrabackup
-          image: "{{ .Values.global.xtrabackupRepository | default .Values.xtrabackupRepository }}/{{ .Values.xtrabackupImage }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          env:
-            - name: MYSQL_ROOT_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: db-root-password
-          ports:
-          - containerPort: {{ .Values.xtrabackup.internalPort }}
-            name: xtrabackup
-          command:
-          - bash
-          - "-c"
-          - |
-            set -ex
-            cd {{ .Values.persistence.mysqlPath }}
-            ls -l
-            # Determine binlog position of cloned data, if any.
-            if [[ -f xtrabackup_slave_info ]]; then
-              echo "Inside xtrabackup_slave_info"
-              # XtraBackup already generated a partial "CHANGE MASTER TO" query
-              # because we're cloning from an existing slave.
-              mv xtrabackup_slave_info change_master_to.sql.in
-              # Ignore xtrabackup_binlog_info in this case (it's useless).
-              rm -f xtrabackup_binlog_info
-            elif [[ -f xtrabackup_binlog_info ]]; then
-              echo "Inside xtrabackup_binlog_info"
-              # We're cloning directly from master. Parse binlog position.
-              [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1
-              rm xtrabackup_binlog_info
-              echo "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\
-                    MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.in
-            fi
-
-            [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
-            ordinal=${BASH_REMATCH[1]}
-            echo $ordinal
-
-            mysqlhost={{ include "common.fullname" . }}-$(($ordinal)).{{ .Values.service.name }}.{{ include "common.namespace" . }}
-            echo $mysqlhost
-
-            # Check if we need to complete a clone by starting replication.
-            if [[ -f change_master_to.sql.in ]]; then
-              echo "Waiting for mysqld to be ready (accepting connections)"
-              until mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h $mysqlhost -e "SELECT 1"; do sleep 1; done
-
-              echo "Initializing replication from clone position"
-              # In case of container restart, attempt this at-most-once.
-              mv change_master_to.sql.in change_master_to.sql.orig
-              mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h $mysqlhost <<EOF
-            $(<change_master_to.sql.orig),
-              MASTER_HOST="{{ include "common.fullname" . }}-0.{{ .Values.service.name }}.{{ include "common.namespace" . }}",
-              MASTER_USER="root",
-              MASTER_PASSWORD="$MYSQL_ROOT_PASSWORD",
-              MASTER_CONNECT_RETRY=10;
-            START SLAVE;
-            EOF
-            fi
-
-            # Start a server to send backups when requested by peers.
-            exec ncat --listen --keep-open --send-only --max-conns=1 3307 -c \
-              "xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --backup --slave-info --stream=xbstream --host=$mysqlhost"
-          volumeMounts:
-          - name: {{ include "common.fullname" . }}-mysql
-            mountPath: {{ .Values.persistence.mysqlPath }}
-          - name: conf
-            mountPath: /etc/mysql/conf.d
-      volumes:
-      - name: conf
-        emptyDir: {}
-      - name: config-map
-        configMap:
-          name: {{ include "common.fullname" . }}-db-configmap
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: {{ include "common.fullname" . }}-mysql
-  {{ if not .Values.persistence.enabled }}
-      - name: {{ include "common.fullname" . }}-mysql
-        emptyDir: {}
-  {{ else }}
-  volumeClaimTemplates:
-  - metadata:
-      name: {{ include "common.fullname" . }}-mysql
-      labels:
-        app: {{ include "common.name" . }}
-        chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-        release: {{ .Release.Name }}
-        heritage: {{ .Release.Service }}
-        name: {{ include "common.fullname" . }}
-    spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-mysql
-      resources:
-        requests:
-          storage: {{ .Values.persistence.size }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}
-  {{ end }}
diff --git a/kubernetes/common/mysql/templates/storageclass.yaml b/kubernetes/common/mysql/templates/storageclass.yaml
deleted file mode 100644
index bbe4562..0000000
--- a/kubernetes/common/mysql/templates/storageclass.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{ if not .Values.disableNfsProvisioner }}
-kind: StorageClass
-apiVersion: storage.k8s.io/v1
-metadata:
-  name: "{{ include "common.fullname" . }}-mysql"
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-provisioner: {{ include "common.fullname" . }}/nfs
-{{ end }}
diff --git a/kubernetes/common/mysql/values.yaml b/kubernetes/common/mysql/values.yaml
deleted file mode 100644
index 9fd67fc..0000000
--- a/kubernetes/common/mysql/values.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 302
-  persistence: {}
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
-
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-
-dockerHubRepository: registry.hub.docker.com
-image: library/mysql:5.7
-pullPolicy: Always
-
-# application configuration
-config:
-  dbRootPassword: openECOMP1.0
-
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-disableNfsProvisioner: true
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 30
-  periodSeconds: 10
-  timeoutSeconds: 5
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
-
-readiness:
-  initialDelaySeconds: 5
-  periodSeconds: 10
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-
-  ## A manually managed Persistent Volume and Claim
-  ## Requires persistence.enabled: true
-  ## If defined, PVC must be created manually before volume will be bound
-  # existingClaim:
-  volumeReclaimPolicy: Retain
-
-  ## database data Persistent Volume Storage Class
-  ## If defined, storageClassName: <storageClass>
-  ## If set to "-", storageClassName: "", which disables dynamic provisioning
-  ## If undefined (the default) or set to null, no storageClassName spec is
-  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
-  ##   GKE, AWS & OpenStack)
-  accessMode: ReadWriteOnce
-  size: 1Gi
-  mountPath: /dockerdata-nfs
-  mountSubPath: "mysql/data"
-  mysqlPath: /var/lib/mysql
-
-service:
-  name: mysql
-  portName: mysql
-  internalPort: 3306
-  # nfs provisioner ports
-  nfsPort: 2049
-  mountdPort: 20048
-  rpcbindPort: 111
-  rpcbindUdpPort: 111
-  type: NodePort
-  nodeport1: 72
-  nodeport2: 73
-
-ingress:
-  enabled: false
-
-resources: {}
-  # We usually recommend not to specify default resources and to leave this as a conscious
-  # choice for the user. This also increases chances charts run on environments with little
-  # resources, such as Minikube. If you do want to specify resources, uncomment the following
-  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
-  #
-  # Example:
-  # Configure resource requests and limits
-  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
-  # Minimum memory for development is 2 CPU cores and 4GB memory
-  # Minimum memory for production is 4 CPU cores and 8GB memory
-#resources:
-#  limits:
-#    cpu: 2
-#    memory: 4Gi
-#  requests:
-#    cpu: 2
-#    memory: 4Gi
-
-#################################################################
-# Sidecar Configuration.
-#
-# xtrabackup configuration defaults.
-#################################################################
-xtrabackupRepository: gcr.io/google-samples
-xtrabackupImage: xtrabackup:1.0
-xtrabackup:
-  internalPort: 3307
-
-nfsprovisionerRepository: quay.io
-nfsprovisionerImage: kubernetes_incubator/nfs-provisioner:v1.0.8
-nfsprovisionerPrefix: mysql
-
-sdnctlPrefix: mysql
-
-geoEnabled: false
-geoSiteId: 1
diff --git a/kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml b/kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml
deleted file mode 100644
index 58cf7a3..0000000
--- a/kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-{{/*
-# Copyright © 2019 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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
-kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  strategy:
-    type: Recreate
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.fullname" . }}
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ include "common.fullname" . }}
-          image: "{{ .Values.global.nfsprovisionerRepository | default .Values.nfsprovisionerRepository }}/{{ .Values.nfsprovisionerImage }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-            - name: nfs
-              containerPort: {{ .Values.service.nfsPort }}
-            - name: mountd
-              containerPort: {{ .Values.service.mountdPort }}
-            - name: rpcbind
-              containerPort: {{ .Values.service.rpcbindPort }}
-            - name: rpcbind-udp
-              containerPort: {{ .Values.service.rpcbindUdpPort }}
-              protocol: UDP
-          securityContext:
-            capabilities:
-              add:
-                - DAC_READ_SEARCH
-                - SYS_RESOURCE
-          args:
-            - "-provisioner={{ include "common.namespace" . }}/nfs"
-          env:
-            - name: POD_IP
-              valueFrom:
-                fieldRef:
-                  fieldPath: status.podIP
-            - name: SERVICE_NAME
-              value: {{ include "common.servicename" . }}
-            - name: POD_NAMESPACE
-              valueFrom:
-                fieldRef:
-                  fieldPath: metadata.namespace
-          volumeMounts:
-            - name: export-volume
-              mountPath: /export
-      {{- if .Values.affinity }}
-      affinity:
-      {{ toYaml .Values.affinity | indent 8 }}
-      {{- end }}
-      volumes:
-        - name: export-volume
-          hostPath:
-            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}
diff --git a/kubernetes/common/nfs-provisioner/templates/service.yaml b/kubernetes/common/nfs-provisioner/templates/service.yaml
deleted file mode 100644
index f9bba0f..0000000
--- a/kubernetes/common/nfs-provisioner/templates/service.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-{{/*
-# Copyright © 2019 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-kind: Service
-apiVersion: v1
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - name: nfs
-      port: {{ .Values.service.nfsPort }}
-    - name: mountd
-      port: {{ .Values.service.mountdPort }}
-    - name: rpcbind
-      port: {{ .Values.service.rpcbindPort }}
-    - name: rpcbind-udp
-      port: {{ .Values.service.rpcbindUdpPort }}
-      protocol: UDP
-  selector:
-    app: {{ include "common.fullname" . }}
\ No newline at end of file
diff --git a/kubernetes/common/nfs-provisioner/values.yaml b/kubernetes/common/nfs-provisioner/values.yaml
deleted file mode 100644
index 687219d..0000000
--- a/kubernetes/common/nfs-provisioner/values.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright © 2019 Amdocs, Bell Canada

-#

-# Licensed under the Apache License, Version 2.0 (the "License");

-# you may not use this file except in compliance with the License.

-# You may obtain a copy of the License at

-#

-#       http://www.apache.org/licenses/LICENSE-2.0

-#

-# Unless required by applicable law or agreed to in writing, software

-# distributed under the License is distributed on an "AS IS" BASIS,

-# 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.

-

-#################################################################

-# Global configuration defaults.

-#################################################################

-global:

-  persistence:

-    mountPath: /dockerdata-nfs

-

-#################################################################

-# Application configuration defaults.

-#################################################################

-

-dockerHubRepository: registry.hub.docker.com

-pullPolicy: Always

-

-# default number of instances

-

-nodeSelector: {}

-

-affinity: {}

-

-service:

-  name: nfs-provisioner

-  nfsPort: 2049

-  mountdPort: 20048

-  rpcbindPort: 111

-  rpcbindUdpPort: 111

-

-## Persist data to a persitent volume

-persistence:

-  enabled: true

-  mountPath: /dockerdata-nfs

-

-## NFS provisioner image properties

-nfsprovisionerRepository: quay.io

-nfsprovisionerImage: kubernetes_incubator/nfs-provisioner:v1.0.8

-

diff --git a/kubernetes/common/postgres/templates/pv.yaml b/kubernetes/common/postgres/templates/pv.yaml
index 144a3f7..bcd67d7 100644
--- a/kubernetes/common/postgres/templates/pv.yaml
+++ b/kubernetes/common/postgres/templates/pv.yaml
@@ -13,46 +13,33 @@
 # # See the License for the specific language governing permissions and
 # # limitations under the License.
 */}}
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{- range $i := until (int $global.Values.replicaCount)}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data0
-  namespace: {{ include "common.namespace" . }}
+  name: {{ include "common.fullname" $global }}-data-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
   labels:
-    app: {{ include "common.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    app: {{ include "common.fullname" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
 spec:
   capacity:
-    storage: {{ .Values.persistence.size}}
+    storage: {{ $global.Values.persistence.size}}
   accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
 ---
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-data1
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
+{{- end -}}
+{{- end -}}
+{{- end -}}
 {{- end -}}
diff --git a/kubernetes/common/postgres/templates/statefulset.yaml b/kubernetes/common/postgres/templates/statefulset.yaml
index db4a256..7c38d1d 100644
--- a/kubernetes/common/postgres/templates/statefulset.yaml
+++ b/kubernetes/common/postgres/templates/statefulset.yaml
@@ -37,23 +37,13 @@
         - /bin/sh
         - -c
         - |
-          for i in $(seq 0 $(({{ .Values.replicaCount }}-1))); do
-            if [ ! -d /podroot/data$i ]; then
-              mkdir -p /podroot/data$i;
-              chown 26:26 /podroot/data$i;
-              chmod 700 /podroot/data$i;
-            fi;
-          done
-        env:
-        - name: POD_NAME
-          valueFrom: { fieldRef: { fieldPath: metadata.name } }
-        securityContext:
-          privileged: true
+          chown -R 26:26 /podroot/;
+          chmod 700 /podroot/;
         image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: init-sysctl
+        name: {{ include "common.name" . }}-prepare
         volumeMounts:
-        - name: {{ include "common.fullname" . }}-init
+        - name: {{ include "common.fullname" . }}-data
           mountPath: /podroot/
       containers:
       - name: {{ include "common.name" . }}
@@ -129,27 +119,25 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.fullname" . }}-init
-        hostPath:
-          path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountInitPath }}
       - name: {{ include "common.fullname" . }}-backup
         emptyDir: {}
-#{{ if not .Values.persistence.enabled }}
+{{- if not .Values.persistence.enabled }}
       - name: {{ include "common.fullname" . }}-data
         emptyDir: {}
-#{{ else }}
+{{- else }}
   volumeClaimTemplates:
   - metadata:
       name: {{ include "common.fullname" . }}-data
       labels:
         name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-data
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
-          storage: {{ .Values.persistence.size }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}
-#{{ end }}
+          storage: {{ .Values.persistence.size | quote }}
+{{- end }}
diff --git a/kubernetes/consul/templates/ingress.yaml b/kubernetes/consul/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/consul/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/consul/values.yaml b/kubernetes/consul/values.yaml
index 93fd650..d55ea46 100644
--- a/kubernetes/consul/values.yaml
+++ b/kubernetes/consul/values.yaml
@@ -60,7 +60,13 @@
 
 ingress:
   enabled: false
-
+  service:
+    - baseaddr: "consul-server"
+      name: "consul-server"
+      port: 8800
+  config:
+    ssl: "none"
+    
 resources: {}
 
 odl:
diff --git a/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pv.yaml b/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pv.yaml
index a8cf9f6..da68e34 100755
--- a/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pv.yaml
+++ b/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pv.yaml
@@ -15,7 +15,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-{{- if not .Values.persistence.storageClass -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,7 +33,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pvc.yaml b/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pvc.yaml
index 52891ff..6d51a09 100755
--- a/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pvc.yaml
+++ b/kubernetes/contrib/charts/awx/charts/awx-postgres/templates/pvc.yaml
@@ -30,21 +30,10 @@
 {{ .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-{{- if not .Values.persistence.storageClass }}
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-{{- end }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
diff --git a/kubernetes/contrib/charts/awx/charts/awx-postgres/values.yaml b/kubernetes/contrib/charts/awx/charts/awx-postgres/values.yaml
index 79fe510..09012ea 100755
--- a/kubernetes/contrib/charts/awx/charts/awx-postgres/values.yaml
+++ b/kubernetes/contrib/charts/awx/charts/awx-postgres/values.yaml
@@ -64,7 +64,7 @@
 
   # storageClass: "nfs-dev-sc"
 
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 1Gi
 
   # When using storage class, mountPath and mountSubPath are
diff --git a/kubernetes/contrib/charts/awx/charts/awx/values.yaml b/kubernetes/contrib/charts/awx/charts/awx/values.yaml
index 5974de3..ffacea5 100755
--- a/kubernetes/contrib/charts/awx/charts/awx/values.yaml
+++ b/kubernetes/contrib/charts/awx/charts/awx/values.yaml
@@ -76,7 +76,7 @@
 
   # storageClass: "nfs-dev-sc"
 
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 5Gi
 
   # When using storage class, mountPath and mountSubPath are
diff --git a/kubernetes/contrib/charts/awx/requirements.yaml b/kubernetes/contrib/charts/awx/requirements.yaml
index 486fc65..ca8971c 100755
--- a/kubernetes/contrib/charts/awx/requirements.yaml
+++ b/kubernetes/contrib/charts/awx/requirements.yaml
@@ -14,5 +14,5 @@
 
 dependencies:
   - name: common
-    version: ~4.x-0
+    version: ~5.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pv.yaml b/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pv.yaml
index f741cba..d2783cc 100755
--- a/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pv.yaml
+++ b/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pv.yaml
@@ -19,20 +19,21 @@
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ .Release.Name }}-{{ .Values.persistence.staticPvName }}
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ .Release.Name }}-{{ .Values.persistence.staticPvName }}
+    name: {{ include "common.fullname" . }}
 spec:
   capacity:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}/app
 {{- end -}}
diff --git a/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pvc.yaml b/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pvc.yaml
index 3489049..a72d827 100755
--- a/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pvc.yaml
+++ b/kubernetes/contrib/charts/netbox/charts/netbox-app/templates/pvc.yaml
@@ -30,21 +30,10 @@
 {{ .Values.persistence.annotations | indent 4 }}
   {{- end }}
 spec:
-{{- if not .Values.persistence.storageClass }}
-  selector:
-    matchLabels:
-      name: {{ .Release.Name }}-{{ .Values.persistence.staticPvName }}
-{{- end }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-  {{- if .Values.persistence.storageClass }}
-    {{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-    {{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-    {{- end }}
-  {{- end }}
-{{- end -}}
\ No newline at end of file
+  storageClassName: {{ include "common.storageClass" . }}
+{{- end -}}
diff --git a/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pv.yaml b/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pv.yaml
index a19f500..9b6ee1b 100755
--- a/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pv.yaml
+++ b/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pv.yaml
@@ -15,7 +15,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-{{- if not .Values.persistence.storageClass -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,7 +33,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pvc.yaml b/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pvc.yaml
index 30bba6d..022a0fa 100755
--- a/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pvc.yaml
+++ b/kubernetes/contrib/charts/netbox/charts/netbox-postgres/templates/pvc.yaml
@@ -30,21 +30,10 @@
 {{ .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-{{- if not .Values.persistence.storageClass }}
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-{{- end }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end -}}
diff --git a/kubernetes/contrib/charts/netbox/charts/netbox-postgres/values.yaml b/kubernetes/contrib/charts/netbox/charts/netbox-postgres/values.yaml
index f2def04..1db2457 100755
--- a/kubernetes/contrib/charts/netbox/charts/netbox-postgres/values.yaml
+++ b/kubernetes/contrib/charts/netbox/charts/netbox-postgres/values.yaml
@@ -64,7 +64,7 @@
 
   # storageClass: "nfs-dev-sc"
 
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 1Gi
 
   # When using storage class, mountPath and mountSubPath are
diff --git a/kubernetes/contrib/ingress-nginx-post-inst/nginx_ingress_cluster_config.yaml b/kubernetes/contrib/ingress-nginx-post-inst/nginx_ingress_cluster_config.yaml
new file mode 100644
index 0000000..937828a
--- /dev/null
+++ b/kubernetes/contrib/ingress-nginx-post-inst/nginx_ingress_cluster_config.yaml
@@ -0,0 +1,317 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+
+---
+
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: nginx-configuration
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: tcp-services
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: udp-services
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: nginx-ingress-serviceaccount
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+
+---
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRole
+metadata:
+  name: nginx-ingress-clusterrole
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+rules:
+  - apiGroups:
+      - ""
+    resources:
+      - configmaps
+      - endpoints
+      - nodes
+      - pods
+      - secrets
+    verbs:
+      - list
+      - watch
+  - apiGroups:
+      - ""
+    resources:
+      - nodes
+    verbs:
+      - get
+  - apiGroups:
+      - ""
+    resources:
+      - services
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      - ""
+    resources:
+      - events
+    verbs:
+      - create
+      - patch
+  - apiGroups:
+      - "extensions"
+      - "networking.k8s.io"
+    resources:
+      - ingresses
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      - "extensions"
+      - "networking.k8s.io"
+    resources:
+      - ingresses/status
+    verbs:
+      - update
+
+---
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: Role
+metadata:
+  name: nginx-ingress-role
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+rules:
+  - apiGroups:
+      - ""
+    resources:
+      - configmaps
+      - pods
+      - secrets
+      - namespaces
+    verbs:
+      - get
+  - apiGroups:
+      - ""
+    resources:
+      - configmaps
+    resourceNames:
+      # Defaults to "<election-id>-<ingress-class>"
+      # Here: "<ingress-controller-leader>-<nginx>"
+      # This has to be adapted if you change either parameter
+      # when launching the nginx-ingress-controller.
+      - "ingress-controller-leader-nginx"
+    verbs:
+      - get
+      - update
+  - apiGroups:
+      - ""
+    resources:
+      - configmaps
+    verbs:
+      - create
+  - apiGroups:
+      - ""
+    resources:
+      - endpoints
+    verbs:
+      - get
+
+---
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: RoleBinding
+metadata:
+  name: nginx-ingress-role-nisa-binding
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: nginx-ingress-role
+subjects:
+  - kind: ServiceAccount
+    name: nginx-ingress-serviceaccount
+    namespace: ingress-nginx
+
+---
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+  name: nginx-ingress-clusterrole-nisa-binding
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: nginx-ingress-clusterrole
+subjects:
+  - kind: ServiceAccount
+    name: nginx-ingress-serviceaccount
+    namespace: ingress-nginx
+
+---
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: nginx-ingress-controller
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: ingress-nginx
+      app.kubernetes.io/part-of: ingress-nginx
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: ingress-nginx
+        app.kubernetes.io/part-of: ingress-nginx
+      annotations:
+        prometheus.io/port: "10254"
+        prometheus.io/scrape: "true"
+    spec:
+      serviceAccountName: nginx-ingress-serviceaccount
+      containers:
+        - name: nginx-ingress-controller
+          image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1
+          args:
+            - /nginx-ingress-controller
+            - --configmap=$(POD_NAMESPACE)/nginx-configuration
+            - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
+            - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
+            - --publish-service=$(POD_NAMESPACE)/ingress-nginx
+            - --annotations-prefix=nginx.ingress.kubernetes.io
+            - --enable-ssl-passthrough=true
+          securityContext:
+            allowPrivilegeEscalation: true
+            capabilities:
+              drop:
+                - ALL
+              add:
+                - NET_BIND_SERVICE
+            # www-data -> 33
+            runAsUser: 33
+          env:
+            - name: POD_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.name
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+          ports:
+            - name: http
+              containerPort: 80
+            - name: https
+              containerPort: 443
+          livenessProbe:
+            failureThreshold: 3
+            httpGet:
+              path: /healthz
+              port: 10254
+              scheme: HTTP
+            initialDelaySeconds: 10
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 10
+          readinessProbe:
+            failureThreshold: 3
+            httpGet:
+              path: /healthz
+              port: 10254
+              scheme: HTTP
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 10
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: ingress-nginx
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+spec:
+  externalTrafficPolicy: Local
+  type: LoadBalancer
+  selector:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+  ports:
+    - name: http
+      port: 80
+      targetPort: http
+    - name: https
+      port: 443
+      targetPort: https
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: ingress-nginx
+  namespace: ingress-nginx
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+spec:
+  type: NodePort
+  ports:
+    - name: http
+      port: 80
+      targetPort: 80
+      protocol: TCP
+    - name: https
+      port: 443
+      targetPort: 443
+      protocol: TCP
+  selector:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/part-of: ingress-nginx
+
+---
+
diff --git a/kubernetes/dcaegen2/Chart.yaml b/kubernetes/dcaegen2/Chart.yaml
index 9c23194..6dbd406 100644
--- a/kubernetes/dcaegen2/Chart.yaml
+++ b/kubernetes/dcaegen2/Chart.yaml
@@ -15,4 +15,4 @@
 apiVersion: v1
 description: ONAP DCAE Gen2
 name: dcaegen2
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/Makefile b/kubernetes/dcaegen2/Makefile
index fcd62da..f10f2fc 100644
--- a/kubernetes/dcaegen2/Makefile
+++ b/kubernetes/dcaegen2/Makefile
@@ -1,31 +1,48 @@
+# Copyright © 2019  AT&T Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
 make-dcaegen2: make-dcae-bootstrap make-dcae-cloudify-manager make-dcae-config-binding-service make-dcae-healthcheck make-dcae-redis make-dcae-servicechange-handler make-dcae-inventory-api make-dcae-deployment-handler make-dcae-policy-handler make-dcae-dashboard
 
 make-dcae-bootstrap:
-	cd charts && helm dep up dcae-bootstrap && helm lint dcae-bootstrap
+	cd components && helm dep up dcae-bootstrap && helm lint dcae-bootstrap
 
 make-dcae-cloudify-manager:
-	cd charts && helm dep up dcae-cloudify-manager && helm lint dcae-cloudify-manager
+	cd components && helm dep up dcae-cloudify-manager && helm lint dcae-cloudify-manager
 
 make-dcae-config-binding-service:
-	cd charts && helm dep up dcae-config-binding-service && helm lint dcae-config-binding-service
+	cd components && helm dep up dcae-config-binding-service && helm lint dcae-config-binding-service
 
 make-dcae-healthcheck:
-	cd charts && helm dep up dcae-healthcheck && helm lint dcae-healthcheck
+	cd components && helm dep up dcae-healthcheck && helm lint dcae-healthcheck
 
 make-dcae-redis:
-	cd charts && helm dep up dcae-redis && helm lint dcae-redis
+	cd components && helm dep up dcae-redis && helm lint dcae-redis
 
 make-dcae-servicechange-handler:
-	cd charts && helm dep up dcae-servicechange-handler && helm lint dcae-servicechange-handler
+	cd components && helm dep up dcae-servicechange-handler && helm lint dcae-servicechange-handler
 
 make-dcae-inventory-api:
-	cd charts/dcae-servicechange-handler/charts  && helm dep up dcae-inventory-api && helm lint dcae-inventory-api
+	cd components && helm dep up dcae-inventory-api && helm lint dcae-inventory-api
 
 make-dcae-deployment-handler:
-	cd charts && helm dep up dcae-deployment-handler && helm lint dcae-deployment-handler
+	cd components && helm dep up dcae-deployment-handler && helm lint dcae-deployment-handler
 
 make-dcae-policy-handler:
-	cd charts && helm dep up dcae-policy-handler && helm lint dcae-policy-handler
+	cd components && helm dep up dcae-policy-handler && helm lint dcae-policy-handler
 
 make-dcae-dashboard:
-	cd charts && helm dep up dcae-dashboard && helm lint dcae-dashboard
+	cd components && helm dep up dcae-dashboard && helm lint dcae-dashboard
+
+clean:
+	@find . -type f -name '*.tgz' -delete
+	@find . -type f -name '*.lock' -delete
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/pv.yaml b/kubernetes/dcaegen2/charts/dcae-redis/templates/pv.yaml
deleted file mode 100644
index 5573179..0000000
--- a/kubernetes/dcaegen2/charts/dcae-redis/templates/pv.yaml
+++ /dev/null
@@ -1,227 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, AT&T, Bell Canada
-# #
-# # Licensed under the Apache License, Version 2.0 (the "License");
-# # you may not use this file except in compliance with the License.
-# # You may obtain a copy of the License at
-# #
-# #       http://www.apache.org/licenses/LICENSE-2.0
-# #
-# # Unless required by applicable law or agreed to in writing, software
-# # distributed under the License is distributed on an "AS IS" BASIS,
-# # 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.
-*/}}
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}0
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}1
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}2
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}3
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}3
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}4
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}4
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}5
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}5
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}6
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}6
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}7
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}7
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}8
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}8
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}9
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  storageClassName: manual
-  capacity:
-    storage: {{ .Values.persistence.size }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}9
-
-{{- end -}}
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/.helmignore b/kubernetes/dcaegen2/components/dcae-bootstrap/.helmignore
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/.helmignore
rename to kubernetes/dcaegen2/components/dcae-bootstrap/.helmignore
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/Chart.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/Chart.yaml
index b92c943..87b6a87 100644
--- a/kubernetes/dcaegen2/charts/dcae-bootstrap/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-bootstrap/Chart.yaml
@@ -19,4 +19,4 @@
 apiVersion: v1
 description: ONAP DCAE Bootstrap
 name: dcae-bootstrap
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/certs/cacert.pem b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/certs/cacert.pem
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/certs/cacert.pem
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/certs/cacert.pem
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/config/dmaap-plugin.json b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/config/dmaap-plugin.json
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/config/dmaap-plugin.json
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/config/dmaap-plugin.json
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/config/k8s-plugin.json b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/config/k8s-plugin.json
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/config/k8s-plugin.json
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/config/k8s-plugin.json
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-dashboard-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-dashboard-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-dashboard-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-dashboard-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-datafile-collector-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-datafile-collector-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-datafile-collector-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-datafile-collector-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-holmes_rules-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-holmes_rules-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-hv_ves-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-hv_ves-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-hv_ves-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-hv_ves-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-prh-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-prh-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-prh-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-prh-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-snmptrap-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-snmptrap-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-snmptrap-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-snmptrap-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/templates/secret.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/templates/secret.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/templates/secret.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/templates/secret.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml
similarity index 95%
rename from kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml
rename to kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml
index d1b9170..3ecdff7 100644
--- a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml
+++ b/kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml
@@ -101,12 +101,12 @@
 # DCAE component images to be deployed via Cloudify Manager
 # Use to override default setting in blueprints
 componentImages:
-  holmes_rules: onap/holmes/rule-management:1.2.6
-  holmes_engine: onap/holmes/engine-management:1.2.5
+  holmes_rules: onap/holmes/rule-management:1.2.7
+  holmes_engine: onap/holmes/engine-management:1.2.6
   tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.2
   ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.4.5
   snmptrap: onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
-  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.3.1
+  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.3.2
   hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.3.0
 
 # Resource Limit flavor -By Default using small
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/.helmignore b/kubernetes/dcaegen2/components/dcae-cloudify-manager/.helmignore
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/.helmignore
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/.helmignore
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/Chart.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/Chart.yaml
index 159e2b5..5a23621 100644
--- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-cloudify-manager/Chart.yaml
@@ -19,4 +19,4 @@
 apiVersion: v1
 description: ONAP DCAE Cloudify Manager
 name: dcae-cloudify-manager
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/README.md b/kubernetes/dcaegen2/components/dcae-cloudify-manager/README.md
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/README.md
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/README.md
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/requirements.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/resources/config/config.txt b/kubernetes/dcaegen2/components/dcae-cloudify-manager/resources/config/config.txt
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/resources/config/config.txt
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/resources/config/config.txt
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/resources/config/log/filebeat.yml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/resources/config/log/filebeat.yml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/resources/config/log/filebeat.yml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/resources/config/log/filebeat.yml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/deployment.yaml
similarity index 97%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/deployment.yaml
index b3e90a2..2fd9a6d 100644
--- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml
+++ b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/deployment.yaml
@@ -129,8 +129,12 @@
           hostPath:
             path: /etc/localtime
         - name: cm-persistent
+        {{- if .Values.persistence.enabled }}
           persistentVolumeClaim:
             claimName: {{ include "common.fullname" . }}-data
+        {{- else }}
+          emptyDir: {}
+        {{- end }}
         - emptyDir: {}
           name: tls-info
       imagePullSecrets:
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/job.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/job.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/job.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/job.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/namespace.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/namespace.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/namespace.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/namespace.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/pv.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/pv.yaml
similarity index 84%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/pv.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/pv.yaml
index bef681a..b454b5a 100644
--- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/pv.yaml
+++ b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/pv.yaml
@@ -16,6 +16,8 @@
 # limitations under the License.
 # ============LICENSE_END=========================================================
 
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -28,10 +30,13 @@
     heritage: "{{ .Release.Service }}"
     name: {{ include "common.fullname" . }}
 spec:
-  storageClassName: manual
   capacity:
     storage: {{ .Values.persistence.size }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/pvc.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/pvc.yaml
similarity index 88%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/pvc.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/pvc.yaml
index 6740082..c4de971 100644
--- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/pvc.yaml
+++ b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/pvc.yaml
@@ -14,6 +14,7 @@
 # limitations under the License.
 # ============LICENSE_END=========================================================
 
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
@@ -22,12 +23,10 @@
     name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  storageClassName: manual
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/secret.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/secret.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/secret.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/secret.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml b/kubernetes/dcaegen2/components/dcae-cloudify-manager/values.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml
rename to kubernetes/dcaegen2/components/dcae-cloudify-manager/values.yaml
index d8db056..60fd7e5 100644
--- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml
+++ b/kubernetes/dcaegen2/components/dcae-cloudify-manager/values.yaml
@@ -105,3 +105,4 @@
   size: 4Gi
   mountPath: /dockerdata-nfs
   mountSubPath: dcae-cm/data
+  volumeReclaimPolicy: Retain
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/Chart.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/Chart.yaml
index f1aa82b..8d9a28a 100644
--- a/kubernetes/dcaegen2/charts/dcae-config-binding-service/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-config-binding-service/Chart.yaml
@@ -18,4 +18,4 @@
 apiVersion: v1
 description: ONAP DCAE Config Binding Service
 name: dcae-config-binding-service
-version: 5.0.0
\ No newline at end of file
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/requirements.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/resources/config/log/filebeat/filebeat.yml b/kubernetes/dcaegen2/components/dcae-config-binding-service/resources/config/log/filebeat/filebeat.yml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/resources/config/log/filebeat/filebeat.yml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/resources/config/log/filebeat/filebeat.yml
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-config-binding-service/values.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-config-binding-service/values.yaml
rename to kubernetes/dcaegen2/components/dcae-config-binding-service/values.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/.helmignore b/kubernetes/dcaegen2/components/dcae-dashboard/.helmignore
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/.helmignore
rename to kubernetes/dcaegen2/components/dcae-dashboard/.helmignore
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/Chart.yaml b/kubernetes/dcaegen2/components/dcae-dashboard/Chart.yaml
similarity index 84%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-dashboard/Chart.yaml
index 5250c17..a46ea7e 100644
--- a/kubernetes/dcaegen2/charts/dcae-dashboard/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-dashboard/Chart.yaml
@@ -2,4 +2,4 @@
 appVersion: "1.0"
 description: DCAE Dashboard
 name: dcae-dashboard
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/requirements.yaml b/kubernetes/dcaegen2/components/dcae-dashboard/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-dashboard/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/resources/log/filebeat.yml b/kubernetes/dcaegen2/components/dcae-dashboard/resources/log/filebeat.yml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/resources/log/filebeat.yml
rename to kubernetes/dcaegen2/components/dcae-dashboard/resources/log/filebeat.yml
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-dashboard/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-dashboard/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-dashboard/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-dashboard/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-dashboard/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-dashboard/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-dashboard/values.yaml b/kubernetes/dcaegen2/components/dcae-dashboard/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-dashboard/values.yaml
rename to kubernetes/dcaegen2/components/dcae-dashboard/values.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/.helmignore b/kubernetes/dcaegen2/components/dcae-deployment-handler/.helmignore
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/.helmignore
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/.helmignore
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/Chart.yaml b/kubernetes/dcaegen2/components/dcae-deployment-handler/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/Chart.yaml
index 042eb68..e918b77 100644
--- a/kubernetes/dcaegen2/charts/dcae-deployment-handler/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-deployment-handler/Chart.yaml
@@ -18,4 +18,4 @@
 apiVersion: v1
 description: ONAP DCAE Deployment Handler
 name: dcae-deployment-handler
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/requirements.yaml b/kubernetes/dcaegen2/components/dcae-deployment-handler/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/config/config.json b/kubernetes/dcaegen2/components/dcae-deployment-handler/resources/config/config.json
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/config/config.json
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/resources/config/config.json
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/log/filebeat.yml b/kubernetes/dcaegen2/components/dcae-deployment-handler/resources/log/filebeat.yml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/log/filebeat.yml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/resources/log/filebeat.yml
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-deployment-handler/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-deployment-handler/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-deployment-handler/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/values.yaml b/kubernetes/dcaegen2/components/dcae-deployment-handler/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-deployment-handler/values.yaml
rename to kubernetes/dcaegen2/components/dcae-deployment-handler/values.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml b/kubernetes/dcaegen2/components/dcae-healthcheck/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-healthcheck/Chart.yaml
index c6db31d..7c10b31 100644
--- a/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-healthcheck/Chart.yaml
@@ -19,4 +19,4 @@
 apiVersion: v1
 description: ONAP DCAE Health Check
 name: dcae-healthcheck
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/requirements.yaml b/kubernetes/dcaegen2/components/dcae-healthcheck/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-healthcheck/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-healthcheck/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-healthcheck/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-healthcheck/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-healthcheck/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-healthcheck/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-healthcheck/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-healthcheck/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml b/kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml
rename to kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/Chart.yaml b/kubernetes/dcaegen2/components/dcae-inventory-api/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-inventory-api/Chart.yaml
index e1735ec..face827 100644
--- a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-inventory-api/Chart.yaml
@@ -18,4 +18,4 @@
 apiVersion: v1
 description: ONAP DCAE Inventory API Service
 name: dcae-inventory-api
-version: 5.0.0
\ No newline at end of file
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/requirements.yaml b/kubernetes/dcaegen2/components/dcae-inventory-api/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-inventory-api/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/resources/config/config.json b/kubernetes/dcaegen2/components/dcae-inventory-api/resources/config/config.json
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/resources/config/config.json
rename to kubernetes/dcaegen2/components/dcae-inventory-api/resources/config/config.json
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-inventory-api/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-inventory-api/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-inventory-api/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-inventory-api/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-inventory-api/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-inventory-api/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/values.yaml b/kubernetes/dcaegen2/components/dcae-inventory-api/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api/values.yaml
rename to kubernetes/dcaegen2/components/dcae-inventory-api/values.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/.helmignore b/kubernetes/dcaegen2/components/dcae-policy-handler/.helmignore
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/.helmignore
rename to kubernetes/dcaegen2/components/dcae-policy-handler/.helmignore
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/Chart.yaml b/kubernetes/dcaegen2/components/dcae-policy-handler/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/Chart.yaml
index d2b275b..dfcc52e 100644
--- a/kubernetes/dcaegen2/charts/dcae-policy-handler/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-policy-handler/Chart.yaml
@@ -18,4 +18,4 @@
 apiVersion: v1
 description: ONAP DCAE Policy Handler
 name: dcae-policy-handler
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/requirements.yaml b/kubernetes/dcaegen2/components/dcae-policy-handler/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/resources/config/config.json b/kubernetes/dcaegen2/components/dcae-policy-handler/resources/config/config.json
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/resources/config/config.json
rename to kubernetes/dcaegen2/components/dcae-policy-handler/resources/config/config.json
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/resources/log/filebeat.yml b/kubernetes/dcaegen2/components/dcae-policy-handler/resources/log/filebeat.yml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/resources/log/filebeat.yml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/resources/log/filebeat.yml
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-policy-handler/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-policy-handler/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-policy-handler/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/values.yaml b/kubernetes/dcaegen2/components/dcae-policy-handler/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-policy-handler/values.yaml
rename to kubernetes/dcaegen2/components/dcae-policy-handler/values.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/.helmignore b/kubernetes/dcaegen2/components/dcae-redis/.helmignore
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-redis/.helmignore
rename to kubernetes/dcaegen2/components/dcae-redis/.helmignore
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/Chart.yaml b/kubernetes/dcaegen2/components/dcae-redis/Chart.yaml
similarity index 97%
rename from kubernetes/dcaegen2/charts/dcae-redis/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-redis/Chart.yaml
index 49ae5d2..d4c264f 100644
--- a/kubernetes/dcaegen2/charts/dcae-redis/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-redis/Chart.yaml
@@ -16,4 +16,4 @@
 apiVersion: v1
 description: ONAP DCAE Redis
 name: dcae-redis
-version: 5.0.0
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/requirements.yaml b/kubernetes/dcaegen2/components/dcae-redis/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-redis/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-redis/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh b/kubernetes/dcaegen2/components/dcae-redis/resources/redis/scripts/redis-cluster-config.sh
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh
rename to kubernetes/dcaegen2/components/dcae-redis/resources/redis/scripts/redis-cluster-config.sh
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/NOTES.txt b/kubernetes/dcaegen2/components/dcae-redis/templates/NOTES.txt
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-redis/templates/NOTES.txt
rename to kubernetes/dcaegen2/components/dcae-redis/templates/NOTES.txt
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-redis/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-redis/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-redis/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/components/dcae-redis/templates/ingress.yaml b/kubernetes/dcaegen2/components/dcae-redis/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/dcaegen2/components/dcae-redis/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/dcaegen2/components/dcae-redis/templates/pv.yaml b/kubernetes/dcaegen2/components/dcae-redis/templates/pv.yaml
new file mode 100644
index 0000000..2902604
--- /dev/null
+++ b/kubernetes/dcaegen2/components/dcae-redis/templates/pv.yaml
@@ -0,0 +1,45 @@
+{{/*
+# Copyright © 2017 Amdocs, AT&T, Bell Canada
+# #
+# # Licensed under the Apache License, Version 2.0 (the "License");
+# # you may not use this file except in compliance with the License.
+# # You may obtain a copy of the License at
+# #
+# #       http://www.apache.org/licenses/LICENSE-2.0
+# #
+# # Unless required by applicable law or agreed to in writing, software
+# # distributed under the License is distributed on an "AS IS" BASIS,
+# # 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.
+*/}}
+{{- $global := . }}
+{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) }}
+{{- range $i := until (int $global.Values.replicaCount)}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" $global }}-data-{{$i}}
+  namespace: {{ include "common.namespace" $global }}
+  labels:
+    app: {{ include "common.fullname" $global }}
+    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
+    release: "{{ $global.Release.Name }}"
+    heritage: "{{ $global.Release.Service }}"
+    name: {{ include "common.fullname" $global }}
+spec:
+  capacity:
+    storage: {{ $global.Values.persistence.size}}
+  accessModes:
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data"
+  hostPath:
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/service.yaml b/kubernetes/dcaegen2/components/dcae-redis/templates/service.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-redis/templates/service.yaml
rename to kubernetes/dcaegen2/components/dcae-redis/templates/service.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml b/kubernetes/dcaegen2/components/dcae-redis/templates/statefulset.yaml
similarity index 89%
rename from kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml
rename to kubernetes/dcaegen2/components/dcae-redis/templates/statefulset.yaml
index 5a5b220..d5fa634 100644
--- a/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml
+++ b/kubernetes/dcaegen2/components/dcae-redis/templates/statefulset.yaml
@@ -96,23 +96,27 @@
       - name: {{ include "common.fullname" . }}-scripts
         configMap:
           name: {{ include "common.fullname" . }}-scripts
-          defaultMode: 0755 
+          defaultMode: 0755
       - name: localtime
         hostPath:
           path: /etc/localtime
+      {{- if not .Values.persistence.enabled }}
+      - name: {{ include "common.fullname" . }}-data
+        emptyDir: {}
+      {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
+  {{- if .Values.persistence.enabled }}
   volumeClaimTemplates:
   - metadata:
       name: {{ include "common.fullname" . }}-data
       labels:
-        name: {{ include "common.fullname" . }}      
+        name: {{ include "common.fullname" . }}
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: manual
+      accessModes:
+      - {{ .Values.persistence.accessMode | quote }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
-          storage: {{ .Values.persistence.size }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}
+          storage: {{ .Values.persistence.size | quote}}
+  {{- end }}
diff --git a/kubernetes/dcaegen2/charts/dcae-redis/values.yaml b/kubernetes/dcaegen2/components/dcae-redis/values.yaml
similarity index 94%
rename from kubernetes/dcaegen2/charts/dcae-redis/values.yaml
rename to kubernetes/dcaegen2/components/dcae-redis/values.yaml
index 40812f2..0b342e8 100644
--- a/kubernetes/dcaegen2/charts/dcae-redis/values.yaml
+++ b/kubernetes/dcaegen2/components/dcae-redis/values.yaml
@@ -93,7 +93,15 @@
 
 ingress:
   enabled: false
-
+  service:
+    - baseaddr: "dcaeredis"
+      name: "dcae-redis"
+      port: 6379
+    - baseaddr: "dcaeredisgossip"
+      name: "dcae-redis"
+      port: 16379
+  config:
+    ssl: "none"
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/Chart.yaml b/kubernetes/dcaegen2/components/dcae-servicechange-handler/Chart.yaml
similarity index 98%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/Chart.yaml
rename to kubernetes/dcaegen2/components/dcae-servicechange-handler/Chart.yaml
index 64c8910..3b96aca 100644
--- a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/Chart.yaml
+++ b/kubernetes/dcaegen2/components/dcae-servicechange-handler/Chart.yaml
@@ -18,4 +18,4 @@
 apiVersion: v1
 description: ONAP DCAE Service Change Handler
 name: dcae-servicechange-handler
-version: 5.0.0
\ No newline at end of file
+version: 6.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/requirements.yaml b/kubernetes/dcaegen2/components/dcae-servicechange-handler/requirements.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/requirements.yaml
rename to kubernetes/dcaegen2/components/dcae-servicechange-handler/requirements.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/resources/config/config.json b/kubernetes/dcaegen2/components/dcae-servicechange-handler/resources/config/config.json
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/resources/config/config.json
rename to kubernetes/dcaegen2/components/dcae-servicechange-handler/resources/config/config.json
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/templates/configmap.yaml b/kubernetes/dcaegen2/components/dcae-servicechange-handler/templates/configmap.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/templates/configmap.yaml
rename to kubernetes/dcaegen2/components/dcae-servicechange-handler/templates/configmap.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-servicechange-handler/templates/deployment.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/templates/deployment.yaml
rename to kubernetes/dcaegen2/components/dcae-servicechange-handler/templates/deployment.yaml
diff --git a/kubernetes/dcaegen2/charts/dcae-servicechange-handler/values.yaml b/kubernetes/dcaegen2/components/dcae-servicechange-handler/values.yaml
similarity index 100%
rename from kubernetes/dcaegen2/charts/dcae-servicechange-handler/values.yaml
rename to kubernetes/dcaegen2/components/dcae-servicechange-handler/values.yaml
diff --git a/kubernetes/dcaegen2/requirements.yaml b/kubernetes/dcaegen2/requirements.yaml
index ad039c2..cd04d8a 100644
--- a/kubernetes/dcaegen2/requirements.yaml
+++ b/kubernetes/dcaegen2/requirements.yaml
@@ -16,3 +16,44 @@
   - name: common
     version: ~5.x-0
     repository: '@local'
+  - name: dcae-bootstrap
+    version: ~6.x-0
+    repository: 'file://components/dcae-bootstrap'
+    condition: dcae-bootstrap.enabled
+  - name: dcae-cloudify-manager
+    version: ~6.x-0
+    repository: 'file://components/dcae-cloudify-manager'
+    condition: dcae-cloudify-manager.enabled
+  - name: dcae-config-binding-service
+    version: ~6.x-0
+    repository: 'file://components/dcae-config-binding-service'
+    condition: dcae-config-binding-service.enabled
+  - name: dcae-healthcheck
+    version: ~6.x-0
+    repository: 'file://components/dcae-healthcheck'
+    condition: dcae-healthcheck.enabled
+  - name: dcae-redis
+    version: ~6.x-0
+    repository: 'file://components/dcae-redis'
+    condition: dcae-redis.enabled
+  - name: dcae-servicechange-handler
+    version: ~6.x-0
+    repository: 'file://components/dcae-servicechange-handler'
+    condition: dcae-servicechange-handler.enabled
+  - name: dcae-inventory-api
+    version: ~6.x-0
+    repository: 'file://components/dcae-inventory-api'
+    condition: dcae-inventory-api.enabled
+  - name: dcae-deployment-handler
+    version: ~6.x-0
+    repository: 'file://components/dcae-deployment-handler'
+    condition: dcae-deployment-handler.enabled
+  - name: dcae-policy-handler
+    version: ~6.x-0
+    repository: 'file://components/dcae-policy-handler'
+    condition: dcae-policy-handler.enabled
+  - name: dcae-dashboard
+    version: ~6.x-0
+    repository: 'file://components/dcae-dashboard'
+    condition: dcae-dashboard.enabled
+
diff --git a/kubernetes/dmaap/components/dmaap-bc/resources/config/dmaapbc.properties b/kubernetes/dmaap/components/dmaap-bc/resources/config/dmaapbc.properties
index bcfefe9..e43182d 100644
--- a/kubernetes/dmaap/components/dmaap-bc/resources/config/dmaapbc.properties
+++ b/kubernetes/dmaap/components/dmaap-bc/resources/config/dmaapbc.properties
@@ -25,7 +25,7 @@
 #
 #####################################################
 # Indicator for whether to use AAF
-UseAAF: true
+UseAAF: {{ .Values.global.aafEnabled }}
 
 # csit: stubs out some southbound APIs for csit
 csit: No
diff --git a/kubernetes/dmaap/components/dmaap-bc/templates/deployment.yaml b/kubernetes/dmaap/components/dmaap-bc/templates/deployment.yaml
index fffd4db..36963bf 100644
--- a/kubernetes/dmaap/components/dmaap-bc/templates/deployment.yaml
+++ b/kubernetes/dmaap/components/dmaap-bc/templates/deployment.yaml
@@ -1,4 +1,3 @@
-
 # Modifications Copyright © 2018 Amdocs,Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,11 +30,8 @@
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
-      hostAliases:
-      - ip: "10.12.5.145"
-        hostnames:
-        - "aaf-onap-test.osaaf.org"
       initContainers:
+{{- if .Values.global.aafEnabled }}
       - command:
         - /root/ready.py
         args:
@@ -50,7 +46,41 @@
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-aaf-readiness
-{{ if .Values.PG.enabled }}
+      - name: {{ include "common.name" . }}-dbc-aaf-config
+        image: "{{ include "common.repository" . }}/{{ .Values.global.aafAgentImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","exec /opt/app/aaf_config/bin/agent.sh"]
+        volumeMounts:
+        - mountPath: {{ .Values.persistence.aafCredsPath }}
+          name: {{ include "common.name" . }}-aaf-config
+        env:
+        - name: APP_FQI
+          value: "{{ .Values.aafConfig.fqi }}"
+        - name: aaf_locate_url
+          value: "https://aaf-locate.{{ .Release.Namespace }}:8095"
+        - name: aaf_locator_container
+          value: "{{ .Values.global.aafLocatorContainer }}"
+        - name: aaf_locator_container_ns
+          value: "{{ .Release.Namespace }}"
+        - name: aaf_locator_fqdn
+          value: "{{ .Values.aafConfig.fqdn }}"
+        - name: aaf_locator_public_fqdn
+          value: "{{.Values.aafConfig.publicFqdn}}"
+        - name: aaf_locator_app_ns
+          value: "{{ .Values.global.aafAppNs }}"
+        - name: DEPLOY_FQI
+          value: "{{ .Values.aafConfig.aafDeployFqi }}"
+        - name: DEPLOY_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              name: {{ include "common.fullname" . }}-secret
+              key: aaf-deploy-password
+        - name: cadi_longitude
+          value: "{{ .Values.aafConfig.cadiLongitude }}"
+        - name: cadi_latitude
+          value: "{{ .Values.aafConfig.cadiLatitude }}"
+{{- end }}
+{{- if .Values.PG.enabled }}
       - command:
         - /root/ready.py
         args:
@@ -73,7 +103,7 @@
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.internalPort2 }}
-          {{if eq .Values.liveness.enabled true }}
+          {{ if eq .Values.liveness.enabled true -}}
           livenessProbe:
             httpGet:
               port: {{ .Values.service.internalPort }}
@@ -92,7 +122,6 @@
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
-
 # NOTE: on the following several configMaps, careful to include / at end
 #       since there may be more than one file in each mountPath
           - name: {{ include "common.name" . }}-config
@@ -100,9 +129,8 @@
           - name: {{ include "common.name" . }}-aaf-config
             mountPath: /opt/app/dmaapbc/etc/org.onap.dmaap-bc.props
             subPath: org.onap.dmaap-bc.props
-
           resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
         {{- if .Values.nodeSelector }}
         nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 10 }}
diff --git a/kubernetes/dmaap/components/dmaap-bc/templates/ingress.yaml b/kubernetes/dmaap/components/dmaap-bc/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bc/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/nbi/charts/mariadb/templates/secrets.yaml b/kubernetes/dmaap/components/dmaap-bc/templates/secrets.yaml
similarity index 81%
rename from kubernetes/nbi/charts/mariadb/templates/secrets.yaml
rename to kubernetes/dmaap/components/dmaap-bc/templates/secrets.yaml
index 254d86f..ed5ba14 100644
--- a/kubernetes/nbi/charts/mariadb/templates/secrets.yaml
+++ b/kubernetes/dmaap/components/dmaap-bc/templates/secrets.yaml
@@ -1,4 +1,5 @@
-# Copyright © 2017 Amdocs, Bell Canada, Orange
+
+# Modifications Copyright © 2019 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 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.global.aafEnabled }}
 apiVersion: v1
 kind: Secret
 metadata:
@@ -24,5 +26,5 @@
     heritage: {{ .Release.Service }}
 type: Opaque
 data:
-  db-user-password: {{ .Values.config.db.password | b64enc | quote }}
-  db-root-password: {{ .Values.config.db.root_password | b64enc | quote }}
+  aaf-deploy-password: {{ index .Values.aafConfig.aafDeployPass | b64enc | quote }}
+{{- end }}
diff --git a/kubernetes/dmaap/components/dmaap-bc/values.yaml b/kubernetes/dmaap/components/dmaap-bc/values.yaml
index 171ac45..f0e9e17 100644
--- a/kubernetes/dmaap/components/dmaap-bc/values.yaml
+++ b/kubernetes/dmaap/components/dmaap-bc/values.yaml
@@ -47,6 +47,19 @@
 adminUser: aaf_admin@people.osaaf.org
 adminPwd: demo123456!
 
+#AAF local config
+aafConfig:
+  aafDeployFqi: dmaap-bc@dmaap-bc.onap.org
+  aafDeployPass: demo123456!
+  fqdn: dmaap-bc
+  fqi: dmaap-bc@dmaap-bc.onap.org
+  publicFqdn: dmaap-bc.onap.org
+  cadiLatitude: 0.0
+  cadiLongitude: 0.0
+
+persistence:
+  aafCredsPath: /opt/app/osaaf/local
+
 # for Casablanca default deployment, leave this true to
 # get a topic namespace that matches MR.  When set to false,
 # it will compose the topic namespace using the kubernetes namespace value
@@ -120,6 +133,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "dmaapbc"
+      name: "dmaap-bc"
+      port: 8443
+  config:
+    ssl: "redirect"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/resources/config/drNodeCadi.properties b/kubernetes/dmaap/components/dmaap-dr-node/resources/config/drNodeCadi.properties
deleted file mode 100644
index 043bb8b..0000000
--- a/kubernetes/dmaap/components/dmaap-dr-node/resources/config/drNodeCadi.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-cadi_x509_issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_9, OU=OSAAF, O=ONAP, C=US
-cadi_keyfile=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.keyfile
-cadi_keystore=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.jks
-cadi_keystore_password=WGxd2P6MDo*Bi4+UdzWs{?$8
-cadi_key_password=WGxd2P6MDo*Bi4+UdzWs{?$8
-cadi_alias=dmaap-dr-node@dmaap-dr.onap.org
-cadi_truststore=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.trust.jks
-cadi_truststore_password=)OBvCd{e{aWq.^mJJdX:S:1&
-
-aaf_env=DEV
-aaf_locate_url=https://aaf-locate:8095
-aaf_oauth2_introspect_url=https://AAF_LOCATE_URL/AAF_NS.introspect:2.1/introspect
-aaf_oauth2_token_url=https://AAF_LOCATE_URL/AAF_NS.token:2.1/token
-aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1
-cadi_protocols=TLSv1.1,TLSv1.2
-cm_url=https://AAF_LOCATE_URL/AAF_NS.cm:2.1
-fs_url=https://AAF_LOCATE_URL/AAF_NS.fs.2.1
-gui_url=https://AAF_LOCATE_URL/AAF_NS.gui.2.1
-
-cadi_latitude=53.423
-cadi_longitude=7.940
-
-cadi_loglevel=INFO
\ No newline at end of file
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/resources/config/node.properties b/kubernetes/dmaap/components/dmaap-dr-node/resources/config/node.properties
index 4379dfb..3a95b5a 100644
--- a/kubernetes/dmaap/components/dmaap-dr-node/resources/config/node.properties
+++ b/kubernetes/dmaap/components/dmaap-dr-node/resources/config/node.properties
@@ -71,43 +71,19 @@
 #
 #    The path to the redirection data file
 #
-#RedirectionFile:    etc/redirections.dat
+RedirectionFile = etc/redirections.dat
 #
 #    The type of keystore for https
-#
-KeyStoreType=jks
-#
-#    The path to the keystore for https
-#
-KeyStoreFile=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.jks
-#
-#    The password for the https keystore
-#
-KeyStorePassword=WGxd2P6MDo*Bi4+UdzWs{?$8
-#
-#    The password for the private key in the https keystore
-#
-KeyPassword=WGxd2P6MDo*Bi4+UdzWs{?$8
+KeyStoreType = PKCS12
 #
 #    The type of truststore for https
-#
-TrustStoreType=jks
-#
-#    The path to the truststore for https
-#
-TrustStoreFile=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.trust.jks
-#
-#    The password for the https truststore
-#
-TrustStorePassword=)OBvCd{e{aWq.^mJJdX:S:1&
+TrustStoreType = jks
 #
 #    The path to the file used to trigger an orderly shutdown
-#
-QuiesceFile=etc/SHUTDOWN
+QuiesceFile = etc/SHUTDOWN
 #
 #    The key used to generate passwords for node to node transfers
-#
-NodeAuthKey=Node123!
+NodeAuthKey = Node123!
 #
 #    DR_NODE DEFAULT ENABLED TLS PROTOCOLS
 NodeHttpsProtocols = TLSv1.1|TLSv1.2
@@ -121,9 +97,9 @@
 #    AAF action to generate permission string - default should be publish
 AAFAction = publish
 #
-#    AAF URL to connect to AAF server
-AafUrl = https://aaf-locate:8095
-#
 #    AAF CADI enabled flag
 CadiEnabled = false
+#
+#    AAF Props file path
+AAFPropsFilePath = /opt/app/osaaf/local/org.onap.dmaap-dr.props
 
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/ingress.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml
index 016a6ea..90a9c2c 100644
--- a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml
@@ -58,4 +58,27 @@
   storageClassName: "{{ include "common.fullname" . }}-event-logs-stcl"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
-    path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.eventLogsMountSubPath }}
\ No newline at end of file
+    path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.eventLogsMountSubPath }}
+---
+{{- if .Values.global.aafEnabled }}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-aaf-props-pv
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}-aaf-props-pv
+spec:
+  capacity:
+    storage: {{ .Values.persistence.aafCredsSize }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-aaf-props-stcl"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.aafCredsMountSubPath }}
+{{ end -}}
\ No newline at end of file
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/statefulset.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/statefulset.yaml
index a190d0d..9dd5f20 100644
--- a/kubernetes/dmaap/components/dmaap-dr-node/templates/statefulset.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/statefulset.yaml
@@ -45,6 +45,38 @@
               fieldRef:
                 apiVersion: v1
                 fieldPath: metadata.namespace
+        {{- if .Values.global.aafEnabled }}
+        - name: {{ include "common.name" . }}-dr-node-aaf-config
+          image: "{{ include "common.repository" . }}/{{ .Values.global.aafAgentImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-props-pvc
+          command: ["bash","-c","exec /opt/app/aaf_config/bin/agent.sh"]
+          env:
+          - name: APP_FQI
+            value: "{{ .Values.aafConfig.fqi }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace }}:8095"
+          - name: aaf_locator_container
+            value: "{{ .Values.global.aafLocatorContainer }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_fqdn
+            value: "{{ .Values.aafConfig.fqdn }}"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.aafConfig.publicFqdn}}"
+          - name: aaf_locator_app_ns
+            value: "{{ .Values.global.aafAppNs }}"
+          - name: DEPLOY_FQI
+            value: "{{ .Values.aafConfig.aafDeployFqi }}"
+          - name: DEPLOY_PASSWORD
+            value: "{{ .Values.aafConfig.aafDeployPass }}"
+          - name: cadi_longitude
+            value: "{{ .Values.aafConfig.cadiLongitude }}"
+          - name: cadi_latitude
+            value: "{{ .Values.aafConfig.cadiLatitude }}"
+        {{- end }}
         - name: {{ include "common.name" . }}-permission-fixer
           image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
@@ -53,7 +85,11 @@
             name: {{ include "common.fullname" . }}-spool-data-pvc
           - mountPath: {{ .Values.persistence.eventLogsPath }}
             name: {{ include "common.fullname" . }}-event-logs-pvc
-          command: ["chown","-Rf","1000:1001", "/opt/app/datartr"]
+        {{- if .Values.global.aafEnabled }}
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-props-pvc
+        {{- end }}
+          command: ["chown","-Rf","1000:1001", "/opt/app/"]
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
@@ -74,6 +110,10 @@
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           volumeMounts:
+          {{- if .Values.global.aafEnabled }}
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-props-pvc
+          {{- end }}
           - mountPath: {{ .Values.persistence.spoolPath }}
             name: {{ include "common.fullname" . }}-spool-data-pvc
           - mountPath: {{ .Values.persistence.eventLogsPath }}
@@ -84,16 +124,13 @@
           - mountPath: /opt/app/datartr/etc/node.properties
             name: {{ include "common.fullname" . }}-config
             subPath: node.properties
-          - mountPath: /opt/app/datartr/etc/drNodeCadi.properties
-            name: {{ include "common.fullname" . }}-config
-            subPath: drNodeCadi.properties
           - mountPath: /opt/app/datartr/etc/logback.xml
             name: {{ include "common.fullname" . }}-log-conf
             subPath: logback.xml
           - mountPath: {{ .Values.global.loggingDirectory }}
             name: {{ include "common.fullname" . }}-logs
           resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
         {{- if .Values.nodeSelector }}
         nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 10 }}
@@ -101,8 +138,8 @@
         {{- if .Values.affinity }}
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-        # Filebeat sidecar container
+        {{- end -}}
+      # Filebeat sidecar container
         - name: {{ include "common.name" . }}-filebeat-onap
           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
@@ -126,8 +163,6 @@
             items:
             - key: node.properties
               path: node.properties
-            - key: drNodeCadi.properties
-              path: drNodeCadi.properties
         - name: {{ include "common.fullname" . }}-log-conf
           configMap:
             name: {{ include "common.fullname" . }}-log
@@ -140,6 +175,10 @@
           emptyDir: {}
         - name:  {{ include "common.fullname" . }}-logs
           emptyDir: {}
+      {{- if .Values.global.aafEnabled }}
+        - name:  {{ include "common.fullname" . }}-aaf-props-pvc
+          emptyDir: {}
+      {{- end }}
   volumeClaimTemplates:
   - metadata:
       name: {{ include "common.fullname" . }}-spool-data-pvc
@@ -167,3 +206,18 @@
       selector:
         matchLabels:
           name: {{ include "common.fullname" . }}-event-logs-pv
+{{- if .Values.global.aafEnabled }}
+  - metadata:
+      name: {{ include "common.fullname" . }}-aaf-props-pvc
+      labels:
+        name: {{ include "common.fullname" . }}
+    spec:
+      accessModes: [ {{ .Values.persistence.accessMode }} ]
+      storageClassName: {{ include "common.fullname" . }}-aaf-props-stcl
+      resources:
+        requests:
+          storage: {{ .Values.persistence.aafCredsSize }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}-aaf-props-pv
+{{- end }}
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/values.yaml b/kubernetes/dmaap/components/dmaap-dr-node/values.yaml
index b5e459b..1b992af 100644
--- a/kubernetes/dmaap/components/dmaap-dr-node/values.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-node/values.yaml
@@ -17,14 +17,12 @@
 #################################################################
 global:
   loggingDirectory: /var/log/onap/datarouter
-  busyBoxImage: busybox:1.30
-  busyBoxRepository: docker.io
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/dmaap/datarouter-node:2.1.2
+image: onap/dmaap/datarouter-node:2.1.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -58,15 +56,36 @@
   mountPath: /dockerdata-nfs
 
   spoolMountSubPath: data-router/dr-node/spool-data
-  spoolSize: 1Gi
+  spoolSize: 2Gi
   spoolPath: /opt/app/datartr/spool
 
   eventLogsMountSubPath: data-router/dr-node/event-logs
-  eventLogSize: 1Gi
+  eventLogSize: 2Gi
   eventLogsPath: /opt/app/datartr/logs
 
+  aafCredsMountSubPath: data-router/dr-node/aaf-props
+  aafCredsSize: 10M
+  aafCredsPath: /opt/app/osaaf/local
+
+#AAF local config
+aafConfig:
+  aafDeployFqi: dmaap-dr@dmaap-dr.onap.org
+  aafDeployPass: demo123456!
+  fqdn: dmaap-dr-node
+  fqi: dmaap-dr-node@dmaap-dr.onap.org
+  publicFqdn: dmaap-dr.onap.org
+  cadiLatitude: 0.0
+  cadiLongitude: 0.0
+
+
 ingress:
   enabled: false
+  service:
+    - baseaddr: "dmaapdrnode"
+      name: "dmaap-dr-node"
+      port: 8443
+  config:
+    ssl: "redirect"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/drProvCadi.properties b/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/drProvCadi.properties
deleted file mode 100644
index 79abe22..0000000
--- a/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/drProvCadi.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-cadi_x509_issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_9, OU=OSAAF, O=ONAP, C=US
-cadi_keyfile=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.keyfile
-cadi_keystore=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.jks
-cadi_keystore_password=FZNkU,B%NJzcT1v7;^v]M#ZX
-cadi_key_password=FZNkU,B%NJzcT1v7;^v]M#ZX
-cadi_alias=dmaap-dr-prov@dmaap-dr.onap.org
-cadi_truststore=/opt/app/datartr/aaf_certs/org.onap.dmaap-dr.trust.jks
-cadi_truststore_password=+mzf@J.D^;3!![*Xr.z$c#?b
-
-aaf_env=DEV
-aaf_locate_url=https://aaf-locate:8095
-aaf_oauth2_introspect_url=https://AAF_LOCATE_URL/AAF_NS.introspect:2.1/introspect
-aaf_oauth2_token_url=https://AAF_LOCATE_URL/AAF_NS.token:2.1/token
-aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1
-cadi_protocols=TLSv1.1,TLSv1.2
-cm_url=https://AAF_LOCATE_URL/AAF_NS.cm:2.1
-fs_url=https://AAF_LOCATE_URL/AAF_NS.fs.2.1
-gui_url=https://AAF_LOCATE_URL/AAF_NS.gui.2.1
-
-cadi_latitude=53.423
-cadi_longitude=7.940
-
-cadi_loglevel=INFO
\ No newline at end of file
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/provserver.properties b/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/provserver.properties
index 210fb7c..c7714d3 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/provserver.properties
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/resources/config/provserver.properties
@@ -27,12 +27,8 @@
 org.onap.dmaap.datarouter.provserver.https.port          = {{.Values.config.dmaapDrProv.internalPort2}}
 org.onap.dmaap.datarouter.provserver.https.relaxation    = true
 
-org.onap.dmaap.datarouter.provserver.keymanager.password = FZNkU,B%NJzcT1v7;^v]M#ZX
-org.onap.dmaap.datarouter.provserver.keystore.type       = jks
-org.onap.dmaap.datarouter.provserver.keystore.path       = /opt/app/datartr/aaf_certs/org.onap.dmaap-dr.jks
-org.onap.dmaap.datarouter.provserver.keystore.password   = FZNkU,B%NJzcT1v7;^v]M#ZX
-org.onap.dmaap.datarouter.provserver.truststore.path     = /opt/app/datartr/aaf_certs/org.onap.dmaap-dr.trust.jks
-org.onap.dmaap.datarouter.provserver.truststore.password = +mzf@J.D^;3!![*Xr.z$c#?b
+org.onap.dmaap.datarouter.provserver.aafprops.path       = /opt/app/osaaf/local/org.onap.dmaap-dr.props
+
 org.onap.dmaap.datarouter.provserver.accesslog.dir       = /opt/app/datartr/logs
 org.onap.dmaap.datarouter.provserver.spooldir            = /opt/app/datartr/spool
 org.onap.dmaap.datarouter.provserver.dbscripts           = /opt/app/datartr/etc/misc
@@ -61,6 +57,3 @@
 org.onap.dmaap.datarouter.provserver.aaf.action.publish   = publish
 org.onap.dmaap.datarouter.provserver.aaf.action.subscribe = subscribe
 
-# AAF URL to connect to AAF server
-org.onap.dmaap.datarouter.provserver.cadi.aaf.url = https://aaf-locate:8095
-
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
index 98ad9a3..a1d148d 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
@@ -31,20 +31,59 @@
     spec:
       hostname: {{ .Values.global.dmaapDrProvName }}
       initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - {{ .Values.config.dmaapDrDb.mariadbContName }}
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-readiness
+        - name: {{ include "common.name" . }}-readiness
+          image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command:
+          - /root/ready.py
+          args:
+          - --container-name
+          - {{ .Values.config.dmaapDrDb.mariadbContName }}
+          env:
+          - name: NAMESPACE
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: metadata.namespace
+        {{- if .Values.global.aafEnabled }}
+        - name: {{ include "common.name" . }}-dr-prov-aaf-config
+          image: "{{ include "common.repository" . }}/{{ .Values.global.aafAgentImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command: ["bash","-c","exec /opt/app/aaf_config/bin/agent.sh"]
+          volumeMounts:
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-config-vol
+          env:
+            - name: APP_FQI
+              value: "{{ .Values.aafConfig.fqi }}"
+            - name: aaf_locate_url
+              value: "https://aaf-locate.{{ .Release.Namespace }}:8095"
+            - name: aaf_locator_container
+              value: "{{ .Values.global.aafLocatorContainer }}"
+            - name: aaf_locator_container_ns
+              value: "{{ .Release.Namespace }}"
+            - name: aaf_locator_fqdn
+              value: "{{ .Values.aafConfig.fqdn }}"
+            - name: aaf_locator_public_fqdn
+              value: "{{.Values.aafConfig.publicFqdn}}"
+            - name: aaf_locator_app_ns
+              value: "{{ .Values.global.aafAppNs }}"
+            - name: DEPLOY_FQI
+              value: "{{ .Values.aafConfig.aafDeployFqi }}"
+            - name: DEPLOY_PASSWORD
+              value: "{{ .Values.aafConfig.aafDeployPass }}"
+            - name: cadi_longitude
+              value: "{{ .Values.aafConfig.cadiLongitude }}"
+            - name: cadi_latitude
+              value: "{{ .Values.aafConfig.cadiLatitude }}"
+        - name: {{ include "common.name" . }}-permission-fixer
+          image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-config-vol
+          command: ["chown","-Rf","1000:1001", "/opt/app/"]
+        {{ end }}
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
@@ -64,22 +103,23 @@
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           volumeMounts:
+          {{- if .Values.global.aafEnabled }}
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-config-vol
+          {{- end }}
           - mountPath: /etc/localtime
             name: localtime
             readOnly: false
           - mountPath: /opt/app/datartr/etc/provserver.properties
             name: {{ include "common.fullname" . }}-config
             subPath: provserver.properties
-          - mountPath: /opt/app/datartr/etc/drProvCadi.properties
-            name: {{ include "common.fullname" . }}-config
-            subPath: drProvCadi.properties
           - mountPath: /opt/app/datartr/etc/logback.xml
             name: {{ include "common.fullname" . }}-log-conf
             subPath: logback.xml
           - mountPath: {{ .Values.global.loggingDirectory }}
             name: {{ include "common.fullname" . }}-logs
           resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
         {{- if .Values.nodeSelector }}
         nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 10 }}
@@ -87,8 +127,8 @@
         {{- if .Values.affinity }}
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-        # Filebeat sidecar container
+        {{- end -}}
+      # Filebeat sidecar container
         - name: {{ include "common.name" . }}-filebeat-onap
           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
@@ -110,8 +150,6 @@
           items:
           - key: provserver.properties
             path: provserver.properties
-          - key: drProvCadi.properties
-            path: drProvCadi.properties
       - name: {{ include "common.fullname" . }}-log-conf
         configMap:
           name: {{ include "common.fullname" . }}-log
@@ -122,5 +160,10 @@
         emptyDir: {}
       - name:  {{ include "common.fullname" . }}-logs
         emptyDir: {}
+      {{- if .Values.global.aafEnabled }}
+      - name: {{ include "common.fullname" . }}-aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ include "common.fullname" . }}-aaf-props
+      {{ end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/ingress.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/post-install-job.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/post-install-job.yaml
index 7b71bb0..acf87b8 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/templates/post-install-job.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/post-install-job.yaml
@@ -39,12 +39,10 @@
     {{ end }}
         - name: REQUESTID
           value: "{{.Chart.Name}}-post-install"
-
         volumeMounts:
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
-
 # NOTE: on the following several configMaps, careful to include / at end
 #       since there may be more than one file in each mountPath
 # NOTE: the basename of the subdirectory is important - it matches the DBCL API URI
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml
new file mode 100644
index 0000000..b82e676
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml
@@ -0,0 +1,41 @@
+{{/*
+  # ============LICENSE_START=======================================================
+  #  Copyright (C) 2019 Nordix Foundation.
+  # ================================================================================
+  # Licensed under the Apache License, Version 2.0 (the "License");
+  # you may not use this file except in compliance with the License.
+  # You may obtain a copy of the License at
+  #
+  #      http://www.apache.org/licenses/LICENSE-2.0
+  #
+  # Unless required by applicable law or agreed to in writing, software
+  # distributed under the License is distributed on an "AS IS" BASIS,
+  # 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.
+  #
+  # SPDX-License-Identifier: Apache-2.0
+  # ============LICENSE_END=========================================================
+*/}}
+{{- if .Values.global.aafEnabled }}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-aaf-props
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}-aaf-props
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}-aaf-props
+spec:
+  capacity:
+    storage: {{ .Values.persistence.aafCredsSize}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-aaf-props-stcl"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.aafCredsMountSubPath }}
+{{ end -}}
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml
new file mode 100644
index 0000000..6ff9e6d
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml
@@ -0,0 +1,45 @@
+{{/*
+  # ============LICENSE_START=======================================================
+  #  Copyright (C) 2019 Nordix Foundation.
+  # ================================================================================
+  # Licensed under the Apache License, Version 2.0 (the "License");
+  # you may not use this file except in compliance with the License.
+  # You may obtain a copy of the License at
+  #
+  #      http://www.apache.org/licenses/LICENSE-2.0
+  #
+  # Unless required by applicable law or agreed to in writing, software
+  # distributed under the License is distributed on an "AS IS" BASIS,
+  # 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.
+  #
+  # SPDX-License-Identifier: Apache-2.0
+  # ============LICENSE_END=========================================================
+*/}}
+{{- if .Values.global.aafEnabled }}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-aaf-props
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}-aaf-props
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-aaf-props-stcl"
+  resources:
+    requests:
+      storage: {{ .Values.persistence.aafCredsSize }}
+{{ end -}}
\ No newline at end of file
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/service.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/service.yaml
index 7a94fdb..734ab72 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/templates/service.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/service.yaml
@@ -38,7 +38,7 @@
 spec:
   type: {{ .Values.config.dmaapDrProv.servicetype }}
   ports:
-    {{if eq .Values.config.dmaapDrProv.servicetype "NodePort" -}}
+    {{- if eq .Values.config.dmaapDrProv.servicetype "NodePort" -}}
     {{- if .Values.global.allow_http }}
     - port: {{ .Values.global.dmaapDrProvExtPort }}
       targetPort: {{ .Values.config.dmaapDrProv.internalPort }}
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/values.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/values.yaml
index 195bcb4..80b15c7 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/values.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/values.yaml
@@ -23,7 +23,7 @@
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/dmaap/datarouter-prov:2.1.2
+image: onap/dmaap/datarouter-prov:2.1.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -52,30 +52,22 @@
 
 ## Persist data to a persitent volume
 persistence:
-  enabled: false
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  mountPath: /dockerdata-nfs
+
+  aafCredsMountSubPath: data-router/dr-prov/aaf-props
+  aafCredsSize: 10M
+  aafCredsPath: /opt/app/osaaf/local
 
 ingress:
   enabled: false
-
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      cpu: 2000m
-      memory: 4Gi
-    requests:
-      cpu: 500m
-      memory: 1Gi
-  large:
-    limits:
-      cpu: 4000m
-      memory: 8Gi
-    requests:
-      cpu: 1000m
-      memory: 2Gi
-  unlimited: {}
+  service:
+    - baseaddr: "dmaapdrprov"
+      name: "dmaap-dr-prov"
+      port: 8443
+  config:
+    ssl: "redirect"
 
 config:
   # dr provisioning server configuration
@@ -111,3 +103,33 @@
     size: 1Gi
     mountSubPath: data-router/dr-db-data
   disableNfsProvisioner: true
+
+#AAF local config
+aafConfig:
+  aafDeployFqi: dmaap-dr@dmaap-dr.onap.org
+  aafDeployPass: demo123456!
+  fqdn: dmaap-dr-prov
+  fqi: dmaap-dr-prov@dmaap-dr.onap.org
+  publicFqdn: dmaap-dr.onap.org
+  cadiLatitude: 0.0
+  cadiLongitude: 0.0
+
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 2000m
+      memory: 4Gi
+    requests:
+      cpu: 500m
+      memory: 1Gi
+  large:
+    limits:
+      cpu: 4000m
+      memory: 8Gi
+    requests:
+      cpu: 1000m
+      memory: 2Gi
+  unlimited: {}
\ No newline at end of file
diff --git a/kubernetes/dmaap/components/message-router/templates/statefulset.yaml b/kubernetes/dmaap/components/message-router/templates/statefulset.yaml
index f6d6721..21524ef 100644
--- a/kubernetes/dmaap/components/message-router/templates/statefulset.yaml
+++ b/kubernetes/dmaap/components/message-router/templates/statefulset.yaml
@@ -70,7 +70,7 @@
             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
           env:
           - name: enableCadi
-            value: "true"
+            value: "{{ .Values.global.aafEnabled }}"
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
@@ -88,7 +88,7 @@
             subPath: mykey
             name: mykey
           resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       volumes:
         - name: localtime
           hostPath:
diff --git a/kubernetes/dmaap/values.yaml b/kubernetes/dmaap/values.yaml
index 86c2fe9..4c0d8d5 100644
--- a/kubernetes/dmaap/values.yaml
+++ b/kubernetes/dmaap/values.yaml
@@ -25,6 +25,8 @@
   loggingImage: beats/filebeat:5.5.0
   clientImage: onap/dmaap/dbc-client:1.0.9
   repository: nexus3.onap.org:10001
+  busyBoxImage: busybox:1.30
+  busyBoxRepository: docker.io
 
 #Global DMaaP app config
   allow_http: true
@@ -38,6 +40,13 @@
   dmaapDrProvExtPort2: 443
   dmaapDrProvExtPort: 80
 
+  #AAF global config overrides
+  aafEnabled: true
+  aafAgentImage: onap/aaf/aaf_agent:2.1.15
+  aafAppNs: org.osaaf.aaf
+  aafLocatorContainer: oom
+
+
 
 #Component overrides
 message-router:
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/ingress.yaml b/kubernetes/log/charts/log-elasticsearch/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/log/charts/log-elasticsearch/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml b/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml
index fd21cdf..fdea287 100644
--- a/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml
+++ b/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml
@@ -17,7 +17,7 @@
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -31,6 +31,7 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml b/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml
index abab145..d2eddc2 100644
--- a/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml
+++ b/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml
@@ -29,11 +29,9 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
diff --git a/kubernetes/log/charts/log-elasticsearch/values.yaml b/kubernetes/log/charts/log-elasticsearch/values.yaml
index 9c3525a..d43a66a 100644
--- a/kubernetes/log/charts/log-elasticsearch/values.yaml
+++ b/kubernetes/log/charts/log-elasticsearch/values.yaml
@@ -75,7 +75,7 @@
   ## If undefined (the default) or set to null, no storageClassName spec is
   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
   ##   GKE, AWS & OpenStack)
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 1Gi
   mountPath: /dockerdata-nfs
   mountSubPath: log/elasticsearch/data
@@ -94,7 +94,12 @@
 
 ingress:
   enabled: false
-
+  service:
+    - baseaddr: "loges"
+      name: "log-es"
+      port: 9200
+  config:
+    ssl: "none"
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
@@ -113,4 +118,4 @@
     requests:
       cpu: 1
       memory: 4Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
diff --git a/kubernetes/log/charts/log-kibana/templates/ingress.yaml b/kubernetes/log/charts/log-kibana/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/log/charts/log-kibana/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/log/charts/log-kibana/values.yaml b/kubernetes/log/charts/log-kibana/values.yaml
index 5132768..d69ab8e 100644
--- a/kubernetes/log/charts/log-kibana/values.yaml
+++ b/kubernetes/log/charts/log-kibana/values.yaml
@@ -77,8 +77,15 @@
   externalPort: 5601
   internalPort: 5601
   nodePort: 53
+
 ingress:
   enabled: false
+  service:
+    - baseaddr: "logkibana"
+      name: "log-kibana"
+      port: 5601
+  config:
+    ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/log/charts/log-logstash/templates/ingress.yaml b/kubernetes/log/charts/log-logstash/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/log/charts/log-logstash/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/log/charts/log-logstash/values.yaml b/kubernetes/log/charts/log-logstash/values.yaml
index 246b812..a6e6c96 100644
--- a/kubernetes/log/charts/log-logstash/values.yaml
+++ b/kubernetes/log/charts/log-logstash/values.yaml
@@ -74,6 +74,15 @@
   internalPort2: 9600
 ingress:
   enabled: false
+  service:
+    - baseaddr: "logls"
+      name: "log-ls"
+      port: 5044
+    - baseaddr: "loglshttp"
+      name: "log-ls"
+      port: 9600
+  config:
+    ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/pv.yaml b/kubernetes/modeling/charts/modeling-etsicatalog/templates/pv.yaml
index d1e1b04..68696fb 100644
--- a/kubernetes/modeling/charts/modeling-etsicatalog/templates/pv.yaml
+++ b/kubernetes/modeling/charts/modeling-etsicatalog/templates/pv.yaml
@@ -14,6 +14,7 @@
 # limitations under the License.
 */}}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -31,6 +32,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/pvc.yaml b/kubernetes/modeling/charts/modeling-etsicatalog/templates/pvc.yaml
index 74ba690..d3d5d9e 100644
--- a/kubernetes/modeling/charts/modeling-etsicatalog/templates/pvc.yaml
+++ b/kubernetes/modeling/charts/modeling-etsicatalog/templates/pvc.yaml
@@ -29,19 +29,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/msb/charts/msb-consul/templates/ingress.yaml b/kubernetes/msb/charts/msb-consul/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/msb/charts/msb-consul/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/msb/charts/msb-consul/values.yaml b/kubernetes/msb/charts/msb-consul/values.yaml
index 3cb5c74..d116497 100644
--- a/kubernetes/msb/charts/msb-consul/values.yaml
+++ b/kubernetes/msb/charts/msb-consul/values.yaml
@@ -49,7 +49,7 @@
   periodSeconds: 10
 
 service:
-  type: NodePort
+  type: ClusterIP
   name: msb-consul
   externalPort: 8500
   internalPort: 8500
@@ -57,6 +57,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "msbconsul"
+      name: "msb-consul"
+      port: 8500
+  config:
+    ssl: "none"
 
 flavor: small
 
diff --git a/kubernetes/msb/charts/msb-discovery/templates/ingress.yaml b/kubernetes/msb/charts/msb-discovery/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/msb/charts/msb-discovery/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/msb/charts/msb-discovery/values.yaml b/kubernetes/msb/charts/msb-discovery/values.yaml
index b471278..abb1277 100644
--- a/kubernetes/msb/charts/msb-discovery/values.yaml
+++ b/kubernetes/msb/charts/msb-discovery/values.yaml
@@ -51,7 +51,7 @@
   periodSeconds: 10
 
 service:
-  type: NodePort
+  type: ClusterIP
   name: msb-discovery
   externalPort: 10081
   internalPort: 10081
@@ -59,6 +59,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "msbdiscovery"
+      name: "msb-discovery"
+      port: 10081
+  config:
+    ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/msb/charts/msb-eag/templates/ingress.yaml b/kubernetes/msb/charts/msb-eag/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/msb/charts/msb-eag/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/msb/charts/msb-eag/templates/service.yaml b/kubernetes/msb/charts/msb-eag/templates/service.yaml
index 2055b21..bc5e661 100644
--- a/kubernetes/msb/charts/msb-eag/templates/service.yaml
+++ b/kubernetes/msb/charts/msb-eag/templates/service.yaml
@@ -26,9 +26,6 @@
   type: {{ .Values.service.type }}
   ports:
     {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: http-{{ .Values.service.name }}
     - port: {{ .Values.service.externalPortHttps }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePortHttps }}
       name: https-{{ .Values.service.name }}
diff --git a/kubernetes/msb/charts/msb-eag/values.yaml b/kubernetes/msb/charts/msb-eag/values.yaml
index e25fa28..535c135 100644
--- a/kubernetes/msb/charts/msb-eag/values.yaml
+++ b/kubernetes/msb/charts/msb-eag/values.yaml
@@ -56,13 +56,18 @@
   name: msb-eag
   externalPort: 80
   internalPort: 80
-  nodePort: 82
   externalPortHttps: 443
   internalPortHttps: 443
   nodePortHttps: 84
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "msbeag"
+      name: "msb-eag"
+      port: 443
+  config:
+    ssl: "redirect"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/msb/charts/msb-iag/templates/ingress.yaml b/kubernetes/msb/charts/msb-iag/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/msb/charts/msb-iag/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/msb/charts/msb-iag/templates/service.yaml b/kubernetes/msb/charts/msb-iag/templates/service.yaml
index 2055b21..bc5e661 100644
--- a/kubernetes/msb/charts/msb-iag/templates/service.yaml
+++ b/kubernetes/msb/charts/msb-iag/templates/service.yaml
@@ -26,9 +26,6 @@
   type: {{ .Values.service.type }}
   ports:
     {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: http-{{ .Values.service.name }}
     - port: {{ .Values.service.externalPortHttps }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePortHttps }}
       name: https-{{ .Values.service.name }}
diff --git a/kubernetes/msb/charts/msb-iag/values.yaml b/kubernetes/msb/charts/msb-iag/values.yaml
index 4aaeaea..6d1f7ac 100644
--- a/kubernetes/msb/charts/msb-iag/values.yaml
+++ b/kubernetes/msb/charts/msb-iag/values.yaml
@@ -63,6 +63,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "msbiag"
+      name: "msb-iag"
+      port: 443
+  config:
+    ssl: "redirect"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/multicloud/charts/multicloud-k8s/values.yaml b/kubernetes/multicloud/charts/multicloud-k8s/values.yaml
index e7117d7..3c7b1d3 100644
--- a/kubernetes/multicloud/charts/multicloud-k8s/values.yaml
+++ b/kubernetes/multicloud/charts/multicloud-k8s/values.yaml
@@ -26,8 +26,8 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: registry.hub.docker.com
-image: onap/multicloud-k8s:0.5.0
+repository: nexus3.onap.org:10001
+image: onap/multicloud/k8s:0.5.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/.helmignore b/kubernetes/multicloud/charts/multicloud-lenovo/.helmignore
deleted file mode 100644
index f0c1319..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/.helmignore
+++ /dev/null
@@ -1,21 +0,0 @@
-# Patterns to ignore when building packages.
-# This supports shell glob matching, relative path matching, and
-# negation (prefixed with !). Only one pattern per line.
-.DS_Store
-# Common VCS dirs
-.git/
-.gitignore
-.bzr/
-.bzrignore
-.hg/
-.hgignore
-.svn/
-# Common backup files
-*.swp
-*.bak
-*.tmp
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/Chart.yaml b/kubernetes/multicloud/charts/multicloud-lenovo/Chart.yaml
deleted file mode 100644
index fc682be..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/Chart.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (c) 2019 Lenovo
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-description: ONAP multicloud OpenStack Lenovo Plugin
-name: multicloud-lenovo
-version: 5.0.0
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/resources/config/log/log.yml b/kubernetes/multicloud/charts/multicloud-lenovo/resources/config/log/log.yml
deleted file mode 100644
index 08a9348..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/resources/config/log/log.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2019 Lenovo Intellectual Property.  All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-version: 1
-disable_existing_loggers: False
-
-loggers:
-    thinkcloud:
-      handlers: [thinkcloud_handler]
-      level: "DEBUG"
-      propagate: False
-    newton_base:
-      handlers: [thinkcloud_handler]
-      level: "DEBUG"
-      propagate: False
-    common:
-      handlers: [thinkcloud_handler]
-      level: "DEBUG"
-      propagate: False
-
-handlers:
-    thinkcloud_handler:
-        level: "DEBUG"
-        class: "logging.handlers.RotatingFileHandler"
-        filename: "/var/log/onap/multicloud/openstack/lenovo/thinkcloud.log"
-        formatter: "mdcFormat"
-        maxBytes: 1024*1024*50
-        backupCount: 10
-
-formatters:
-    standard:
-        format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s"
-    mdcFormat:
-        format: "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t"
-        mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}"
-        datefmt: "%Y-%m-%d %H:%M:%S"
-        (): onaplogging.mdcformatter.MDCFormatter
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-lenovo/templates/NOTES.txt
deleted file mode 100644
index 7df0413..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/templates/NOTES.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2019 Lenovo
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-
-1. Get the application URL by running these commands:
-{{- if .Values.ingress.enabled }}
-{{- range .Values.ingress.hosts }}
-  http://{{ . }}
-{{- end }}
-{{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
-  echo http://$NODE_IP:$NODE_PORT
-{{- else if contains "LoadBalancer" .Values.service.type }}
-     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
-           You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
-  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
-  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
-{{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
-  echo "Visit http://127.0.0.1:8080 to use your application"
-  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
-{{- end }}
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-lenovo/templates/configmap.yaml
deleted file mode 100644
index f6eb87e..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/templates/configmap.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-{{/*
-# Copyright (c) 2019 Lenovo
-# #
-# # Licensed under the Apache License, Version 2.0 (the "License");
-# # you may not use this file except in compliance with the License.
-# # You may obtain a copy of the License at
-# #
-# #       http://www.apache.org/licenses/LICENSE-2.0
-# #
-# # Unless required by applicable law or agreed to in writing, software
-# # distributed under the License is distributed on an "AS IS" BASIS,
-# # 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: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-log-configmap
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/templates/deployment.yaml b/kubernetes/multicloud/charts/multicloud-lenovo/templates/deployment.yaml
deleted file mode 100644
index 3be4d7c..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/templates/deployment.yaml
+++ /dev/null
@@ -1,110 +0,0 @@
-{{/*
-# Copyright (c) 2019 Lenovo
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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
-kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ .Release.Name }}
-      name: {{ include "common.name" . }}
-      annotations:
-        sidecar.istio.io/inject: "{{.Values.istioSidecar}}"
-    spec:
-     containers:
-     - env:
-       - name: MSB_ADDR
-         value: "{{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}"
-       - name: MSB_PORT
-         value: "{{ .Values.config.msbPort }}"
-       - name: AAI_ADDR
-         value: aai.{{ include "common.namespace" . }}
-       - name: AAI_PORT
-         value: "{{ .Values.config.aai.port }}"
-       - name: AAI_SCHEMA_VERSION
-         value: "{{ .Values.config.aai.schemaVersion }}"
-       - name: AAI_USERNAME
-         value: "{{ .Values.config.aai.username }}"
-       - name: AAI_PASSWORD
-         value: "{{ .Values.config.aai.password }}"
-       name: {{ include "common.name" . }}
-       volumeMounts:
-       - mountPath: /var/log/onap
-         name: lenovo-log
-       - mountPath: /opt/lenovo/thinkcloud/pub/config/log.yml
-         name: lenovo-logconfig
-         subPath: log.yml
-       resources:
-{{ include "common.resources" . | indent 12 }}
-       image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-       ports:
-       - containerPort: {{ .Values.service.internalPort }}
-       # disable liveness probe when breakpoints set in debugger
-       # so K8s doesn't restart unresponsive container
-       {{ if .Values.liveness.enabled }}
-       livenessProbe:
-         httpGet:
-           path: /api/multicloud-thinkcloud/v1/swagger.json
-           port: {{ .Values.service.internalPort }}
-           scheme: HTTP
-         initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-         periodSeconds: {{ .Values.liveness.periodSeconds }}
-         timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
-         successThreshold: {{ .Values.liveness.successThreshold }}
-         failureThreshold: {{ .Values.liveness.failureThreshold }}
-       {{ end }}
-     # side car containers
-     - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
-       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: lenovo-log
-       - mountPath: /usr/share/filebeat/data
-         name: lenovo-data-filebeat
-
-     volumes:
-     - name: lenovo-log
-       emptyDir: {}
-     - name: lenovo-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
-     - name: lenovo-logconfig
-       configMap:
-         name: {{ include "common.fullname" . }}-log-configmap
-     imagePullSecrets:
-     - name: "{{ include "common.namespace" . }}-docker-registry-key"
-     restartPolicy: Always
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/templates/service.yaml b/kubernetes/multicloud/charts/multicloud-lenovo/templates/service.yaml
deleted file mode 100644
index 43f735a..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/templates/service.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-{{/*
-# Copyright (c) 2019 Lenovo
-# #
-# # Licensed under the Apache License, Version 2.0 (the "License");
-# # you may not use this file except in compliance with the License.
-# # You may obtain a copy of the License at
-# #
-# #       http://www.apache.org/licenses/LICENSE-2.0
-# #
-# # Unless required by applicable law or agreed to in writing, software
-# # distributed under the License is distributed on an "AS IS" BASIS,
-# # 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: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-    {
-      "serviceName": "multicloud-thinkcloud",
-      "version": "v0",
-      "url": "/api/multicloud-thinkcloud/v0",
-      "protocol": "REST",
-      "port": "{{ .Values.service.externalPort }}",
-      "visualRange": "1"
-    },
-    {
-      "serviceName": "multicloud-thinkcloud",
-      "version": "v1",
-      "url": "/api/multicloud-thinkcloud/v1",
-      "protocol": "REST",
-      "port": "{{ .Values.service.externalPort }}",
-      "visualRange": "1"
-    }
-    ]'
-
-spec:
-  ports:
-  {{ if eq .Values.service.type "NodePort" -}}
-  - port: {{ .Values.service.externalPort }}
-    nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-    name: {{ .Values.service.portName }}
-  {{- else -}}
-  - port: {{ .Values.service.externalPort }}
-    targetPort: {{ .Values.service.internalPort }}
-    name: {{ .Values.service.portName }}
-  {{- end }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
diff --git a/kubernetes/multicloud/charts/multicloud-lenovo/values.yaml b/kubernetes/multicloud/charts/multicloud-lenovo/values.yaml
deleted file mode 100644
index 953f355..0000000
--- a/kubernetes/multicloud/charts/multicloud-lenovo/values.yaml
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright (c) 2019 Lenovo
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 304
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-# application image
-repository: nexus3.onap.org:10001
-image: onap/multicloud/openstack-lenovo:1.3.4
-pullPolicy: Always
-
-#Istio sidecar injection policy
-istioSidecar: true
-
-# application configuration
-config:
-  msbgateway: msb-iag
-  msbPort: 80
-  aai:
-    port: 8443
-    schemaVersion: v13
-    username: AAI
-    password: AAI
-
-service:
-  type: ClusterIP
-  name: multicloud-thinkcloud
-  portName: multicloud-thinkcloud
-  externalPort: 9010
-  internalPort: 9010
-  nodePort: 86
-
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 30
-  periodSeconds: 10
-  timeoutSeconds: 10
-  successThreshold: 1
-  failureThreshold: 5
-  enabled: true
-
-ingress:
-  enabled: false
-
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      cpu: 1
-      memory: 4Gi
-    requests:
-      cpu: 10m
-      memory: 1Gi
-  large:
-    limits:
-      cpu: 2
-      memory: 8Gi
-    requests:
-      cpu: 20m
-      memory: 2Gi
-  unlimited: {}
diff --git a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pv.yaml b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pv.yaml
index 62203fb..db801e0 100644
--- a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pv.yaml
+++ b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pv.yaml
@@ -15,8 +15,8 @@
 */}}
 
 {{- if .Values.global.alertmanager.enabled -}}
-
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -34,8 +34,9 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pvc.yaml b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pvc.yaml
index 8ea5fac..f4e237c 100644
--- a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pvc.yaml
+++ b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-alertmanager/templates/pvc.yaml
@@ -32,21 +32,12 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
 
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pv.yaml b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pv.yaml
index aa3a956..6cc1b93 100644
--- a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pv.yaml
+++ b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pv.yaml
@@ -15,8 +15,8 @@
 */}}
 
 {{- if .Values.global.grafana.enabled -}}
-
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,9 +33,10 @@
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pvc.yaml b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pvc.yaml
index 2900395..e629fc2 100644
--- a/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pvc.yaml
+++ b/kubernetes/multicloud/charts/multicloud-prometheus/charts/prometheus-grafana/templates/pvc.yaml
@@ -32,21 +32,12 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
 
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-prometheus/templates/pv.yaml b/kubernetes/multicloud/charts/multicloud-prometheus/templates/pv.yaml
index 961b6bb..6a75441 100644
--- a/kubernetes/multicloud/charts/multicloud-prometheus/templates/pv.yaml
+++ b/kubernetes/multicloud/charts/multicloud-prometheus/templates/pv.yaml
@@ -15,8 +15,8 @@
 */}}
 
 {{- if .Values.global.prometheus.enabled -}}
-
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,9 +33,10 @@
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
-
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-prometheus/templates/pvc.yaml b/kubernetes/multicloud/charts/multicloud-prometheus/templates/pvc.yaml
index 73fcc30..4cc525a 100644
--- a/kubernetes/multicloud/charts/multicloud-prometheus/templates/pvc.yaml
+++ b/kubernetes/multicloud/charts/multicloud-prometheus/templates/pvc.yaml
@@ -32,21 +32,12 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
 
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml
index e2e326d..d7464b1 100644
--- a/kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml
+++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml
@@ -15,6 +15,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -32,6 +33,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml
index 5bc04cd..d138732 100644
--- a/kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml
+++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml
@@ -30,11 +30,9 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
diff --git a/kubernetes/multicloud/values.yaml b/kubernetes/multicloud/values.yaml
index 9fd0789..645b826 100644
--- a/kubernetes/multicloud/values.yaml
+++ b/kubernetes/multicloud/values.yaml
@@ -23,6 +23,7 @@
   artifactImage: onap/multicloud/framework-artifactbroker:1.4.2
   prometheus:
     enabled: false
+  persistence: {}
 
 #################################################################
 # Application configuration defaults.
diff --git a/kubernetes/nbi/charts/mariadb/Chart.yaml b/kubernetes/nbi/charts/mariadb/Chart.yaml
deleted file mode 100644
index 06ac100..0000000
--- a/kubernetes/nbi/charts/mariadb/Chart.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada, Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-description: ONAP NBI MariaDB Service
-name: mariadb
-version: 5.0.0
diff --git a/kubernetes/nbi/charts/mariadb/requirements.yaml b/kubernetes/nbi/charts/mariadb/requirements.yaml
deleted file mode 100644
index 56097c0..0000000
--- a/kubernetes/nbi/charts/mariadb/requirements.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018  Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-dependencies:
-  - name: common
-    version: ~5.x-0
-    # local reference to common chart, as it is
-    # a part of this chart's package and will not
-    # be published independently to a repo (at this point)
-    repository: '@local'
diff --git a/kubernetes/nbi/charts/mariadb/templates/NOTES.txt b/kubernetes/nbi/charts/mariadb/templates/NOTES.txt
deleted file mode 100644
index 4d3c96f..0000000
--- a/kubernetes/nbi/charts/mariadb/templates/NOTES.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada , Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-1. Get the application URL by running these commands:
-{{- if .Values.ingress.enabled }}
-{{- range .Values.ingress.hosts }}
-  http://{{ . }}
-{{- end }}
-{{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
-  echo http://$NODE_IP:$NODE_PORT
-{{- else if contains "LoadBalancer" .Values.service.type }}
-     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
-           You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
-  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
-  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
-{{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
-  echo "Visit http://127.0.0.1:8080 to use your application"
-  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
-{{- end }}
diff --git a/kubernetes/nbi/charts/mariadb/templates/deployment.yaml b/kubernetes/nbi/charts/mariadb/templates/deployment.yaml
deleted file mode 100644
index b432d0e..0000000
--- a/kubernetes/nbi/charts/mariadb/templates/deployment.yaml
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada, Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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
-kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
-          args:
-          - --lower-case-table-names=1
-          - --wait_timeout=28800
-          livenessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
-          readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
-          - name: MYSQL_DATABASE
-            value: "{{ .Values.config.db.database }}"
-          - name: MYSQL_USER
-            value: "{{ .Values.config.db.user }}"
-          - name: MYSQL_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}-secret
-                key: db-user-password
-          - name: MYSQL_ROOT_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}-secret
-                key: db-root-password
-          volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /var/lib/mysql
-            name: mariadb-data
-          resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: mariadb-data
-        {{- if .Values.persistence.enabled }}
-          persistentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}
-        {{- else }}
-          emptyDir: {}
-        {{- end }}
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/nbi/charts/mariadb/templates/pv.yaml b/kubernetes/nbi/charts/mariadb/templates/pv.yaml
deleted file mode 100644
index 4645f47..0000000
--- a/kubernetes/nbi/charts/mariadb/templates/pv.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018  Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    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 }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
diff --git a/kubernetes/nbi/charts/mariadb/templates/pvc.yaml b/kubernetes/nbi/charts/mariadb/templates/pvc.yaml
deleted file mode 100644
index 19ea299..0000000
--- a/kubernetes/nbi/charts/mariadb/templates/pvc.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018  Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/nbi/charts/mariadb/templates/service.yaml b/kubernetes/nbi/charts/mariadb/templates/service.yaml
deleted file mode 100644
index 99a7128..0000000
--- a/kubernetes/nbi/charts/mariadb/templates/service.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018  Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
-  clusterIP: None
diff --git a/kubernetes/nbi/charts/mariadb/values.yaml b/kubernetes/nbi/charts/mariadb/values.yaml
deleted file mode 100644
index 70fa143..0000000
--- a/kubernetes/nbi/charts/mariadb/values.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada, Orange
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 302
-  persistence: {}
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-# application image
-repository: nexus3.onap.org:10001
-image: mariadb:10.3.14
-pullPolicy: Always
-
-# flag to enable debugging - application support required
-debugEnabled: false
-
-# application configuration
-# Example:
-config:
-  db:
-    user: nbi_user
-    password: nbi_user
-    root_password: change_me
-    database: maria
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
-
-readiness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-  volumeReclaimPolicy: Retain
-  accessMode: ReadWriteOnce
-  size: 2Gi
-  mountPath: /dockerdata-nfs
-  mountSubPath: mariadb/data
-
-service:
-  type: ClusterIP
-  name: policydb
-  portName: policydb
-  internalPort: 3306
-
-ingress:
-  enabled: false
-
-# Resource Limit flavor
-flavor: small
-resources:
-  small:
-    limits:
-      cpu: 1
-      memory: 500Mi
-    requests:
-      cpu: 10m
-      memory: 200Mi
-  large:
-    limits:
-      cpu: 1
-      memory: 1Gi
-    requests:
-      cpu: 20m
-      memory: 400Mi
-  unlimited: {}
diff --git a/kubernetes/nbi/requirements.yaml b/kubernetes/nbi/requirements.yaml
index b440b1e..f0c4b8e 100644
--- a/kubernetes/nbi/requirements.yaml
+++ b/kubernetes/nbi/requirements.yaml
@@ -23,4 +23,11 @@
   - name: mongo
     version: ~5.x-0
     repository: '@local'
-
+  - name: mariadb-galera
+    version: ~5.x-0
+    repository: '@local'
+    condition: global.mariadbGalera.localCluster
+  - name: mariadb-init
+    version: ~5.x-0
+    repository: '@local'
+    condition: not global.mariadbGalera.localCluster
diff --git a/kubernetes/nbi/templates/deployment.yaml b/kubernetes/nbi/templates/deployment.yaml
index 889e25e..4ba28b0 100644
--- a/kubernetes/nbi/templates/deployment.yaml
+++ b/kubernetes/nbi/templates/deployment.yaml
@@ -30,7 +30,7 @@
       labels:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
-        name: {{ include "common.fullname" . }}
+      name: {{ include "common.fullname" . }}
     spec:
       containers:
         - name: {{ include "common.name" . }}
@@ -54,14 +54,14 @@
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
             - name: SPRING_DATASOURCE_URL
-              value: jdbc:mariadb://{{ .Values.mariadb.service.name }}.{{ include "common.namespace" . }}:{{.Values.mariadb.service.internalPort }}/{{ .Values.mariadb.config.db.database }}
+              value: jdbc:mariadb://{{ include "common.mariadbService" . }}:{{ include "common.mariadbPort" . }}/{{ index .Values "mariadb-galera" "config" "mysqlDatabase" }}
             - name: SPRING_DATASOURCE_USERNAME
-              value: {{ .Values.mariadb.config.db.user }}
+              value: {{ index .Values "mariadb-galera" "config" "userName" }}
             - name: SPRING_DATASOURCE_PASSWORD
               valueFrom:
                 secretKeyRef:
-                  name: {{ template "common.fullname" . }}-secret
-                  key: db-user-password
+                  name: {{ include "common.mariadbSecret" . }}
+                  key: {{ include "common.mariadbSecretParam" . }}
             - name: SPRING_DATA_MONGODB_HOST
               value: {{ .Values.mongo.service.name }}.{{ include "common.namespace" . }}
             - name: SPRING_DATA_MONGODB_PORT
@@ -77,7 +77,7 @@
             - name: NBI_URL
               value: "http://nbi.{{ include "common.namespace" . }}:8080/nbi/api/v4"
             - name: SDC_HOST
-              value: "http://sdc-be.{{ include "common.namespace" . }}:8080"
+              value: "https://sdc-be.{{ include "common.namespace" . }}:8443"
             - name: SDC_HEADER_ECOMPINSTANCEID
               value: {{ .Values.config.ecompInstanceId }}
             - name: SDC_HEADER_AUTHORIZATION
diff --git a/kubernetes/nbi/tests/deployment_test.yaml b/kubernetes/nbi/tests/deployment_test.yaml
new file mode 100644
index 0000000..7c8a1b0
--- /dev/null
+++ b/kubernetes/nbi/tests/deployment_test.yaml
@@ -0,0 +1,205 @@
+---
+suite: test deployment behavior
+templates:
+  - deployment.yaml
+tests:
+  - it: "should render with default values (global)"
+    asserts:
+      - isKind:
+          of: Deployment
+      - equal:
+          path: metadata.name
+          value: RELEASE-NAME-nbi
+      - equal:
+          path: metadata.namespace
+          value: NAMESPACE
+      - matchRegex:
+          path: metadata.labels.app
+          pattern: nbi
+      - matchRegex:
+          path: spec.template.metadata.labels.app
+          pattern: nbi
+      - equal:
+          path: spec.template.metadata.name
+          value: RELEASE-NAME-nbi
+      - equal:
+          path: spec.replicas
+          value: 1
+      - isNull:
+          path: spec.template.spec.nodeSelector
+      - isNull:
+          path: spec.template.spec.affinity
+
+  - it: "should render with default value (container)"
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].name
+          value: nbi
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: nexus3.onap.org:10001/onap/externalapi/nbi:5.0.1
+      - equal:
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: IfNotPresent
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATASOURCE_URL
+            value: jdbc:mariadb://mariadb-galera:3306/nbi
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATASOURCE_USERNAME
+            value: rene
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATASOURCE_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-nbi-config
+                key: db-user-password
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATA_MONGODB_HOST
+            value: nbi-mongohost.NAMESPACE
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATA_MONGODB_PORT
+            value: "27017"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATA_MONGODB_DATABASE
+            value: ServiceOrderDB
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ONAP_LCPCLOUDREGIONID
+            value: RegionOne
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ONAP_TENANTID
+            value: 31047205ce114b60833b23e400d6a535
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ONAP_CLOUDOWNER
+            value: CloudOwner
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: NBI_URL
+            value: http://nbi.NAMESPACE:8080/nbi/api/v4
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SDC_HOST
+            value: https://sdc-be.NAMESPACE:8443
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SDC_HEADER_ECOMPINSTANCEID
+            value: OOM
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SDC_HEADER_AUTHORIZATION
+            value: Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU=
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: AAI_HOST
+            value: https://aai.NAMESPACE:8443
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: AAI_HEADER_AUTHORIZATION
+            value: Basic QUFJOkFBSQ==
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SO_HOST
+            value: http://so.NAMESPACE:8080
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: DMAAP_HOST
+            value: http://message-router.NAMESPACE:3904
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: LOGGING_LEVEL_ORG_ONAP_NBI
+            value: INFO
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MSB_ENABLED
+            value: "true"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MSB_DISCOVERY_HOST
+            value: msb-discovery.NAMESPACE
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: MSB_DISCOVERY_PORT
+            value: "10081"
+      - equal:
+          path: spec.template.spec.containers[0].livenessProbe
+          value:
+            initialDelaySeconds: 180
+            periodSeconds: 30
+            tcpSocket:
+              port: 8080
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe
+          value:
+            initialDelaySeconds: 185
+            periodSeconds: 30
+            tcpSocket:
+              port: 8080
+      - contains:
+          path: spec.template.spec.containers[0].ports
+          content:
+            containerPort: 8080
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.cpu
+          value: 1
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.memory
+          value: 2Gi
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.cpu
+          value: 100m
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.memory
+          value: 1Gi
+  - it: "should render when deciding to use local cluster (container)"
+    set:
+      global:
+        mariadbGalera:
+          localCluster: true
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATASOURCE_URL
+            value: jdbc:mariadb://nbi-galera:3306/nbi
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATASOURCE_USERNAME
+            value: rene
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: SPRING_DATASOURCE_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: RELEASE-NAME-nbi-nbi-galera
+                key: user-password
diff --git a/kubernetes/nbi/values.yaml b/kubernetes/nbi/values.yaml
index 494cf73..30f7d2d 100644
--- a/kubernetes/nbi/values.yaml
+++ b/kubernetes/nbi/values.yaml
@@ -19,9 +19,15 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:1.1.0
+  readinessImage: readiness-check:2.0.2
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
+  mariadbGalera: &mariadbGalera
+    #This flag allows SO to instantiate its own mariadb-galera cluster
+    localCluster: false
+    service: mariadb-galera
+    internalPort: 3306
+    nameOverride: mariadb-galera
 
 subChartsOnly:
   enabled: true
@@ -29,7 +35,7 @@
 # application image
 repository: nexus3.onap.org:10001
 image: onap/externalapi/nbi:5.0.1
-pullPolicy: Always
+pullPolicy: IfNotPresent
 sdc_authorization: Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU=
 aai_authorization: Basic QUFJOkFBSQ==
 so_authorization:
@@ -44,21 +50,27 @@
   openStackRegion: RegionOne
   openStackVNFTenantId: 31047205ce114b60833b23e400d6a535
 
-mariadb:
-  nameOverride: nbi-mariadb
+mariadb-galera:
+  # '&mariadbConfig' means we "store" the values for  later use in the file
+  # with '*mariadbConfig' pointer.
+  config: &mariadbConfig
+      userName: rene
+      userPassword: lkjgklqsdareyhjujlnnbvfvdttuiukgpiokqbfsjdhfigquosegombvjfqhb
+      mariadbRootPassword: dhqjdshjdsguryebvcnbvcvdsqghyjqgktgjjfhjfghbfs
+      mysqlDatabase: nbi
+  nameOverride: nbi-galera
   service:
-    name: nbi-mariadbhost
+    name: nbi-galera
+    portName: nbi-galera
     internalPort: 3306
-  config:
-    db:
-      database: nbi
-      user: rene
-      password: lkjgklqsdareyhjujlnnbvfvdttuiukgpiokqbfsjdhfigquosegombvjfqhb
-      root_password: dhqjdshjdsguryebvcnbvcvdsqghyjqgktgjjfhjfghbfs
+  replicaCount: 1
   persistence:
-    mountSubPath: nbi/maria/data
     enabled: true
-  disableNfsProvisioner: true
+    mountSubPath: nbi/maria/data
+
+mariadb-init:
+  config: *mariadbConfig
+  nameOverride: nbi-config
 
 mongo:
   nameOverride: nbi-mongo
diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml
index 8b186c0..314622f 100755
--- a/kubernetes/onap/requirements.yaml
+++ b/kubernetes/onap/requirements.yaml
@@ -57,7 +57,7 @@
     repository: '@local'
     condition: contrib.enabled
   - name: dcaegen2
-    version: ~5.x-0
+    version: ~6.x-0
     repository: '@local'
     condition: dcaegen2.enabled
   - name: dmaap
@@ -92,10 +92,6 @@
     version: ~5.x-0
     repository: '@local'
     condition: nbi.enabled
-  - name: nfs-provisioner
-    version: ~5.x-0
-    repository: '@local'
-    condition: nfs-provisioner.enabled
   - name: pnda
     version: ~5.x-0
     repository: '@local'
diff --git a/kubernetes/onap/resources/overrides/onap-all-ingress-nginx.yaml b/kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml
similarity index 77%
rename from kubernetes/onap/resources/overrides/onap-all-ingress-nginx.yaml
rename to kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml
index 7ef1e02..291a032 100644
--- a/kubernetes/onap/resources/overrides/onap-all-ingress-nginx.yaml
+++ b/kubernetes/onap/resources/overrides/onap-all-ingress-nginx-vhost.yaml
@@ -68,16 +68,14 @@
   enabled: true
 so:
   enabled: true
+  ingress:
+    enabled: true
   so-monitoring:
+    ingress:
       enabled: true
-      ingress:
-          enabled: true
-          service:
-              - path: "/so-monitoring"
-                name: "so-monitoring"
-                port: 9091
-          annotations:
-            nginx.ingress.kubernetes.io/ssl-redirect: "false"
+  so-vnfm-adapter:
+    ingress:
+      enabled: true
 uui:
   enabled: true
 vfc:
@@ -85,15 +83,11 @@
 vid:
   enabled: true
   ingress:
-   enabled: true
-   service:
-       - path: "/vid"
-         name: "vid-http"
-         port: 8080
-   annotations:
-         nginx.ingress.kubernetes.io/ssl-redirect: "false"
+    enabled: true
 vnfsdk:
   enabled: true
-nginx-ingress:
-    enabled: true
 
+#ingress virtualhost based configuration
+global:
+  ingress:
+    enabled: true
diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml
index 672ae2e..5344a42 100755
--- a/kubernetes/onap/values.yaml
+++ b/kubernetes/onap/values.yaml
@@ -57,6 +57,12 @@
   # flag to enable debugging - application support required
   debugEnabled: false
 
+  #Global ingress configuration
+  ingress:
+    enabled: false
+    virtualhost:
+        enabled: true
+        baseurl: "simpledemo.onap.org"
 #################################################################
 # Enable/disable and configure helm charts (ie. applications)
 # to customize the ONAP deployment.
@@ -113,8 +119,6 @@
     # openstack configuration
     openStackRegion: "Yolo"
     openStackVNFTenantId: "1234"
-nfs-provisioner:
-  enabled: false
 policy:
   enabled: false
 pomba:
@@ -169,4 +173,4 @@
 vnfsdk:
   enabled: false
 modeling:
-  enabled: false
+  enabled: false
\ No newline at end of file
diff --git a/kubernetes/oof/templates/ingress.yaml b/kubernetes/oof/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/oof/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/oof/values.yaml b/kubernetes/oof/values.yaml
index a9b2b2a..e540aa0 100644
--- a/kubernetes/oof/values.yaml
+++ b/kubernetes/oof/values.yaml
@@ -21,6 +21,7 @@
   readinessImage: readiness-check:2.0.0
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
+  persistence: {}
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -151,3 +152,9 @@
   nodePort: 48
 ingress:
   enabled: false
+  service:
+    - baseaddr: "oofosdf"
+      name: "oof-osdf"
+      port: 8698
+  config:
+    ssl: "none"
\ No newline at end of file
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml
index a98761f..1106f13 100644
--- a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml
+++ b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml
@@ -79,16 +79,9 @@
           configMap:
             name: {{ include "common.fullname" . }}-secrets
         - name: {{ include "common.fullname" . }}-logs
-          persitentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}-logs
-  volumeClaimTemplates:
-    - metadata:
-        name: {{ include "common.fullname" . }}-logs
-        labels:
-          name: {{ include "common.fullname" . }}
-      spec:
-        accessModes: [ {{ .Values.persistence.accessMode }} ]
-        storageClassName: manual
-        resources:
-          requests:
-            storage: {{ .Values.persistence.size }}
+        {{- if .Values.persistence.enabled }}
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+        {{- else }}
+          emptyDir: {}
+        {{- end }}
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml
index bf2d40b..0d20b96 100644
--- a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml
+++ b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml
@@ -19,7 +19,7 @@
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-logs
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -34,7 +34,7 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
-
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
diff --git a/kubernetes/common/mongo/templates/pvc.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pvc.yaml
similarity index 78%
copy from kubernetes/common/mongo/templates/pvc.yaml
copy to kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pvc.yaml
index 372c106..4b93a0e 100644
--- a/kubernetes/common/mongo/templates/pvc.yaml
+++ b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pvc.yaml
@@ -1,5 +1,5 @@
 {{/*
-# Copyright © 2017 Amdocs, Bell Canada
+# Copyright © 2019 Amdocs, Bell Canada, Orange
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,19 +13,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 */}}
-
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.fullname" . }}
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
 {{- if .Values.persistence.annotations }}
   annotations:
 {{ toYaml .Values.persistence.annotations | indent 4 }}
@@ -33,11 +31,8 @@
 spec:
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
 {{- end -}}
diff --git a/kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf b/kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf
index 01c79be..0989a02 100644
--- a/kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf
+++ b/kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf
@@ -63,5 +63,5 @@
 BRMS_UEB_API_SECRET=
 
 #Dependency.json file version
-BRMS_DEPENDENCY_VERSION=1.4.2
-BRMS_MODELS_DEPENDENCY_VERSION=2.0.2
+BRMS_DEPENDENCY_VERSION=1.5.3
+BRMS_MODELS_DEPENDENCY_VERSION=2.1.4
diff --git a/kubernetes/policy/charts/brmsgw/values.yaml b/kubernetes/policy/charts/brmsgw/values.yaml
index ef817f0..03b3a3c 100644
--- a/kubernetes/policy/charts/brmsgw/values.yaml
+++ b/kubernetes/policy/charts/brmsgw/values.yaml
@@ -19,7 +19,7 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
 
 #################################################################
 # Application configuration defaults.
diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml
index bf372b3..f45e9d4 100644
--- a/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml
+++ b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml
@@ -16,6 +16,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,6 +34,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+{{- end -}}
diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml
index 1deed4e..a082319 100644
--- a/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml
+++ b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml
@@ -31,19 +31,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
diff --git a/kubernetes/policy/charts/drools/charts/nexus/values.yaml b/kubernetes/policy/charts/drools/charts/nexus/values.yaml
index 2f80892..2024bca 100644
--- a/kubernetes/policy/charts/drools/charts/nexus/values.yaml
+++ b/kubernetes/policy/charts/drools/charts/nexus/values.yaml
@@ -19,7 +19,7 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
   ubuntuInitRepository: oomk8s
   ubuntuInitImage: ubuntu-init:1.0.0
   persistence: {}
diff --git a/kubernetes/policy/charts/drools/resources/configmaps/base.conf b/kubernetes/policy/charts/drools/resources/configmaps/base.conf
index ba39b0b..0b982fd 100644
--- a/kubernetes/policy/charts/drools/resources/configmaps/base.conf
+++ b/kubernetes/policy/charts/drools/resources/configmaps/base.conf
@@ -17,7 +17,7 @@
 
 JVM_OPTIONS={{.Values.server.jvmOpts}}
 
-# SYSTEM software configuration 
+# SYSTEM software configuration
 
 POLICY_HOME=/opt/app/policy
 POLICY_LOGS=/var/log/onap/policy/pdpd
@@ -35,9 +35,9 @@
 RELEASE_REPOSITORY_ID=policy-nexus-releases
 RELEASE_REPOSITORY_URL=http://{{.Values.global.nexus.nameOverride}}:{{.Values.nexus.port}}/nexus/content/repositories/releases/
 
-# Relational (SQL) DB access 
+# Relational (SQL) DB access
 
-SQL_HOST={{.Values.global.mariadb.nameOverride}}
+SQL_HOST={{ .Values.global.mariadb.service.name }}
 
 # AAF
 
@@ -57,6 +57,10 @@
 
 POLICY_PDP_PAP_TOPIC=POLICY-PDP-PAP
 
+# Symmetric Key for encoded sensitive data
+
+SYMM_KEY=
+
 # PAP
 
 PAP_HOST=policy-pap
@@ -90,3 +94,8 @@
 # SDNC
 
 SDNC_URL=http://sdnc.{{.Release.Namespace}}:8282/restconf/operations
+
+# CDS
+
+CDS_GRPC_HOST={{.Values.cds.grpc.svcName}}
+CDS_GRPC_PORT={{.Values.cds.grpc.svcPort}}
diff --git a/kubernetes/policy/charts/drools/resources/secrets/credentials.conf b/kubernetes/policy/charts/drools/resources/secrets/credentials.conf
index 36d3c3b..57269c1 100644
--- a/kubernetes/policy/charts/drools/resources/secrets/credentials.conf
+++ b/kubernetes/policy/charts/drools/resources/secrets/credentials.conf
@@ -54,3 +54,6 @@
 
 HEALTHCHECK_USER={{.Values.telemetry.user}}
 HEALTHCHECK_PASSWORD={{.Values.telemetry.password}}
+
+CDS_GRPC_USERNAME={{.Values.cds.grpc.user}}
+CDS_GRPC_PASSWORD={{.Values.cds.grpc.password}}
diff --git a/kubernetes/policy/charts/drools/templates/configmap.yaml b/kubernetes/policy/charts/drools/templates/configmap.yaml
index 7daf473..9a92ad9 100644
--- a/kubernetes/policy/charts/drools/templates/configmap.yaml
+++ b/kubernetes/policy/charts/drools/templates/configmap.yaml
@@ -18,5 +18,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+{{- with .Files.Glob "resources/configmaps/*{.zip,store}" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
 data:
-{{ tpl (.Files.Glob "resources/configmaps/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/configmaps/*.{conf,sh,properties,xml,keyfile}").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/charts/drools/templates/statefulset.yaml b/kubernetes/policy/charts/drools/templates/statefulset.yaml
index bb21ae1..9f9ca35 100644
--- a/kubernetes/policy/charts/drools/templates/statefulset.yaml
+++ b/kubernetes/policy/charts/drools/templates/statefulset.yaml
@@ -40,7 +40,7 @@
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.global.mariadb.nameOverride }}
+        - {{ .Release.Name }}-galera-config
         - --container-name
         - {{ .Values.global.nexus.nameOverride }}
         env:
diff --git a/kubernetes/policy/charts/drools/values.yaml b/kubernetes/policy/charts/drools/values.yaml
index fe50249..fbb4211 100644
--- a/kubernetes/policy/charts/drools/values.yaml
+++ b/kubernetes/policy/charts/drools/values.yaml
@@ -19,7 +19,7 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
   ubuntuImage: ubuntu:16.04
@@ -127,6 +127,13 @@
     key:
     password:
 
+cds:
+  grpc:
+    user: ccsdkapps
+    password: ccsdkapps
+    svcName: cds-blueprints-processor-grpc
+    svcPort: 9111
+
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
diff --git a/kubernetes/policy/charts/mariadb/Chart.yaml b/kubernetes/policy/charts/mariadb/Chart.yaml
deleted file mode 100644
index 59bd592..0000000
--- a/kubernetes/policy/charts/mariadb/Chart.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-description: ONAP Policy MariaDB Service
-name: mariadb
-version: 5.0.0
diff --git a/kubernetes/policy/charts/mariadb/requirements.yaml b/kubernetes/policy/charts/mariadb/requirements.yaml
deleted file mode 100644
index 05d49a8..0000000
--- a/kubernetes/policy/charts/mariadb/requirements.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-dependencies:
-  - name: common
-    version: ~5.x-0
-    # local reference to common chart, as it is
-    # a part of this chart's package and will not
-    # be published independently to a repo (at this point)
-    repository: '@local'
diff --git a/kubernetes/policy/charts/mariadb/templates/NOTES.txt b/kubernetes/policy/charts/mariadb/templates/NOTES.txt
deleted file mode 100644
index 5d0107e..0000000
--- a/kubernetes/policy/charts/mariadb/templates/NOTES.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2018 AT&T, Amdocs, Bell Canada Intellectual Property. All rights reserved
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-1. Get the application URL by running these commands:
-{{- if .Values.ingress.enabled }}
-{{- range .Values.ingress.hosts }}
-  http://{{ . }}
-{{- end }}
-{{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
-  echo http://$NODE_IP:$NODE_PORT
-{{- else if contains "LoadBalancer" .Values.service.type }}
-     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
-           You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
-  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
-  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
-{{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
-  echo "Visit http://127.0.0.1:8080 to use your application"
-  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
-{{- end }}
diff --git a/kubernetes/policy/charts/mariadb/templates/configmap.yaml b/kubernetes/policy/charts/mariadb/templates/configmap.yaml
deleted file mode 100644
index 87dc6d3..0000000
--- a/kubernetes/policy/charts/mariadb/templates/configmap.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-configmap
-  namespace: {{ include "common.namespace" . }}
-data:
-{{ tpl (.Files.Glob "resources/config/db.sh").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/charts/mariadb/templates/deployment.yaml b/kubernetes/policy/charts/mariadb/templates/deployment.yaml
deleted file mode 100644
index c64fb9a..0000000
--- a/kubernetes/policy/charts/mariadb/templates/deployment.yaml
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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
-kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container 
-          {{- if eq .Values.liveness.enabled true }}
-          args:
-          - --lower-case-table-names=1
-          - --wait_timeout=28800
-          livenessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
-          readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
-          - name: MYSQL_ROOT_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}-secret
-                key: db-root-password
-          - name: MYSQL_USER
-            value: policy_user
-          - name: MYSQL_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}-secret
-                key: db-user-password
-          volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /docker-entrypoint-initdb.d
-            name: mariadb-conf
-          - mountPath: /var/lib/mysql
-            name: mariadb-data
-          resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: mariadb-conf
-          configMap:
-            name: {{ include "common.fullname" . }}-configmap
-            defaultMode: 0755
-        - name: mariadb-data
-        {{- if .Values.persistence.enabled }}
-          persistentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}
-        {{- else }}
-          emptyDir: {}
-        {{- end }}
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/policy/charts/mariadb/templates/pv.yaml b/kubernetes/policy/charts/mariadb/templates/pv.yaml
deleted file mode 100644
index bf372b3..0000000
--- a/kubernetes/policy/charts/mariadb/templates/pv.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    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 }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
diff --git a/kubernetes/policy/charts/mariadb/templates/pvc.yaml b/kubernetes/policy/charts/mariadb/templates/pvc.yaml
deleted file mode 100644
index 1deed4e..0000000
--- a/kubernetes/policy/charts/mariadb/templates/pvc.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/policy/charts/mariadb/templates/service.yaml b/kubernetes/policy/charts/mariadb/templates/service.yaml
deleted file mode 100644
index 9d5d13a..0000000
--- a/kubernetes/policy/charts/mariadb/templates/service.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018-2019 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
diff --git a/kubernetes/policy/charts/mariadb/values.yaml b/kubernetes/policy/charts/mariadb/values.yaml
deleted file mode 100644
index 9b7102d..0000000
--- a/kubernetes/policy/charts/mariadb/values.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018-2019 AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 302
-  persistence: {}
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-# application image
-repository: nexus3.onap.org:10001
-image: mariadb:10.2.25
-pullPolicy: Always
-
-# flag to enable debugging - application support required
-debugEnabled: false
-
-# application configuration
-# Example:
-config:
-  mysqlRootPassword: secret
-  mysqlUserName: policy_user
-  mysqlPassword: policy_user
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 120
-  periodSeconds: 10
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
-
-readiness:
-  initialDelaySeconds: 120
-  periodSeconds: 10
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-  volumeReclaimPolicy: Retain
-  accessMode: ReadWriteOnce
-  size: 2Gi
-  mountPath: /dockerdata-nfs
-  mountSubPath: mariadb/data
-
-service:
-  type: ClusterIP
-  name: policydb
-  portName: policydb
-  externalPort: 3306
-  internalPort: 3306
-
-ingress:
-  enabled: false
-
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      cpu: 1
-      memory: 2Gi
-    requests:
-      cpu: 10m
-      memory: 0.5Gi
-  large:
-    limits:
-      cpu: 2
-      memory: 4Gi
-    requests:
-      cpu: 20m
-      memory: 1Gi
-  unlimited: {}
diff --git a/kubernetes/policy/charts/pdp/values.yaml b/kubernetes/policy/charts/pdp/values.yaml
index 20f4614..af5bb9e 100644
--- a/kubernetes/policy/charts/pdp/values.yaml
+++ b/kubernetes/policy/charts/pdp/values.yaml
@@ -19,7 +19,7 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
diff --git a/kubernetes/policy/charts/policy-apex-pdp/templates/configmap.yaml b/kubernetes/policy/charts/policy-apex-pdp/templates/configmap.yaml
index 937a5b4..3fb6371 100644
--- a/kubernetes/policy/charts/policy-apex-pdp/templates/configmap.yaml
+++ b/kubernetes/policy/charts/policy-apex-pdp/templates/configmap.yaml
@@ -21,5 +21,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+{{- with .Files.Glob "resources/config/*store" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
 data:
-{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/*.json").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/charts/policy-api/resources/config/config.json b/kubernetes/policy/charts/policy-api/resources/config/config.json
index 397f850..8952ae8 100644
--- a/kubernetes/policy/charts/policy-api/resources/config/config.json
+++ b/kubernetes/policy/charts/policy-api/resources/config/config.json
@@ -29,9 +29,9 @@
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
         "databaseDriver": "org.mariadb.jdbc.Driver",
-        "databaseUrl": "jdbc:mariadb://{{.Values.global.mariadb.nameOverride}}:3306/policyadmin",
-        "databaseUser": "policy_user",
-        "databasePassword": "cG9saWN5X3VzZXI=",
+        "databaseUrl": "jdbc:mariadb://{{ .Values.global.mariadb.service.name }}:{{ .Values.global.mariadb.service.internalPort }}/policyadmin",
+        "databaseUser": "{{ .Values.global.mariadb.config.userName }}",
+        "databasePassword": "{{ .Values.global.mariadb.config.userPassword | b64enc }}",
         "persistenceUnit": "PolicyMariaDb"
     }
 }
diff --git a/kubernetes/policy/charts/policy-api/templates/configmap.yaml b/kubernetes/policy/charts/policy-api/templates/configmap.yaml
index d90b0c9..adf917a 100644
--- a/kubernetes/policy/charts/policy-api/templates/configmap.yaml
+++ b/kubernetes/policy/charts/policy-api/templates/configmap.yaml
@@ -21,5 +21,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+{{- with .Files.Glob "resources/config/*store" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
 data:
 {{ tpl (.Files.Glob "resources/config/config.json").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/charts/policy-api/templates/deployment.yaml b/kubernetes/policy/charts/policy-api/templates/deployment.yaml
index b79c6bf..505ba89 100644
--- a/kubernetes/policy/charts/policy-api/templates/deployment.yaml
+++ b/kubernetes/policy/charts/policy-api/templates/deployment.yaml
@@ -21,7 +21,7 @@
           - /root/ready.py
           args:
           - --container-name
-          - {{ .Values.global.mariadb.nameOverride }}
+          - {{ .Release.Name }}-galera-config
           env:
           - name: NAMESPACE
             valueFrom:
diff --git a/kubernetes/policy/charts/policy-common/resources/config/pe/base.conf b/kubernetes/policy/charts/policy-common/resources/config/pe/base.conf
index 44e754b..5711044 100644
--- a/kubernetes/policy/charts/policy-common/resources/config/pe/base.conf
+++ b/kubernetes/policy/charts/policy-common/resources/config/pe/base.conf
@@ -19,10 +19,10 @@
 TRUSTSTORE_PASSWD=Pol1cy_0nap
 
 JDBC_DRIVER=org.mariadb.jdbc.Driver
-JDBC_URL=jdbc:mariadb://{{ .Values.global.mariadb.nameOverride }}:{{.Values.config.mariadbPort}}/onap_sdk?connectTimeout=30000&socketTimeout=60000&log=true&sessionVariables=max_statement_time=30
-JDBC_LOG_URL=jdbc:mariadb://{{ .Values.global.mariadb.nameOverride }}:{{.Values.config.mariadbPort}}/log?connectTimeout=30000&socketTimeout=60000&log=true&sessionVariables=max_statement_time=30
-JDBC_USER=policy_user
-JDBC_PASSWORD=policy_user
+JDBC_URL=jdbc:mariadb://{{ .Values.global.mariadb.service.name }}:{{ .Values.global.mariadb.service.internalPort }}/onap_sdk?connectTimeout=30000&socketTimeout=60000&log=true&sessionVariables=max_statement_time=30
+JDBC_LOG_URL=jdbc:mariadb://{{ .Values.global.mariadb.service.name }}:{{ .Values.global.mariadb.service.internalPort }}/log?connectTimeout=30000&socketTimeout=60000&log=true&sessionVariables=max_statement_time=30
+JDBC_USER={{ .Values.global.mariadb.config.userName }}
+JDBC_PASSWORD={{ .Values.global.mariadb.config.userPassword }}
 
 site_name=site_1
 fp_monitor_interval=30
diff --git a/kubernetes/policy/charts/policy-common/resources/config/scripts/do-start.sh b/kubernetes/policy/charts/policy-common/resources/config/scripts/do-start.sh
index fc27782..052b6f2 100644
--- a/kubernetes/policy/charts/policy-common/resources/config/scripts/do-start.sh
+++ b/kubernetes/policy/charts/policy-common/resources/config/scripts/do-start.sh
@@ -42,7 +42,7 @@
 	echo "Found existing installation, will not reinstall"
 	. /opt/app/policy/etc/profile.d/env.sh
 
-else 
+else
 	if [[ -d config ]]; then
 		cp config/*.conf .
 	fi
@@ -80,7 +80,7 @@
 		# (which does nothing if the db is already up-to-date)
 		dbuser=$(echo $(grep '^JDBC_USER=' base.conf | cut -f2 -d=))
 		dbpw=$(echo $(grep '^JDBC_PASSWORD=' base.conf | cut -f2 -d=))
-		db_upgrade_remote.sh $dbuser $dbpw {{.Values.global.mariadb.nameOverride}}
+		db_upgrade_remote.sh $dbuser $dbpw {{.Values.global.mariadb.service.name}}
 	fi
 
 fi
diff --git a/kubernetes/policy/charts/policy-common/values.yaml b/kubernetes/policy/charts/policy-common/values.yaml
index a098560..57eacc5 100644
--- a/kubernetes/policy/charts/policy-common/values.yaml
+++ b/kubernetes/policy/charts/policy-common/values.yaml
@@ -19,7 +19,7 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
@@ -30,7 +30,6 @@
 config:
   logstashServiceName: log-ls
   logstashPort: 5044
-  mariadbPort: 3306
 
 # default number of instances
 replicaCount: 1
diff --git a/kubernetes/policy/charts/policy-distribution/templates/configmap.yaml b/kubernetes/policy/charts/policy-distribution/templates/configmap.yaml
index 318ad34..984fb18 100644
--- a/kubernetes/policy/charts/policy-distribution/templates/configmap.yaml
+++ b/kubernetes/policy/charts/policy-distribution/templates/configmap.yaml
@@ -21,6 +21,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+{{- with .Files.Glob "resources/config/*store" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
 data:
 {{ tpl (.Files.Glob "resources/config/config.json").AsConfig . | indent 2 }}
-
diff --git a/kubernetes/policy/charts/policy-pap/resources/config/config.json b/kubernetes/policy/charts/policy-pap/resources/config/config.json
index 3f33ed9..48065ae 100644
--- a/kubernetes/policy/charts/policy-pap/resources/config/config.json
+++ b/kubernetes/policy/charts/policy-pap/resources/config/config.json
@@ -40,9 +40,9 @@
         "name": "PolicyProviderParameterGroup",
         "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
         "databaseDriver": "org.mariadb.jdbc.Driver",
-        "databaseUrl": "jdbc:mariadb://{{.Values.global.mariadb.nameOverride}}:3306/policyadmin",
-        "databaseUser": "policy_user",
-        "databasePassword": "cG9saWN5X3VzZXI=",
+        "databaseUrl": "jdbc:mariadb://{{ .Values.global.mariadb.service.name }}:{{ .Values.global.mariadb.service.internalPort }}/{{ .Values.global.mariadb.config.mysqlDatabase }}",
+        "databaseUser": "{{ .Values.global.mariadb.config.userName }}",
+        "databasePassword": "{{ .Values.global.mariadb.config.userPassword | b64enc }}",
         "persistenceUnit": "PolicyMariaDb"
     },
     "topicParameterGroup": {
@@ -55,6 +55,11 @@
             "topic" : "POLICY-PDP-PAP",
             "servers" : [ "message-router" ],
             "topicCommInfrastructure" : "dmaap"
+        },
+        {
+            "topic" : "POLICY-NOTIFICATION",
+            "servers" : [ "message-router" ],
+            "topicCommInfrastructure" : "dmaap"
         }]
     }
 }
diff --git a/kubernetes/policy/charts/policy-pap/templates/configmap.yaml b/kubernetes/policy/charts/policy-pap/templates/configmap.yaml
index 19ce6a8..13d993d 100644
--- a/kubernetes/policy/charts/policy-pap/templates/configmap.yaml
+++ b/kubernetes/policy/charts/policy-pap/templates/configmap.yaml
@@ -21,6 +21,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+{{- with .Files.Glob "resources/config/*store" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
 data:
-{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
-
+{{ tpl (.Files.Glob "resources/config/*.json").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/charts/policy-pap/templates/deployment.yaml b/kubernetes/policy/charts/policy-pap/templates/deployment.yaml
index 3332f60..a3adfee 100644
--- a/kubernetes/policy/charts/policy-pap/templates/deployment.yaml
+++ b/kubernetes/policy/charts/policy-pap/templates/deployment.yaml
@@ -21,7 +21,7 @@
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.global.mariadb.nameOverride }}
+        - {{ .Values.global.mariadb.service.name }}
         env:
         - name: NAMESPACE
           valueFrom:
diff --git a/kubernetes/policy/charts/policy-xacml-pdp/resources/config/config.json b/kubernetes/policy/charts/policy-xacml-pdp/resources/config/config.json
index 4483a1b..7fd8572 100644
--- a/kubernetes/policy/charts/policy-xacml-pdp/resources/config/config.json
+++ b/kubernetes/policy/charts/policy-xacml-pdp/resources/config/config.json
@@ -16,7 +16,8 @@
 #  SPDX-License-Identifier: Apache-2.0
 #  ============LICENSE_END=========================================================
 {
-    "name": "XacmlPdpGroup",
+    "name": "XacmlPdpParameters",
+    "pdpGroup": "defaultGroup",
     "restServerParameters": {
         "host": "0.0.0.0",
         "port": 6969,
diff --git a/kubernetes/policy/charts/policy-xacml-pdp/resources/config/xacml.properties b/kubernetes/policy/charts/policy-xacml-pdp/resources/config/xacml.properties
index be9a3fa..29feeb6 100644
--- a/kubernetes/policy/charts/policy-xacml-pdp/resources/config/xacml.properties
+++ b/kubernetes/policy/charts/policy-xacml-pdp/resources/config/xacml.properties
@@ -48,6 +48,6 @@
 # JPA Properties
 #
 javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver
-javax.persistence.jdbc.url=jdbc:mariadb://{{ .Values.global.mariadb.nameOverride }}:3306/operationshistory
-javax.persistence.jdbc.user=policy_user
-javax.persistence.jdbc.password=cG9saWN5X3VzZXI=
+javax.persistence.jdbc.url=jdbc:mariadb://{{ .Values.global.mariadb.service.name }}:{{ .Values.global.mariadb.service.internalPort }}/operationshistory
+javax.persistence.jdbc.user={{ .Values.global.mariadb.config.userName }}
+javax.persistence.jdbc.password={{ .Values.global.mariadb.config.userPassword | b64enc }}
diff --git a/kubernetes/policy/charts/policy-xacml-pdp/templates/configmap.yaml b/kubernetes/policy/charts/policy-xacml-pdp/templates/configmap.yaml
index f689f4d..f725c3a 100644
--- a/kubernetes/policy/charts/policy-xacml-pdp/templates/configmap.yaml
+++ b/kubernetes/policy/charts/policy-xacml-pdp/templates/configmap.yaml
@@ -21,5 +21,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+{{- with .Files.Glob "resources/config/*store" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
 data:
-{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/*.{json,properties}").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/charts/policy-xacml-pdp/templates/deployment.yaml b/kubernetes/policy/charts/policy-xacml-pdp/templates/deployment.yaml
index da9b019..ced19b9 100644
--- a/kubernetes/policy/charts/policy-xacml-pdp/templates/deployment.yaml
+++ b/kubernetes/policy/charts/policy-xacml-pdp/templates/deployment.yaml
@@ -21,7 +21,7 @@
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.global.mariadb.nameOverride }}
+        - {{ .Release.Name }}-galera-config
         env:
         - name: NAMESPACE
           valueFrom:
diff --git a/kubernetes/policy/requirements.yaml b/kubernetes/policy/requirements.yaml
index 05d49a8..589dfa4 100644
--- a/kubernetes/policy/requirements.yaml
+++ b/kubernetes/policy/requirements.yaml
@@ -20,3 +20,6 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: mariadb-galera
+    version: ~5.x-0
+    repository: '@local'
diff --git a/kubernetes/policy/charts/mariadb/resources/config/db.sh b/kubernetes/policy/resources/config/db.sh
similarity index 93%
rename from kubernetes/policy/charts/mariadb/resources/config/db.sh
rename to kubernetes/policy/resources/config/db.sh
index a5eb7f5..ef821a1 100644
--- a/kubernetes/policy/charts/mariadb/resources/config/db.sh
+++ b/kubernetes/policy/resources/config/db.sh
@@ -14,7 +14,7 @@
 # limitations under the License.
 
 #!/bin/bash -xv
-
+mysql() { /usr/bin/mysql  -h ${MYSQL_HOST} -P ${MYSQL_USER} "$@"; };
 for db in support onap_sdk log migration operationshistory10 pooling policyadmin operationshistory
 do
 	mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};"
diff --git a/kubernetes/policy/templates/configmap.yaml b/kubernetes/policy/templates/configmap.yaml
index bd1af39..8c804c3 100644
--- a/kubernetes/policy/templates/configmap.yaml
+++ b/kubernetes/policy/templates/configmap.yaml
@@ -36,4 +36,11 @@
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/pe/*").AsConfig . | indent 2 }}
-
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-db-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/db.sh").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/templates/deployment.yaml b/kubernetes/policy/templates/deployment.yaml
index 5feb374..355b8fc 100644
--- a/kubernetes/policy/templates/deployment.yaml
+++ b/kubernetes/policy/templates/deployment.yaml
@@ -36,7 +36,7 @@
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.global.mariadb.nameOverride }}
+        - {{ .Release.Name }}-galera-config
         env:
         - name: NAMESPACE
           valueFrom:
diff --git a/kubernetes/policy/templates/job.yaml b/kubernetes/policy/templates/job.yaml
new file mode 100644
index 0000000..9ed09e8
--- /dev/null
+++ b/kubernetes/policy/templates/job.yaml
@@ -0,0 +1,77 @@
+# Copyright © 2018 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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: batch/v1
+kind: Job
+metadata:
+  name: {{ .Release.Name }}-galera-config
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}-job
+    release: {{ .Release.Name }}
+spec:
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}-job
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+#This container checks that all galera instances are up before initializing it.
+      - name: {{ include "common.name" . }}-readiness
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - /root/ready.py
+        - --container-name
+        - {{ index .Values "mariadb-galera" "service" "name" }}
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+      - name: {{ .Release.Name }}-galera-config
+        image: {{ .Values.mariadb_image }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - mountPath: /dbcmd-config/db.sh
+          name: {{ include "common.fullname" . }}-config
+          subPath: db.sh
+        command:
+        - /bin/sh
+        args:
+        - -x
+        - /dbcmd-config/db.sh
+        env:
+        - name: MYSQL_ROOT_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              name: {{ template "common.fullname" . }}-secret
+              key: db-root-password
+        - name: MYSQL_HOST
+          value: "{{ index .Values "mariadb-galera" "service" "name" }}"
+        - name: MYSQL_USER
+          value: "{{ index .Values "mariadb-galera" "config" "userName" }}"
+        - name: MYSQL_PORT
+          value: "{{ index .Values "mariadb-galera" "service" "internalPort" }}"
+      restartPolicy: Never
+      volumes:
+        - name: {{ include "common.fullname" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}-db-configmap
+            items:
+              - key: db.sh
+                path: db.sh
diff --git a/kubernetes/policy/charts/mariadb/templates/secrets.yaml b/kubernetes/policy/templates/secrets.yaml
similarity index 78%
rename from kubernetes/policy/charts/mariadb/templates/secrets.yaml
rename to kubernetes/policy/templates/secrets.yaml
index 3efe66c..eb5b002 100644
--- a/kubernetes/policy/charts/mariadb/templates/secrets.yaml
+++ b/kubernetes/policy/templates/secrets.yaml
@@ -1,5 +1,5 @@
 # Copyright © 2017 Amdocs, Bell Canada
-# Modifications Copyright © 2018 AT&T
+# Modifications Copyright © 2018 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.
@@ -25,6 +25,5 @@
     heritage: {{ .Release.Service }}
 type: Opaque
 data:
-  db-root-password: {{ .Values.config.mysqlRootPassword | b64enc | quote }}
-  db-user-password: {{ .Values.config.mysqlPassword | b64enc | quote }}
-
+  db-user-password: {{ index .Values "mariadb-galera" "config" "userPassword" | b64enc | quote }}
+  db-root-password: {{ index .Values "mariadb-galera" "config" "mariadbRootPassword" | b64enc | quote }}
diff --git a/kubernetes/policy/values.yaml b/kubernetes/policy/values.yaml
index 3648647..ef0e6b1 100644
--- a/kubernetes/policy/values.yaml
+++ b/kubernetes/policy/values.yaml
@@ -19,22 +19,32 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
   ubuntuImage: ubuntu:16.04
-  mariadb:
-    nameOverride: policydb
   pdp:
     nameOverride: pdp
   pap:
-    nameOverride: pap
+    nameOverride: policy
   drools:
     nameOverride: drools
   brmwgw:
     nameOverride: brmsgw
   nexus:
     nameOverride: nexus
+  mariadb:
+    # '&mariadbConfig' means we "store" the values for  later use in the file
+    # with '*mariadbConfig' pointer.
+    config: &mariadbConfig
+      userName: policy_user
+      userPassword: policy_user
+      mariadbRootPassword: secret
+      mysqlDatabase: policyadmin
+    service: &mariadbService
+      name: policy-mariadb
+      portName: mysql-policy
+      internalPort: 3306
 
 #################################################################
 # Application configuration defaults.
@@ -42,17 +52,16 @@
 # application image
 repository: nexus3.onap.org:10001
 image: onap/policy-pe:1.5.2
+mariadb_image: library/mariadb:10
 pullPolicy: Always
 
 subChartsOnly:
   enabled: true
 
-nameOverride: pap
-
+pap:
+  nameOverride: pap
 pdp:
   nameOverride: pdp
-mariadb:
-  nameOverride: policydb
 drools:
   nameOverride: drools
 brmwgw:
@@ -101,6 +110,17 @@
 ingress:
   enabled: false
 
+mariadb-galera:
+  # mariadb-galera.config and global.mariadb.config must be equals
+  config: *mariadbConfig
+  nameOverride: policy-mariadb
+  # mariadb-galera.service and global.mariadb.service must be equals
+  service: *mariadbService
+  replicaCount: 1
+  persistence:
+    enabled: true
+    mountSubPath: policy/maria/data
+
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
diff --git a/kubernetes/pomba/charts/pomba-data-router/templates/ingress.yaml b/kubernetes/pomba/charts/pomba-data-router/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/pomba/charts/pomba-data-router/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/pomba/charts/pomba-data-router/values.yaml b/kubernetes/pomba/charts/pomba-data-router/values.yaml
index ec70f4b..f891dce 100644
--- a/kubernetes/pomba/charts/pomba-data-router/values.yaml
+++ b/kubernetes/pomba/charts/pomba-data-router/values.yaml
@@ -24,7 +24,7 @@
   persistence: {}
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
-  
+
 # application image
 repository: nexus3.onap.org:10001
 image: onap/data-router:1.3.3
@@ -70,6 +70,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "pombadatarouter"
+      name: "pomba-data-router"
+      port: 9502
+  config:
+    ssl: "none"
 
 persistence:
   enabled: true
@@ -88,7 +94,7 @@
   ##   GKE, AWS & OpenStack)
   ##
   ## storageClass: "-"
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 2Gi
   mountPath: /dockerdata-nfs
   mountSubPath: pomba/data-router/logs
diff --git a/kubernetes/pomba/charts/pomba-elasticsearch/values.yaml b/kubernetes/pomba/charts/pomba-elasticsearch/values.yaml
index 00eb921..8201eff 100644
--- a/kubernetes/pomba/charts/pomba-elasticsearch/values.yaml
+++ b/kubernetes/pomba/charts/pomba-elasticsearch/values.yaml
@@ -74,7 +74,7 @@
   ## If undefined (the default) or set to null, no storageClassName spec is
   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
   ##   GKE, AWS & OpenStack)
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 1Gi
   mountPath: /dockerdata-nfs
   mountSubPath: pomba/elasticsearch/data
diff --git a/kubernetes/pomba/charts/pomba-kibana/templates/ingress.yaml b/kubernetes/pomba/charts/pomba-kibana/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/pomba/charts/pomba-kibana/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/pomba/charts/pomba-kibana/values.yaml b/kubernetes/pomba/charts/pomba-kibana/values.yaml
index 53725b7..c892f1b 100644
--- a/kubernetes/pomba/charts/pomba-kibana/values.yaml
+++ b/kubernetes/pomba/charts/pomba-kibana/values.yaml
@@ -80,8 +80,15 @@
   externalPort: 5601
   internalPort: 5601
   nodePort: 34
+
 ingress:
   enabled: false
+  service:
+    - baseaddr: "pombakibana"
+      name: "pomba-kibana"
+      port: 5601
+  config:
+    ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/templates/ingress.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/pomba/charts/pomba-networkdiscovery/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
index dba7f59..ae613c6 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
@@ -94,7 +94,13 @@
 
 ingress:
   enabled: false
-
+  service:
+    - baseaddr: "pombanetworkdiscovery"
+      name: "pomba-networkdiscovery"
+      port: 8443
+  config:
+    ssl: "redirect"
+    
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
diff --git a/kubernetes/portal/charts/portal-app/templates/ingress.yaml b/kubernetes/portal/charts/portal-app/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/portal/charts/portal-app/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/portal/charts/portal-app/values.yaml b/kubernetes/portal/charts/portal-app/values.yaml
index 8d9cee0..59a11ad 100644
--- a/kubernetes/portal/charts/portal-app/values.yaml
+++ b/kubernetes/portal/charts/portal-app/values.yaml
@@ -88,6 +88,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: portalapp
+      name: "portal-app"
+      port: 8443
+  config:
+    ssl: "redirect"
 
 # Resource Limit flavor -By Default using small
 flavor: small
@@ -95,11 +101,11 @@
 resources:
   small:
     limits:
-      cpu: 2
-      memory: 10Gi
+      cpu: 2.2
+      memory: 800Mi
     requests:
-      cpu: 1
-      memory: 6Gi
+      cpu: 30m
+      memory: 460Mi
   large:
     limits:
       cpu: 4
diff --git a/kubernetes/portal/charts/portal-cassandra/templates/deployment.yaml b/kubernetes/portal/charts/portal-cassandra/templates/deployment.yaml
index 2040794..96e865d 100644
--- a/kubernetes/portal/charts/portal-cassandra/templates/deployment.yaml
+++ b/kubernetes/portal/charts/portal-cassandra/templates/deployment.yaml
@@ -65,7 +65,7 @@
           - name: CASSPASS
             value: "{{ .Values.config.cassandraPassword }}"
           - name: JVM_OPTS
-            value: "{{ .Values.config.cassandraJvmOpts }}"  
+            value: "{{ .Values.config.cassandraJvmOpts }}"
           - name: POD_IP
             valueFrom:
               fieldRef:
diff --git a/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml b/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml
index 252ca76..f611924 100644
--- a/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml
+++ b/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml
@@ -16,6 +16,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,6 +34,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+{{- end -}}
diff --git a/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml b/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml
index 1deed4e..a082319 100644
--- a/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml
+++ b/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml
@@ -31,19 +31,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
diff --git a/kubernetes/portal/charts/portal-cassandra/values.yaml b/kubernetes/portal/charts/portal-cassandra/values.yaml
index e08f59b..65fcdbe 100644
--- a/kubernetes/portal/charts/portal-cassandra/values.yaml
+++ b/kubernetes/portal/charts/portal-cassandra/values.yaml
@@ -98,11 +98,11 @@
 resources:
   small:
     limits:
-      cpu: 2
-      memory: 8Gi
+      cpu: 500m
+      memory: 3.75Gi
     requests:
-      cpu: 1
-      memory: 4Gi
+      cpu: 160m
+      memory: 2.8Gi
   large:
     limits:
       cpu: 4
diff --git a/kubernetes/portal/charts/portal-mariadb/templates/pv.yaml b/kubernetes/portal/charts/portal-mariadb/templates/pv.yaml
index 252ca76..f611924 100644
--- a/kubernetes/portal/charts/portal-mariadb/templates/pv.yaml
+++ b/kubernetes/portal/charts/portal-mariadb/templates/pv.yaml
@@ -16,6 +16,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,6 +34,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+{{- end -}}
diff --git a/kubernetes/portal/charts/portal-mariadb/templates/pvc.yaml b/kubernetes/portal/charts/portal-mariadb/templates/pvc.yaml
index 1deed4e..a082319 100644
--- a/kubernetes/portal/charts/portal-mariadb/templates/pvc.yaml
+++ b/kubernetes/portal/charts/portal-mariadb/templates/pvc.yaml
@@ -31,19 +31,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
diff --git a/kubernetes/portal/charts/portal-mariadb/values.yaml b/kubernetes/portal/charts/portal-mariadb/values.yaml
index e6896f1..e6aab2a 100644
--- a/kubernetes/portal/charts/portal-mariadb/values.yaml
+++ b/kubernetes/portal/charts/portal-mariadb/values.yaml
@@ -132,11 +132,11 @@
 resources:
   small:
     limits:
-      cpu: 800m
-      memory: 1Gi
+      cpu: 460m
+      memory: 175Mi
     requests:
-      cpu: 400m
-      memory: 500Mi
+      cpu: 10m
+      memory: 100Mi
   large:
     limits:
       cpu: 2
diff --git a/kubernetes/portal/charts/portal-sdk/templates/ingress.yaml b/kubernetes/portal/charts/portal-sdk/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/portal/charts/portal-sdk/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/portal/charts/portal-sdk/values.yaml b/kubernetes/portal/charts/portal-sdk/values.yaml
index 4a0124d..8572ff8 100644
--- a/kubernetes/portal/charts/portal-sdk/values.yaml
+++ b/kubernetes/portal/charts/portal-sdk/values.yaml
@@ -82,6 +82,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: portalsdk
+      name: "portal-sdk"
+      port: 8080
+  config:
+    ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
@@ -89,11 +95,11 @@
 resources:
   small:
     limits:
-      cpu: 4
-      memory: 10Gi
+      cpu: 600m
+      memory: 1.6Gi
     requests:
-      cpu: 2
-      memory: 5Gi
+      cpu: 10m
+      memory: 1.3Gi
   large:
     limits:
       cpu: 8
diff --git a/kubernetes/portal/charts/portal-widget/values.yaml b/kubernetes/portal/charts/portal-widget/values.yaml
index 37f4294..7a02509 100644
--- a/kubernetes/portal/charts/portal-widget/values.yaml
+++ b/kubernetes/portal/charts/portal-widget/values.yaml
@@ -75,10 +75,10 @@
   small:
     limits:
       cpu: 1
-      memory: 4Gi
+      memory: 430Mi
     requests:
-      cpu: 500m
-      memory: 2Gi
+      cpu: 1m
+      memory: 360Mi
   large:
     limits:
       cpu: 2
diff --git a/kubernetes/portal/charts/portal-zookeeper/values.yaml b/kubernetes/portal/charts/portal-zookeeper/values.yaml
index c7c8030..6037d24 100644
--- a/kubernetes/portal/charts/portal-zookeeper/values.yaml
+++ b/kubernetes/portal/charts/portal-zookeeper/values.yaml
@@ -62,11 +62,11 @@
 resources:
   small:
     limits:
-      cpu: 500m
-      memory: 600Mi
+      cpu: 100m
+      memory: 200Mi
     requests:
-      cpu: 250m
-      memory: 300Mi
+      cpu: 1m
+      memory: 80Mi
   large:
     limits:
       cpu: 1
diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml
index 9dbdd7c..8c84cbd 100644
--- a/kubernetes/portal/values.yaml
+++ b/kubernetes/portal/values.yaml
@@ -52,3 +52,6 @@
 messageRouter:
   service:
     name: message-router
+
+ingress:
+  enabled: false
\ No newline at end of file
diff --git a/kubernetes/robot b/kubernetes/robot
index 1d36d59..6e38b49 160000
--- a/kubernetes/robot
+++ b/kubernetes/robot
@@ -1 +1 @@
-Subproject commit 1d36d59796cf69d8bba1d833a7faa2709bef531c
+Subproject commit 6e38b492acd3ec44a869055092399b6f18c659b8
diff --git a/kubernetes/sdc/charts/sdc-be/templates/ingress.yaml b/kubernetes/sdc/charts/sdc-be/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-be/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdc/charts/sdc-be/values.yaml b/kubernetes/sdc/charts/sdc-be/values.yaml
index 5ba797c..8ac6c27 100644
--- a/kubernetes/sdc/charts/sdc-be/values.yaml
+++ b/kubernetes/sdc/charts/sdc-be/values.yaml
@@ -73,6 +73,13 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "sdcbe"
+      name: "sdc-be"
+      port: 8080
+  config:
+    ssl: "none"
+
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/templates/ingress.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml
index 7a1fffc..df0606f 100644
--- a/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml
@@ -61,6 +61,15 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "dcaedt"
+      name: "sdc-dcae-dt"
+      port: 8186
+    - baseaddr: "dcaedt2"
+      name: "sdc-dcae-dt"
+      port: 9446
+  config:
+    ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/sdc/charts/sdc-dcae-fe/templates/ingress.yaml b/kubernetes/sdc/charts/sdc-dcae-fe/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-fe/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdc/charts/sdc-dcae-fe/values.yaml b/kubernetes/sdc/charts/sdc-dcae-fe/values.yaml
index f38ef30..a5794b2 100644
--- a/kubernetes/sdc/charts/sdc-dcae-fe/values.yaml
+++ b/kubernetes/sdc/charts/sdc-dcae-fe/values.yaml
@@ -66,7 +66,15 @@
 
 ingress:
   enabled: false
-
+  service:
+    - baseaddr: "dcaedt"
+      name: "sdc-dcae-fe"
+      port: 8183
+    - baseaddr: "dcaedt2"
+      name: "sdc-dcae-fe"
+      port: 9444
+  config:
+    ssl: "none"
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)
diff --git a/kubernetes/sdc/charts/sdc-es/templates/pv.yaml b/kubernetes/sdc/charts/sdc-es/templates/pv.yaml
index 618b23a..8edf342 100644
--- a/kubernetes/sdc/charts/sdc-es/templates/pv.yaml
+++ b/kubernetes/sdc/charts/sdc-es/templates/pv.yaml
@@ -16,6 +16,7 @@
 */}}
 
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -33,6 +34,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/sdc/charts/sdc-es/templates/pvc.yaml b/kubernetes/sdc/charts/sdc-es/templates/pvc.yaml
index e1f01b6..5251283 100644
--- a/kubernetes/sdc/charts/sdc-es/templates/pvc.yaml
+++ b/kubernetes/sdc/charts/sdc-es/templates/pvc.yaml
@@ -31,19 +31,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
 {{- end -}}
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-fe/templates/ingress.yaml b/kubernetes/sdc/charts/sdc-fe/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-fe/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdc/charts/sdc-fe/values.yaml b/kubernetes/sdc/charts/sdc-fe/values.yaml
index 8878f1a..a435b59 100644
--- a/kubernetes/sdc/charts/sdc-fe/values.yaml
+++ b/kubernetes/sdc/charts/sdc-fe/values.yaml
@@ -80,6 +80,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "sdcfe"
+      name: "sdc-fe"
+      port: 9443
+  config:
+    ssl: "redirect"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml
index b292ff9..70f6d95 100644
--- a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml
+++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml
@@ -16,10 +16,11 @@
 # limitations under the License.
 */}}
 {{- if and .Values.persistence.enabled (not .Values.cert.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-cert
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -33,6 +34,8 @@
   accessModes:
     - {{ .Values.cert.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.cert.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.cert.persistence.mountSubPath }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml
index eb2c372..662370d 100644
--- a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml
+++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml
@@ -31,19 +31,10 @@
 {{ toYaml .Values.cert.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.cert.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.cert.persistence.size }}
-{{- if .Values.cert.persistence.storageClass }}
-{{- if (eq "-" .Values.cert.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.cert.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml
index 0bf1bf5..31ab7d5 100644
--- a/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml
@@ -60,13 +60,13 @@
           {{ if .Values.liveness.enabled }}
           livenessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+              port: {{ .Values.service.internalPort2 }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
           {{ end }}
           readinessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+              port: {{ .Values.service.internalPort2 }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/templates/ingress.yaml b/kubernetes/sdc/charts/sdc-wfd-be/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-wfd-be/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/values.yaml b/kubernetes/sdc/charts/sdc-wfd-be/values.yaml
index 0a250e4..92903ba 100644
--- a/kubernetes/sdc/charts/sdc-wfd-be/values.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-be/values.yaml
@@ -28,8 +28,8 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-backend:1.5.1
-configInitImage: onap/workflow-init:1.5.1
+image: onap/workflow-backend:1.5.2
+configInitImage: onap/workflow-init:1.5.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -43,14 +43,14 @@
   cassandraAuthenticationEnabled: true
   cassandraThriftClientPort: 9160
   cassandraClientPort: 9042
-  sdcProtocol: HTTP
-  sdcEndpoint: sdc-be:8080
+  sdcProtocol: HTTPS
+  sdcEndpoint: sdc-be:8443
   sdcExternalUser: workflow
   sdcExternalUserPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
   serverSSLEnabled: false
   serverSSLKeyStoreType: jks
-  serverSSLKeyStorePath: /etc/server-https-keystore/keystore
-  serverSSLKeyPassword: password
+  serverSSLKeyStorePath: etc/org.onap.sdc.p12
+  serverSSLKeyPassword: "!ppJ.JvWn0hGh)oVF]([Kv)^"
   cassandraSSLEnabled: false
   cassandraTrustStorePath: /etc/cassandra-client-truststore/truststore
   cassandraTrustStorePassword: password
@@ -85,7 +85,13 @@
 
 ingress:
   enabled: false
-
+  service:
+    - baseaddr: "sdcwfdbe"
+      name: "sdc-wfd-be"
+      port: 8443
+  config:
+    ssl: "redirect"
+    
 resources: {}
   # We usually recommend not to specify default resources and to leave this as a conscious
   # choice for the user. This also increases chances charts run on environments with little
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml
index 0be06f3..1daee71 100644
--- a/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml
@@ -75,41 +75,15 @@
             value: "{{ .Values.config.isHttpsEnabled}}"
             {{ if and .Values.config.isHttpsEnabled (eq .Values.security.isDefaultStore false) }}
           - name: KEYSTORE_PASS
-            {{- if .Values.global.security.keysFromCa }}
-            valueFrom:
-              secretKeyRef:
-                name: mft-sdc
-                key: keystore-password.txt
-            {{ else }}
-            value: {{ .Values.global.security.keyStorePass}}
-            {{- end }}
+            value: "{{ .Values.security.keystorePass}}"
           - name: TRUSTSTORE_PASS
-            {{- if .Values.global.security.keysFromCa }}
-            valueFrom:
-              secretKeyRef:
-                name: mft-catruststore
-                key: keystore-password.txt
-            {{ else }}
-            value: {{ .Values.global.security.trustStorePass}}
-            {{- end }}
+            value: "{{ .Values.security.truststorePass}}"
           - name: TRUSTSTORE_PATH
             value: "{{ .Values.security.storePath }}/{{ .Values.security.truststoreFilename }}"
           - name: KEYSTORE_PATH
             value: "{{ .Values.security.storePath }}/{{ .Values.security.keystoreFilename }}"
-          - name: TRUSTSTORE_TYPE
-            value: {{ .Values.security.truststore.type }}
-          - name: KEYSTORE_TYPE
-            value: {{ .Values.security.keystore.type }}
             {{ end }}
           volumeMounts:
-          {{ if and .Values.config.isHttpsEnabled (eq .Values.security.isDefaultStore false) }}
-          - name: {{ include "common.fullname" . }}-jetty-https-truststore
-            mountPath: /var/lib/jetty/{{ .Values.security.storePath }}/{{ .Values.security.truststoreFilename }}
-            subPath: {{ .Values.security.truststoreFilename }}
-          - name: {{ include "common.fullname" . }}-jetty-https-keystore
-            mountPath: /var/lib/jetty/etc/{{ .Values.security.storePath }}/{{ .Values.security.keystoreFilename }}
-            subPath: {{ .Values.security.keystoreFilename }}
-          {{ end }}
           - name: {{ include "common.fullname" . }}-localtime
             mountPath: /etc/localtime
             readOnly: true
@@ -123,7 +97,6 @@
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
-
         # side car containers
         - name: {{ include "common.name" . }}-filebeat-onap
           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/templates/ingress.yaml b/kubernetes/sdc/charts/sdc-wfd-fe/templates/ingress.yaml
index e10de6d..8f87c68 100644
--- a/kubernetes/sdc/charts/sdc-wfd-fe/templates/ingress.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-fe/templates/ingress.yaml
@@ -1,59 +1 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-{{- define "rules.wf" -}}
-- http:
-    paths:
-      - path: /workflows/
-        backend:
-          serviceName: {{.Values.service.name}}
-          servicePort: {{.Values.service.internalPort}}
-{{- end -}}
-
-{{- if .Values.ingress.enabled }}
-
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  name: {{ include "common.fullname" . }}-ingress
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-{{- with .Values.ingress.annotations }}
-  annotations:
-{{ toYaml . | indent 4 }}
-{{- end }}
-spec:
-  rules:
-{{- if .Values.ingress.hosts}}
-{{- range .Values.ingress.hosts}}
-{{- include "rules.wf" $ | nindent 2}}
-{{- if .}}
-    host: {{. | quote}}
-{{- end}}
-{{- end}}
-  tls:
-  - hosts:
-{{- range .Values.ingress.hosts}}
-{{- if .}}
-    - {{ . | quote }}
-{{- end}}
-{{- end }}
-{{- else}}
-{{- include "rules.wf" . | nindent 2}}
-{{- end}}
-{{ end }}
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/values.yaml b/kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
index 91cdead..21c7c17 100644
--- a/kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
@@ -28,7 +28,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-frontend:1.5.1
+image: onap/workflow-frontend:1.5.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -41,11 +41,11 @@
 
 # https relevant settings. Change in case you have other trust files then default ones.
 security:
-  isDefaultStore: true
-  truststoreType: "JKS"
-  keystoreType: "JKS"
-  truststoreFilename: "truststore"
-  keystoreFilename: "keystore"
+  isDefaultStore: false
+  truststoreFilename: "org.onap.sdc.trust.jks"
+  keystoreFilename: "org.onap.sdc.p12"
+  keystorePass: "!ppJ.JvWn0hGh)oVF]([Kv)^"
+  truststorePass: "].][xgtze]hBhz*wy]}m#lf*"
   storePath: "etc"
 
 # default number of instances
@@ -80,16 +80,18 @@
 
 ingress:
   enabled: false
-  hosts: ~
+  service:
+    - baseaddr: "sdcwfdfe"
+      name: "sdc-wfd-fe"
+      port: 8443
   annotations:
     ingress.kubernetes.io/secure-backends: "false"
     nginx.ingress.kubernetes.io/secure-backends: "false"
     nginx.ingress.kubernetes.io/proxy-body-size: "0"
     nginx.ingress.kubernetes.io/ssl-redirect: "true"
     nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
-    nginx.ingress.kubernetes.io/rewrite-target: /workflows/
-    nginx.ingress.kubernetes.io/server-snippet: |
-      underscores_in_headers on;
+    nginx.ingress.kubernetes.io/rewrite-target: "/workflows/"
+    nginx.ingress.kubernetes.io/server-snippet: "underscores_in_headers on"
 
 resources: {}
   # We usually recommend not to specify default resources and to leave this as a conscious
diff --git a/kubernetes/sdnc/charts/dmaap-listener/values.yaml b/kubernetes/sdnc/charts/dmaap-listener/values.yaml
index 5ae0799..4965d96 100644
--- a/kubernetes/sdnc/charts/dmaap-listener/values.yaml
+++ b/kubernetes/sdnc/charts/dmaap-listener/values.yaml
@@ -27,7 +27,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-dmaap-listener-image:1.7.4
+image: onap/sdnc-dmaap-listener-image:1.7.6
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml b/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml
index 4140790..db7c63c 100644
--- a/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml
+++ b/kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml
@@ -27,7 +27,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ansible-server-image:1.7.4
+image: onap/sdnc-ansible-server-image:1.7.6
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/charts/sdnc-portal/values.yaml b/kubernetes/sdnc/charts/sdnc-portal/values.yaml
index 397a7d2..7ff000e 100644
--- a/kubernetes/sdnc/charts/sdnc-portal/values.yaml
+++ b/kubernetes/sdnc/charts/sdnc-portal/values.yaml
@@ -27,7 +27,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/admportal-sdnc-image:1.7.4
+image: onap/admportal-sdnc-image:1.7.6
 config:
   dbRootPassword: secretpassword
   dbSdnctlPassword: gamma
@@ -42,7 +42,7 @@
     internalPort: 3306
 
 # default number of instances
-replicaCount: 1
+replicaCount: 0
 
 nodeSelector: {}
 
diff --git a/kubernetes/sdnc/charts/ueb-listener/values.yaml b/kubernetes/sdnc/charts/ueb-listener/values.yaml
index cbbee96..b4b42fd 100644
--- a/kubernetes/sdnc/charts/ueb-listener/values.yaml
+++ b/kubernetes/sdnc/charts/ueb-listener/values.yaml
@@ -27,7 +27,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ueb-listener-image:1.7.4
+image: onap/sdnc-ueb-listener-image:1.7.6
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/templates/ingress.yaml b/kubernetes/sdnc/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/sdnc/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml
index 6ca69c6..555409f 100644
--- a/kubernetes/sdnc/values.yaml
+++ b/kubernetes/sdnc/values.yaml
@@ -32,7 +32,7 @@
 # application images
 repository: nexus3.onap.org:10001
 pullPolicy: Always
-image: onap/sdnc-image:1.7.4
+image: onap/sdnc-image:1.7.6
 
 
 # flag to enable debugging - application support required
@@ -255,6 +255,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "sdnc"
+      name: "sdnc"
+      port: 8443
+  config:
+    ssl: "redirect"
 
 #Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
index d1f23e9..5930b5d 100755
--- a/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
@@ -360,7 +360,7 @@
 so:
   vnfm:
     adapter:
-      url: http://so-vnfm-adapter.{{ include "common.namespace" . }}:9092/so/vnfm-adapter/v1/
+      url: https://so-vnfm-adapter.{{ include "common.namespace" . }}:9092/so/vnfm-adapter/v1/
       auth: Basic dm5mbTpwYXNzd29yZDEk
 org:
   onap:
diff --git a/kubernetes/so/charts/so-bpmn-infra/values.yaml b/kubernetes/so/charts/so-bpmn-infra/values.yaml
index 89b0eb4..a7925b7 100755
--- a/kubernetes/so/charts/so-bpmn-infra/values.yaml
+++ b/kubernetes/so/charts/so-bpmn-infra/values.yaml
@@ -27,7 +27,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/bpmn-infra:1.5.2
+image: onap/so/bpmn-infra:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
diff --git a/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
index b643c4a..2ea2cff 100755
--- a/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
@@ -58,6 +58,8 @@
       tenant_metadata: true
       identity_server_type: "KEYSTONE"
       identity_authentication_type: "RACKSPACE_APIKEY"
+      project_domain_name: "PROJECT_DOMAIN_NAME"
+      user_domain_name: "USER_DOMAIN_NAME"
     DEFAULT_KEYSTONE:
       identity_url: "{{ .Values.config.openStackKeyStoneUrl }}"
       mso_id: "{{ .Values.config.openStackUserName }}"
@@ -67,6 +69,8 @@
       tenant_metadata: true
       identity_server_type: "KEYSTONE"
       identity_authentication_type: "USERNAME_PASSWORD"
+      project_domain_name: "{{ .Values.config.openStackProjectDomainName }}"
+      user_domain_name: "{{ .Values.config.openStackUserDomainName }}"
   cloud_sites:
     Dallas:
       region_id: "DFW"
diff --git a/kubernetes/so/charts/so-catalog-db-adapter/values.yaml b/kubernetes/so/charts/so-catalog-db-adapter/values.yaml
index 57b7fe5..4685fd1 100755
--- a/kubernetes/so/charts/so-catalog-db-adapter/values.yaml
+++ b/kubernetes/so/charts/so-catalog-db-adapter/values.yaml
@@ -27,7 +27,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/catalog-db-adapter:1.5.2
+image: onap/so/catalog-db-adapter:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
@@ -81,6 +81,8 @@
   openStackServiceTenantName: "service"
   openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
   openStackTenantId: "d570c718cbc545029f40e50b75eb13df"
+  openStackProjectDomainName: "openStackProjectDomainName"
+  openStackUserDomainName: "openStackUserDomainName"
 nodeSelector: {}
 tolerations: []
 affinity: {}
diff --git a/kubernetes/so/charts/so-mariadb/templates/pv.yaml b/kubernetes/so/charts/so-mariadb/templates/pv.yaml
index 5f5d09e..f8315ef 100644
--- a/kubernetes/so/charts/so-mariadb/templates/pv.yaml
+++ b/kubernetes/so/charts/so-mariadb/templates/pv.yaml
@@ -36,6 +36,7 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end }}
diff --git a/kubernetes/so/charts/so-mariadb/templates/pvc.yaml b/kubernetes/so/charts/so-mariadb/templates/pvc.yaml
index 92d5eed..17ff773 100644
--- a/kubernetes/so/charts/so-mariadb/templates/pvc.yaml
+++ b/kubernetes/so/charts/so-mariadb/templates/pvc.yaml
@@ -33,20 +33,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}-migration
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
+  storageClassName: {{ include "common.storageClass" . }}
 {{- end }}
-{{- end }}
-{{- end }}
-
diff --git a/kubernetes/so/charts/so-monitoring/templates/ingress.yaml b/kubernetes/so/charts/so-monitoring/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/so/charts/so-monitoring/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/so/charts/so-monitoring/values.yaml b/kubernetes/so/charts/so-monitoring/values.yaml
index 7539e47..240ca15 100644
--- a/kubernetes/so/charts/so-monitoring/values.yaml
+++ b/kubernetes/so/charts/so-monitoring/values.yaml
@@ -32,7 +32,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/so-monitoring:1.5.2
+image: onap/so/so-monitoring:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
@@ -81,7 +81,13 @@
     successThreshold: 1
     failureThreshold: 3
 ingress:
-  enabled: false
+    enabled: false
+    service:
+        - baseaddr: "somonitoring"
+          name: "so-monitoring"
+          port: 9091
+    config:
+        ssl: "none"
 nodeSelector: {}
 tolerations: []
-affinity: {}
+affinity: {}
\ No newline at end of file
diff --git a/kubernetes/so/charts/so-openstack-adapter/values.yaml b/kubernetes/so/charts/so-openstack-adapter/values.yaml
index c570f5e..8dc7e83 100755
--- a/kubernetes/so/charts/so-openstack-adapter/values.yaml
+++ b/kubernetes/so/charts/so-openstack-adapter/values.yaml
@@ -26,7 +26,7 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-image: onap/so/openstack-adapter:1.5.2
+image: onap/so/openstack-adapter:1.5.3
 pullPolicy: Always
 repository: nexus3.onap.org:10001
 
diff --git a/kubernetes/so/charts/so-request-db-adapter/values.yaml b/kubernetes/so/charts/so-request-db-adapter/values.yaml
index 028d123..58e6412 100755
--- a/kubernetes/so/charts/so-request-db-adapter/values.yaml
+++ b/kubernetes/so/charts/so-request-db-adapter/values.yaml
@@ -27,7 +27,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/request-db-adapter:1.5.2
+image: onap/so/request-db-adapter:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
diff --git a/kubernetes/so/charts/so-sdc-controller/values.yaml b/kubernetes/so/charts/so-sdc-controller/values.yaml
index 1259435..2cce8bb 100755
--- a/kubernetes/so/charts/so-sdc-controller/values.yaml
+++ b/kubernetes/so/charts/so-sdc-controller/values.yaml
@@ -27,7 +27,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/sdc-controller:1.5.2
+image: onap/so/sdc-controller:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
diff --git a/kubernetes/so/charts/so-sdnc-adapter/values.yaml b/kubernetes/so/charts/so-sdnc-adapter/values.yaml
index e48c9c9..d1be03b 100755
--- a/kubernetes/so/charts/so-sdnc-adapter/values.yaml
+++ b/kubernetes/so/charts/so-sdnc-adapter/values.yaml
@@ -27,7 +27,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/sdnc-adapter:1.5.2
+image: onap/so/sdnc-adapter:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
diff --git a/kubernetes/so/charts/so-vfc-adapter/values.yaml b/kubernetes/so/charts/so-vfc-adapter/values.yaml
index 1663fb3..b15a67f 100755
--- a/kubernetes/so/charts/so-vfc-adapter/values.yaml
+++ b/kubernetes/so/charts/so-vfc-adapter/values.yaml
@@ -27,7 +27,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/vfc-adapter:1.5.2
+image: onap/so/vfc-adapter:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
diff --git a/kubernetes/so/charts/so-vnfm-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-vnfm-adapter/resources/config/overrides/override.yaml
index 8650f05..760fa16 100755
--- a/kubernetes/so/charts/so-vnfm-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-vnfm-adapter/resources/config/overrides/override.yaml
@@ -25,7 +25,17 @@
       password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
       role: ACTUATOR
 server:
-    port: {{ index .Values.containerPort }}
+  port: {{ index .Values.containerPort }}
+  ssl:
+    key-alias: so@so.onap.org
+    key--store-password: 'ywsqCy:EEo#j}HJHM7z^Rk[L'
+    key-store: classpath:so-vnfm-adapter.p12
+    key-store-type: PKCS12
+http:
+  client:
+    ssl:
+      trust-store: classpath:org.onap.so.trust.jks
+      trust-store-password: ',sx#.C*W)]wVgJC6ccFHI#:H'
 mso:
   key: 07a7159d3bf51a0e53be7a8f89699be7
   site-name: localSite
@@ -38,4 +48,4 @@
   key: 566B754875657232314F5548556D3665
   endpoint: https://sdc-be.{{ include "common.namespace" . }}:8443
 vnfmadapter:
-  endpoint: http://so-vnfm-adapter.{{ include "common.namespace" . }}:9092
+  endpoint: https://so-vnfm-adapter.{{ include "common.namespace" . }}:9092
diff --git a/kubernetes/so/charts/so-vnfm-adapter/templates/ingress.yaml b/kubernetes/so/charts/so-vnfm-adapter/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/so/charts/so-vnfm-adapter/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/so/charts/so-vnfm-adapter/values.yaml b/kubernetes/so/charts/so-vnfm-adapter/values.yaml
index d29bff2..7833376 100755
--- a/kubernetes/so/charts/so-vnfm-adapter/values.yaml
+++ b/kubernetes/so/charts/so-vnfm-adapter/values.yaml
@@ -26,7 +26,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/vnfm-adapter:1.5.2
+image: onap/so/vnfm-adapter:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
@@ -72,6 +72,12 @@
     failureThreshold: 3
 ingress:
   enabled: false
+  service:
+      - baseaddr: "sovnfmadapter"
+        name: "so-vnfm-adapter"
+        port: 9092
+  config:
+    ssl: "redirect"
 nodeSelector: {}
 tolerations: []
-affinity: {}
+affinity: {}
\ No newline at end of file
diff --git a/kubernetes/so/templates/ingress.yaml b/kubernetes/so/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/so/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml
index ae126fa..9d5ff42 100755
--- a/kubernetes/so/values.yaml
+++ b/kubernetes/so/values.yaml
@@ -43,7 +43,7 @@
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/api-handler-infra:1.5.2
+image: onap/so/api-handler-infra:1.5.3
 pullPolicy: Always
 
 replicaCount: 1
@@ -105,3 +105,12 @@
   persistence:
     mountSubPath: so/mariadb-galera/data
     enabled: true
+
+ingress:
+  enabled: false
+  service:
+    - baseaddr: "so"
+      name: "so"
+      port: 8080
+  config:
+    ssl: "none"
\ No newline at end of file
diff --git a/kubernetes/uui/charts/uui-server/templates/ingress.yaml b/kubernetes/uui/charts/uui-server/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/uui/charts/uui-server/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/uui/charts/uui-server/values.yaml b/kubernetes/uui/charts/uui-server/values.yaml
index c58eb81..e7856d3 100644
--- a/kubernetes/uui/charts/uui-server/values.yaml
+++ b/kubernetes/uui/charts/uui-server/values.yaml
@@ -64,6 +64,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: uuiserver
+      name: "uui-server"
+      port: 8082
+  config:
+    ssl: "none"
 
   # We usually recommend not to specify default resources and to leave this as a conscious
   # choice for the user. This also increases chances charts run on environments with little
diff --git a/kubernetes/uui/templates/ingress.yaml b/kubernetes/uui/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/uui/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/uui/values.yaml b/kubernetes/uui/values.yaml
index 4d1f888..bfecdb7 100644
--- a/kubernetes/uui/values.yaml
+++ b/kubernetes/uui/values.yaml
@@ -64,6 +64,12 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: uui
+      name: "uui"
+      port: 8080
+  config:
+    ssl: "none"
 
   # We usually recommend not to specify default resources and to leave this as a conscious
   # choice for the user. This also increases chances charts run on environments with little
diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml
index d1e1b04..68696fb 100644
--- a/kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml
+++ b/kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml
@@ -14,6 +14,7 @@
 # limitations under the License.
 */}}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -31,6 +32,8 @@
   accessModes:
     - {{ .Values.persistence.accessMode }}
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml
index 74ba690..d3d5d9e 100644
--- a/kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml
+++ b/kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml
@@ -29,19 +29,10 @@
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/Chart.yaml b/kubernetes/vid/charts/vid-mariadb-galera/Chart.yaml
deleted file mode 100644
index 0419147..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/Chart.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-description: ONAP VID MariaDB Galera cluster
-name: vid_mariadb_galera
-version: 5.0.0
-keywords:
-  - mariadb
-  - mysql
-  - database
-  - sql
-  - galera
-  - cluster
\ No newline at end of file
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/NOTES.txt b/kubernetes/vid/charts/vid-mariadb-galera/templates/NOTES.txt
deleted file mode 100644
index c44fa89..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/NOTES.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-MariaDB-Galera service can be accessed via port 3306 on the following DNS name from within your cluster:
-{{ include "common.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
-
-To connect to your database:
-
-1. Run a pod that you can use as a client:
-
-    kubectl run {{ include "common.fullname" . }}-client --rm --tty -i --image mariadb --command -- bash
-
-2. Connect using the mysql cli, then provide your password:
-    $ mysql -h {{ include "common.fullname" . }} {{- if .Values.mysqlRootPassword }} -p {{ .Values.mysqlRootPassword }}{{- end -}}
-
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/configmap.yaml b/kubernetes/vid/charts/vid-mariadb-galera/templates/configmap.yaml
deleted file mode 100644
index ba6adc0..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/configmap.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-confd
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
----
-{{- if .Values.externalConfig }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-externalconfig
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-  my_extra.cnf: |-
-   [mysqld]
-   lower_case_table_names = 1
-
-#{{ toYaml .Values.externalConfig | indent 4 }}
-#{{- end -}}
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/pvc.yaml b/kubernetes/vid/charts/vid-mariadb-galera/templates/pvc.yaml
deleted file mode 100644
index c3de6e8..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/pvc.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  selector:
-    matchLabels:
-      name: {{ include "common.fullname" . }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/secrets.yaml b/kubernetes/vid/charts/vid-mariadb-galera/templates/secrets.yaml
deleted file mode 100644
index 233158f..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/secrets.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-type: Opaque
-data:
-  db-root-password: {{ .Values.config.mariadbRootPassword | b64enc | quote }}
-  user-password: {{ default "" .Values.config.userPassword | b64enc | quote }}
\ No newline at end of file
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/service.yaml b/kubernetes/vid/charts/vid-mariadb-galera/templates/service.yaml
deleted file mode 100644
index ae11a26..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/service.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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: v1
-kind: Service
-metadata:
-  annotations:
-    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
-#  name: {{ include "common.servicename" . }}
-  name: {{ .Values.service.name }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-spec:
-  ports:
-    - name: {{ .Values.service.portName }}
-      port: {{ .Values.service.internalPort }}
-  clusterIP: None
-  selector:
-    app: {{ include "common.fullname" . }}
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/templates/statefulset.yaml b/kubernetes/vid/charts/vid-mariadb-galera/templates/statefulset.yaml
deleted file mode 100644
index e90b156..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/templates/statefulset.yaml
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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/v1beta1
-kind: StatefulSet
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-spec:
-#  serviceName: {{ include "common.fullname" . }}
-  serviceName: {{ .Values.service.name }}
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.fullname" . }}
-        release: {{ .Release.Name }}
-      annotations:
-        pod.alpha.kubernetes.io/initialized: "true"
-    spec:
-    {{- if .Values.nodeSelector }}
-      nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 8 }}
-    {{- end }}
-      volumes:
-      {{- if .Values.externalConfig }}
-        - name: config
-          configMap:
-            name: {{ include "common.fullname" . }}-externalconfig
-      {{- end}}
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-      imagePullSecrets:
-      - name: {{ include "common.namespace" . }}-docker-registry-key
-      containers:
-        - name: {{ include "common.fullname" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
-          env:
-            - name: POD_NAMESPACE
-              valueFrom:
-                fieldRef:
-                  apiVersion: v1
-                  fieldPath: metadata.namespace
-            - name: MYSQL_USER
-              value: {{ default "" .Values.config.userName | quote }}
-            - name: MYSQL_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: user-password
-            - name: MYSQL_DATABASE
-              value: {{ default "" .Values.config.mysqlDatabase | quote }}
-            - name: MYSQL_ROOT_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: db-root-password
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-            name: {{ .Values.service.name }}
-          - containerPort: {{ .Values.service.sstPort }}
-            name: {{ .Values.service.sstName }}
-          - containerPort: {{ .Values.service.replicationPort }}
-            name: {{ .Values.service.replicationName }}
-          - containerPort: {{ .Values.service.istPort }}
-            name: {{ .Values.service.istName }}
-          readinessProbe:
-            exec:
-              command:
-              - /usr/share/container-scripts/mysql/readiness-probe.sh
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-      {{- if eq .Values.liveness.enabled true }}
-          livenessProbe:
-            exec:
-              command: ["mysqladmin", "ping"]
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-            timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
-      {{- end }}
-          resources:
-{{ include "common.resources" . | indent 12 }}
-          volumeMounts:
-        {{- if .Values.externalConfig }}
-          - mountPath: /etc/config
-            name: config
-        {{- end}}
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-{{- if .Values.persistence.enabled }}
-          - mountPath: /var/lib/mysql
-            name: {{ include "common.fullname" . }}-data
-            subPath: data
-      initContainers:
-        - name: mariadb-galera-prepare
-          image: "{{ include "common.repository" . }}/{{ .Values.imageInit }}"
-          command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"]
-          volumeMounts:
-            - name: {{ include "common.fullname" . }}-data
-              mountPath: /var/lib/mysql
-  volumeClaimTemplates:
-  - metadata:
-      name: {{ include "common.fullname" . }}-data
-      labels:
-        name: {{ include "common.fullname" . }}
-      annotations:
-  {{- if .Values.persistence.storageClass }}
-        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass | quote }}
-  {{- else }}
-        volume.alpha.kubernetes.io/storage-class: default
-  {{- end }}
-    spec:
-      accessModes:
-      - {{ .Values.persistence.accessMode | quote }}
-      resources:
-        requests:
-          storage: {{ .Values.persistence.size | quote }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}
-{{- end }}
diff --git a/kubernetes/vid/charts/vid-mariadb-galera/values.yaml b/kubernetes/vid/charts/vid-mariadb-galera/values.yaml
deleted file mode 100644
index e0da745..0000000
--- a/kubernetes/vid/charts/vid-mariadb-galera/values.yaml
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright © 2018 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 302
-  persistence: {}
-  repository: nexus3.onap.org:10001
-
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-
-#repository: mysql
-repository: nexus3.onap.org:10001
-image: adfinissygroup/k8s-mariadb-galera-centos:v004
-imageInit: busybox
-pullPolicy: IfNotPresent
-
-# application configuration
-config:
-  mariadbRootPassword: secretpassword
-#  userName: my-user
-#  userPassword: my-password
-#  mysqlDatabase: my-database
-  userName: vidadmin
-  userPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
-  mysqlDatabase: vid_openecomp_epsdk
-
-
-# default number of instances in the StatefulSet
-replicaCount: 2
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 30
-  periodSeconds: 10
-  timeoutSeconds: 5
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: false
-
-readiness:
-  initialDelaySeconds: 15
-  periodSeconds: 10
-
-## Persist data to a persitent volume
-persistence:
-  enabled: false
-
-  ## A manually managed Persistent Volume and Claim
-  ## Requires persistence.enabled: true
-  ## If defined, PVC must be created manually before volume will be bound
-  # existingClaim:
-  volumeReclaimPolicy: Retain
-
-  ## database data Persistent Volume Storage Class
-  ## If defined, storageClassName: <storageClass>
-  ## If set to "-", storageClassName: "", which disables dynamic provisioning
-  ## If undefined (the default) or set to null, no storageClassName spec is
-  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
-  ##   GKE, AWS & OpenStack)
-  ##
-  # storageClass: "-"
-  accessMode: ReadWriteOnce
-  size: 2Gi
-
-
-service:
-  internalPort: 3306
-  name: vid-galera
-  portName: vid-galera
-  sstPort: 4444
-  sstName: sst
-  replicationPort: 4567
-  replicationName: replication
-  istPort: 4568
-  istName: ist
-
-ingress:
-  enabled: false
-
-
-## Configure MariaDB-Galera with a custom my.cnf file
-## ref: https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/#example-of-configuration-file
-##
-#externalConfig: {}
-externalConfig: |-
-  lower_case_table_names = 1
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      cpu: 10m
-      memory: 1Gi
-    requests:
-      cpu: 10m
-      memory: 500Mi
-  large:
-    limits:
-      cpu: 20m
-      memory: 2Gi
-    requests:
-      cpu: 20m
-      memory: 1Gi
-  unlimited: {}
-# Name for mariadb-galera cluster - should be unique accross all projects or other clusters
-nameOverride: vid-mariadb-galera
-
-# DNS name for mariadb-galera cluster - should be unique accross all projects other clusters
-#dnsnameOverride: mariadb-galera
diff --git a/kubernetes/vid/requirements.yaml b/kubernetes/vid/requirements.yaml
index 6a748be..6e5fe9d 100644
--- a/kubernetes/vid/requirements.yaml
+++ b/kubernetes/vid/requirements.yaml
@@ -19,3 +19,6 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: mariadb-galera
+    version: ~5.x-0
+    repository: '@local'
diff --git a/kubernetes/vid/templates/deployment.yaml b/kubernetes/vid/templates/deployment.yaml
index 9221af7..2c6c5fa 100644
--- a/kubernetes/vid/templates/deployment.yaml
+++ b/kubernetes/vid/templates/deployment.yaml
@@ -101,15 +101,18 @@
             - name: VID_UEB_URL_LIST
               value: message-router.{{ include "common.namespace" . }}
             - name: VID_MYSQL_HOST
-              value: "{{ .Values.config.vidmysqlhost }}"
+              value: {{ index .Values "mariadb-galera" "service" "name" }}
             - name: VID_MYSQL_PORT
-              value: "{{ .Values.config.vidmysqlport }}"
+              value: "{{ index .Values "mariadb-galera" "service" "internalPort" }}"
             - name: VID_MYSQL_DBNAME
-              value: "{{ .Values.config.vidmysqldbname }}"
+              value: {{ index .Values "mariadb-galera" "config" "mysqlDatabase" }}
             - name: VID_MYSQL_USER
-              value: "{{ .Values.config.vidmysqluser }}"
+              value: {{ index .Values "mariadb-galera" "config" "userName" }}
             - name: VID_MYSQL_PASS
-              value: "{{ .Values.config.vidmysqlpassword }}"
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "common.fullname" . }}-db
+                  key: db-user-password
               #valueFrom:
               #  secretKeyRef: {name: {{ include "common.fullname" . }}, key: vid-password}
             - name: VID_MYSQL_MAXCONNECTIONS
@@ -166,4 +169,3 @@
             name: {{ include "common.fullname" . }}-log-configmap
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
-
diff --git a/kubernetes/vid/templates/ingress.yaml b/kubernetes/vid/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/vid/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/vid/templates/job.yaml b/kubernetes/vid/templates/job.yaml
index 5214e71..c2a1858 100644
--- a/kubernetes/vid/templates/job.yaml
+++ b/kubernetes/vid/templates/job.yaml
@@ -34,11 +34,8 @@
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /root/ready.py
-{{- $fullname := include "common.fullname" . -}}
-{{- range $i,$t := until (int .Values.vid_mariadb_galera.replicaCount)}}
         - --container-name
-        - {{ $fullname }}-mariadb-galera-{{$i}}
-{{- end }}
+        - {{ index .Values "mariadb-galera" "service" "name" }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -63,13 +60,16 @@
         - /dbcmd-config/db_cmd.sh
         env:
         - name: MYSQL_PASSWORD
-          value: "{{ .Values.config.vidmysqlpassword }}"
+          valueFrom:
+            secretKeyRef:
+              name: {{ template "common.fullname" . }}-db
+              key: db-user-password
         - name: MYSQL_HOST
-          value: "{{ .Values.config.vidmysqlhost }}"
+          value: {{ index .Values "mariadb-galera" "service" "name" }}
         - name: MYSQL_USER
-          value: "{{ .Values.config.vidmysqluser }}"
+          value: {{ index .Values "mariadb-galera" "config" "userName" }}
         - name: MYSQL_PORT
-          value: "{{ .Values.config.vidmysqlport }}"
+          value: "{{ index .Values "mariadb-galera" "service" "internalPort" }}"
       restartPolicy: Never
       volumes:
         - name: {{ include "common.fullname" . }}-config
@@ -80,4 +80,3 @@
                 path: db_cmd.sh
               - key: vid-pre-init.sql
                 path: vid-pre-init.sql
-
diff --git a/kubernetes/vid/templates/secrets.yaml b/kubernetes/vid/templates/secrets.yaml
index 222a3d5..e0c1992 100644
--- a/kubernetes/vid/templates/secrets.yaml
+++ b/kubernetes/vid/templates/secrets.yaml
@@ -39,3 +39,18 @@
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/certs/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-db
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+type: Opaque
+data:
+  db-user-password: {{ index .Values "mariadb-galera" "config" "userPassword" | b64enc | quote }}
+  db-root-password: {{ index .Values "mariadb-galera" "config" "mariadbRootPassword" | b64enc | quote }}
diff --git a/kubernetes/vid/values.yaml b/kubernetes/vid/values.yaml
index 6100277..af39823 100644
--- a/kubernetes/vid/values.yaml
+++ b/kubernetes/vid/values.yaml
@@ -18,7 +18,7 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.1
+  readinessImage: readiness-check:2.0.2
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
@@ -47,19 +47,29 @@
   vidmsopass: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz
   msodme2serverurl: http://localhost:8081
   vidcontactuslink: https://todo_contact_us_link.com
-  vidmysqlhost: vid-galera
-  vidmysqlport: "3306"
-  vidmysqldbname: vid_openecomp_epsdk
-  vidmysqluser: vidadmin
   vidmysqlmaxconnections: "5"
   logstashServiceName: log-ls
   logstashPort: 5044
   roleaccesscentralized: remote
 
-# subchart configuration
-vid_mariadb_galera:
-#  nameOverride: vid-mariadb-galera
-  replicaCount: 1
+mariadb-galera:
+  config:
+    userName: vidadmin
+    userPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+    mariadbRootPassword: kjgsdhjqhawxvnbpoiawsfgjsqhsgjhjhdqihhjqdvcbxkjchizpw
+    mysqlDatabase: vid_openecomp_epsdk
+  nameOverride: vid-galera
+  service:
+    name: vid-galera
+    portName: mysql-vid
+    internalPort: "3306"
+  replicaCount: 3
+  persistence:
+    enabled: true
+    mountSubPath: vid/maria/data
+  externalConfig: |-
+    [mysqld]
+    lower_case_table_names = 1
 
 # default number of instances
 replicaCount: 1
@@ -92,6 +102,12 @@
 
 ingress:
   enabled: false
+  service:
+       - baseaddr: "vid"
+         name: "vid-http"
+         port: 8080
+  config:
+       ssl: "none"
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/vnfsdk/templates/ingress.yaml b/kubernetes/vnfsdk/templates/ingress.yaml
new file mode 100644
index 0000000..8f87c68
--- /dev/null
+++ b/kubernetes/vnfsdk/templates/ingress.yaml
@@ -0,0 +1 @@
+{{ include "common.ingress" . }}
diff --git a/kubernetes/vnfsdk/values.yaml b/kubernetes/vnfsdk/values.yaml
index 2b6fd99..55f81ac 100644
--- a/kubernetes/vnfsdk/values.yaml
+++ b/kubernetes/vnfsdk/values.yaml
@@ -113,3 +113,9 @@
 
 ingress:
   enabled: false
+  service:
+    - baseaddr: "refrepo"
+      name: "refrepo"
+      port: 97
+  config:
+    ssl: "none"