Merge "Give user link to submodule instructions"
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-aaf.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-aaf.yaml
new file mode 100644
index 0000000..9b71b93
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-aaf.yaml
@@ -0,0 +1,54 @@
+{{/*
+  # ============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 }}
+{{- $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" $global }}-aaf-props-{{ $i }}
+  namespace: {{ include "common.namespace" $global }}
+  labels:
+    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 }}-aaf-props
+spec:
+  capacity:
+    storage: {{ $global.Values.persistence.aafCredsSize }}
+  accessModes:
+    - {{ $global.Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" $global }}-data-aaf-props"
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.aafCredsMountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-event.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-event.yaml
new file mode 100644
index 0000000..1dd7302
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-event.yaml
@@ -0,0 +1,51 @@
+{{/*
+  # ============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=========================================================
+*/}}
+
+---
+{{- $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 }}-event-logs-{{ $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 }}-event-logs
+spec:
+  capacity:
+    storage: {{ $global.Values.persistence.eventLogSize}}
+  accessModes:
+    - {{ $global.Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
+  storageClassName: "{{ include "common.fullname" $global }}-data-event-logs"
+  hostPath:
+    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.eventLogsMountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-spool.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-spool.yaml
new file mode 100644
index 0000000..5e1c339
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv-spool.yaml
@@ -0,0 +1,50 @@
+{{/*
+  # ============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=========================================================
+*/}}
+
+{{- $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 }}-spool-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 }}-spool-data
+spec:
+  capacity:
+    storage: {{ $global.Values.persistence.spoolSize}}
+  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.spoolMountSubPath }}-{{$i}}
+{{if ne $i (int $global.Values.replicaCount) }}
+---
+{{- end -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml
deleted file mode 100644
index 90a9c2c..0000000
--- a/kubernetes/dmaap/components/dmaap-dr-node/templates/pv.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
-{{/*
-  # ============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=========================================================
-*/}}
-
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-spool-data-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" . }}-spool-data-pv
-spec:
-  capacity:
-    storage: {{ .Values.persistence.spoolSize }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-spool-data-stcl"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.spoolMountSubPath }}
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-event-logs-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" . }}-event-logs-pv
-spec:
-  capacity:
-    storage: {{ .Values.persistence.eventLogSize }}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-event-logs-stcl"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    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 9dd5f20..7ab2f83 100644
--- a/kubernetes/dmaap/components/dmaap-dr-node/templates/statefulset.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/statefulset.yaml
@@ -51,7 +51,7 @@
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           volumeMounts:
           - mountPath: {{ .Values.persistence.aafCredsPath }}
-            name: {{ include "common.fullname" . }}-aaf-props-pvc
+            name: {{ include "common.fullname" . }}-aaf-props
           command: ["bash","-c","exec /opt/app/aaf_config/bin/agent.sh"]
           env:
           - name: APP_FQI
@@ -82,12 +82,12 @@
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           volumeMounts:
           - mountPath: {{ .Values.persistence.spoolPath }}
-            name: {{ include "common.fullname" . }}-spool-data-pvc
+            name: {{ include "common.fullname" . }}-data
           - mountPath: {{ .Values.persistence.eventLogsPath }}
-            name: {{ include "common.fullname" . }}-event-logs-pvc
+            name: {{ include "common.fullname" . }}-event-logs
         {{- if .Values.global.aafEnabled }}
           - mountPath: {{ .Values.persistence.aafCredsPath }}
-            name: {{ include "common.fullname" . }}-aaf-props-pvc
+            name: {{ include "common.fullname" . }}-aaf-props
         {{- end }}
           command: ["chown","-Rf","1000:1001", "/opt/app/"]
       containers:
@@ -112,12 +112,12 @@
           volumeMounts:
           {{- if .Values.global.aafEnabled }}
           - mountPath: {{ .Values.persistence.aafCredsPath }}
-            name: {{ include "common.fullname" . }}-aaf-props-pvc
+            name: {{ include "common.fullname" . }}-aaf-props
           {{- end }}
           - mountPath: {{ .Values.persistence.spoolPath }}
-            name: {{ include "common.fullname" . }}-spool-data-pvc
+            name: {{ include "common.fullname" . }}-data
           - mountPath: {{ .Values.persistence.eventLogsPath }}
-            name: {{ include "common.fullname" . }}-event-logs-pvc
+            name: {{ include "common.fullname" . }}-event-logs
           - mountPath: /etc/localtime
             name: localtime
             readOnly: false
@@ -171,53 +171,61 @@
             name: {{ include "common.fullname" . }}-dmaap-dr-node-filebeat-configmap
         - name: {{ include "common.fullname" . }}-data-filebeat
           emptyDir: {}
+        - name:  {{ include "common.fullname" . }}-logs
+          emptyDir: {}
+      {{- if not .Values.persistence.enabled }}
         - name:  {{ include "common.fullname" . }}-event-logs-pvc
           emptyDir: {}
-        - name:  {{ include "common.fullname" . }}-logs
+        - name: {{ include "common.fullname" . }}-data
           emptyDir: {}
       {{- if .Values.global.aafEnabled }}
         - name:  {{ include "common.fullname" . }}-aaf-props-pvc
           emptyDir: {}
       {{- end }}
+      {{- end }}
+{{- if .Values.persistence.enabled }}
   volumeClaimTemplates:
   - metadata:
-      name: {{ include "common.fullname" . }}-spool-data-pvc
+      name: {{ include "common.fullname" . }}-data
       labels:
         name: {{ include "common.fullname" . }}
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-spool-data-stcl
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           storage: {{ .Values.persistence.spoolSize }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}-spool-data-pv
   - metadata:
-      name: {{ include "common.fullname" . }}-event-logs-pvc
+      name: {{ include "common.fullname" . }}-event-logs
       labels:
         name: {{ include "common.fullname" . }}
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-event-logs-stcl
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      {{- if eq "True" (include "common.needPV" .) }}
+      storageClassName: "{{ include "common.fullname" . }}-data-event-logs"
+      {{- else }}
+      storageClassName: {{ include "common.storageClass" . }}
+      {{- end }}
       resources:
         requests:
           storage: {{ .Values.persistence.eventLogSize }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}-event-logs-pv
 {{- if .Values.global.aafEnabled }}
   - metadata:
-      name: {{ include "common.fullname" . }}-aaf-props-pvc
+      name: {{ include "common.fullname" . }}-aaf-props
       labels:
         name: {{ include "common.fullname" . }}
     spec:
-      accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-aaf-props-stcl
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      {{- if eq "True" (include "common.needPV" .) }}
+      storageClassName: "{{ include "common.fullname" . }}-data-aaf-props"
+      {{- else }}
+      storageClassName: {{ include "common.storageClass" . }}
+      {{- end }}
       resources:
         requests:
           storage: {{ .Values.persistence.aafCredsSize }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}-aaf-props-pv
+{{- end }}
 {{- end }}
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
index a1d148d..52ac9eb 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
@@ -162,8 +162,12 @@
         emptyDir: {}
       {{- if .Values.global.aafEnabled }}
       - name: {{ include "common.fullname" . }}-aaf-config-vol
+        {{- if .Values.persistence.enabled }}
         persistentVolumeClaim:
           claimName: {{ include "common.fullname" . }}-aaf-props
-      {{ end }}
+        {{- else }}
+        emptyDir: {}
+        {{- end }}
+      {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml
index b82e676..fba1bf9 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml
@@ -18,6 +18,8 @@
   # ============LICENSE_END=========================================================
 */}}
 {{- if .Values.global.aafEnabled }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
@@ -34,8 +36,10 @@
     storage: {{ .Values.persistence.aafCredsSize}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-aaf-props-stcl"
+  storageClassName: "{{ include "common.fullname" . }}-data"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.aafCredsMountSubPath }}
 {{ end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml
index 6ff9e6d..b75daf5 100644
--- a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml
+++ b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml
@@ -18,6 +18,7 @@
   # ============LICENSE_END=========================================================
 */}}
 {{- if .Values.global.aafEnabled }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
@@ -33,13 +34,11 @@
 {{ 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"
+  storageClassName: {{ include "common.storageClass" . }}
   resources:
     requests:
       storage: {{ .Values.persistence.aafCredsSize }}
-{{ end -}}
\ No newline at end of file
+{{ end -}}
+{{ end -}}
diff --git a/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/pv.yaml b/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/pv.yaml
index 44c9576..3dca738 100644
--- a/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/pv.yaml
+++ b/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/pv.yaml
@@ -12,28 +12,30 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{- $root := . -}}
+{{- $global := . -}}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{ range $i, $e := until (atoi (quote $global.Values.replicaCount) | default 3) }}
 ---
 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:
-    app: {{ $root.Values.service.name }}
-    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
-    release: {{ $root.Release.Name }}
-    heritage: {{ $root.Release.Service }}
+    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 }}
+    - {{ $global.Values.persistence.accessMode }}
+  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 }}
+    path: {{ $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{ $i }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
 {{ end }}
 {{ end }}
-
+{{ end }}
diff --git a/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/statefulset.yaml b/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/statefulset.yaml
index 3be8d5d..104a46b 100644
--- a/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/statefulset.yaml
+++ b/kubernetes/dmaap/components/message-router/charts/message-router-kafka/templates/statefulset.yaml
@@ -187,15 +187,10 @@
       spec:
         accessModes:
           - {{ .Values.persistence.accessMode | quote }}
+        storageClassName: {{ include "common.storageClass" . }}
         resources:
           requests:
             storage: {{ .Values.persistence.size | quote }}
-        selector:
-          matchLabels:
-            release: "{{ .Release.Name }}"
-            app: {{ .Values.service.name }}
-            chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-            heritage: "{{ .Release.Service }}"
 {{ end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/pv.yaml b/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/pv.yaml
index 44c9576..3dca738 100644
--- a/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/pv.yaml
+++ b/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/pv.yaml
@@ -12,28 +12,30 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{- $root := . -}}
+{{- $global := . -}}
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+{{ range $i, $e := until (atoi (quote $global.Values.replicaCount) | default 3) }}
 ---
 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:
-    app: {{ $root.Values.service.name }}
-    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
-    release: {{ $root.Release.Name }}
-    heritage: {{ $root.Release.Service }}
+    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 }}
+    - {{ $global.Values.persistence.accessMode }}
+  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 }}
+    path: {{ $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}-{{ $i }}
+  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
 {{ end }}
 {{ end }}
-
+{{ end }}
diff --git a/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/statefulset.yaml b/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/statefulset.yaml
index df17ca8..17b87f8 100644
--- a/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/statefulset.yaml
+++ b/kubernetes/dmaap/components/message-router/charts/message-router-zookeeper/templates/statefulset.yaml
@@ -133,17 +133,10 @@
       spec:
         accessModes:
           - {{ .Values.persistence.accessMode | quote }}
+        storageClassName: {{ include "common.storageClass" . }}
         resources:
           requests:
             storage: {{ .Values.persistence.size | quote }}
-        selector:
-          matchLabels:
-            release: "{{ .Release.Name }}"
-            app: {{ .Values.service.name }}
-            chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-            heritage: "{{ .Release.Service }}"
 {{ end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
-
-
diff --git a/kubernetes/nbi/templates/deployment.yaml b/kubernetes/nbi/templates/deployment.yaml
index 4ba28b0..7f9220d 100644
--- a/kubernetes/nbi/templates/deployment.yaml
+++ b/kubernetes/nbi/templates/deployment.yaml
@@ -93,7 +93,7 @@
               value: {{ .Values.so_authorization }}
             {{- end }}
             - name: DMAAP_HOST
-              value: "http://message-router.{{ include "common.namespace" . }}:3904"
+              value: "https://message-router.{{ include "common.namespace" . }}:3905"
             - name: LOGGING_LEVEL_ORG_ONAP_NBI
               value: {{ .Values.config.loglevel }}
             - name: MSB_ENABLED
diff --git a/kubernetes/onap/resources/environments/minimal-onap.yaml b/kubernetes/onap/resources/environments/minimal-onap.yaml
index 989174c..336e937 100644
--- a/kubernetes/onap/resources/environments/minimal-onap.yaml
+++ b/kubernetes/onap/resources/environments/minimal-onap.yaml
@@ -13,10 +13,10 @@
 # limitations under the License.
 
 
-# This override file is used to deploy a minmal configuration to
-# to onboard and deploy a VNF.
+# This override file is used to deploy a minimal configuration to
+# onboard and deploy a VNF.
 # It includes the following components:
-# A&AI, DMAAP, Portal, Robot, SDC, SDNC, SO, VID
+# A&AI, Cassandra, DMAAP, Portal, Robot, SDC, SDNC, SO, VID
 #
 # Minimal resources are also reviewed for the various containers
 # A&AI: no override => to be fixed
@@ -52,7 +52,7 @@
 appc:
   enabled: false
 cassandra:
-  enabled: false
+  enabled: true
   replicaCount: 1
 clamp:
   enabled: false
diff --git a/kubernetes/sdc/charts/sdc-fe/values.yaml b/kubernetes/sdc/charts/sdc-fe/values.yaml
index a435b59..c6f39f9 100644
--- a/kubernetes/sdc/charts/sdc-fe/values.yaml
+++ b/kubernetes/sdc/charts/sdc-fe/values.yaml
@@ -38,8 +38,8 @@
     dcae_source_url: "https://sdc.dcae.plugin.simpledemo.onap.org:30264/dcaed/#/home"
     dcae_dt_discovery_url: "https://sdc-dcae-dt:9446/dcae/#/dcae/home"
     dcae_dt_source_url: "https://sdc.dcae.plugin.simpledemo.onap.org:30266/dcae/#/dcae/home"
-    workflow_discovery_url: "http://sdc-wfd-fe:8080/workflows"
-    workflow_source_url: "https://sdc.workflow.plugin.simpledemo.onap.org:30431/workflows/"
+    workflow_discovery_url: "https://sdc-wfd-fe:8443/workflows"
+    workflow_source_url: "https://sdc.workflow.plugin.simpledemo.onap.org:30256/workflows/"
 
 # default number of instances
 replicaCount: 1
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/templates/_helper.tpl b/kubernetes/sdc/charts/sdc-wfd-be/templates/_helper.tpl
index c69fb7c..298a2cd 100644
--- a/kubernetes/sdc/charts/sdc-wfd-be/templates/_helper.tpl
+++ b/kubernetes/sdc/charts/sdc-wfd-be/templates/_helper.tpl
@@ -1,29 +1 @@
-{{- define "sdc-wfd-be.volumes" }}
-    {{ if .Values.config.cassandraSSLEnabled }}
-    - name: {{ include "common.fullname" . }}-cassandra-client-truststore
-      hostPath:
-        path: /etc/cassandra-client-truststore/truststore
-        type: File
-    {{- end }}
-    {{ if .Values.config.serverSSLEnabled }}
-    - name: {{ include "common.fullname" . }}-server-https-keystore
-      hostPath:
-        path: /config/server-https-keystore/keystore
-        type: File
-    {{- end }}
-{{- end }}
-
-{{- define "sdc-wfd-be.volumeMounts" }}
-    {{ if .Values.config.cassandraSSLEnabled }}
-    - name: {{ include "common.fullname" . }}-cassandra-client-truststore
-      mountPath: /etc/cassandra-client-truststore/truststore
-      subPath: truststore
-      readOnly: true
-    {{- end }}
-    {{ if .Values.config.serverSSLEnabled }}
-    - name: {{ include "common.fullname" . }}-server-https-keystore
-      mountPath: /etc/server-https-keystore/keystore
-      subPath: keystore
-      readOnly: true
-    {{- end }}
-{{- end }}
\ No newline at end of file
+{{- define "wfd-be.internalPort" }}{{ if .Values.config.serverSSLEnabled }}{{ .Values.service.internalPort2 }}{{ else }}{{ .Values.service.internalPort }}{{ end }}{{- end }}
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml
index 31ab7d5..00a986f 100644
--- a/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-be/templates/deployment.yaml
@@ -53,20 +53,19 @@
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          - containerPort: {{ .Values.service.internalPort2 }}
+          - containerPort: {{ template "wfd-be.internalPort" . }}
           # disable liveness probe when breakpoints set in debugger
           # so K8s doesn't restart unresponsive container
           {{ if .Values.liveness.enabled }}
           livenessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort2 }}
+              port: {{ template "wfd-be.internalPort" . }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
           {{ end }}
           readinessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort2 }}
