Merge "[VFC] Use log template"
diff --git a/kubernetes/a1policymanagement/templates/statefulset.yaml b/kubernetes/a1policymanagement/templates/statefulset.yaml
index 1d25f31..0114b30 100644
--- a/kubernetes/a1policymanagement/templates/statefulset.yaml
+++ b/kubernetes/a1policymanagement/templates/statefulset.yaml
@@ -28,6 +28,8 @@
     metadata:
       labels: {{- include "common.labels" . | nindent 8 }}
     spec:
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
       initContainers: {{ include "common.certInitializer.initContainer" . | nindent 6 }}
       - name: {{ include "common.name" . }}-bootstrap-config
         image: {{ include "repositoryGenerator.image.envsubst" . }}
@@ -58,7 +60,7 @@
           name: config
       containers:
       - name: {{ include "common.name" . }}-update-config
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         securityContext:
           runAsGroup: {{ .Values.groupID }}
diff --git a/kubernetes/cps/components/cps-core/values.yaml b/kubernetes/cps/components/cps-core/values.yaml
index eb7aa54..a482152 100644
--- a/kubernetes/cps/components/cps-core/values.yaml
+++ b/kubernetes/cps/components/cps-core/values.yaml
@@ -78,11 +78,10 @@
       targetPort: *mgt_port
 
 prometheus:
-  enabled: true
+  enabled: false
 
 metrics:
   serviceMonitor:
-    enabled: true
     port: http-management
       ## specify target port if name is not given to the port in the service definition
       ##
diff --git a/kubernetes/cps/components/cps-temporal/values.yaml b/kubernetes/cps/components/cps-temporal/values.yaml
index f831169..8b3f16b 100644
--- a/kubernetes/cps/components/cps-temporal/values.yaml
+++ b/kubernetes/cps/components/cps-temporal/values.yaml
@@ -45,7 +45,7 @@
 managementPort: &mgt_port 8081
 
 prometheus:
-  enabled: true
+  enabled: false
 
 service:
   type: ClusterIP
@@ -60,7 +60,6 @@
 
 metrics:
   serviceMonitor:
-    enabled: true
     port: http-management
       ## specify target port if name is not given to the port in the service definition
       ##
diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml b/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml
index a4a56de..753b8ba 100644
--- a/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml
+++ b/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml
@@ -52,7 +52,7 @@
 managementPort: &mgt_port 8081
 
 prometheus:
-  enabled: true
+  enabled: false
 
 service:
   type: ClusterIP
@@ -66,7 +66,6 @@
 
 metrics:
   serviceMonitor:
-    enabled: true
     port: http-management
       ## specify target port if name is not given to the port in the service definition
       ##
diff --git a/kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/filebeat/filebeat.yml b/kubernetes/modeling/components/modeling-etsicatalog/resources/config/log/filebeat/filebeat.yml
similarity index 100%
rename from kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/filebeat/filebeat.yml
rename to kubernetes/modeling/components/modeling-etsicatalog/resources/config/log/filebeat/filebeat.yml
diff --git a/kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/server/log.yml b/kubernetes/modeling/components/modeling-etsicatalog/resources/config/log/server/log.yml
similarity index 100%
rename from kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/server/log.yml
rename to kubernetes/modeling/components/modeling-etsicatalog/resources/config/log/server/log.yml
diff --git a/kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml
index 1a2112b..fc16d8c 100644
--- a/kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml
@@ -20,12 +20,6 @@
   name: {{ include "common.fullname" . }}-logging-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-{{ tpl (.Files.Glob "resources/config/logging/server/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/log/server/*").AsConfig . | indent 2 }}
 ---
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-modeling-filebeat-configmap
-  namespace: {{ include "common.namespace" . }}
-data:
-{{ tpl (.Files.Glob "resources/config/logging/filebeat/*").AsConfig . | indent 2 }}
\ No newline at end of file
+{{ include "common.log.configMap" . }}
diff --git a/kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml
index 8e28071..d9cbbef 100644
--- a/kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml
@@ -111,7 +111,7 @@
             mountPath: /etc/localtime
             readOnly: true
           - name: {{ include "common.fullname" . }}-logs
