[DCAEGEN2] Use common.log template

Until now DCAEGEN2 used its own templates instead of common ones. This
change switches filebeat sidecar generation to common.log templates.
Other ONAP components already use it. Filebeat is depreceated and with
use of common templates it is possible to disable it globally.

This patch also changes ConfigMap usage from per component ConfigMap to
one ConfigMap for all of DCAEGEN2 components. This is done to simplify
generated file as there are no differences between per component
ConfigMaps.

Issue-ID: OOM-1
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
Change-Id: I87ffe4890b9a4d79edfe0669750dbf21b4a7b340
diff --git a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_configmap.tpl b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_configmap.tpl
index 5313b07..f76be4c 100644
--- a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_configmap.tpl
+++ b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_configmap.tpl
@@ -52,19 +52,6 @@
   application_config.yaml: |
 {{ $appConf | toYaml | indent 4 }}
 
-{{- if .Values.logDirectory }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-filebeat-configmap
-  namespace: {{ include "common.namespace" . }}
-  labels: {{ include "common.labels" . | nindent 6 }}
-data:
-  filebeat.yml: |-
-{{ include "dcaegen2-services-common.filebeatConfiguration" . | indent 4 }}
-{{- end }}
-
 {{- if .Values.drFeedConfig }}
 ---
 apiVersion: v1
@@ -124,4 +111,4 @@
   {{ $topics | toJson | indent 2 }}
   {{- end }}
 {{- end }}
-{{- end }}
\ No newline at end of file
+{{- end }}
diff --git a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
index 5ba7d29..ef49f8c 100644
--- a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
+++ b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
@@ -222,7 +222,7 @@
 */}}
 
 {{- define "dcaegen2-services-common.microserviceDeployment" -}}
-{{- $logDir :=  default "" .Values.logDirectory -}}
+{{- $logDir :=  default "" .Values.log.path -}}
 {{- $certDir := default "" .Values.certDirectory . -}}
 {{- $tlsServer := default "" .Values.tlsServer -}}
 {{- $commonRelease :=  print (include "common.release" .) -}}
@@ -355,7 +355,7 @@
           name: app-config-input
         {{- if $logDir }}
         - mountPath: {{ $logDir}}
-          name: component-log
+          name: logs
         {{- end }}
         {{- if $certDir }}
         - mountPath: {{ $certDir }}
@@ -370,24 +370,7 @@
         {{- end }}
         {{- include "dcaegen2-services-common._externalVolumeMounts" . | nindent 8 }}
       {{- if $logDir }}
-      - image: {{ include "repositoryGenerator.image.logging" . }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: filebeat
-        env:
-        - name: POD_IP
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: status.podIP
-        resources: {{ include "common.resources" . | nindent 2 }}
-        volumeMounts:
-        - mountPath: /var/log/onap/{{ include "common.name" . }}
-          name: component-log
-        - mountPath: /usr/share/filebeat/data
-          name: filebeat-data
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          name: filebeat-conf
-          subPath: filebeat.yml
+      {{ include "common.log.sidecar" . | nindent 6 }}
       {{- end }}
       {{- if $policy }}
       - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.dcaePolicySyncImage }}
@@ -448,13 +431,8 @@
         name: app-config
       {{- if $logDir }}
       - emptyDir: {}
-        name: component-log
-      - emptyDir: {}
-        name: filebeat-data
-      - configMap:
-          defaultMode: 420
-          name: {{ include "common.fullname" . }}-filebeat-configmap
-        name: filebeat-conf
+        name: logs
+      {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 6 }}
       {{- end }}
       {{- if $certDir }}
       - emptyDir: {}
diff --git a/kubernetes/dcaegen2-services/components/dcae-bbs-eventprocessor-ms/values.yaml b/kubernetes/dcaegen2-services/components/dcae-bbs-eventprocessor-ms/values.yaml
index 572e812..f55aeec 100644
--- a/kubernetes/dcaegen2-services/components/dcae-bbs-eventprocessor-ms/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-bbs-eventprocessor-ms/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -59,8 +60,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /opt/app/bbs-event-processor/logs
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /opt/app/bbs-event-processor/logs
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-datafile-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-datafile-collector/values.yaml
index 2342470..9bdd0b7 100644
--- a/kubernetes/dcaegen2-services/components/dcae-datafile-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-datafile-collector/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -44,8 +45,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-datalake-admin-ui/values.yaml b/kubernetes/dcaegen2-services/components/dcae-datalake-admin-ui/values.yaml
index 0553b52..22a5a5b 100644
--- a/kubernetes/dcaegen2-services/components/dcae-datalake-admin-ui/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-datalake-admin-ui/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -52,8 +53,11 @@
 image: onap/org.onap.dcaegen2.services.datalakeadminui:1.1.1
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/datalake-admin-ui
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/datalake-admin-ui
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-datalake-des/values.yaml b/kubernetes/dcaegen2-services/components/dcae-datalake-des/values.yaml
index 9373e82..051a7a4 100644
--- a/kubernetes/dcaegen2-services/components/dcae-datalake-des/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-datalake-des/values.yaml
@@ -21,10 +21,11 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
-#B
+#
 #################################################################
 filebeatConfig:
   logstashServiceName: log-ls
