Merge "Use free NodePort for Netbox (contrib)"
diff --git a/kubernetes/aai/charts/aai-data-router/resources/dynamic/conf/entity-event-policy.xml b/kubernetes/aai/charts/aai-data-router/resources/dynamic/conf/entity-event-policy.xml
index bfa35c2..acfe0a5 100644
--- a/kubernetes/aai/charts/aai-data-router/resources/dynamic/conf/entity-event-policy.xml
+++ b/kubernetes/aai/charts/aai-data-router/resources/dynamic/conf/entity-event-policy.xml
@@ -27,12 +27,24 @@
     <property name="searchEndpointDocuments" value = "documents" />
     <property name="searchEntitySearchIndex" value="entity-search-index" />
     <property name="searchTopographySearchIndex" value="topography-search-index" />
-    <property name="searchEntityAutoSuggestIndex" value="entity-autosuggest-index" />
-    <property name="searchAggregationVnfIndex" value="aggregate-vnf-index" />
+    <property name="searchEntityAutoSuggestIndex" value="entityautosuggestindex" />
+    <property name="searchAggregationVnfIndex" value="aggregate_generic-vnf_index" />
     <property name="searchCertName" value="client-cert-onap.p12" />
     <property name="searchKeystorePwd" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" />
     <property name="searchKeystore" value="tomcat_keystore" />
   </bean>
+  
+  <bean id="consumerBeanEntityEvent" class="org.onap.aai.event.client.DMaaPEventConsumer " >
+    <constructor-arg name="host" value="message-router.{{.Release.Namespace}}:3904" />
+    <constructor-arg name="topic" value="AAI-EVENT" />
+    <constructor-arg name="username" value="" />
+    <constructor-arg name="password" value="" />
+    <constructor-arg name="consumerGroup" value="datarouter" />
+    <constructor-arg name="consumerId" value="datarouter" />
+    <constructor-arg name="timeoutMs" value="1000" />
+    <constructor-arg name="messageLimit" value="100" />
+    <constructor-arg name="transportType" value="HTTPAUTH" />
+  </bean>
 
   <bean id="entityEventPolicy" class="org.onap.aai.datarouter.policy.EntityEventPolicy" init-method="startup" >
     <constructor-arg ref="eepConfig"/>
diff --git a/kubernetes/aai/charts/aai-data-router/resources/dynamic/routes/entity-event.route b/kubernetes/aai/charts/aai-data-router/resources/dynamic/routes/entity-event.route
index d349ee9..14db6d6 100644
--- a/kubernetes/aai/charts/aai-data-router/resources/dynamic/routes/entity-event.route
+++ b/kubernetes/aai/charts/aai-data-router/resources/dynamic/routes/entity-event.route
@@ -1,4 +1,4 @@
 <route xmlns="http://camel.apache.org/schema/spring" trace="true">

-  <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&amp;groupName=datarouter&amp;groupId=datarouter&amp;url=http://message-router.{{.Release.Namespace}}:3904"/>

+  <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&amp;consumer=#consumerBeanEntityEvent" />

   <to uri="bean:entityEventPolicy?method=process"/>

-</route>

+</route>
\ No newline at end of file
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
index 026c399..47c6788 100644
--- a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
+++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
@@ -32,9 +32,9 @@
 appc.demo.threads.poolsize.min=1
 appc.demo.threads.poolsize.max=2
 appc.demo.provider.user=admin
-appc.demo.provider.pass=admin
+appc.demo.provider.pass={{.Values.config.odlPassword}}
 appc.demo.provider.url=http://localhost:8181/restconf/operations/appc-provider
-appc.provider.vfodl.url=http://admin:admin@{{.Values.service.name}}:{{.Values.service.externalPort}}/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/
+appc.provider.vfodl.url=http://admin:{{.Values.config.odlPassword}}@{{.Values.service.name}}:{{.Values.service.externalPort}}/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/
 
 # The properties right below are needed to properly call the Master DG to serve demo purposes
 appc.service.logic.module.name=APPC
@@ -80,7 +80,7 @@
 appc.LCM.topic.write=APPC-LCM-WRITE
 appc.LCM.client.name=APPC-EVENT-LISTENER-TEST
 appc.LCM.provider.user=admin
-appc.LCM.provider.pass=admin
+appc.LCM.provider.pass={{.Values.config.odlPassword}}
 appc.LCM.provider.url=http://localhost:8181/restconf/operations/appc-provider-lcm
 appc.LCM.scopeOverlap.endpoint=http://localhost:8181/restconf/operations/interfaces-service:execute-service
 
@@ -88,7 +88,7 @@
 poolMembers=message-router.{{.Release.Namespace}}:3904
 event.pool.members=message-router.{{.Release.Namespace}}:3904
 restconf.user=admin
-restconf.pass=admin
+restconf.pass={{.Values.config.odlPassword}}
 
 
 # properties found in appc-rest-adapter-bundle, appc-chef-adapter-bundle, appc-iaas-adapter-bundle)
@@ -127,4 +127,4 @@
 appc.OAM.topic.write=testOAM
 appc.OAM.client.name=testOAM
 appc.OAM.provider.user=admin
-appc.OAM.provider.pass=admin
+appc.OAM.provider.pass={{.Values.config.odlPassword}}
diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml
index 5ee9721..0325275 100644
--- a/kubernetes/appc/values.yaml
+++ b/kubernetes/appc/values.yaml
@@ -54,6 +54,7 @@
   dmaapTopic: SUCCESS
   logstashServiceName: log-ls
   logstashPort: 5044
+  odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
   openStackType: OpenStackProvider
   openStackName: OpenStack
   openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html
diff --git a/kubernetes/esr/templates/configmap.yaml b/kubernetes/esr/templates/configmap.yaml
index 964570b..18a4f84 100644
--- a/kubernetes/esr/templates/configmap.yaml
+++ b/kubernetes/esr/templates/configmap.yaml
@@ -18,6 +18,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-esr-filebeat
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
 ---