-            mountPath: /var/log/onap
+            mountPath: {{ .Values.log.path }}
           - name: {{ include "common.fullname" . }}-logconfig
             mountPath: /opt/modeling/etsicatalog/config/log.yml
             subPath: log.yml
@@ -127,17 +127,7 @@
         {{- end }}
 
         # side car containers
-        - name: {{ include "common.name" . }}-filebeat-onap
-          image: {{ include "repositoryGenerator.image.logging" . }}
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          volumeMounts:
-          - name: {{ include "common.fullname" . }}-filebeat-conf
-            mountPath: /usr/share/filebeat/filebeat.yml
-            subPath: filebeat.yml
-          - name: {{ include "common.fullname" . }}-logs
-            mountPath: /var/log/onap
-          - name: {{ include "common.fullname" . }}-data-filebeat
-            mountPath: /usr/share/filebeat/data
+      {{ include "common.log.sidecar" . | nindent 8 }}
       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-etsicatalog
@@ -156,10 +146,6 @@
           configMap:
             name : {{ include "common.fullname" . }}-logging-configmap
 
-        - name: {{ include "common.fullname" . }}-filebeat-conf
-          configMap:
-            name: {{ include "common.fullname" . }}-modeling-filebeat-configmap
-        - name: {{ include "common.fullname" . }}-data-filebeat
-          emptyDir: {}
+        {{ include "common.log.volumes" . | nindent 8 }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/modeling/components/modeling-etsicatalog/values.yaml b/kubernetes/modeling/components/modeling-etsicatalog/values.yaml
index 3af4bae..b4d8837 100644
--- a/kubernetes/modeling/components/modeling-etsicatalog/values.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/values.yaml
@@ -28,6 +28,8 @@
     internalPort: 3306
     nameOverride: mariadb-galera
 
+  centralizedLoggingEnabled: true
+
 readinessCheck:
   wait_for:
     msb:
@@ -183,3 +185,7 @@
   nameOverride: modeling-etsicatalog
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
diff --git a/kubernetes/multicloud/components/multicloud-fcaps/templates/deployment.yaml b/kubernetes/multicloud/components/multicloud-fcaps/templates/deployment.yaml
index b438bf0..fc46a65 100644
--- a/kubernetes/multicloud/components/multicloud-fcaps/templates/deployment.yaml
+++ b/kubernetes/multicloud/components/multicloud-fcaps/templates/deployment.yaml
@@ -60,7 +60,7 @@
          value: "{{ .Values.config.ssl_enabled }}"
        name: {{ include "common.name" . }}
        volumeMounts:
-       - mountPath: /var/log/onap
+       - mountPath: "{{ .Values.log.path }}"
          name: fcaps-log
        - mountPath: /opt/fcaps/fcaps/pub/config/log.yml
          name: fcaps-logconfig
@@ -86,17 +86,7 @@
          failureThreshold: {{ .Values.liveness.failureThreshold }}
        {{ end }}
      # side car containers
-     - image: {{ include "repositoryGenerator.image.logging" . }}
-       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: fcaps-log
-       - mountPath: /usr/share/filebeat/data
-         name: fcaps-data-filebeat
+     {{ include "common.log.sidecar" . | nindent 5 }}
      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.rabbitmq }}
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        name: rabbit-mq
@@ -104,11 +94,7 @@
      volumes:
      - name: fcaps-log
        emptyDir: {}
-     - name: fcaps-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
+     {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 5 }}
      - name: fcaps-logconfig
        configMap:
          name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/multicloud/components/multicloud-fcaps/values.yaml b/kubernetes/multicloud/components/multicloud-fcaps/values.yaml
index 39ddbae..b664498 100644
--- a/kubernetes/multicloud/components/multicloud-fcaps/values.yaml
+++ b/kubernetes/multicloud/components/multicloud-fcaps/values.yaml
@@ -95,3 +95,8 @@
   nameOverride: multicloud-fcaps
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/multicloud/components/multicloud-pike/templates/deployment.yaml b/kubernetes/multicloud/components/multicloud-pike/templates/deployment.yaml
index d12e663..ebebaac 100644
--- a/kubernetes/multicloud/components/multicloud-pike/templates/deployment.yaml
+++ b/kubernetes/multicloud/components/multicloud-pike/templates/deployment.yaml
@@ -60,7 +60,7 @@
          value: "{{ .Values.config.ssl_enabled }}"
        name: {{ include "common.name" . }}
        volumeMounts:
-       - mountPath: /var/log/onap
+       - mountPath: "{{ .Values.log.path }}"
          name: pike-log
        - mountPath: /opt/pike/pike/pub/config/log.yml
          name: pike-logconfig
@@ -88,26 +88,12 @@
          failureThreshold: {{ .Values.liveness.failureThreshold }}
        {{ end }}
      # side car containers
-     - image: {{ include "repositoryGenerator.image.logging" . }}
-       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: pike-log
-       - mountPath: /usr/share/filebeat/data
-         name: pike-data-filebeat
+     {{ include "common.log.sidecar" . | nindent 5 }}
      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
      volumes:
      - name: pike-log
        emptyDir: {}
-     - name: pike-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
+     {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix"  (tpl .Values.logConfigMapNamePrefix .)) | nindent 5 }}
      - name: pike-logconfig
        configMap:
          name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/multicloud/components/multicloud-pike/values.yaml b/kubernetes/multicloud/components/multicloud-pike/values.yaml
index 5ef87f4..45c7309 100644
--- a/kubernetes/multicloud/components/multicloud-pike/values.yaml
+++ b/kubernetes/multicloud/components/multicloud-pike/values.yaml
@@ -92,3 +92,8 @@
   nameOverride: multicloud-pike
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/multicloud/components/multicloud-starlingx/templates/deployment.yaml b/kubernetes/multicloud/components/multicloud-starlingx/templates/deployment.yaml
index 7c39bb7..c9209a0 100644
--- a/kubernetes/multicloud/components/multicloud-starlingx/templates/deployment.yaml
+++ b/kubernetes/multicloud/components/multicloud-starlingx/templates/deployment.yaml
@@ -60,7 +60,7 @@
           value: "{{ .Values.config.ssl_enabled }}"
         name: {{ include "common.name" . }}
         volumeMounts:
-        - mountPath: /var/log/onap
+        - mountPath: "{{ .Values.log.path }}"
           name: starlingx-log
         - mountPath: /opt/starlingx/starlingx/pub/config/log.yml
           name: starlingx-logconfig
@@ -87,17 +87,7 @@
           failureThreshold: {{ .Values.liveness.failureThreshold }}
         {{ end }}
       # side car containers
-      - image: {{ include "repositoryGenerator.image.logging" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: filebeat-onap
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          name: filebeat-conf
-          subPath: filebeat.yml
-        - mountPath: /var/log/onap
-          name: starlingx-log
-        - mountPath: /usr/share/filebeat/data
-          name: starlingx-data-filebeat
+      {{ include "common.log.sidecar" . | nindent 7 }}
       - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.artifactImage }}
         name: framework-artifactbroker
         command: ["/opt/app/distribution/bin/artifact-dist.sh"]
@@ -115,11 +105,7 @@
       volumes:
       - name: starlingx-log
         emptyDir: {}
-      - name: starlingx-data-filebeat
-        emptyDir: {}
-      - name: filebeat-conf
-        configMap:
-          name: multicloud-filebeat-configmap
+      {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 7 }}
       - name: starlingx-logconfig
         configMap:
           name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/multicloud/components/multicloud-starlingx/values.yaml b/kubernetes/multicloud/components/multicloud-starlingx/values.yaml
index 69e4d94..f18a090 100644
--- a/kubernetes/multicloud/components/multicloud-starlingx/values.yaml
+++ b/kubernetes/multicloud/components/multicloud-starlingx/values.yaml
@@ -94,3 +94,8 @@
   nameOverride: multicloud-starlingx
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/multicloud/components/multicloud-vio/templates/deployment.yaml b/kubernetes/multicloud/components/multicloud-vio/templates/deployment.yaml
index 5548359..1d27d6e 100644
--- a/kubernetes/multicloud/components/multicloud-vio/templates/deployment.yaml
+++ b/kubernetes/multicloud/components/multicloud-vio/templates/deployment.yaml
@@ -57,7 +57,7 @@
          value: "{{ .Values.config.aai.password }}"
        name: {{ include "common.name" . }}
        volumeMounts:
-       - mountPath: /var/log/onap
+       - mountPath: "{{ .Values.log.path }}"
          name: vio-log
        - mountPath: /opt/vio/vio/pub/config/log.yml
          name: vio-logconfig
@@ -83,26 +83,12 @@
          failureThreshold: {{ .Values.liveness.failureThreshold }}
        {{ end -}}
        # side car containers
-     - image: {{ include "repositoryGenerator.image.logging" . }}
-       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: vio-log
-       - mountPath: /usr/share/filebeat/data
-         name: vio-data-filebeat
+     {{ include "common.log.sidecar" . | nindent 5 }}
      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
      volumes:
      - name: vio-log
        emptyDir: {}
-     - name: vio-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
+     {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 5 }}
      - name: vio-logconfig
        configMap:
          name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/multicloud/components/multicloud-vio/values.yaml b/kubernetes/multicloud/components/multicloud-vio/values.yaml
index 5b218f1..17643ba 100644
--- a/kubernetes/multicloud/components/multicloud-vio/values.yaml
+++ b/kubernetes/multicloud/components/multicloud-vio/values.yaml
@@ -91,3 +91,8 @@
   nameOverride: multicloud-vio
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/multicloud/components/multicloud-windriver/templates/deployment.yaml b/kubernetes/multicloud/components/multicloud-windriver/templates/deployment.yaml
index f46e450..dfb4bbc 100644
--- a/kubernetes/multicloud/components/multicloud-windriver/templates/deployment.yaml
+++ b/kubernetes/multicloud/components/multicloud-windriver/templates/deployment.yaml
@@ -69,7 +69,7 @@
           value: "{{ .Values.config.ssl_enabled }}"
         name: {{ include "common.name" . }}
         volumeMounts:
-        - mountPath: /var/log/onap
+        - mountPath: "{{ .Values.log.path }}"
           name: windriver-log
         - mountPath: /opt/windriver/titanium_cloud/pub/config/log.yml
           name: windriver-logconfig
@@ -96,17 +96,7 @@
           failureThreshold: {{ .Values.liveness.failureThreshold }}
         {{ end }}
       # side car containers
-      - image: {{ include "repositoryGenerator.image.logging" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: filebeat-onap
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          name: filebeat-conf
-          subPath: filebeat.yml
-        - mountPath: /var/log/onap
-          name: windriver-log
-        - mountPath: /usr/share/filebeat/data
-          name: windriver-data-filebeat
+      {{ include "common.log.sidecar" . | nindent 7 }}
       - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.artifactImage }}
         name: framework-artifactbroker
         command: ["/opt/app/distribution/bin/artifact-dist.sh"]
@@ -124,11 +114,7 @@
       volumes:
       - name: windriver-log
         emptyDir: {}
-      - name: windriver-data-filebeat
-        emptyDir: {}
-      - name: filebeat-conf
-        configMap:
-          name: multicloud-filebeat-configmap
+      {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 7 }}
       - name: windriver-logconfig
         configMap:
           name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/multicloud/components/multicloud-windriver/values.yaml b/kubernetes/multicloud/components/multicloud-windriver/values.yaml
index d520a78..802659f 100644
--- a/kubernetes/multicloud/components/multicloud-windriver/values.yaml
+++ b/kubernetes/multicloud/components/multicloud-windriver/values.yaml
@@ -103,3 +103,8 @@
   nameOverride: multicloud-windriver
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/multicloud/templates/configmap.yaml b/kubernetes/multicloud/templates/configmap.yaml
index 0800fbe..c76f531 100644
--- a/kubernetes/multicloud/templates/configmap.yaml
+++ b/kubernetes/multicloud/templates/configmap.yaml
@@ -15,18 +15,7 @@
 # limitations under the License.
 */}}
 
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: multicloud-filebeat-configmap
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+{{ include "common.log.configMap" . }}
 ---
 apiVersion: v1
 kind: ConfigMap