@@ -58,8 +59,11 @@
 image: onap/org.onap.dcaegen2.services.datalake.exposure.service:1.1.1
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/datalake
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/datalake
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-datalake-feeder/values.yaml b/kubernetes/dcaegen2-services/components/dcae-datalake-feeder/values.yaml
index 2452dc8..07306e1 100644
--- a/kubernetes/dcaegen2-services/components/dcae-datalake-feeder/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-datalake-feeder/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -60,8 +61,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/datalake
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/datalake
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-heartbeat/values.yaml b/kubernetes/dcaegen2-services/components/dcae-heartbeat/values.yaml
index bbf815d..4ed0a83 100644
--- a/kubernetes/dcaegen2-services/components/dcae-heartbeat/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-heartbeat/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -60,8 +61,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/heartbeat
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/heartbeat
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
index 650ec03..3e4b364 100644
--- a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
@@ -22,6 +22,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat configuration defaults.
@@ -45,8 +46,11 @@
 pullPolicy: Always
 
 # log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcae-hv-ves-collector
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcae-hv-ves-collector
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-kpi-ms/values.yaml b/kubernetes/dcaegen2-services/components/dcae-kpi-ms/values.yaml
index 5d8c6d5..037dd0a 100644
--- a/kubernetes/dcaegen2-services/components/dcae-kpi-ms/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-kpi-ms/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -53,8 +54,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/kpims
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/kpims
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-pm-mapper/values.yaml b/kubernetes/dcaegen2-services/components/dcae-pm-mapper/values.yaml
index caae1c3..39c4a8e 100644
--- a/kubernetes/dcaegen2-services/components/dcae-pm-mapper/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-pm-mapper/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -58,8 +59,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/pm-mapper
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/pm-mapper
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-pmsh/values.yaml b/kubernetes/dcaegen2-services/components/dcae-pmsh/values.yaml
index b9005f0..4bdd2b8 100644
--- a/kubernetes/dcaegen2-services/components/dcae-pmsh/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-pmsh/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -60,8 +61,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/pmsh
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/pmsh
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml b/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
index a7f6291..a4ed699 100644
--- a/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat configuration defaults.
@@ -43,8 +44,11 @@
 pullPolicy: Always
 
 # log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /opt/app/prh/logs
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /opt/app/prh/logs
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-restconf-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-restconf-collector/values.yaml
index 66c781c..a4d8ecb 100644
--- a/kubernetes/dcaegen2-services/components/dcae-restconf-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-restconf-collector/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: false
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -54,8 +55,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-# logDirectory: /opt/app/restconfcollector/logs
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: null # /opt/app/restconfcollector/logs
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-slice-analysis-ms/values.yaml b/kubernetes/dcaegen2-services/components/dcae-slice-analysis-ms/values.yaml
index 3300306..6cebca6 100644
--- a/kubernetes/dcaegen2-services/components/dcae-slice-analysis-ms/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-slice-analysis-ms/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -59,8 +60,11 @@
 image: onap/org.onap.dcaegen2.services.components.slice-analysis-ms:1.0.6
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/sliceanalysisms
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/sliceanalysisms
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-snmptrap-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-snmptrap-collector/values.yaml
index 266da24..e250172 100644
--- a/kubernetes/dcaegen2-services/components/dcae-snmptrap-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-snmptrap-collector/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -44,8 +45,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /opt/app/snmptrap/logs
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /opt/app/snmptrap/logs
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 
 # TLS role -- set to true if microservice acts as server