@@ -26,6 +31,10 @@
 metadata:
   name: {{ include "common.fullname" . }}-esr-esrserver-log
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/esrserver/logback.xml").AsConfig . | indent 2 }}
-
diff --git a/kubernetes/helm/plugins/deploy/deploy.sh b/kubernetes/helm/plugins/deploy/deploy.sh
new file mode 100755
index 0000000..07455d7
--- /dev/null
+++ b/kubernetes/helm/plugins/deploy/deploy.sh
@@ -0,0 +1,168 @@
+#!/bin/bash
+
+usage() {
+cat << EOF
+Install (or upgrade) an umbrella Helm Chart, and its subcharts, as separate Helm Releases 
+
+The umbrella Helm Chart is broken apart into a parent release and subchart releases.
+Subcharts the are disabled (<chart>.enabled=false) will not be installed or upgraded.
+All releases are grouped and deployed within the same namespace.
+
+
+The deploy arguments must be a release and chart. The chart
+argument can be either: a chart reference('stable/onap'), a path to a chart directory,
+a packaged chart, or a fully qualified URL. For chart references, the latest
+version will be specified unless the '--version' flag is set.
+
+To override values in a chart, use either the '--values' flag and pass in a file
+or use the '--set' flag and pass configuration from the command line, to force string
+values, use '--set-string'.
+
+You can specify the '--values'/'-f' flag multiple times. The priority will be given to the
+last (right-most) file specified. For example, if both myvalues.yaml and override.yaml
+contained a key called 'Test', the value set in override.yaml would take precedence:
+
+	$ helm deploy demo ./onap --namespace onap -f openstack.yaml -f overrides.yaml
+
+You can specify the '--set' flag multiple times. The priority will be given to the
+last (right-most) set specified. For example, if both 'bar' and 'newbar' values are
+set for a key called 'foo', the 'newbar' value would take precedence:
+
+	$ helm deploy demo local/onap --namespace onap -f overrides.yaml --set log.enabled=false --set vid.enabled=false
+
+Usage:
+  helm deploy [RELEASE] [CHART] [flags]
+
+Flags:
+      --namespace string         namespace to install the release into. Defaults to the current kube config namespace.
+      --set stringArray          set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
+      --set-string stringArray   set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
+  -f, --values valueFiles        specify values in a YAML file or a URL(can specify multiple) (default [])
+EOF
+}
+
+parse_yaml() {
+  local prefix=$2
+  local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
+  sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
+       -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p"  $1 |
+  awk -F$fs '{
+     indent = length($1)/2;
+     vname[indent] = $2;
+     for (i in vname) {if (i > indent) {delete vname[i]}}
+     if (length($3) > 0) {
+        vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
+        printf("%s%s%s=\"%s\"\n", "'$prefix'",vn, $2, $3);
+     }
+  }'
+}
+
+generate_overrides() {
+  SUBCHART_NAMES=($(cat $COMPUTED_OVERRIDES | grep -v '^\s\s'))
+
+  for index in "${!SUBCHART_NAMES[@]}"; do
+    START=${SUBCHART_NAMES[index]}
+    END=${SUBCHART_NAMES[index+1]}
+    if [[ $START == "global:" ]]; then
+      echo "global:" > $GLOBAL_OVERRIDES
+      cat $COMPUTED_OVERRIDES | sed '/common:/,/consul:/d' \
+        | sed -n '/'"$START"'/,/'log:'/p' | sed '1d;$d' >> $GLOBAL_OVERRIDES  
+    else
+      SUBCHART_DIR="$CACHE_SUBCHART_DIR/$(cut -d':' -f1 <<<"$START")"
+      if [[ -d "$SUBCHART_DIR" ]]; then
+        cat $COMPUTED_OVERRIDES | sed -n '/'"$START"'/,/'"$END"'/p' \
+          | sed '1d;$d' | cut -c3- > $SUBCHART_DIR/subchart-overrides.yaml
+      fi
+    fi
+  done
+}
+
+deploy() {
+  RELEASE=$1
+  CHART_URL=$2
+  FLAGS=${@:3}
+  CHART_REPO="$(cut -d'/' -f1 <<<"$CHART_URL")"
+  CHART_NAME="$(cut -d'/' -f2 <<<"$CHART_URL")"
+  CACHE_DIR=~/.helm/plugins/deploy/cache
+  CHART_DIR=$CACHE_DIR/$CHART_NAME
+  CACHE_SUBCHART_DIR=$CHART_DIR-subcharts
+  # should pass all flags instead
+  NAMESPACE="$(echo $FLAGS | sed -n 's/.*\(namespace\).\s*/\1/p' | cut -c10-)"
+ 
+  # clear previously cached charts
+  rm -rf $CACHE_DIR
+
+  # fetch umbrella chart (parent chart containing subcharts)
+  if [[ -d "$CHART_URL" ]]; then
+    mkdir -p $CHART_DIR
+    cp -R $CHART_URL/* $CHART_DIR/
+
+    cd $CHART_DIR/charts/
+    for subchart in * ; do
+      tar xzf ${subchart}
+    done
+    rm -rf *.tgz
+  else
+    helm fetch $CHART_URL --untar --untardir $CACHE_DIR
+  fi
+
+  # move out subcharts to process separately
+  mkdir -p $CACHE_SUBCHART_DIR
+  mv $CHART_DIR/charts/* $CACHE_SUBCHART_DIR/
+  # temp hack - parent chart needs common subchart
+  mv $CACHE_SUBCHART_DIR/common $CHART_DIR/charts/
+
+  # disable dependencies
+  rm $CHART_DIR/requirements.lock
+  mv $CHART_DIR/requirements.yaml $CHART_DIR/requirements.deploy
+
+  # compute overrides for parent and all subcharts
+  COMPUTED_OVERRIDES=$CACHE_DIR/$CHART_NAME/computed-overrides.yaml
+  helm upgrade -i $RELEASE $CHART_DIR $FLAGS --dry-run --debug \
+   | sed -n '/COMPUTED VALUES:/,/HOOKS:/p' | sed '1d;$d' > $COMPUTED_OVERRIDES
+
+  # extract global overrides to apply to parent and all subcharts
+  GLOBAL_OVERRIDES=$CHART_DIR/global-overrides.yaml
+  generate_overrides $COMPUTED_OVERRIDES $GLOBAL_OVERRIDES
+
+  # upgrade/install parent chart first
+  helm upgrade -i $RELEASE $CHART_DIR --namespace $NAMESPACE -f $COMPUTED_OVERRIDES
+
+  # parse computed overrides - will use to determine if a subchart is "enabled"
+  eval $(parse_yaml $COMPUTED_OVERRIDES "computed_")
+
+  # upgrade/install each "enabled" subchart
+  cd $CACHE_SUBCHART_DIR
+  for subchart in * ; do
+    VAR="computed_${subchart}_enabled"
+    COMMAND="$"$VAR
+    eval "SUBCHART_ENABLED=$COMMAND"
+    if [[ $SUBCHART_ENABLED == "true" ]]; then
+      SUBCHART_OVERRIDES=$CACHE_SUBCHART_DIR/$subchart/subchart-overrides.yaml
+      helm upgrade -i "${RELEASE}-${subchart}" $CACHE_SUBCHART_DIR/$subchart \
+       --namespace $NAMESPACE -f $GLOBAL_OVERRIDES -f $SUBCHART_OVERRIDES
+    fi
+  done
+}
+
+if [[ $# < 2 ]]; then
+  usage
+  exit 0
+fi
+
+case "${1:-"help"}" in
+  "help")
+    usage
+    ;;
+  "--help")
+    usage
+    ;;
+  "-h")
+    usage
+    ;;
+  *)
+    deploy $1 $2 ${@:3}
+    ;;
+esac
+
+exit 0
\ No newline at end of file
diff --git a/kubernetes/helm/plugins/deploy/plugin.yaml b/kubernetes/helm/plugins/deploy/plugin.yaml
new file mode 100644
index 0000000..fc7f7d0
--- /dev/null
+++ b/kubernetes/helm/plugins/deploy/plugin.yaml
@@ -0,0 +1,7 @@
+name: "deploy"
+version: "1.0.0"
+usage: "install (upgrade if release exists) parent chart and subcharts as separate 
+but related releases"
+description: "install (upgrade if release exists) parent charty and all subcharts as separate 
+but related releases"
+command: "$HELM_PLUGIN_DIR/deploy.sh"
\ No newline at end of file
diff --git a/kubernetes/helm/plugins/undeploy/plugin.yaml b/kubernetes/helm/plugins/undeploy/plugin.yaml
new file mode 100644
index 0000000..02999fd
--- /dev/null
+++ b/kubernetes/helm/plugins/undeploy/plugin.yaml
@@ -0,0 +1,7 @@
+name: "undeploy"
+version: "1.0.0"
+usage: "delete parent chart and subcharts that were deployed as separate 
+releases"
+description: "delete parent chart and subcharts that were deployed as separate 
+releases"
+command: "$HELM_PLUGIN_DIR/undeploy.sh"
\ No newline at end of file
diff --git a/kubernetes/helm/plugins/undeploy/undeploy.sh b/kubernetes/helm/plugins/undeploy/undeploy.sh
new file mode 100755
index 0000000..02b5d34
--- /dev/null
+++ b/kubernetes/helm/plugins/undeploy/undeploy.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+usage() {
+cat << EOF
+Delete an umbrella Helm Chart, and its subcharts, that was previously deployed using 'Helm deploy'. 
+
+Example of deleting all Releases that have the prefix 'demo'.
+  $ helm undeploy demo
+
+  $ helm undeploy demo --purge
+
+Usage:
+  helm undeploy [RELEASE] [flags]
+
+Flags:
+      --purge     remove the releases from the store and make its name free for later use
+EOF
+}
+
+undeploy() {
+  RELEASE=$1
+  FLAGS=$2
+
+  array=($(helm ls -q | grep $RELEASE))
+  n=${#array[*]}
+  for (( i = n-1; i >= 0; i-- ))
+  do
+    helm del "${array[i]}" $FLAGS
+  done
+}
+
+if [[ $# < 1 ]]; then
+  echo "Error: command 'undeploy' requires a release name"
+  exit 0
+fi
+
+case "${1:-"help"}" in
+  "help")
+    usage
+    ;;
+  "--help")
+    usage
+    ;;
+  "-h")
+    usage
+    ;;
+  *)
+    undeploy $1 ${@:2}
+    ;;
+esac
+
+exit 0
\ No newline at end of file
diff --git a/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml
index 16355ee..7dd8fa5 100644
--- a/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml
+++ b/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml
@@ -20,5 +20,10 @@
 metadata:
   name: {{ include "common.fullname" . }}-log-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml
index 411c445..0b39a5c 100644
--- a/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml
+++ b/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml
@@ -20,5 +20,10 @@
 metadata:
   name: {{ include "common.fullname" . }}-log-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml
index 411c445..0b39a5c 100644
--- a/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml
+++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml
@@ -20,5 +20,10 @@
 metadata:
   name: {{ include "common.fullname" . }}-log-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/multicloud/templates/configmap.yaml b/kubernetes/multicloud/templates/configmap.yaml
index bdbbc9b..e2b789d 100644
--- a/kubernetes/multicloud/templates/configmap.yaml
+++ b/kubernetes/multicloud/templates/configmap.yaml
@@ -20,6 +20,11 @@
 metadata:
   name: multicloud-filebeat-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
 ---
@@ -28,6 +33,11 @@
 metadata:
   name: {{ include "common.fullname" . }}-log-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }}
 ---
@@ -36,5 +46,10 @@
 metadata:
   name: {{ include "common.fullname" . }}-provider-plugin-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/provider-plugin.json").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/resources/config/pe/push-policies.sh b/kubernetes/policy/resources/config/pe/push-policies.sh
index a86a5fc..44f3b36 100644
--- a/kubernetes/policy/resources/config/pe/push-policies.sh
+++ b/kubernetes/policy/resources/config/pe/push-policies.sh
@@ -148,12 +148,45 @@
 
 echo "Create MicroServicevCPE Policy"
 curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-	"configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevCPE\", \"description\": \"MicroService vCPE Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"Measurement_vGMUX\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ABATED\" }, { \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"GREATER\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" }] }] } } }",
+    "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevCPE\", \"description\": \"MicroService vCPE Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"Measurement_vGMUX\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ABATED\" }, { \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"GREATER\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" }] }] } } }",
 	"policyConfigType": "MicroService",
 	"policyName": "com.MicroServicevCPE",
 	"onapName": "DCAE"
 }' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
 
+#########################################Create SDNC Naming Policies##########################################
+
+echo "Create SDNC Naming Policies"
+
+sleep 2
+
+echo "Create SDNC vFW Naming Policy"
+curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ 
+    "configBody": "{\"service\":\"SDNC-GenerateName\",\"version\":\"CSIT\",\"content\":{\"policy-instance-name\":\"ONAP_VFW_NAMING_TIMESTAMP\",\"naming-models\":[{\"naming-properties\":[{\"property-name\":\"AIC_CLOUD_REGION\"},{\"property-name\":\"nfRole\"},{\"property-name\":\"TIMESTAMP\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"VNF\",\"nfRole\":\"vFW\",\"naming-recipe\":\"AIC_CLOUD_REGION|DELIMITER|nfRole|DELIMITER|TIMESTAMP\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-name\":\"SEQUENCE\",\"increment-sequence\":{\"max\":\"zzz\",\"scope\":\"ENTIRETY\",\"start-value\":\"001\",\"length\":\"3\",\"increment\":\"1\",\"sequence-type\":\"alpha-numeric\"}},{\"property-name\":\"NFC_NAMING_CODE\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"VNFC\",\"nfRole\":\"vFW\",\"naming-recipe\":\"VNF_NAME|DELIMITER|NFC_NAMING_CODE|DELIMITER|SEQUENCE\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"},{\"property-name\":\"VF_MODULE_LABEL\"},{\"property-name\":\"VF_MODULE_TYPE\"},{\"property-name\":\"SEQUENCE\",\"increment-sequence\":{\"max\":\"zzz\",\"scope\":\"PRECEEDING\",\"start-value\":\"01\",\"length\":\"3\",\"increment\":\"1\",\"sequence-type\":\"alpha-numeric\"}}],\"naming-type\":\"VF-MODULE\",\"nfRole\":\"vFW\",\"naming-recipe\":\"VNF_NAME|DELIMITER|VF_MODULE_LABEL|DELIMITER|VF_MODULE_TYPE|DELIMITER|SEQUENCE\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"}],\"naming-type\":\"KEY\",\"nfRole\":\"vFW\",\"naming-recipe\":\"VNF_NAME\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"protected\",\"property-name\":\"CONSTANT\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"protected_private_net_id\",\"nfRole\":\"vFW\",\"naming-recipe\":\"VNF_NAME|DELIMITER|CONSTANT\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"unprotected\",\"property-name\":\"CONSTANT\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"unprotected_private_net_id\",\"nfRole\":\"vFW\",\"naming-recipe\":\"VNF_NAME|DELIMITER|CONSTANT\"}]}}",
+    "policyName": "SDNC_Policy.ONAP_VFW_NAMING_TIMESTAMP",
+    "policyConfigType": "MicroService",
+    "onapName": "SDNC",
+    "riskLevel": "4",
+    "riskType": "test",
+    "guard": "false",
+    "priority": "4",
+    "description": "ONAP_VFW_NAMING_TIMESTAMP"
+}' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create SDNC vPG Naming Policy"
+curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ 
+    "configBody": "{\"service\":\"SDNC-GenerateName\",\"version\":\"CSIT\",\"content\":{\"policy-instance-name\":\"ONAP_VPG_NAMING_TIMESTAMP\",\"naming-models\":[{\"naming-properties\":[{\"property-name\":\"AIC_CLOUD_REGION\"},{\"property-name\":\"nfRole\"},{\"property-name\":\"TIMESTAMP\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"VNF\",\"nfRole\":\"vPG\",\"naming-recipe\":\"AIC_CLOUD_REGION|DELIMITER|nfRole|DELIMITER|TIMESTAMP\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-name\":\"SEQUENCE\",\"increment-sequence\":{\"max\":\"zzz\",\"scope\":\"ENTIRETY\",\"start-value\":\"001\",\"length\":\"3\",\"increment\":\"1\",\"sequence-type\":\"alpha-numeric\"}},{\"property-name\":\"NFC_NAMING_CODE\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"VNFC\",\"nfRole\":\"vPG\",\"naming-recipe\":\"VNF_NAME|DELIMITER|NFC_NAMING_CODE|DELIMITER|SEQUENCE\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"},{\"property-name\":\"VF_MODULE_LABEL\"},{\"property-name\":\"VF_MODULE_TYPE\"},{\"property-name\":\"SEQUENCE\",\"increment-sequence\":{\"max\":\"zzz\",\"scope\":\"PRECEEDING\",\"start-value\":\"01\",\"length\":\"3\",\"increment\":\"1\",\"sequence-type\":\"alpha-numeric\"}}],\"naming-type\":\"VF-MODULE\",\"nfRole\":\"vPG\",\"naming-recipe\":\"VNF_NAME|DELIMITER|VF_MODULE_LABEL|DELIMITER|VF_MODULE_TYPE|DELIMITER|SEQUENCE\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"}],\"naming-type\":\"KEY\",\"nfRole\":\"vPG\",\"naming-recipe\":\"VNF_NAME\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"protected\",\"property-name\":\"CONSTANT\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"protected_private_net_id\",\"nfRole\":\"vPG\",\"naming-recipe\":\"VNF_NAME|DELIMITER|CONSTANT\"},{\"naming-properties\":[{\"property-name\":\"VNF_NAME\"},{\"property-value\":\"unprotected\",\"property-name\":\"CONSTANT\"},{\"property-value\":\"_\",\"property-name\":\"DELIMITER\"}],\"naming-type\":\"unprotected_private_net_id\",\"nfRole\":\"vPG\",\"naming-recipe\":\"VNF_NAME|DELIMITER|CONSTANT\"}]}}",
+    "policyName": "SDNC_Policy.ONAP_VPG_NAMING_TIMESTAMP",
+    "policyConfigType": "MicroService",
+    "onapName": "SDNC",
+    "riskLevel": "4",
+    "riskType": "test",
+    "guard": "false",
+    "priority": "4",
+    "description": "ONAP_VPG_NAMING_TIMESTAMP"
+}' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
 
 #########################################Creating Decision Guard policy######################################### 
 
@@ -262,3 +295,24 @@
   "policyName": "com.MicroServicevCPE",
   "policyType": "MicroService"
 }' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy' 
+
+#########################################Pushing SDNC Naming Policies##########################################
+echo "Pushing SDNC Naming Policies"
+
+sleep 2
+
+echo "pushPolicy : PUT : SDNC_Policy.ONAP_VFW_NAMING_TIMESTAMP"
+curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+  "pdpGroup": "default",
+  "policyName": "SDNC_Policy.ONAP_VFW_NAMING_TIMESTAMP",
+  "policyType": "MicroService"
+}' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy' 
+
+sleep 10
+
+echo "pushPolicy : PUT : SDNC_Policy.ONAP_VPG_NAMING_TIMESTAMP"
+curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+  "pdpGroup": "default",
+  "policyName": "SDNC_Policy.ONAP_VPG_NAMING_TIMESTAMP",
+  "policyType": "MicroService"
+}' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy' 
diff --git a/kubernetes/pomba/charts/pomba-kibana/resources/config/default.json b/kubernetes/pomba/charts/pomba-kibana/resources/config/default.json
index f58be68..d54dbfe 100644
--- a/kubernetes/pomba/charts/pomba-kibana/resources/config/default.json
+++ b/kubernetes/pomba/charts/pomba-kibana/resources/config/default.json
@@ -204,7 +204,7 @@
     "index-pattern": {
       "title": "service-validations*",
       "timeFieldName": "validationTimestamp",
-      "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"modelInvariantId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"modelName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"modelVersionId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"result\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"serviceInstanceId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"validationId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"validationTimestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.category\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.errorMessage\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.modelName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.severity\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.validationRule\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].nf-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.max-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.min-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vnfc-list.name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vnfc-list.nfc-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-service-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.max-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.min-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.nfc-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf-list[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf-list[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationTimestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationType\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false}]"
+      "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"modelInvariantId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"modelName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"modelVersionId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"result\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"serviceInstanceId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"validationId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"validationTimestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.category\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.errorMessage\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.modelName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.severity\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.validationRule\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].nf-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.max-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.min-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vf-module-list.uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vnfc-list.name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf-list[*].vnfc-list.nfc-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-aai-vf[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-service-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.max-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.min-instances\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vf-module-list.uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.nfc-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdc-vf-list[*].vnfc-list.uuid\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf-list[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf-list[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf[*]-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationDetails.context-list-sdnc-vf[*]-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"violations.violationTimestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"violations.violationType\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"client\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"requestId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false}]"
     }
   }
 }{
@@ -236,4 +236,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/kubernetes/pomba/charts/pomba-kibana/resources/config/validationsDump.json b/kubernetes/pomba/charts/pomba-kibana/resources/config/validationsDump.json
index e9ebad7..ae01e96 100644
--- a/kubernetes/pomba/charts/pomba-kibana/resources/config/validationsDump.json
+++ b/kubernetes/pomba/charts/pomba-kibana/resources/config/validationsDump.json
@@ -178,9 +178,15 @@
                 "type": "text"
               }
             }
+          },
+          "client": {
+            "type": "text"
+          },
+          "requestId": {
+            "type": "text"
           }
         }
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy b/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy
new file mode 100644
index 0000000..c669909
--- /dev/null
+++ b/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy
@@ -0,0 +1,226 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ */
+
+entity {
+    name 'POA-EVENT'
+    indexing {
+        indices 'default-rules'
+    }
+  validation {
+
+    // NDCB-AAI comparison: Context level
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb', 'context-list.aai'
+    }
+
+    // NDCB-AAI comparison: Service entity
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb.service', 'context-list.aai.service'
+    }
+
+    // NDCB-AAI comparison: VF list
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb.vfList[*]', 'context-list.aai.vfList[*]'
+    }
+
+    // NDCB-AAI comparison: VF-Module list
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb.vfList[*].vfModuleList[*]', 'context-list.aai.vfList[*].vfModuleList[*]'
+    }
+
+    // NDCB-AAI comparison: VNFC list
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb.vfList[*].vnfcList[*]', 'context-list.aai.vfList[*].vnfcList[*]'
+    }
+
+    // NDCB-AAI comparison: VM list
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb.vfList[*].vfModuleList[*].vmList[*]', 'context-list.aai.vfList[*].vfModuleList[*].vmList[*]'
+    }
+
+    // NDCB-AAI comparison: Network list
+    useRule {
+      name 'NDCB-AAI-attribute-comparison'
+      attributes 'context-list.ndcb.vfList[*].vfModuleList[*].networkList[*]', 'context-list.aai.vfList[*].vfModuleList[*].networkList[*]'
+    }
+
+    // SDC-AAI VNFC type
+    useRule {
+      name 'SDC-AAI-vnfc-type'
+      attributes 'context-list.sdc.vfList[*].vnfcList[*]', 'context-list.aai.vfList[*].vnfcList[*]'
+    }
+
+    // SDC-AAI VNFC node count
+    useRule {
+      name 'SDC-AAI-vnfc-node-count'
+      attributes 'context-list.sdc.vfList[*].vnfcList[*]', 'context-list.aai.vfList[*].vnfcList[*]'
+    }
+
+    // SDC-AAI VF-Module instance
+    useRule {
+      name 'SDC-AAI-vf-module-instance-check'
+      attributes 'context-list.ndcb.vfList[*].vfModuleList[*]', 'context-list.aai.vfList[*].vfModuleList[*]'
+    }
+  }
+}
+
+rule {
+  name        'SDC-AAI-vnfc-type'
+  category    'INVALID_VALUE'
+  description 'Validate that each VNFC instance in AAI conforms to a VNFC type defined in SDC model'
+  errorText   'AAI VNFC instance includes non-specified type in design SDC model'
+  severity    'ERROR'
+  attributes  'sdcList', 'aaiList'
+  validate    '''
+        def getVnfcTypes = { parsedData ->
+          parsedData.collect{ it.findResult{ k, v -> if(k.equals("type")) {return "$v"}}}
+        }
+
+        def slurper = new groovy.json.JsonSlurper()
+        def sdcTypes = getVnfcTypes(slurper.parseText(sdcList.toString()))
+        def aaiTypes = getVnfcTypes(slurper.parseText(aaiList.toString()))
+
+        // each type in AAI must exist in SDC
+        return aaiTypes.containsAll(sdcTypes)
+                '''
+}
+
+rule {
+  name        'SDC-AAI-vnfc-node-count'
+  category    'INVALID_VALUE'
+  description 'Validate that for each VNFC node defined in SDC model, there is at least one VNFC instance in AAI'
+  errorText   'Design has specified types but not all of them exist in AAI'
+  severity    'WARNING'
+  attributes  'sdcList', 'aaiList'
+  validate    '''
+        def getVnfcNodes = { parsedData ->
+          parsedData.collect { new Tuple2(
+              it.findResult{ k, v -> if(k.equals("name")) {return "$v"}},
+              it.findResult{ k, v -> if(k.equals("type")) {return "$v"}})
+          }
+        }
+
+        def slurper = new groovy.json.JsonSlurper()
+        def sdcNodes = getVnfcNodes(slurper.parseText(sdcList.toString()))
+        def aaiNodes = getVnfcNodes(slurper.parseText(aaiList.toString()))
+
+        // each node in AAI must exist in SDC
+        return aaiNodes.containsAll(sdcNodes)
+                '''
+}
+
+rule {
+  name        'SDC-AAI-vf-module-instance-check'
+  category    'INVALID_VALUE'
+  description 'Validate that each VF module instance in AAI conforms to a VF module defined in SDC service model'
+  errorText   'One or more AAI VF module instance(s) not defined in SDC model'
+  severity    'CRITICAL'
+  attributes  'sdcList', 'aaiList'
+  validate    '''
+        def getVfModules = { parsedData ->
+          parsedData.collect{ it.findResult{ k, v -> if(k.equals("name")) {return "$v"}}}
+        }
+
+        def slurper = new groovy.json.JsonSlurper()
+        def sdcVfModules = getVfModules(slurper.parseText(sdcList.toString()))
+        def aaiVfModules = getVfModules(slurper.parseText(aaiList.toString()))
+
+        // all VF modules in AAI must exist in SDC
+        return aaiVfModules.containsAll(sdcVfModules)
+                '''
+}
+
+rule {
+  name        'NDCB-AAI-attribute-comparison'
+  category    'INVALID_VALUE'
+  description 'Verify that every attribute in Network-Discovery is the same as in AAI'
+  errorText   'Some attributes in Network-Discovery are not equal to attributes in AAI'
+  severity    'ERROR'
+  attributes  'ndcbItems', 'aaiItems'
+  validate    '''
+        Closure<java.util.Map> getAttributes = { parsedData ->
+          java.util.Map attributeMap = new java.util.HashMap()
+
+          def isAttributeDataQualityOk = { attribute ->
+            attribute.findResult{ k, v -> if(k.equals("dataQuality") ) {return v.get("status")}}.equals("ok")
+          }
+
+          def addToMap = { attrKey, attrValue ->
+            java.util.Set values = attributeMap.get("$attrKey")
+            if(values == null) {
+              values = new java.util.HashSet()
+              attributeMap.put("$attrKey", values)
+            }
+            values.add("$attrValue")
+          }
+
+          def addAttributeToMap = { attribute ->
+            if(isAttributeDataQualityOk(attribute)) {
+              String key, value
+              attribute.each { k, v ->
+                if(k.equals("name")) {key = "$v"}
+                if(k.equals("value")) {value = "$v"}
+              }
+              addToMap("$key", "$value")
+            }
+          }
+
+          def processKeyValue = { key, value ->
+            if(value instanceof java.util.ArrayList) {
+              if(key.equals("attributeList")) {
+                value.each {
+                  addAttributeToMap(it)
+                }
+              }
+            } else if(!(value instanceof groovy.json.internal.LazyMap)) {
+              // only add key-value attributes, skip the rest
+              addToMap("$key", "$value")
+            }
+          }
+
+          if(parsedData instanceof java.util.ArrayList) {
+            parsedData.each {
+              it.each { key, value -> processKeyValue(key, value) }
+            }
+          } else {
+            parsedData.each { key, value -> processKeyValue(key, value) }
+          }
+          return attributeMap
+        }
+
+        def slurper = new groovy.json.JsonSlurper()
+        java.util.Map ndcb = getAttributes(slurper.parseText(ndcbItems.toString()))
+        java.util.Map aai = getAttributes(slurper.parseText(aaiItems.toString()))
+
+        ndcb.each{ ndcbKey, ndcbValueList ->
+          def aaiValueList = aai.get("$ndcbKey")
+          aaiValueList.each{ aaiValue ->
+            if(!ndcbValueList.any{ it == "$aaiValue" }) {
+              return false
+            }
+          }
+        }
+        return true
+        '''
+}
\ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml
index e66afdc..d3bfd81 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/templates/configmap.yaml
@@ -35,3 +35,11 @@
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/appconfig/topics/*.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-rules
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/bundleconfig/etc/rules/poa-event/*.groovy").AsConfig . | indent 2 }}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
index 550223b..5faa453 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
@@ -72,6 +72,8 @@
             name: config-auth
           - mountPath: {{ .Values.config.configTopicsDir }}/
             name: config-topics
+          - mountPath: {{ .Values.config.rulesDir }}/
+            name: rules
           resources:
 {{ toYaml .Values.resources | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -125,5 +127,12 @@
               path: topic-poa-audit-result.properties
             - key: topic-poa-rule-validation.properties
               path: topic-poa-rule-validation.properties
+        - name: rules
+          configMap:
+            name: {{ include "common.fullname" . }}-rules
+            defaultMode: 0644
+            items:
+            - key: default-rules.groovy
+              path: default-rules.groovy
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/pomba/charts/pomba-validation-service/values.yaml b/kubernetes/pomba/charts/pomba-validation-service/values.yaml
index 775527f..9607671 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/values.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/values.yaml
@@ -43,6 +43,7 @@
   configDir: /opt/app/validation-service/appconfig
   configAuthDir: /opt/app/validation-service/appconfig/auth
   configTopicsDir: /opt/app/validation-service/appconfig/topics
+  rulesDir: /opt/app/validation-service/bundleconfig/etc/rules/poa-event
   maxHeap: 1024
 #  username: myusername
 #  password: mypassword
diff --git a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
index bcdd42b..9111644 100644
--- a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
+++ b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
@@ -128,8 +128,8 @@
 GLOBAL_SMS_SERVER_NAME = "aaf-sms.{{include "common.namespace" .}}"
 GLOBAL_SMS_SERVER_PORT = "10443"
 # vid info - everything is from the private oam network (also called onap private network)
-GLOBAL_VID_SERVER_PROTOCOL = "http"
-GLOBAL_VID_SERVER_PORT = "8080"
+GLOBAL_VID_SERVER_PROTOCOL = "https"
+GLOBAL_VID_SERVER_PORT = "8443"
 GLOBAL_VID_USERNAME = "demo"
 GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX"
 GLOBAL_VID_HEALTH_USERNAME = "Default"
diff --git a/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
index 01f836a..9021ef5 100755
--- a/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
@@ -15,7 +15,7 @@
   auth: 2630606608347B7124C244AB0FE34F6F
   dme2:
     timeout: '30000'
-  endpoint: https://aai.api.simpledemo.onap.org:8443
+  endpoint: https://aai.{{ include "common.namespace" . }}:8443
 camunda:
   bpm:
     admin-user:
@@ -39,50 +39,50 @@
   adapters:
     requestDb:
       auth: Basic YnBlbDptc28tZGItMTUwNyE=
-      endpoint: https://c1.vm1.mso.simpledemo.onap.org:8081
+      endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083
     completemsoprocess:
-      endpoint:  http://c1.vm1.mso.simpledemo.onap.org:8081/CompleteMsoProcess
+      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/CompleteMsoProcess
     db:
       auth: 26AFB797A6A57960D5D718491925C50F77CDC22AC394B3DBA09950D8FD1C0764
       password: wLg4sjrAFUS8rfVfdvTXeQ==
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8083/services/RequestsDbAdapter
+      endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083/services/RequestsDbAdapter
       spring:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8083
+        endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083
     network:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/NetworkAdapter
+      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/NetworkAdapter
       rest:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/rest/v1/networks
+        endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/rest/v1/networks
     openecomp:
       db:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8083/services/RequestsDbAdapter
+        endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083/services/RequestsDbAdapter
     po:
       auth: 757A94191D685FD2092AC1490730A4FC
       password: 3141634BF7E070AA289CF2892C986C0B
     sdnc:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8086/adapters/SDNCAdapter
+      endpoint: http://mso-sdnc-adapter.{{ include "common.namespace" . }}:8086/adapters/SDNCAdapter
       rest:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8086/adapters/rest/v1/sdnc
+        endpoint: http://mso-sdnc-adapter.{{ include "common.namespace" . }}:8086/adapters/rest/v1/sdnc
       timeout: PT60S
     tenant:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/TenantAdapter
+      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/TenantAdapter
     vnf:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/VnfAdapter
+      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/VnfAdapter
       rest:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/rest/vnfs/v1/vnfs
+        endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/rest/vnfs/v1/vnfs
     volume-groups:
       rest:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/rest/v1/volume-groups
+        endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}g:8087/services/rest/v1/volume-groups
     vnf-async:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8087/services/VnfAdapterAsync
+      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/VnfAsyncAdapter
   bpmn:
     process:
       historyTimeToLive: '30'
   callbackRetryAttempts: '5'
   catalog:
     db:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8082/ecomp/mso/catalog
+      endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8083/ecomp/mso/catalog
       spring:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8082
+        endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8083
   db:
     auth: Basic YnBlbDptc28tZGItMTUwNyE=
   default:
@@ -98,7 +98,7 @@
     timeout: PT60S
   request:
     db:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8083/
+      endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083/
   rollback: 'true'
   sdnc:
     password: 3141634BF7E070AA289CF2892C986C0B
@@ -110,7 +110,7 @@
   site-name: CamundaEngine
   sniro:
     auth: test:testpwd
-    callback: http://c1.vm1.mso.simpledemo.onap.org:8086/adapters/rest/SDNCNotify
+    callback: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/adapters/rest/SDNCNotify
     endpoint: http://replaceme:28090/optimizationInstance/V1/create
     timeout: PT30M
   workflow:
@@ -183,20 +183,20 @@
         aai:
           namespace: http://org.onap.aai.inventory/
     message:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8081/mso/WorkflowMessage
+      endpoint: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/WorkflowMessage
     notification:
       name: GenericNotificationServiceATT
     sdncadapter:
-      callback: http://c1.vm1.mso.simpledemo.onap.org:8086/mso/SDNCAdapterCallbackService
+      callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/SDNCAdapterCallbackService
     vnfadapter:
       create:
-        callback: http://c1.vm1.mso.simpledemo.onap.org:8087/mso/vnfAdapterNotify
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
       delete:
-        callback: http://c1.vm1.mso.simpledemo.onap.org:8087/mso/vnfAdapterNotify
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
       query:
-        callback: http://c1.vm1.mso.simpledemo.onap.org:8087/mso/vnfAdapterNotify
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
       rollback:
-        callback: http://c1.vm1.mso.simpledemo.onap.org:8087/mso/vnfAdapterNotify
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
   global:
     dmaap:
       username: testuser
@@ -208,11 +208,11 @@
   auth: Basic dGVzdHBkcDphbHBoYTEyMw==
   client:
     auth: Basic bTAzNzQzOnBvbGljeVIwY2sk
-  endpoint: https://localhost:8081/pdp/api/
+  endpoint: http://pdp.{{ include "common.namespace" . }}:8081/pdp/api/
   environment: TEST
 sdnc:
   auth: Basic YWRtaW46YWRtaW4=
-  host: https://localhost:8443
+  host: https://sdc-be.{{ include "common.namespace" . }}:8443
   path: /restconf/operations/GENERIC-RESOURCE-API
 appc:
   client:
@@ -230,22 +230,12 @@
     key: VIlbtVl6YLhNUrtU
     secret: 64AG2hF4pYeG2pq7CT6XwUOT
     service: ueb
-    poolMembers: ueb1.simpledemo.onap.org:3904,ueb2.simpledemo.onap.org:3904
+    poolMembers: message-router.{{ include "common.namespace" . }}:3904,message-router.{{ include "common.namespace" . }}:3904
 server:
   port: 8081
   tomcat:
     max-threads: 50
 spring:
-  datasource:
-     driver-class-name: org.mariadb.jdbc.Driver
-     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/camundabpmn
-     username: ${DB_USERNAME}
-     password: ${DB_PASSWORD}
-     dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
   security:
     usercredentials:
     -
@@ -271,4 +261,5 @@
     -
       username: mso_admin
       password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
-      role: ACTUATOR
\ No newline at end of file
+      role: ACTUATOR
+
diff --git a/kubernetes/so/charts/so-bpmn-infra/templates/configmap.yaml b/kubernetes/so/charts/so-bpmn-infra/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-bpmn-infra/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-bpmn-infra/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-bpmn-infra/values.yaml b/kubernetes/so/charts/so-bpmn-infra/values.yaml
index b5fbef0..e513e6a 100755
--- a/kubernetes/so/charts/so-bpmn-infra/values.yaml
+++ b/kubernetes/so/charts/so-bpmn-infra/values.yaml
@@ -29,7 +29,7 @@
     maxUnavailable: 1
     maxSurge: 1
 # Resource Limit flavor -By Default using small
-flavor: small
+flavor: large
 # Segregation for Different environment (Small and Large)
 resources:
   small:
diff --git a/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
index 65f22b7..bdf82b6 100755
--- a/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
@@ -22,30 +22,10 @@
   catalog:
     db:
       spring:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8082
+        endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8082
   db:
     auth: Basic YnBlbDpwYXNzd29yZDEk
 spring:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    initialize: false
-    initialization-mode: never
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
-  jpa:
-    generate-ddl: false
-    show-sql: false
-    hibernate:
-      ddl-auto: validate
-      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-      enable-lazy-load-no-trans: true
-    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
   security:
     usercredentials:
     -
@@ -59,8 +39,3 @@
 #Actuator
 management:
   context-path: /manage
-flyway:
-  base-on-migrate: true
-  url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-  user: ${DB_USERNAME}
-  password: ${DB_PASSWORD}
\ No newline at end of file
diff --git a/kubernetes/so/charts/so-catalog-db-adapter/templates/configmap.yaml b/kubernetes/so/charts/so-catalog-db-adapter/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-catalog-db-adapter/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-catalog-db-adapter/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
index f964364..331ee65 100755
--- a/kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
@@ -14,16 +14,6 @@
 server:
   port: 8087
 spring:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
   security:
     usercredentials:
     -
@@ -98,7 +88,7 @@
   catalog:
     db:
       spring:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8082
+        endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8082
   db:
     auth: Basic YnBlbDptc28tZGItMTUwNyE=
   site-name: localDevEnv
@@ -137,4 +127,4 @@
       region_id: "DFW"
       clli: "DFW"
       aic_version: "2.5"
-      identity_service_id: "RAX_KEYSTONE"
\ No newline at end of file
+      identity_service_id: "RAX_KEYSTONE"
diff --git a/kubernetes/so/charts/so-openstack-adapter/templates/configmap.yaml b/kubernetes/so/charts/so-openstack-adapter/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-openstack-adapter/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-openstack-adapter/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-request-db-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-request-db-adapter/resources/config/overrides/override.yaml
index 82117b0..f995d94 100755
--- a/kubernetes/so/charts/so-request-db-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-request-db-adapter/resources/config/overrides/override.yaml
@@ -23,28 +23,8 @@
   adapters:
     requestDb:
       auth: Basic YnBlbDptc28tZGItMTUwNyE=
-      endpoint: https://c1.vm1.mso.simpledemo.onap.org:8081
+      endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083
 spring:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    initialize: false
-    initialization-mode: never
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
-  jpa:
-    generate-ddl: false
-    show-sql: false
-    hibernate:
-      ddl-auto: validate
-      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-      enable-lazy-load-no-trans: true
-    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
   security:
     usercredentials:
     -
@@ -58,8 +38,3 @@
 #Actuator
 management:
   context-path: /manage
-flyway:
-  base-on-migrate: true
-  url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-  username: ${DB_USERNAME}
-  password: ${DB_PASSWORD}
\ No newline at end of file
diff --git a/kubernetes/so/charts/so-request-db-adapter/templates/configmap.yaml b/kubernetes/so/charts/so-request-db-adapter/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-request-db-adapter/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-request-db-adapter/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-sdc-controller/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-sdc-controller/resources/config/overrides/override.yaml
index f33737d..899274c 100755
--- a/kubernetes/so/charts/so-sdc-controller/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-sdc-controller/resources/config/overrides/override.yaml
@@ -16,16 +16,6 @@
 server:
   port: 8085
 spring:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
   security:
     usercredentials:
     -
@@ -36,36 +26,25 @@
       username: mso_admin
       password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
       role: ACTUATOR
-request:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
 mso:
   msoKey: 07a7159d3bf51a0e53be7a8f89699be7
   logPath: ./logs/sdc
   catalog:
     db:
       spring:
-        endpoint: http://c1.vm1.mso.simpledemo.onap.org:8082
+        endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8082
   db:
     auth: Basic YnBlbDpwYXNzd29yZDEk
   site-name: onapheat
   aai:
-    endpoint: https://aai.api.simpledemo.onap.org:8443
+    endpoint: https://aai.{{ include "common.namespace" . }}:8443
   asdc-connections:
     asdc-controller1:
       user: mso
       consumerGroup: sdc-OpenSource-Env1
       consumerId: sdc-COpenSource-Env11
       environmentName: AUTO
-      asdcAddress: c2.vm1.sdc.simpledemo.onap.org:8443
+      asdcAddress: sdc-be.{{ include "common.namespace" . }}:8443
       password: 613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247
       pollingInterval: 60
       pollingTimeout: 60
@@ -75,7 +54,7 @@
       keyStorePath:
       watchDogTimeout: 60
       isFitlerInEmptyResources: true
-      messageBusAddress: vm1.mr.simpledemo.onap.org,vm1.mr.simpledemo.onap.org
+      messageBusAddress: message-router.{{ include "common.namespace" . }},message-router.{{ include "common.namespace" . }}
   asdc:
     config:
       key: 566B754875657232314F5548556D3665
@@ -83,4 +62,8 @@
         count: 3,
         componentNames: SO,AAI,SDNC
   scheduling:
-    enabled: false
\ No newline at end of file
+    enabled: false
+  adapters:
+    requestDb:
+      auth: Basic YnBlbDptc28tZGItMTUwNyE=
+      endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083
diff --git a/kubernetes/so/charts/so-sdc-controller/templates/configmap.yaml b/kubernetes/so/charts/so-sdc-controller/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-sdc-controller/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-sdc-controller/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-sdnc-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-sdnc-adapter/resources/config/overrides/override.yaml
index 4479206..26916f9 100755
--- a/kubernetes/so/charts/so-sdnc-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-sdnc-adapter/resources/config/overrides/override.yaml
@@ -22,7 +22,7 @@
     catalog:
         db:
           spring:
-            endpoint: http://c1.vm1.mso.simpledemo.onap.org:8082
+            endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8082
     db:
       auth: Basic cGFzc3dvcmQxJA==
     site-name: onapheat
@@ -84,7 +84,7 @@
                             delete: POST|270000|sdncurl6|sdnc-request-header|org:onap:sdnctl:vnf
                             rollback: POST|270000|sdncurl6|sdnc-request-header|org:onap:sdnctl:vnf
                     bpelauth: cGFzc3dvcmQxJA==
-                    bpelurl: http://c1.vm1.mso.simpledemo.onap.org:8081/mso/SDNCAdapterCallbackService
+                    bpelurl: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/SDNCAdapterCallbackService
                     generic-resource:
                         network-topology-operation:
                             activate: POST|270000|sdncurl10|sdnc-request-header|org:onap:sdnc:northbound:generic-resource
@@ -115,18 +115,18 @@
                     mobility:
                         '':
                             query: GET|60000|sdncurl5|
-                    myurl: http://c1.vm1.mso.simpledemo.onap.org:8081/adapters/rest/SDNCNotify
+                    myurl: http://so-sdnc-adapter{{ include "common.namespace" . }}:8086/adapters/rest/SDNCNotify
                     rest:
-                        bpelurl: http://c1.vm1.mso.simpledemo.onap.org:8081/mso/WorkflowMessage
+                        bpelurl: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/WorkflowMessage
                     sdncauth: 406B2AE613211B6FB52466DE6E1769AC
                     sdncconnecttime: 5000
-                    sdncurl10: 'http://c1.vm1.sdnc.simpledemo.onap.org:8282/restconf/operations/GENERIC-RESOURCE-API:'
-                    sdncurl11: 'http://c1.vm1.sdnc.simpledemo.onap.org:8282/restconf/operations/VNFTOPOLOGYAIC-API:'
-                    sdncurl12: http://c1.vm1.sdnc.simpledemo.onap.org:8282/
-                    sdncurl5: http://c1.vm1.sdnc.simpledemo.onap.org:8282/restconf/config
-                    sdncurl6: 'http://c1.vm1.sdnc.simpledemo.onap.org:8282/restconf/operations/VNF-API:'
-                    sdncurl8: 'http://c1.vm1.sdnc.simpledemo.onap.org:8282/restconf/operations/NBNC-API:'
-                    sdncurl9: http://c1.vm1.sdnc.simpledemo.onap.org:8282/restconf/operations/NORTHBOUND-API:service-topology-operation
+                    sdncurl10: http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/GENERIC-RESOURCE-API:'
+                    sdncurl11: http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/VNFTOPOLOGYAIC-API:'
+                    sdncurl12: http://sdnc.{{ include "common.namespace" . }}:8282/
+                    sdncurl5: http://sdnc.{{ include "common.namespace" . }}:8282/restconf/config
+                    sdncurl6: http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/VNF-API:'
+                    sdncurl8: http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/NBNC-API:'
+                    sdncurl9: http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/NORTHBOUND-API:service-topology-operation
                     service:
                         infra:
                             service-topology-infra-activate-operation: POST|90000|sdncurl9|sdnc-request-header|com:att:sdnctl:northbound-api:v1
@@ -162,4 +162,4 @@
     -
       username: mso_admin
       password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
-      role: ACTUATOR
\ No newline at end of file
+      role: ACTUATOR
diff --git a/kubernetes/so/charts/so-sdnc-adapter/templates/configmap.yaml b/kubernetes/so/charts/so-sdnc-adapter/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-sdnc-adapter/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-sdnc-adapter/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml
index 6c26671..6f579e7 100755
--- a/kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml
@@ -13,17 +13,6 @@
 # limitations under the License.
 logging:
   path: logs
-spring:
-  datasource:
-     driver-class-name: org.mariadb.jdbc.Driver
-     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-     username: ${DB_USERNAME}
-     password: ${DB_PASSWORD}
-     dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
 server:
     port: 8084
     tomcat:
@@ -34,10 +23,10 @@
   adapters:
     requestDb:
       auth: Basic YnBlbDptc28tZGItMTUwNyE=
-      endpoint: https://c1.vm1.mso.simpledemo.onap.org:8081
+      endpoint: https://so-request-db-adapter.{{ include "common.namespace" . }}:8083
 #Actuator
 management:
   security:
     enabled: false
     basic:
-      enabled: false
\ No newline at end of file
+      enabled: false
diff --git a/kubernetes/so/charts/so-vfc-adapter/templates/configmap.yaml b/kubernetes/so/charts/so-vfc-adapter/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/charts/so-vfc-adapter/templates/configmap.yaml
+++ b/kubernetes/so/charts/so-vfc-adapter/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/resources/config/overrides/override.yaml b/kubernetes/so/resources/config/overrides/override.yaml
index 99c76cd..9d3c167 100755
--- a/kubernetes/so/resources/config/overrides/override.yaml
+++ b/kubernetes/so/resources/config/overrides/override.yaml
@@ -7,18 +7,18 @@
   msoKey: "07a7159d3bf51a0e53be7a8f89699be7"
   logPath: logs
   site-name: onapheat
-  adapters:
-    requestDb:
-      endpoint: http://c1.vm1.mso.simpledemo.onap.org:8083
-      auth: YnBlbDptc28tZGItMTUwNyE=
   catalog:
     db:
       spring:
-        endpoint: "http://c1.vm1.mso.simpledemo.onap.org:8082"
+        endpoint: http://so-catalog-db-adapter.{{ include "common.namespace" . }}:8082
   db:
     auth: Basic cGFzc3dvcmQxJA==
-  config:
-    path: /src/main/resources/
+  adapters:
+    requestDb:
+      auth: YnBlbDptc28tZGItMTUwNyE=
+      endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083
+    config:
+      path: /src/main/resources/
   infra:
     default:
       alacarte:
@@ -32,11 +32,11 @@
   apih:
     homing:
       sdna:
-        url: http://c1.vm1.mso.simpledemo.onap.org:8086/
+        url: http://so-sdnc-adapter.{{ include "common.namespace" . }}:8086/
         password: 4112B789E942B161228F7D5AFC654C0F
-  bpelURL: http://c1.vm1.mso.simpledemo.onap.org:8082/
+  bpelURL: http://so-bpmn-infra.{{ include "common.namespace" . }}:8082/
   bpelAuth: 786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1
-  camundaURL: http://c1.vm1.mso.simpledemo.onap.org:8082/
+  camundaURL: http://so-bpmn-infra.{{ include "common.namespace" . }}:8082/
   camundaAuth: 5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1
   async:
     core-pool-size: 50
@@ -48,40 +48,23 @@
     activate:
       instanceid: test
       userid: cs0008
-    endpoint: http://c1.vm1.mso.simpledemo.onap.org:28090
+    endpoint: http://sdc-be.{{ include "common.namespace" . }}:8443
   tenant:
     isolation:
       retry:
         count: 3
   aai:
-    endpoint: https://aai.api.simpledemo.onap.org:8443
+    endpoint: https://aai.{{ include "common.namespace" . }}:8443
     auth: 2630606608347B7124C244AB0FE34F6F
   so:
     operational-environment:
       dmaap:
         username: testuser
         password: VjR5NDcxSzA=
-        host: http://c1.vm1.mso.simpledemo.onap.org:28090
+        host: http://dmaap-bc.{{ include "common.namespace" . }}:8080
       publisher:
         topic: com.att.ecomp.mso.operationalEnvironmentEvent
 spring:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
-  jpa:
-      show-sql: true
-      hibernate:
-        dialect: org.hibernate.dialect.MySQL5Dialect
-        ddl-auto: validate
-        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-        enable-lazy-load-no-trans: true
   jersey:
     type: filter
   security:
@@ -110,14 +93,3 @@
       username: mso_admin
       password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
       role: ACTUATOR
-request:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
\ No newline at end of file
diff --git a/kubernetes/so/templates/configmap.yaml b/kubernetes/so/templates/configmap.yaml
index 48d9ef8..a03dbd8 100755
--- a/kubernetes/so/templates/configmap.yaml
+++ b/kubernetes/so/templates/configmap.yaml
@@ -26,8 +26,4 @@
   name: {{ include "common.fullname" . }}-app-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-  {{- $yamlpath := printf "resources/config/overrides/override.yaml" -}}
-  {{- $root := . }}
-  {{- range $path, $bytes := .Files.Glob $yamlpath }}
-  override.yaml: {{ $root.Files.Get $path | quote }}
-  {{- end }}
\ No newline at end of file
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml
index e5af389..b01d486 100755
--- a/kubernetes/so/values.yaml
+++ b/kubernetes/so/values.yaml
@@ -47,8 +47,8 @@
       cpu: 1000m
       memory: 2Gi
 livenessProbe:
-    path: /manage/health 
-    scheme: HTTPS
+    path: /manage/health
+    scheme: HTTP
     initialDelaySeconds: 600
     periodSeconds: 60
     timeoutSeconds: 10
diff --git a/kubernetes/vid/templates/deployment.yaml b/kubernetes/vid/templates/deployment.yaml
index 3a7bdca..5c98b04 100644
--- a/kubernetes/vid/templates/deployment.yaml
+++ b/kubernetes/vid/templates/deployment.yaml
@@ -59,10 +59,6 @@
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          lifecycle:
-            postStart:
-              exec:
-                command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/usr/local/tomcat/webapps/vid/WEB-INF/classes/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"]
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           # disable liveness probe when breakpoints set in debugger
diff --git a/kubernetes/vid/templates/service.yaml b/kubernetes/vid/templates/service.yaml
index 3d1097f..36b35e4 100644
--- a/kubernetes/vid/templates/service.yaml
+++ b/kubernetes/vid/templates/service.yaml
@@ -29,10 +29,16 @@
     - port: {{ .Values.service.internalPort }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
       name: {{ .Values.service.portName }}
+    - port: {{ .Values.service.internalPort2 }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+      name: {{ .Values.service.portName2 }}
     {{- else -}}
     - port: {{ .Values.service.externalPort }}
       targetPort: {{ .Values.service.internalPort }}
       name: {{ .Values.service.portName }}
+    - port: {{ .Values.service.externalPort2 }}
+      targetPort: {{ .Values.service.internalPort2 }}
+      name: {{ .Values.service.portName2 }}
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
diff --git a/kubernetes/vid/values.yaml b/kubernetes/vid/values.yaml
index 812f74e..4e5f403 100644
--- a/kubernetes/vid/values.yaml
+++ b/kubernetes/vid/values.yaml
@@ -28,7 +28,7 @@
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/vid:2.0.0
+image: onap/vid:3.0.0
 pullPolicy: Always
 
 # mariadb image for initializing
@@ -80,9 +80,13 @@
   type: NodePort
   name: vid
   portName: vid
-  externalPort: "00"
-  nodePort: "00"
+  externalPort: 8443
   internalPort: 8443
+  nodePort: "00"
+  portName2: vid-http
+  externalPort2: 8080
+  internalPort2: 8080
+  nodePort2: "38"
 
 ingress:
   enabled: false