+              port: {{ template "wfd-be.internalPort" . }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
@@ -89,7 +88,8 @@
           - name: CS_TRUST_STORE_PATH
             value: "{{ .Values.config.cassandraTrustStorePath }}"
           - name: CS_TRUST_STORE_PASSWORD
-            value: "{{ .Values.config.cassandraTrustStorePassword }}"
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_truststore_password}
           - name: SDC_PROTOCOL
             value: "{{ .Values.config.sdcProtocol }}"
           - name: SDC_ENDPOINT
@@ -97,7 +97,8 @@
           - name: SDC_USER
             value: "{{ .Values.config.sdcExternalUser }}"
           - name: SDC_PASSWORD
-            value: "{{ .Values.config.sdcExternalUserPassword }}"
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: wf_external_user_password}
           - name: SERVER_SSL_ENABLED
             value: "{{ .Values.config.serverSSLEnabled }}"
           - name: SERVER_SSL_KEYSTORE_TYPE
@@ -105,10 +106,14 @@
           - name: SERVER_SSL_KEYSTORE_PATH
             value: "{{ .Values.config.serverSSLKeyStorePath }}"
           - name: SERVER_SSL_KEY_PASSWORD
-            value: "{{ .Values.config.serverSSLKeyPassword }}"
-          volumeMounts:
-            {{- template "sdc-wfd-be.volumeMounts" . }}
-      volumes:
-        {{- template "sdc-wfd-be.volumes" . }}
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: keystore_password}
+          - name: SERVER_SSL_TRUSTSTORE_TYPE
+            value: "{{ .Values.config.serverSSLTrustStoreType }}"
+          - name: SERVER_SSL_TRUSTSTORE_PATH
+            value: "{{ .Values.config.serverSSLTrustStorePath }}"
+          - name: SERVER_SSL_TRUST_PASSWORD
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: truststore_password}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/templates/service.yaml b/kubernetes/sdc/charts/sdc-wfd-be/templates/service.yaml
index 14a937f..fee95ba 100644
--- a/kubernetes/sdc/charts/sdc-wfd-be/templates/service.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-be/templates/service.yaml
@@ -28,13 +28,13 @@
   type: {{ .Values.service.type }}
   ports:
     {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.internalPort }}