diff --git a/kubernetes/multicloud/templates/deployment.yaml b/kubernetes/multicloud/templates/deployment.yaml
index 34fe622..53716e5 100644
--- a/kubernetes/multicloud/templates/deployment.yaml
+++ b/kubernetes/multicloud/templates/deployment.yaml
@@ -63,7 +63,7 @@
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        name: {{ include "common.name" . }}
        volumeMounts:
-       - mountPath: /var/log/onap
+       - mountPath: "{{ .Values.log.path }}"
          name: framework-log
        - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
          name: framework-logconfig
@@ -89,17 +89,7 @@
        {{ end -}}
 
       # side car containers
-     - image: {{ include "repositoryGenerator.image.logging" . }}
-       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: framework-log
-       - mountPath: /usr/share/filebeat/data
-         name: framework-data-filebeat
+     {{ include "common.log.sidecar" . | nindent 5 }}
      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
      volumes:
      - name: framework-log
@@ -107,11 +97,7 @@
      - name: provider-plugin
        configMap:
          name: {{ include "common.fullname" . }}-provider-plugin-configmap
-     - name: framework-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
+     {{ include "common.log.volumes" . | nindent 5 }}
      - name: framework-logconfig
        configMap:
          name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/multicloud/values.yaml b/kubernetes/multicloud/values.yaml
index 90e72be..4f946a7 100644
--- a/kubernetes/multicloud/values.yaml
+++ b/kubernetes/multicloud/values.yaml
@@ -22,6 +22,7 @@
   prometheus:
     enabled: false
   persistence: {}
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Application configuration defaults.
@@ -35,18 +36,23 @@
 
 multicloud-fcaps:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-multicloud'
 multicloud-k8s:
   enabled: true
 multicloud-pike:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-multicloud'
 multicloud-prometheus:
   enabled: false
 multicloud-starlingx:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-multicloud'
 multicloud-vio:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-multicloud'
 multicloud-windriver:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-multicloud'
 
 # application configuration
 config:
@@ -114,3 +120,7 @@
   nameOverride: multicloud
   roles:
     - read
+
+#Log configuration
+log:
+  path: /var/log/onap
diff --git a/kubernetes/oof/resources/config/conf/common_config.yaml b/kubernetes/oof/resources/config/conf/common_config.yaml
index b1bd0ed..8f00ac7 100644
--- a/kubernetes/oof/resources/config/conf/common_config.yaml
+++ b/kubernetes/oof/resources/config/conf/common_config.yaml
@@ -153,9 +153,13 @@
     ml_enabled: false
 
 nxi_termination:
-    query_templates:
-        nsi: "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}') > service-instance*('service-role','e2eserviceprofile-service')"
-        nsi_with_profile: "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}') > service-instance*('service-role','e2eserviceprofile-service')('service-instance-id','{{ printf "{{profile_id}}" }}')"
-        nssi: "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}') > service-instance*('service-role','nsi')"
-        nssi_with_nsi: "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}') > service-instance*('service-role','nsi')('service-instance-id','{{ printf "{{nsi_id}}" }}')"
-
+        query_templates:
+                nsi: "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}') > service-instance*('service-role','e2eserviceprofile-service')"
+                nsi_with_profile: "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}') > service-instance*('service-role','e2eserviceprofile-service')('service-instance-id','{{ printf "{{profile_id}}" }}')"
+                nssi:
+                    - "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}')('workload-context', 'CN') > service-instance*('service-role','nsi')"
+                    - "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}')('workload-context', 'TN_BH') > service-instance*('service-role','nsi')"
+                    - "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}')('workload-context', 'AN') > service-instance*('service-role','nsi')"
+                    - "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}')('workload-context', 'AN_NF') > service-instance*('workload-context','AN')"
+                    - "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}')('workload-context', 'TN_MH') > service-instance*('workload-context','AN')"
+                    - "service-instance*('service-instance-id','{{ printf "{{instance_id}}" }}')('workload-context', 'AN_NF') > service-instance*('workload-context','AN')"
diff --git a/kubernetes/portal/components/portal-app/templates/deployment.yaml b/kubernetes/portal/components/portal-app/templates/deployment.yaml
index 39393ef..db4454d 100644
--- a/kubernetes/portal/components/portal-app/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-app/templates/deployment.yaml
@@ -158,7 +158,7 @@
         - name: properties-onapportal
           mountPath: "{{ .Values.global.env.tomcatDir }}/temp"
         - name: var-log-onap