diff --git a/kubernetes/dcaegen2-services/components/dcae-son-handler/values.yaml b/kubernetes/dcaegen2-services/components/dcae-son-handler/values.yaml
index 54dcda8..94c4d88 100644
--- a/kubernetes/dcaegen2-services/components/dcae-son-handler/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-son-handler/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -65,8 +66,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /var/log/ONAP/dcaegen2/services/sonhms
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /var/log/ONAP/dcaegen2/services/sonhms
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml b/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml
index 2ba8edb..a65fa7c 100644
--- a/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml
@@ -22,6 +22,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat configuration defaults.
@@ -45,8 +46,11 @@
 pullPolicy: Always
 
 # log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /opt/logs/dcae-analytics-tca
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /opt/logs/dcae-analytics-tca
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
index 31007f2..e65a293 100644
--- a/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
@@ -22,6 +22,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat configuration defaults.
@@ -45,8 +46,11 @@
 pullPolicy: Always
 
 # log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /opt/app/VESCollector/logs
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /opt/app/VESCollector/logs
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/components/dcae-ves-mapper/values.yaml b/kubernetes/dcaegen2-services/components/dcae-ves-mapper/values.yaml
index 93214d3..82826bc 100644
--- a/kubernetes/dcaegen2-services/components/dcae-ves-mapper/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-ves-mapper/values.yaml
@@ -21,6 +21,7 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
+  centralizedLoggingEnabled: true
 
 #################################################################
 # Filebeat Configuration Defaults.
@@ -43,8 +44,11 @@
 pullPolicy: Always
 
 # Log directory where logging sidecar should look for log files
-# if absent, no sidecar will be deployed
-logDirectory: /opt/app/VESAdapter/logs
+# if path is set to null sidecar won't be deployed in spite of
+# global.centralizedLoggingEnabled setting.
+log:
+  path: /opt/app/VESAdapter/logs
+logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
 
 # Directory where TLS certs should be stored
 # if absent, no certs will be retrieved and stored
diff --git a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_filebeat-config.tpl b/kubernetes/dcaegen2-services/resources/config/log/filebeat/filebeat.yml
similarity index 97%
rename from kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_filebeat-config.tpl
rename to kubernetes/dcaegen2-services/resources/config/log/filebeat/filebeat.yml
index a402517..af62dc3 100644
--- a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_filebeat-config.tpl
+++ b/kubernetes/dcaegen2-services/resources/config/log/filebeat/filebeat.yml
@@ -27,7 +27,6 @@
 
 See dcaegen2-services-common.configMap for more information.
 */}}
-{{- define "dcaegen2-services-common.filebeatConfiguration" -}}
 filebeat.prospectors:
 #it is mandatory, in our case it's log
 - input_type: log
@@ -83,4 +82,3 @@
     path: /usr/share/filebeat/logs
     name: mybeat.log
     keepfiles: 7
-{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/dcaegen2-services/templates/configmap.yaml b/kubernetes/dcaegen2-services/templates/configmap.yaml
index 798f2a7..52eb39f 100644
--- a/kubernetes/dcaegen2-services/templates/configmap.yaml
+++ b/kubernetes/dcaegen2-services/templates/configmap.yaml
@@ -40,4 +40,6 @@
   name: {{ include "common.release" . }}-dcae-external-repo-configmap-sa88-rel16
   namespace: {{ include "common.namespace" . }}
 data:
-{{ (.Files.Glob "resources/external/schemas/sa88-rel16/*").AsConfig | indent 2 }}
\ No newline at end of file
+{{ (.Files.Glob "resources/external/schemas/sa88-rel16/*").AsConfig | indent 2 }}
+---
+{{ include "common.log.configMap" . }}
diff --git a/kubernetes/dcaegen2-services/values.yaml b/kubernetes/dcaegen2-services/values.yaml
index eb0b9cc..7db369c 100644
--- a/kubernetes/dcaegen2-services/values.yaml
+++ b/kubernetes/dcaegen2-services/values.yaml
@@ -14,43 +14,73 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+global:
+  centralizedLoggingEnabled: true
+
+#################################################################
+# Filebeat Configuration Defaults.
+#
+#################################################################
+filebeatConfig:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
 # Control deployment of DCAE microservices at ONAP installation time
 
 dcae-bbs-eventprocessor-ms:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-datafile-collector:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-datalake-admin-ui:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-datalake-des:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-datalake-feeder:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-heartbeat:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-hv-ves-collector:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-kpi-ms:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-ms-healthcheck:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-pm-mapper:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-pmsh:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-prh:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-restconf-collector:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-slice-analysis-ms:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-snmptrap-collector:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-son-handler:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-tcagen2:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-ves-collector:
   enabled: true
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
 dcae-ves-mapper:
   enabled: false
+  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'