+    - port: {{ template "wfd-be.internalPort" . }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName | default "http" }}
+      name: {{ .Values.service.portName }}
     {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName | default "http" }}
+    - port: {{ if .Values.config.serverSslEnabled }}{{ .Values.service.externalPort2 }}{{ else }}{{ .Values.service.externalPort }}{{ end }}
+      targetPort: {{ template "wfd-be.internalPort" . }}
+      name: {{ .Values.service.portName }}
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
diff --git a/kubernetes/sdc/charts/sdc-wfd-be/values.yaml b/kubernetes/sdc/charts/sdc-wfd-be/values.yaml
index 92903ba..68f4876 100644
--- a/kubernetes/sdc/charts/sdc-wfd-be/values.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-be/values.yaml
@@ -28,13 +28,10 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-backend:1.5.2
-configInitImage: onap/workflow-init:1.5.2
+image: onap/workflow-backend:1.6.0
+configInitImage: onap/workflow-init:1.6.0
 pullPolicy: Always
 
-# flag to enable debugging - application support required
-debugEnabled: false
-
 initJob:
   enabled: true
 
@@ -43,17 +40,21 @@
   cassandraAuthenticationEnabled: true
   cassandraThriftClientPort: 9160
   cassandraClientPort: 9042
+
   sdcProtocol: HTTPS
   sdcEndpoint: sdc-be:8443
   sdcExternalUser: workflow
-  sdcExternalUserPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
-  serverSSLEnabled: false
+
+  serverSSLEnabled: true
+
   serverSSLKeyStoreType: jks
-  serverSSLKeyStorePath: etc/org.onap.sdc.p12
-  serverSSLKeyPassword: "!ppJ.JvWn0hGh)oVF]([Kv)^"
+  serverSSLKeyStorePath: /etc/keystore
+
+  serverSSLTrustStoreType: jks
+  serverSSLTrustStorePath: /etc/truststore
+
   cassandraSSLEnabled: false
-  cassandraTrustStorePath: /etc/cassandra-client-truststore/truststore
-  cassandraTrustStorePassword: password
+  cassandraTrustStorePath: /etc/truststore
 
 # default number of instances
 replicaCount: 1
@@ -76,12 +77,13 @@
 
 service:
   type: NodePort
+  portName: sdc-wfd-be
   internalPort: 8080
   externalPort: 8080
   internalPort2: 8443
   externalPort2: 8443