-          mountPath: /var/log/onap
+          mountPath: "{{ .Values.log.path }}"
         resources:
 {{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
@@ -169,17 +169,7 @@
       affinity:
 {{ toYaml .Values.affinity | indent 10 }}
       {{- end }}
-      - name: filebeat-onap
-        image: {{ include "repositoryGenerator.image.logging" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          name: filebeat-conf
-          subPath: filebeat.yml
-        - name: portal-data-filebeat
-          mountPath: /usr/share/filebeat/data
-        - name: var-log-onap
-          mountPath: /var/log/onap
+      {{ include "common.log.sidecar" . | nindent 6 }}
       volumes:
 {{ include "common.certInitializer.volumes" . | indent 8 }}
         - name: localtime
@@ -192,13 +182,9 @@
           configMap:
             name: {{ include "common.fullname" . }}-onapportal
             defaultMode: 0755
-        - name: filebeat-conf
-          configMap:
-            name: portal-filebeat
+        {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 8 }}
         - name: var-log-onap
           emptyDir: {}
-        - name: portal-data-filebeat
-          emptyDir: {}
         - name: portal-tomcat-logs
           emptyDir: {}
       imagePullSecrets:
diff --git a/kubernetes/portal/components/portal-app/values.yaml b/kubernetes/portal/components/portal-app/values.yaml
index b46876c..6cf2513 100644
--- a/kubernetes/portal/components/portal-app/values.yaml
+++ b/kubernetes/portal/components/portal-app/values.yaml
@@ -166,3 +166,8 @@
       cpu: 2
       memory: 8Gi
   unlimited: {}
+
+# Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/portal/components/portal-sdk/templates/deployment.yaml b/kubernetes/portal/components/portal-sdk/templates/deployment.yaml
index 95247b3..abc5daa 100644
--- a/kubernetes/portal/components/portal-sdk/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-sdk/templates/deployment.yaml
@@ -149,7 +149,7 @@
         - name: portal-tomcat-logs
           mountPath: "{{ .Values.global.env.tomcatDir }}/logs"
         - name: var-log-onap
-          mountPath: /var/log/onap
+          mountPath: "{{ .Values.log.path }}"
         resources:
 {{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
@@ -160,17 +160,7 @@
       affinity:
 {{ toYaml .Values.affinity | indent 10 }}
       {{- end }}
-      - name: filebeat-onap
-        image: {{ include "repositoryGenerator.image.logging" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          name: filebeat-conf
-          subPath: filebeat.yml
-        - name: portal-data-filebeat
-          mountPath: /usr/share/filebeat/data
-        - name: var-log-onap
-          mountPath: /var/log/onap
+      {{ include "common.log.sidecar" . | nindent 6 }}
       volumes:
         - name: localtime
           hostPath:
@@ -182,13 +172,9 @@
           configMap:
             name: {{ include "common.fullname" . }}-onapportalsdk
             defaultMode: 0755
-        - name: filebeat-conf
-          configMap:
-            name: portal-filebeat
+        {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 8 }}
         - name: var-log-onap
           emptyDir: {}
-        - name: portal-data-filebeat
-          emptyDir: {}
         - name: portal-tomcat-logs
           emptyDir: {}
 {{ include "common.certInitializer.volumes" . | indent 8 }}
diff --git a/kubernetes/portal/components/portal-sdk/values.yaml b/kubernetes/portal/components/portal-sdk/values.yaml
index 7631c3a..f0c3954 100644
--- a/kubernetes/portal/components/portal-sdk/values.yaml
+++ b/kubernetes/portal/components/portal-sdk/values.yaml
@@ -161,3 +161,8 @@
       cpu: 4
       memory: 10Gi
   unlimited: {}
+
+# Log configuration
+log:
+  path: /var/log/onap
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/portal/templates/configmap.yaml b/kubernetes/portal/templates/configmap.yaml
index a474a6c..681f24e 100644
--- a/kubernetes/portal/templates/configmap.yaml
+++ b/kubernetes/portal/templates/configmap.yaml
@@ -15,16 +15,4 @@
 # limitations under the License.
 */}}
 
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: portal-filebeat
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/filebeat/filebeat.yml").AsConfig . | indent 2 }}
-
+{{ include "common.log.configMap" . }}
diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml
index 0d4b023..0e6c9d6 100644
--- a/kubernetes/portal/values.yaml
+++ b/kubernetes/portal/values.yaml
@@ -22,6 +22,8 @@
   # application's front end hostname.  Must be resolvable on the client side environment
   portalHostName: "portal.api.simpledemo.onap.org"
 
+  centralizedLoggingEnabled: true
+
 #################################################################
 # Secrets metaconfig
 #################################################################
@@ -72,6 +74,7 @@
   cassandra:
     config:
       cassandraExternalSecret: *dbSecretName
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-portal'
 portal-sdk:
   mariadb:
     config:
@@ -79,6 +82,7 @@
   cassandra:
     config:
       cassandraExternalSecret: *dbSecretName
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-portal'
 messageRouter:
   service:
     name: message-router
diff --git a/kubernetes/sdnc/templates/statefulset.yaml b/kubernetes/sdnc/templates/statefulset.yaml
index fc584d8..f53c41c 100644
--- a/kubernetes/sdnc/templates/statefulset.yaml
+++ b/kubernetes/sdnc/templates/statefulset.yaml
@@ -121,7 +121,6 @@
           value: "{{ .Values.config.sdnr.oauth.odluxRbac.enabled | default "true" }}"
         {{ end }}
 
-
         volumeMounts:
         - mountPath: /config-input
           name: config-input
@@ -311,6 +310,27 @@
             value: "{{ .Values.config.sdnr.oauth.enabled | default "false" }}"
           - name: SDNR_NETCONF_CALLHOME_ENABLED
             value: "{{ .Values.config.sdnr.netconfCallHome.enabled | default "false" }}"
+          - name: SDNR_VES_COLLECTOR_ENABLED
+            value: "{{ .Values.config.sdnr.vesCollector.enabled }}"
+          - name: SDNR_VES_COLLECTOR_TLS_ENABLED
+            value: "{{ .Values.config.sdnr.vesCollector.tls.enabled }}"
+          - name: SDNR_VES_COLLECTOR_TRUST_ALL_CERTS
+            value: "{{ .Values.config.sdnr.vesCollector.trustAllCertificates }}"
+          - name: SDNR_VES_COLLECTOR_IP
+            value: "{{ .Values.config.sdnr.vesCollector.address }}"
+          - name: SDNR_VES_COLLECTOR_PORT
+            value: "{{ .Values.config.sdnr.vesCollector.port }}"
+          - name: SDNR_VES_COLLECTOR_VERSION
+            value: "{{ .Values.config.sdnr.vesCollector.version | default "v7" }}"
+          - name: SDNR_VES_COLLECTOR_REPORTING_ENTITY_NAME
+            value: "{{ .Values.config.sdnr.vesCollector.reportingEntityName | default "ONAP SDN-R" }}"
+          - name: SDNR_VES_COLLECTOR_EVENTLOG_MSG_DETAIL
+            value: "{{ .Values.config.sdnr.vesCollector.eventLogMsgDetail | default "SHORT" }}"
+          - name: SDNR_VES_COLLECTOR_USERNAME
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ves-collector-secret" "key" "login") | indent 12 }}
+          - name: SDNR_VES_COLLECTOR_PASSWORD
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ves-collector-secret" "key" "password") | indent 12 }}
+
           volumeMounts:
 {{ include "common.certInitializer.volumeMount" . | indent 10 }}
 {{- if .Values.global.cmpv2Enabled }}
diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml
index 15a8045..cbf5678 100644
--- a/kubernetes/sdnc/values.yaml
+++ b/kubernetes/sdnc/values.yaml
@@ -181,7 +181,10 @@
     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.providersSecrets.keycloakExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
     password: '{{ .Values.config.sdnr.oauth.providersSecrets.keycloak }}'
     passwordPolicy: required
-
+  - uid: ves-collector-secret
+    type: basicAuth
+    login: '{{ .Values.config.sdnr.vesCollector.username }}'
+    password: '{{ .Values.config.sdnr.vesCollector.password }}'
 #################################################################
 # Certificates
 #################################################################
@@ -261,6 +264,7 @@
   ansibleUser: sdnc
   ansiblePassword: sdnc
   # ansibleCredsExternalSecret: some secret
+
   dbSdnctlDatabase: &sdncDbName sdnctl
   enableClustering: true
   sdncHome: /opt/onap/sdnc
@@ -354,6 +358,18 @@
         title: ONAP Keycloak Provider
         roleMapping:
           mykeycloak: admin
+    vesCollector:
+      enabled: false
+      tls:
+        enabled: true
+      trustAllCertificates: false
+      username: sample1
+      password: sample1
+      address: dcae-ves-collector.onap
+      port: 8443
+      version: v7
+      reportingEntityName: ONAP SDN-R
+      eventLogMsgDetail: SHORT
 
 # dependency / sub-chart configuration
 certInitializer:
@@ -501,6 +517,7 @@
     dedicatednode: "no"
     nameOverride: *elasticSearchName
     cluster_name: sdnrdb-cluster
+
 # enable
 sdnc-web:
   enabled: true
diff --git a/kubernetes/vid/templates/configmap.yaml b/kubernetes/vid/templates/configmap.yaml
index 0ba466d..5c423e6 100644
--- a/kubernetes/vid/templates/configmap.yaml
+++ b/kubernetes/vid/templates/configmap.yaml
@@ -27,18 +27,7 @@
 data:
 {{ tpl (.Files.Glob "resources/config/log/vid/*").AsConfig . | indent 2 }}
 ---
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-filebeat-configmap
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+{{ include "common.log.configMap" . }}
 ---
 apiVersion: v1
 kind: ConfigMap
diff --git a/kubernetes/vid/templates/deployment.yaml b/kubernetes/vid/templates/deployment.yaml
index 478b442..116a7cd 100644
--- a/kubernetes/vid/templates/deployment.yaml
+++ b/kubernetes/vid/templates/deployment.yaml
@@ -136,7 +136,7 @@
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
-          - mountPath: /var/log/onap
+          - mountPath: "{{ .Values.log.path }}"
             name: vid-logs
           - mountPath: /tmp/logback.xml
             name: vid-logback
@@ -154,30 +154,16 @@
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
       # side car containers
-        - name: filebeat-onap
-          image: {{ include "repositoryGenerator.image.logging" . }}
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          volumeMounts:
-          - mountPath: /usr/share/filebeat/filebeat.yml
-            name: filebeat-conf
-            subPath: filebeat.yml
-          - mountPath: /var/log/onap
-            name: vid-logs
-          - mountPath: /usr/share/filebeat/data
-            name: vid-data-filebeat
+        {{ include "common.log.sidecar" . | nindent 8 }}
       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
         - name: localtime
           hostPath:
             path: /etc/localtime
-        - name: filebeat-conf
-          configMap:
-            name: {{ include "common.fullname" . }}-filebeat-configmap
+        {{ include "common.log.volumes" . | nindent 8 }}
         - name: vid-cache
           emptyDir: {}
         - name: vid-logs
           emptyDir: {}
-        - name: vid-data-filebeat
-          emptyDir: {}
         - name: vid-logback
           configMap:
             name: {{ include "common.fullname" . }}-log-configmap
diff --git a/kubernetes/vid/values.yaml b/kubernetes/vid/values.yaml
index 91132e2..aba010e 100644
--- a/kubernetes/vid/values.yaml
+++ b/kubernetes/vid/values.yaml
@@ -25,6 +25,7 @@
     service: mariadb-galera
     internalPort: 3306
     nameOverride: mariadb-galera
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Secrets metaconfig
@@ -194,3 +195,7 @@
       cpu: 200m
       memory: 2Gi
   unlimited: {}
+
+# Log configuration
+log:
+  path: /var/log/onap