-  portName: sdc-wfd-be
-  nodePort: "57"
+  nodePort: "57" # only one node port. set to http or https port depending on isHttpsEnabled property
+
 
 ingress:
   enabled: false
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/templates/_helper.tpl b/kubernetes/sdc/charts/sdc-wfd-fe/templates/_helper.tpl
new file mode 100644
index 0000000..546bab7
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-wfd-fe/templates/_helper.tpl
@@ -0,0 +1 @@
+{{- define "wfd-fe.internalPort" }}{{ if .Values.config.isHttpsEnabled }}{{ .Values.service.internalPort2 }}{{ else }}{{ .Values.service.internalPort }}{{ end }}{{- end }}
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml
index 1daee71..08ecaa6 100644
--- a/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-fe/templates/deployment.yaml
@@ -50,18 +50,17 @@
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          - containerPort: {{ .Values.service.internalPort2 }}
+          - containerPort: {{ template "wfd-fe.internalPort" . }}
           {{ if .Values.liveness.enabled }}
           livenessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+              port: {{ template "wfd-fe.internalPort" . }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
           {{ end }}
           readinessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+              port: {{ template "wfd-fe.internalPort" . }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
@@ -75,13 +74,17 @@
             value: "{{ .Values.config.isHttpsEnabled}}"
             {{ if and .Values.config.isHttpsEnabled (eq .Values.security.isDefaultStore false) }}
           - name: KEYSTORE_PASS
-            value: "{{ .Values.security.keystorePass}}"
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: keystore_password}
           - name: TRUSTSTORE_PASS
-            value: "{{ .Values.security.truststorePass}}"
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: truststore_password}
           - name: TRUSTSTORE_PATH
             value: "{{ .Values.security.storePath }}/{{ .Values.security.truststoreFilename }}"
           - name: KEYSTORE_PATH
             value: "{{ .Values.security.storePath }}/{{ .Values.security.keystoreFilename }}"
+          - name: TRUST_ALL
+            value: "{{ .Values.config.isTrustAll}}"
             {{ end }}
           volumeMounts:
           - name: {{ include "common.fullname" . }}-localtime
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/templates/service.yaml b/kubernetes/sdc/charts/sdc-wfd-fe/templates/service.yaml
index 87ca360..d8a1055 100644
--- a/kubernetes/sdc/charts/sdc-wfd-fe/templates/service.yaml
+++ b/kubernetes/sdc/charts/sdc-wfd-fe/templates/service.yaml
@@ -29,7 +29,7 @@
           "version": "v1",
           "url": "/",
           "protocol": "UI",
-          "port": "{{ .Values.service.internalPort }}",
+          "port": "{{ .Values.service.internalPort2 }}",
           "visualRange":"0|1"
       }
       ]'
@@ -37,19 +37,13 @@
   type: {{ .Values.service.type }}
   ports:
     {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.internalPort }}
+    - port: {{ template "wfd-fe.internalPort" . }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName | default "http" }}
-    - port: {{ .Values.service.internalPort2 }}
-      nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.nodePort2 }}
-      name: {{ .Values.service.portName2 | default "https" }}
+      name: {{ .Values.service.portName  }}
     {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName | default "http" }}
-    - port: {{ .Values.service.externalPort2 }}
-      targetPort: {{ .Values.service.internalPort2 }}
-      name: {{ .Values.service.portName2 | default "https" }}
+    - port:  {{ if .Values.config.isHttpsEnabled }}{{ .Values.service.externalPort2 }}{{ else }}{{ .Values.service.externalPort }}{{ end }}
+      targetPort: {{ template "wfd-fe.internalPort" . }}
+      name: {{ .Values.service.portName }}
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
diff --git a/kubernetes/sdc/charts/sdc-wfd-fe/values.yaml b/kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
index 21c7c17..fc30297 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.2
+image: onap/workflow-frontend:1.6.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -36,16 +36,15 @@
 
 config:
   javaOptions: "-Xmx256m -Xms256m"
-  backendServerURL: "http://sdc-wfd-be:8080"
+  backendServerURL: "https://sdc-wfd-be:8443"
   isHttpsEnabled: true
-
+  # following flag decides whether to check the certificate on the outgoing proxy request or whether to trust all parties
+  isTrustAll: true
 # https relevant settings. Change in case you have other trust files then default ones.
 security:
   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
@@ -71,12 +70,10 @@
   type: NodePort
   internalPort: 8080
   externalPort: 8080
-  portName: sdc-wfd-fe
-  nodePort: "56"
-  portName2: sdc-wfd-fe2
   internalPort2: 8443
   externalPort2: 8443
-  nodePort2: "31"
+  portName: sdc-wfd-fe
+  nodePort: "56" # only one node port. set to http or https port depending on isHttpsEnabled property
 
 ingress:
   enabled: false
@@ -91,7 +88,6 @@
     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"
 
 resources: {}
   # We usually recommend not to specify default resources and to leave this as a conscious
diff --git a/kubernetes/sdc/templates/secrets.yaml b/kubernetes/sdc/templates/secrets.yaml
index b3470e2..1f59ab2 100644
--- a/kubernetes/sdc/templates/secrets.yaml
+++ b/kubernetes/sdc/templates/secrets.yaml
@@ -30,3 +30,9 @@
   sdc_password: "{{ .Values.global.secrets.sdc_password }}"
   #default user:
   cs_password: "{{ .Values.global.secrets.cs_password }}"
+  cs_truststore_password: "{{ .Values.global.secrets.cs_truststore_password }}"
+  # ssl - stores
+  truststore_password: "{{ .Values.global.secrets.truststore_password }}"
+  keystore_password: "{{ .Values.global.secrets.keystore_password }}"
+  # workflow
+  wf_external_user_password: "{{ .Values.global.secrets.wf_external_user_password }}"
\ No newline at end of file
diff --git a/kubernetes/sdc/values.yaml b/kubernetes/sdc/values.yaml
index cafa59a..a7006bc 100644
--- a/kubernetes/sdc/values.yaml
+++ b/kubernetes/sdc/values.yaml
@@ -22,6 +22,10 @@
     sdc_password: QWExMjM0JV4h
     #Should be the password of shared cassandra instance/chart
     cs_password: Y2Fzc2FuZHJh
+    cs_truststore_password: XS5dW3hndHplXWhCaHoqd3ldfW0jbGYq
+    truststore_password: XS5dW3hndHplXWhCaHoqd3ldfW0jbGYq
+    keystore_password: IXBwSi5KdlduMGhHaClvVkZdKFtLdile
+    wf_external_user_password: S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==
   ubuntuInitRepository: oomk8s
   ubuntuInitImage: ubuntu-init:1.0.0
   cassandra:
diff --git a/kubernetes/sdnc/sdnc-prom/templates/deployment.yaml b/kubernetes/sdnc/sdnc-prom/templates/deployment.yaml
index d457bd8..78cd186 100644
--- a/kubernetes/sdnc/sdnc-prom/templates/deployment.yaml
+++ b/kubernetes/sdnc/sdnc-prom/templates/deployment.yaml
@@ -89,7 +89,11 @@
             name: {{ include "common.fullname" . }}-scripts
             defaultMode: 0755
         - name: core-dns-keyfile
-          hostPath:
-            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+        {{- if .Values.persistence.enabled }}
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+        {{- else }}
+          emptyDir: {}
+        {{- end }}
       imagePullSecrets:
         - name: {{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/sdnc/sdnc-prom/templates/pv.yaml b/kubernetes/sdnc/sdnc-prom/templates/pv.yaml
new file mode 100644
index 0000000..ccd990f
--- /dev/null
+++ b/kubernetes/sdnc/sdnc-prom/templates/pv.yaml
@@ -0,0 +1,39 @@
+{{/*
+# 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.
+*/}}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
+{{- if eq "True" (include "common.needPV" .) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.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 }}
+  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/sdnc/sdnc-prom/templates/pvc.yaml b/kubernetes/sdnc/sdnc-prom/templates/pvc.yaml
new file mode 100644
index 0000000..64e9621
--- /dev/null
+++ b/kubernetes/sdnc/sdnc-prom/templates/pvc.yaml
@@ -0,0 +1,39 @@
+{{/*
+# 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.
+*/}}
+{{- 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 }}"
+    name: {{ include "common.fullname" . }}
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+  storageClassName: {{ include "common.storageClass" . }}
+{{- end }}
diff --git a/kubernetes/sdnc/templates/pv-certs.yaml b/kubernetes/sdnc/templates/pv-certs.yaml
new file mode 100644
index 0000000..54266d1
--- /dev/null
+++ b/kubernetes/sdnc/templates/pv-certs.yaml
@@ -0,0 +1,38 @@
+{{/*
+# Copyright © 2018 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 .Values.certpersistence.enabled }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-certs
+  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" . }}-certs
+spec:
+  capacity:
+    storage: {{ .Values.certpersistence.size }}
+  accessModes:
+    - {{ .Values.certpersistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-certs"
+  persistentVolumeReclaimPolicy: {{ .Values.certpersistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.certpersistence.mountPath }}/{{ .Release.Name }}/{{ .Values.certpersistence.mountSubPath }}
+{{ end }}
diff --git a/kubernetes/sdnc/templates/pv-data.yaml b/kubernetes/sdnc/templates/pv-data.yaml
new file mode 100644
index 0000000..a6324e4
--- /dev/null
+++ b/kubernetes/sdnc/templates/pv-data.yaml
@@ -0,0 +1,46 @@
+{{/*
+# Copyright © 2018 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 .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" $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 }}
+  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/sdnc/templates/pv.yaml b/kubernetes/sdnc/templates/pv.yaml
deleted file mode 100644
index 5a6566a..0000000
--- a/kubernetes/sdnc/templates/pv.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-{{/*
-# Copyright © 2018 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) -}}
-{{ $pvNum := default 1 .Values.replicaCount | int }}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-mdsal0
-  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" . }}-mdsal"
-  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" . }}-mdsal1
-  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" . }}-mdsal"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
-{{ end }}
-{{ if gt $pvNum 2 }}
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-mdsal2
-  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" . }}-mdsal"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2
-{{ end }}
-{{- end -}}
-{{ if .Values.certpersistence.enabled }}
----
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-pv-certs
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}-pv-certs
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}-certs
-spec:
-  capacity:
-    storage: {{ .Values.certpersistence.size }}
-  accessModes:
-    - {{ .Values.certpersistence.accessMode }}
-{{- if .Values.certpersistence.storageClass }}
-{{- if (eq "-" .Values.certpersistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.certpersistence.storageClass }}"
-{{- end }}
-{{- end }}
-  persistentVolumeReclaimPolicy: {{ .Values.certpersistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.certpersistence.mountPath }}/{{ .Values.certpersistence.mountSubPath }}
-{{ end }}
-
-
-
diff --git a/kubernetes/sdnc/templates/pvc.yaml b/kubernetes/sdnc/templates/pvc.yaml
index aa9515b..21c2dbc 100644
--- a/kubernetes/sdnc/templates/pvc.yaml
+++ b/kubernetes/sdnc/templates/pvc.yaml
@@ -2,31 +2,27 @@
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" .}}-pvc-certs
+  name: {{ include "common.fullname" .}}-certs
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.name" . }}-pvc-certs
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}-certs
 {{- if .Values.certpersistence.annotations }}
   annotations:
 {{ toYaml .Values.certpersistence.annotations | indent 4 }}
 {{- end }}
 spec:
-  selector:
-    matchLabels:
-      app: {{ include "common.name" . }}-pv-certs
   accessModes:
     - {{ .Values.certpersistence.accessMode }}
   resources:
     requests:
       storage: {{ .Values.certpersistence.size }}
-{{- if .Values.certpersistence.storageClass }}
-{{- if (eq "-" .Values.certpersistence.storageClass) }}
-  storageClassName: ""
+{{- if eq "True" (include "common.needPV" .) }}
+  storageClassName: "{{ include "common.fullname" . }}-certs"
 {{- else }}
-  storageClassName: "{{ .Values.certpersistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
\ No newline at end of file
+  storageClassName: {{ include "common.storageClass" . }}
+  {{- end }}
+{{- end -}}
diff --git a/kubernetes/sdnc/templates/statefulset.yaml b/kubernetes/sdnc/templates/statefulset.yaml
index e3ac50f..4ab8d1c 100644
--- a/kubernetes/sdnc/templates/statefulset.yaml
+++ b/kubernetes/sdnc/templates/statefulset.yaml
@@ -46,13 +46,13 @@
               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
       - name: {{ include "common.name" . }}-chown
         image: "busybox"
         command: ["sh", "-c", "chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.persistence.mdsalPath }} ; chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.certpersistence.certPath }}"]
         volumeMounts:
           - mountPath: {{ .Values.persistence.mdsalPath }}
-            name: {{ include "common.fullname" . }}-mdsal
+            name: {{ include "common.fullname" . }}-data
           - mountPath: {{ .Values.certpersistence.certPath }}
             name: {{ include "common.fullname" . }}-certs
       containers:
@@ -140,7 +140,7 @@
             name: properties
             subPath: blueprints-processor-adaptor.properties
           - mountPath: {{ .Values.persistence.mdsalPath }}
-            name: {{ include "common.fullname" . }}-mdsal
+            name: {{ include "common.fullname" . }}-data
           - mountPath: /var/log/onap
             name: logs
           - mountPath: {{ .Values.certpersistence.certPath }}
@@ -204,26 +204,27 @@
         - name: {{ include "common.fullname" . }}-certs
   {{ if .Values.certpersistence.enabled }}
           persistentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}-pvc-certs
+            claimName: {{ include "common.fullname" . }}-certs
   {{ else }}
           emptyDir: {}
   {{ end }}
   {{ if not .Values.persistence.enabled }}
-        - name: {{ include "common.fullname" . }}-mdsal
+        - name: {{ include "common.fullname" . }}-data
           emptyDir: {}
   {{ else }}
   volumeClaimTemplates:
   - metadata:
-      name: {{ include "common.fullname" . }}-mdsal
+      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" . }}-mdsal
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
-      selector:
-        matchLabels:
-          name: {{ include "common.fullname" . }}
-  {{ end }}
+  {{- end }}
diff --git a/kubernetes/vid/resources/config/log/vid/logback.xml b/kubernetes/vid/resources/config/log/vid/logback.xml
index 49db781..7f62756 100644
--- a/kubernetes/vid/resources/config/log/vid/logback.xml
+++ b/kubernetes/vid/resources/config/log/vid/logback.xml
@@ -1,299 +1,386 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!--

-  ================================================================================

-  eCOMP Portal SDK

-  ================================================================================

-  Copyright (C) 2017 AT&amp;T Intellectual Property

-  ================================================================================

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

-  ================================================================================

-  -->

-<configuration scan="true" scanPeriod="3 seconds" debug="true">

-   <!--  specify the base path of the log directory -->

-   <property name="logDir" value="/var/log/onap" />

-   <!--  specify the component name -->

-   <property name="componentName" value="vid" />

-   <!-- The directory where logs are written -->

-   <property name="logDirectory" value="${logDir}/${componentName}" />

-   <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

-   <!--  log file names -->

-   <property name="generalLogName" value="application" />

-   <property name="errorLogName" value="error" />

-   <property name="metricsLogName" value="metrics" />

-   <property name="auditLogName" value="audit" />

-   <property name="debugLogName" value="debug" />

-   <!--  other constants -->

-   <property name="queueSize" value="256" />

-   <property name="maxFileSize" value="50MB" />

-   <property name="maxHistory" value="30" />

-   <property name="totalSizeCap" value="10GB" />

-   <!-- Example evaluator filter applied against console appender -->

-   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

-      <encoder>

-         <pattern>${pattern}</pattern>

-      </encoder>

-   </appender>

-   <!-- ============================================================================ -->

-   <!-- EELF Appenders -->

-   <!-- ============================================================================ -->

-   <!-- The EELFAppender is used to record events to the general application 

-    log -->

-   <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender">

-      <file>${logDirectory}/${generalLogName}.log</file>

-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-         <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

-            <maxFileSize>${maxFileSize}</maxFileSize>

-         </timeBasedFileNamingAndTriggeringPolicy>

-         <maxHistory>${maxHistory}</maxHistory>

-         <totalSizeCap>${totalSizeCap}</totalSizeCap>

-      </rollingPolicy>

-      <encoder>

-         <pattern>${pattern}</pattern>

-      </encoder>

-      <filter class="org.openecomp.portalapp.util.CustomLoggingFilter" />

-   </appender>

-   <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">

-      <queueSize>${queueSize}</queueSize>

-      <includeCallerData>true</includeCallerData>

-      <appender-ref ref="EELF" />

-   </appender>

-   <!-- EELF Security Appender. This appender is used to record security events 

-    to the security log file. Security events are separate from other loggers 

-    in EELF so that security log records can be captured and managed in a secure 

-    way separate from the other logs. This appender is set to never discard any 

-    events. -->

-   <!--     

-  <appender name="EELFSecurity"

-    class="ch.qos.logback.core.rolling.RollingFileAppender">

-    <file>${logDirectory}/${securityLogName}.log</file>

-    <rollingPolicy

-      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

-      <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip

-      </fileNamePattern>

-      <minIndex>1</minIndex>

-      <maxIndex>9</maxIndex>

-    </rollingPolicy>

-    <triggeringPolicy

-      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

-      <maxFileSize>5MB</maxFileSize>

-    </triggeringPolicy>

-    <encoder>

-      <pattern>${defaultPattern}</pattern>

-    </encoder>

-  </appender>

-  

-  <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">

-    <queueSize>256</queueSize>

-    <discardingThreshold>0</discardingThreshold>

-    <appender-ref ref="EELFSecurity" />

-  </appender>

-   -->

-   <!-- EELF Performance Appender. This appender is used to record performance 

-    records. -->

-   <!--

-  <appender name="EELFPerformance"

-    class="ch.qos.logback.core.rolling.RollingFileAppender">

-    <file>${logDirectory}/${performanceLogName}.log</file>

-    <rollingPolicy

-      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

-      <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip

-      </fileNamePattern>

-      <minIndex>1</minIndex>

-      <maxIndex>9</maxIndex>

-    </rollingPolicy>

-    <triggeringPolicy

-      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

-      <maxFileSize>5MB</maxFileSize>

-    </triggeringPolicy>

-    <encoder>

-      <outputPatternAsHeader>true</outputPatternAsHeader>

-      <pattern>${defaultPattern}</pattern>

-    </encoder>

-  </appender>

-  <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">

-    <queueSize>256</queueSize>

-    <appender-ref ref="EELFPerformance" />

-  </appender>

-  -->

-   <!-- EELF Server Appender. This appender is used to record Server related 

-    logging events. The Server logger and appender are specializations of the 

-    EELF application root logger and appender. This can be used to segregate Server 

-    events from other components, or it can be eliminated to record these events 

-    as part of the application root log. -->

-   <!--

-  <appender name="EELFServer"

-    class="ch.qos.logback.core.rolling.RollingFileAppender">

-    <file>${logDirectory}/${serverLogName}.log</file>

-    <rollingPolicy

-      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

-      <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip

-      </fileNamePattern>

-      <minIndex>1</minIndex>

-      <maxIndex>9</maxIndex>

-    </rollingPolicy>

-    <triggeringPolicy

-      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

-      <maxFileSize>5MB</maxFileSize>

-    </triggeringPolicy>

-    <encoder>

-        <pattern>${defaultPattern}</pattern>

-    </encoder>

-  </appender>

-  <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">

-    <queueSize>256</queueSize>

-    <appender-ref ref="EELFServer" />

-  </appender>

-   -->

-   <!-- EELF Policy Appender. This appender is used to record Policy engine 

-    related logging events. The Policy logger and appender are specializations 

-    of the EELF application root logger and appender. This can be used to segregate 

-    Policy engine events from other components, or it can be eliminated to record 

-    these events as part of the application root log. -->

-   <!--

-  <appender name="EELFPolicy"

-    class="ch.qos.logback.core.rolling.RollingFileAppender">

-    <file>${logDirectory}/${policyLogName}.log</file>

-    <rollingPolicy

-      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

-      <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip

-      </fileNamePattern>

-      <minIndex>1</minIndex>

-      <maxIndex>9</maxIndex>

-    </rollingPolicy>

-    <triggeringPolicy

-      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

-      <maxFileSize>5MB</maxFileSize>

-    </triggeringPolicy>

-    <encoder>

-        <pattern>${defaultPattern}</pattern>

-    </encoder>

-  </appender>

-  <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">

-    <queueSize>256</queueSize>

-    <appender-ref ref="EELFPolicy" />

-  </appender>

-  -->

-   <!-- EELF Audit Appender. This appender is used to record audit engine 

-    related logging events. The audit logger and appender are specializations 

-    of the EELF application root logger and appender. This can be used to segregate 

-    Policy engine events from other components, or it can be eliminated to record 

-    these events as part of the application root log. -->

-   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

-      <file>${logDirectory}/${auditLogName}.log</file>

-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-         <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

-            <maxFileSize>${maxFileSize}</maxFileSize>

-         </timeBasedFileNamingAndTriggeringPolicy>

-         <maxHistory>${maxHistory}</maxHistory>

-         <totalSizeCap>${totalSizeCap}</totalSizeCap>

-      </rollingPolicy>

-      <encoder>

-         <pattern>${pattern}</pattern>

-      </encoder>

-   </appender>

-   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

-      <queueSize>${queueSize}</queueSize>

-      <appender-ref ref="EELFAudit" />

-   </appender>

-   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

-      <file>${logDirectory}/${metricsLogName}.log</file>

-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-         <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

-            <maxFileSize>${maxFileSize}</maxFileSize>

-         </timeBasedFileNamingAndTriggeringPolicy>

-         <maxHistory>${maxHistory}</maxHistory>

-         <totalSizeCap>${totalSizeCap}</totalSizeCap>

-      </rollingPolicy>

-      <encoder>

-         <pattern>${pattern}</pattern>

-      </encoder>

-   </appender>

-   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

-      <queueSize>${queueSize}</queueSize>

-      <appender-ref ref="EELFMetrics" />

-   </appender>

-   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

-      <file>${logDirectory}/${errorLogName}.log</file>

-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-         <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

-            <maxFileSize>${maxFileSize}</maxFileSize>

-         </timeBasedFileNamingAndTriggeringPolicy>

-         <maxHistory>${maxHistory}</maxHistory>

-         <totalSizeCap>${totalSizeCap}</totalSizeCap>

-      </rollingPolicy>

-      <encoder>

-         <pattern>${pattern}</pattern>

-      </encoder>

-   </appender>

-   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

-      <queueSize>${queueSize}</queueSize>

-      <appender-ref ref="EELFError" />

-   </appender>

-   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

-      <file>${logDirectory}/${debugLogName}.log</file>

-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-         <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

-            <maxFileSize>${maxFileSize}</maxFileSize>

-         </timeBasedFileNamingAndTriggeringPolicy>

-         <maxHistory>${maxHistory}</maxHistory>

-         <totalSizeCap>${totalSizeCap}</totalSizeCap>

-      </rollingPolicy>

-      <encoder>

-         <pattern>${pattern}</pattern>

-      </encoder>

-   </appender>

-   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

-      <queueSize>${queueSize}</queueSize>

-      <appender-ref ref="EELFDebug" />

-   </appender>

-   <!-- ============================================================================ -->

-   <!--  EELF loggers -->

-   <!-- ============================================================================ -->

-   <logger name="com.att.eelf" level="debug" additivity="false">

-      <appender-ref ref="asyncEELF" />

-   </logger>

-   <!--

-  <logger name="com.att.eelf.security" level="info" additivity="false">

-    <appender-ref ref="asyncEELFSecurity" />

-  </logger>

-  <logger name="com.att.eelf.perf" level="info" additivity="false">

-    <appender-ref ref="asyncEELFPerformance" />

-  </logger>

-  <logger name="com.att.eelf.server" level="info" additivity="false">

-    <appender-ref ref="asyncEELFServer" />

-  </logger>

-  <logger name="com.att.eelf.policy" level="info" additivity="false">

-    <appender-ref ref="asyncEELFPolicy" />

-  </logger>

-  -->

-   <logger name="com.att.eelf.audit" level="info" additivity="false">

-      <appender-ref ref="asyncEELFAudit" />

-   </logger>

-   <logger name="com.att.eelf.metrics" level="info" additivity="false">

-      <appender-ref ref="asyncEELFMetrics" />

-   </logger>

-   <logger name="com.att.eelf.error" level="info" additivity="false">

-      <appender-ref ref="asyncEELFError" />

-   </logger>

-   <logger name="com.att.eelf.debug" level="debug" additivity="false">

-      <appender-ref ref="asyncEELFDebug" />

-   </logger>

-   <root level="INFO">

-      <appender-ref ref="asyncEELF" />

-   </root>

-</configuration>

+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ================================================================================
+  eCOMP Portal SDK
+  ================================================================================
+  Copyright (C) 2017 AT&T Intellectual Property
+  ================================================================================
+  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.
+  ================================================================================
+  -->
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+   <!--  specify the component name -->
+   <property name="componentName" value="vid"/>
+   <!--  specify the base path of the log directory -->
+   <property name="logDirPrefix" value="/var/log/onap" />
+   <!-- The directory where logs are written -->
+   <property name="logDirectory" value="${logDirPrefix}/${componentName}" />
+
+   <!--  log file names -->
+   <property name="generalLogName" value="application" />
+   <property name="errorLogName" value="error" />
+   <property name="metricsLogName" value="metrics" />
+   <property name="auditLogName" value="audit" />
+   <property name="debugLogName" value="debug" />
+   <property name="outgoingRequestsLogName" value="outgoingRequests" />
+
+   <!--  other constants -->
+   <property name="queueSize" value="256" />
+   <property name="maxFileSize" value="50MB" />
+   <property name="maxHistory" value="30" />
+   <property name="totalSizeCap" value="10GB" />
+
+  <!-- ONAP Application Logging Specification v1.2 (Casablanca)
+       https://wiki.onap.org/pages/viewpage.action?pageId=28378955 -->
+
+   <property name="auditLoggerPattern"
+     value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level||%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|||%marker|%mdc|||%msg%n"/>
+
+   <property name="metricsLoggerPattern"
+     value="%X{InvokeTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|0|%X{ServerIPAddress}|%replace(%X{ElapsedTime}){' ms',''}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVisualEntity}|%marker|%mdc|%X{CustomField3}|%X{CustomField4}| %msg%nopexception%n" />
+
+   <property name="errorLoggerPattern"
+     value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{AlertSeverity}|%X{ErrorCode}|%X{ErrorDescription}| %msg%nopexception%n" />
+
+   <property name="debugLoggerPattern" value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%msg %nopexception%replace(%xThrowable){'[\r\n]+', '\\\\n'}|^%n" />
+
+   <!-- use %class so library logging calls yield their class name -->
+   <property name="applicationLoggerPattern"
+     value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%.-5level|%class{36}| %msg%n" />
+
+
+
+   <!-- Example evaluator filter applied against console appender -->
+   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+      <encoder>
+         <pattern>${debugLoggerPattern}</pattern>
+      </encoder>
+   </appender>
+
+   <!-- ============================================================================ -->
+   <!-- EELF Appenders -->
+   <!-- ============================================================================ -->
+
+   <!-- The EELFAppender is used to record events to the general application log -->
+   <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender">
+      <file>${logDirectory}/${generalLogName}.log</file>
+      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+         <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+            <maxFileSize>${maxFileSize}</maxFileSize>
+         </timeBasedFileNamingAndTriggeringPolicy>
+         <maxHistory>${maxHistory}</maxHistory>
+         <totalSizeCap>${totalSizeCap}</totalSizeCap>
+      </rollingPolicy>
+      <encoder>
+         <pattern>${applicationLoggerPattern}</pattern>
+      </encoder>
+      <filter class="org.onap.portalapp.util.CustomLoggingFilter" />
+   </appender>
+
+   <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+      <queueSize>${queueSize}</queueSize>
+      <includeCallerData>true</includeCallerData>
+      <appender-ref ref="EELF" />
+   </appender>
+
+   <!-- EELF Security Appender. This appender is used to record security events
+    to the security log file. Security events are separate from other loggers 
+    in EELF so that security log records can be captured and managed in a secure 
+    way separate from the other logs. This appender is set to never discard any 
+    events. -->
+   <!--     
+  <appender name="EELFSecurity"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${securityLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <discardingThreshold>0</discardingThreshold>
+    <appender-ref ref="EELFSecurity" />
+  </appender>
+   -->
+   <!-- EELF Performance Appender. This appender is used to record performance 
+    records. -->
+   <!--
+  <appender name="EELFPerformance"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${performanceLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <outputPatternAsHeader>true</outputPatternAsHeader>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFPerformance" />
+  </appender>
+  -->
+   <!-- EELF Server Appender. This appender is used to record Server related 
+    logging events. The Server logger and appender are specializations of the 
+    EELF application root logger and appender. This can be used to segregate Server 
+    events from other components, or it can be eliminated to record these events 
+    as part of the application root log. -->
+   <!--
+  <appender name="EELFServer"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${serverLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+        <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFServer" />
+  </appender>
+   -->
+   <!-- EELF Policy Appender. This appender is used to record Policy engine 
+    related logging events. The Policy logger and appender are specializations 
+    of the EELF application root logger and appender. This can be used to segregate 
+    Policy engine events from other components, or it can be eliminated to record 
+    these events as part of the application root log. -->
+   <!--
+  <appender name="EELFPolicy"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${policyLogName}.log</file>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+        <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFPolicy" />
+  </appender>
+  -->
+   <!-- EELF Audit Appender. This appender is used to record audit engine 
+    related logging events. The audit logger and appender are specializations 
+    of the EELF application root logger and appender. This can be used to segregate 
+    Policy engine events from other components, or it can be eliminated to record 
+    these events as part of the application root log. -->
+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+      <file>${logDirectory}/${auditLogName}.log</file>
+      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+         <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+            <maxFileSize>${maxFileSize}</maxFileSize>
+         </timeBasedFileNamingAndTriggeringPolicy>
+         <maxHistory>${maxHistory}</maxHistory>
+         <totalSizeCap>${totalSizeCap}</totalSizeCap>
+      </rollingPolicy>
+      <encoder>
+         <pattern>${auditLoggerPattern}</pattern>
+      </encoder>
+   </appender>
+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+      <queueSize>${queueSize}</queueSize>
+      <appender-ref ref="EELFAudit" />
+      <includeCallerData>true</includeCallerData>
+   </appender>
+
+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">
+      <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+        <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+          <marker>INVOKE</marker>
+          <marker>INVOKE-RETURN</marker>
+        </evaluator>
+        <onMismatch>DENY</onMismatch>
+        <onMatch>ACCEPT</onMatch>
+      </filter>
+      <file>${logDirectory}/${metricsLogName}.log</file>
+      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+         <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+            <maxFileSize>${maxFileSize}</maxFileSize>
+         </timeBasedFileNamingAndTriggeringPolicy>
+         <maxHistory>${maxHistory}</maxHistory>
+         <totalSizeCap>${totalSizeCap}</totalSizeCap>
+      </rollingPolicy>
+      <encoder>
+      <pattern>${metricsLoggerPattern}</pattern>
+      </encoder>
+   </appender>
+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+      <queueSize>${queueSize}</queueSize>
+      <appender-ref ref="EELFMetrics" />
+      <includeCallerData>true</includeCallerData>
+   </appender>
+
+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">
+      <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <level>ERROR</level>
+        <onMatch>ACCEPT</onMatch>
+        <onMismatch>NEUTRAL</onMismatch>
+      </filter>
+      <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <level>WARN</level>
+        <onMatch>ACCEPT</onMatch>
+        <onMismatch>DENY</onMismatch>
+      </filter>
+      <file>${logDirectory}/${errorLogName}.log</file>
+      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+         <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+            <maxFileSize>${maxFileSize}</maxFileSize>
+         </timeBasedFileNamingAndTriggeringPolicy>
+         <maxHistory>${maxHistory}</maxHistory>
+         <totalSizeCap>${totalSizeCap}</totalSizeCap>
+      </rollingPolicy>
+      <encoder>
+        <pattern>${errorLoggerPattern}</pattern>
+      </encoder>
+   </appender>
+
+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+      <queueSize>${queueSize}</queueSize>
+      <appender-ref ref="EELFError" />
+      <includeCallerData>true</includeCallerData>
+   </appender>
+
+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+      <file>${logDirectory}/${debugLogName}.log</file>
+      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+         <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+            <maxFileSize>${maxFileSize}</maxFileSize>
+         </timeBasedFileNamingAndTriggeringPolicy>
+         <maxHistory>${maxHistory}</maxHistory>
+         <totalSizeCap>${totalSizeCap}</totalSizeCap>
+      </rollingPolicy>
+      <encoder>
+         <pattern>${debugLoggerPattern}</pattern>
+      </encoder>
+   </appender>
+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+      <queueSize>${queueSize}</queueSize>
+      <appender-ref ref="EELFDebug" />
+      <includeCallerData>true</includeCallerData>
+   </appender>
+
+   <appender name="OutgoingRequests" class="ch.qos.logback.core.rolling.RollingFileAppender">
+      <file>${logDirectory}/${outgoingRequestsLogName}.log</file>
+      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+         <fileNamePattern>${logDirectory}/${outgoingRequestsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+            <maxFileSize>${maxFileSize}</maxFileSize>
+         </timeBasedFileNamingAndTriggeringPolicy>
+         <maxHistory>${maxHistory}</maxHistory>
+         <totalSizeCap>${totalSizeCap}</totalSizeCap>
+      </rollingPolicy>
+      <encoder>
+         <pattern>${debugLoggerPattern}</pattern>
+      </encoder>
+   </appender>
+   <appender name="asyncOutgoingRequests" class="ch.qos.logback.classic.AsyncAppender">
+      <queueSize>${queueSize}</queueSize>
+      <appender-ref ref="OutgoingRequests" />
+      <includeCallerData>true</includeCallerData>
+   </appender>
+
+
+   <!-- ============================================================================ -->
+   <!--  EELF loggers -->
+   <!-- ============================================================================ -->
+   <logger name="com.att.eelf" level="debug" additivity="false">
+      <appender-ref ref="asyncEELF" />
+   </logger>
+
+   <!--
+  <logger name="com.att.eelf.security" level="info" additivity="false">
+    <appender-ref ref="asyncEELFSecurity" />
+  </logger>
+  <logger name="com.att.eelf.perf" level="info" additivity="false">
+    <appender-ref ref="asyncEELFPerformance" />
+  </logger>
+  <logger name="com.att.eelf.server" level="info" additivity="false">
+    <appender-ref ref="asyncEELFServer" />
+  </logger>
+  <logger name="com.att.eelf.policy" level="info" additivity="false">
+    <appender-ref ref="asyncEELFPolicy" />
+  </logger>
+  -->
+
+   <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="info" additivity="false">
+      <appender-ref ref="asyncEELFAudit" />
+   </logger>
+
+   <logger name="org.onap.logging.filter.base.AbstractMetricLogFilter" level="info" additivity="false">
+      <appender-ref ref="asyncEELFMetrics" />
+   </logger>
+
+   <logger name="com.att.eelf.error" level="info" additivity="false">
+      <appender-ref ref="asyncEELFError" />
+      <appender-ref ref="asyncEELFDebug" />
+   </logger>
+
+   <logger name="com.att.eelf.debug" level="debug" additivity="false">
+      <appender-ref ref="asyncEELFDebug" />
+   </logger>
+
+   <logger name="http.requests.outgoing" level="DEBUG" additivity="false">
+      <appender-ref ref="asyncOutgoingRequests"/>
+   </logger>
+
+   <root level="INFO">
+      <appender-ref ref="asyncEELF" />
+      <appender-ref ref="asyncEELFError" />
+   </root>
+
+</configuration>
diff --git a/kubernetes/vid/templates/deployment.yaml b/kubernetes/vid/templates/deployment.yaml
index 2c6c5fa..3c52b9d 100644
--- a/kubernetes/vid/templates/deployment.yaml
+++ b/kubernetes/vid/templates/deployment.yaml
@@ -96,8 +96,6 @@
               value: "{{ .Values.config.vidcontactuslink }}"
             - name: VID_KEYSTORE_PASSWORD
               value: {{ .Values.config.vidkeystorepassword | quote }}
-            - name: CATALINA_OPTS
-              value: "-Dvid.keystore.password=$(VID_KEYSTORE_PASSWORD) -Dvid.keyalias=vid@vid.onap.org -Dvid.keystore.filename=/opt/app/vid/etc/org.onap.vid.jks -Dcom.att.eelf.logging.file=logback.xml -Dcom.att.eelf.logging.path=/tmp"
             - name: VID_UEB_URL_LIST
               value: message-router.{{ include "common.namespace" . }}
             - name: VID_MYSQL_HOST