Merge "Update VID image version"
diff --git a/docs/oom_project_description.rst b/docs/oom_project_description.rst
index 5cedf79..6486f4b 100644
--- a/docs/oom_project_description.rst
+++ b/docs/oom_project_description.rst
@@ -32,7 +32,7 @@
 Kubeadm or Cloudify - and public cloud infrastructures such as: Microsoft Azure,
 Amazon AWS, Google GCD, VMware VIO, and Openstack.
 
-The OOM documentation is broken into four different areas each targeted at a differnet user:
+The OOM documentation is broken into four different areas each targeted at a different user:
 
 - :ref:`quick-start-label` - deploy ONAP on an existing cloud
 - :ref:`user-guide-label` - a guide for operators of an ONAP instance
diff --git a/kubernetes/aaf/charts/aaf-cm/values.yaml b/kubernetes/aaf/charts/aaf-cm/values.yaml
index c838e17..6bd03cf 100644
--- a/kubernetes/aaf/charts/aaf-cm/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cm/values.yaml
@@ -25,7 +25,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_cm:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_cm:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-cm.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/charts/aaf-cs/values.yaml b/kubernetes/aaf/charts/aaf-cs/values.yaml
index 9c0b8c0..a81bfed 100644
--- a/kubernetes/aaf/charts/aaf-cs/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cs/values.yaml
@@ -24,7 +24,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_cass:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_cass:2.1.7-SNAPSHOT
 pullPolicy: Always
 
 # application configuration
diff --git a/kubernetes/aaf/charts/aaf-fs/values.yaml b/kubernetes/aaf/charts/aaf-fs/values.yaml
index e4a805f..07e832b 100644
--- a/kubernetes/aaf/charts/aaf-fs/values.yaml
+++ b/kubernetes/aaf/charts/aaf-fs/values.yaml
@@ -25,7 +25,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_fs:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_fs:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-fs.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/charts/aaf-gui/values.yaml b/kubernetes/aaf/charts/aaf-gui/values.yaml
index 9d391f8..dd8162b 100644
--- a/kubernetes/aaf/charts/aaf-gui/values.yaml
+++ b/kubernetes/aaf/charts/aaf-gui/values.yaml
@@ -26,7 +26,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_gui:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_gui:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-gui.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/charts/aaf-hello/values.yaml b/kubernetes/aaf/charts/aaf-hello/values.yaml
index 5955261..fb5914d 100644
--- a/kubernetes/aaf/charts/aaf-hello/values.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/values.yaml
@@ -25,7 +25,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_hello:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_hello:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-hello.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/charts/aaf-locate/values.yaml b/kubernetes/aaf/charts/aaf-locate/values.yaml
index 5a4e749..e65d6e3 100644
--- a/kubernetes/aaf/charts/aaf-locate/values.yaml
+++ b/kubernetes/aaf/charts/aaf-locate/values.yaml
@@ -25,7 +25,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_locate:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_locate:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-locate.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/charts/aaf-oauth/values.yaml b/kubernetes/aaf/charts/aaf-oauth/values.yaml
index a915fed..99de329 100644
--- a/kubernetes/aaf/charts/aaf-oauth/values.yaml
+++ b/kubernetes/aaf/charts/aaf-oauth/values.yaml
@@ -25,7 +25,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_oauth:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_oauth:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-oauth.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/charts/aaf-service/values.yaml b/kubernetes/aaf/charts/aaf-service/values.yaml
index 83c6d3a..a3f1545 100644
--- a/kubernetes/aaf/charts/aaf-service/values.yaml
+++ b/kubernetes/aaf/charts/aaf-service/values.yaml
@@ -25,7 +25,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_service:2.1.6-SNAPSHOT
+image: onap/aaf/aaf_service:2.1.7-SNAPSHOT
 aaf_register_as: "aaf-service.onap"
 pullPolicy: Always
 
diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml
index 787eb84..ea0827f 100644
--- a/kubernetes/aaf/values.yaml
+++ b/kubernetes/aaf/values.yaml
@@ -21,7 +21,7 @@
   readinessImage: readiness-check:2.0.0
   ubuntuInitRepository: registry.hub.docker.com
   ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
-  configImage: onap/aaf/aaf_config:2.1.6-SNAPSHOT
+  configImage: onap/aaf/aaf_config:2.1.7-SNAPSHOT
   persistence:
     enabled: true
 
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
index 4fe92e4..705f3ef 100755
--- a/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
+++ b/kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
@@ -50,7 +50,6 @@
 }
 
 ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
-ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-admin}
 SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk}
 APPC_HOME=${APPC_HOME:-/opt/onap/appc}
 SLEEP_TIME=${SLEEP_TIME:-120}
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 47c6788..8553fcd 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
@@ -31,10 +31,10 @@
 appc.demo.threads.queuesize.max=1000
 appc.demo.threads.poolsize.min=1
 appc.demo.threads.poolsize.max=2
-appc.demo.provider.user=admin
+appc.demo.provider.user={{.Values.config.odlUser}}
 appc.demo.provider.pass={{.Values.config.odlPassword}}
 appc.demo.provider.url=http://localhost:8181/restconf/operations/appc-provider
-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/
+appc.provider.vfodl.url=http://{{.Values.config.odlUser}}:{{.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
@@ -79,7 +79,7 @@
 appc.LCM.topic.read=APPC-LCM-READ
 appc.LCM.topic.write=APPC-LCM-WRITE
 appc.LCM.client.name=APPC-EVENT-LISTENER-TEST
-appc.LCM.provider.user=admin
+appc.LCM.provider.user={{.Values.config.odlUser}}
 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
@@ -87,7 +87,7 @@
 # properties from appc-netconf-adapter-bundle, appc-dg-common, appc-dmaap-adapter-bundle
 poolMembers=message-router.{{.Release.Namespace}}:3904
 event.pool.members=message-router.{{.Release.Namespace}}:3904
-restconf.user=admin
+restconf.user={{.Values.config.odlUser}}
 restconf.pass={{.Values.config.odlPassword}}
 
 
@@ -126,5 +126,5 @@
 appc.OAM.topic.read=testOAM
 appc.OAM.topic.write=testOAM
 appc.OAM.client.name=testOAM
-appc.OAM.provider.user=admin
+appc.OAM.provider.user={{.Values.config.odlUser}}
 appc.OAM.provider.pass={{.Values.config.odlPassword}}
diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml
index 324315f..ad6070a 100644
--- a/kubernetes/appc/values.yaml
+++ b/kubernetes/appc/values.yaml
@@ -53,7 +53,7 @@
   dmaapTopic: SUCCESS
   logstashServiceName: log-ls
   logstashPort: 5044
-  odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+  odlPassword: demo123456!
   openStackType: OpenStackProvider
   openStackName: OpenStack
   openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html
@@ -61,6 +61,7 @@
   openStackDomain: default
   openStackUserName: admin
   openStackEncryptedPassword: admin
+  odlUser: appc@appc.onap.org
 
 appc-ansible-server:
   service:
diff --git a/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql b/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
index 308ec7d..8bb0214 100644
--- a/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
+++ b/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
@@ -129,6 +129,53 @@
   PRIMARY KEY (invariant_service_id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
 
+CREATE TABLE IF NOT EXISTS tosca_model (
+  tosca_model_id VARCHAR(36) NOT NULL,
+  tosca_model_name VARCHAR(80) NOT NULL,
+  policy_type VARCHAR(80) NULL,
+  user_id VARCHAR(80),
+  timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (tosca_model_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+CREATE TABLE IF NOT EXISTS tosca_model_revision (
+  tosca_model_revision_id VARCHAR(36) NOT NULL,
+  tosca_model_id VARCHAR(36) NOT NULL,
+  version DOUBLE NOT NULL DEFAULT 1,
+  tosca_model_yaml MEDIUMTEXT NULL,
+  tosca_model_json MEDIUMTEXT NULL,
+  user_id VARCHAR(80),
+  createdTimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  lastUpdatedTimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (tosca_model_revision_id),
+  CONSTRAINT tosca_model_revision_ukey UNIQUE KEY (tosca_model_id, version),
+  CONSTRAINT tosca_model_revision_fkey01 FOREIGN KEY (tosca_model_id) REFERENCES tosca_model (tosca_model_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+CREATE TABLE IF NOT EXISTS dictionary (
+  dictionary_id VARCHAR(36) NOT NULL,
+  dictionary_name VARCHAR(80) NOT NULL,
+  created_by VARCHAR(80),
+  modified_by VARCHAR(80),
+  timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (dictionary_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+CREATE TABLE IF NOT EXISTS dictionary_elements (
+  dict_element_id VARCHAR(36) NOT NULL,
+  dictionary_id VARCHAR(36) NOT NULL,
+  dict_element_name VARCHAR(250) NOT NULL,
+  dict_element_short_name VARCHAR(80) NOT NULL,
+  dict_element_description VARCHAR(250),
+  dict_element_type VARCHAR(80) NOT NULL,
+  created_by VARCHAR(80),
+  modified_by VARCHAR(80),
+  timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (dict_element_id),
+  CONSTRAINT dictionary_elements_ukey UNIQUE KEY (dict_element_name, dict_element_short_name),
+  CONSTRAINT dictionary_elements_ukey_fkey01 FOREIGN KEY (dictionary_id) REFERENCES dictionary (dictionary_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
 ALTER TABLE template
     ADD CONSTRAINT template_bpmn_id_fkey01
     FOREIGN KEY (template_bpmn_id)
diff --git a/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql b/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
index fb131cc..f35d9da 100644
--- a/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
+++ b/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
@@ -29,6 +29,11 @@
 DROP PROCEDURE IF EXISTS get_model_template;
 DROP PROCEDURE IF EXISTS set_template;
 DROP PROCEDURE IF EXISTS get_template;
+DROP PROCEDURE IF EXISTS del_model;
+DROP PROCEDURE IF EXISTS set_new_tosca_model_version;
+DROP PROCEDURE IF EXISTS set_tosca_model;
+DROP PROCEDURE IF EXISTS set_dictionary;
+DROP PROCEDURE IF EXISTS set_dictionary_elements;
 DELIMITER //
 CREATE PROCEDURE get_template
   (IN v_template_name VARCHAR(80),
@@ -459,6 +464,77 @@
   UPDATE event
 	SET process_instance_id = v_process_instance_id
 	WHERE event_id = v_event_id;
-END
+END;
+CREATE PROCEDURE del_model
+(IN v_model_name VARCHAR(80))
+BEGIN
+    DECLARE v_model_id VARCHAR(36);
+    SELECT model_id INTO v_model_id from model where model_name = v_model_name;
+    UPDATE model set event_id = null, model_blueprint_id = null, model_prop_id = null where model_id = v_model_id;
+	DELETE from event where model_id = v_model_id;
+	DELETE from model_blueprint where model_id = v_model_id;
+	DELETE from model_properties where model_id = v_model_id;
+    DELETE from model where model_id = v_model_id;
+END;
+
+CREATE PROCEDURE set_new_tosca_model_version
+  (IN v_tosca_model_id VARCHAR(36),
+   IN v_version DOUBLE,
+   IN v_tosca_model_yaml MEDIUMTEXT,
+   IN v_tosca_model_json MEDIUMTEXT,
+   IN v_user_id VARCHAR(80),
+   OUT v_revision_id VARCHAR(36))
+BEGIN
+  SET v_revision_id = UUID();
+  INSERT INTO tosca_model_revision
+    (tosca_model_revision_id, tosca_model_id, version, tosca_model_yaml, tosca_model_json, user_id)
+    VALUES (v_revision_id, v_tosca_model_id, v_version, v_tosca_model_yaml, v_tosca_model_json, v_user_id);
+END;
+
+CREATE PROCEDURE set_tosca_model
+  (IN v_tosca_model_name VARCHAR(80),
+   IN v_policy_type VARCHAR(80),
+   IN v_user_id VARCHAR(80),
+   IN v_tosca_model_yaml MEDIUMTEXT,
+   IN v_tosca_model_json MEDIUMTEXT,
+   IN v_version DOUBLE,
+   OUT v_tosca_model_id VARCHAR(36),
+   OUT v_revision_id VARCHAR(36))
+BEGIN
+  SET v_tosca_model_id = UUID();
+  INSERT INTO tosca_model
+    (tosca_model_id, tosca_model_name, policy_type, user_id)
+    VALUES (v_tosca_model_id, v_tosca_model_name, v_policy_type, v_user_id);
+  SET v_revision_id = UUID();
+  INSERT INTO tosca_model_revision
+    (tosca_model_revision_id, tosca_model_id, version, tosca_model_yaml, tosca_model_json, user_id)
+    VALUES (v_revision_id, v_tosca_model_id, v_version, v_tosca_model_yaml, v_tosca_model_json, v_user_id);
+END;
+
+CREATE PROCEDURE set_dictionary
+  (IN v_dictionary_name VARCHAR(80),
+   IN v_user_id VARCHAR(80),
+   OUT v_dictionary_id VARCHAR(36))
+BEGIN
+  SET v_dictionary_id = UUID();
+  INSERT INTO dictionary
+    (dictionary_id, dictionary_name, created_by, modified_by)
+    VALUES (v_dictionary_id, v_dictionary_name, v_user_id, v_user_id);
+END;
+
+CREATE PROCEDURE set_dictionary_elements
+  (IN v_dictionary_id VARCHAR(36),
+   IN v_dict_element_name VARCHAR(250),
+   IN v_dict_element_short_name VARCHAR(80),
+   IN v_dict_element_description VARCHAR(250),
+   IN v_dict_element_type VARCHAR(80),
+   IN v_user_id VARCHAR(80),
+   OUT v_dict_element_id VARCHAR(36))
+BEGIN
+  SET v_dict_element_id = UUID();
+  INSERT INTO dictionary_elements
+    (dict_element_id, dictionary_id, dict_element_name, dict_element_short_name, dict_element_description, dict_element_type, created_by, modified_by)
+    VALUES (v_dict_element_id, v_dictionary_id, v_dict_element_name, v_dict_element_short_name, v_dict_element_description, v_dict_element_type, v_user_id, v_user_id);
+END;
 //
 DELIMITER ;
diff --git a/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql b/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
index eec9d52..0412373 100644
--- a/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
+++ b/kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
@@ -46,3 +46,9 @@
 DROP TABLE template_image;
 DROP TABLE template_bpmn;
 DROP TABLE template;
+
+DROP TABLE dictionary_elements;
+DROP TABLE dictionary;
+DROP TABLE tosca_model_revision;
+DROP TABLE tosca_model;
+
diff --git a/kubernetes/helm/starters/onap-app/README.md b/kubernetes/helm/starters/onap-app/README.md
index edb0a78..41d002b 100644
--- a/kubernetes/helm/starters/onap-app/README.md
+++ b/kubernetes/helm/starters/onap-app/README.md
@@ -12,8 +12,8 @@
 directory. If the application is a common reusable Helm Chart (eg. mariadb), a
 more appropriate location might be the oom/kubernetes/common directory.
 
-Edit each yaml file in the new Helm Chart directoy, substituing real values
-for those inside brackets (eg. `<onap-app>`). Some comments have been provided in
+Edit each yaml file in the new Helm Chart directory, substituting real values
+for those inside brackets (e.g. `<onap-app>`). Some comments have been provided in
 the file to help guide changes that need to be made. This starter Helm Chart is
 in no way complete. It can serve as the basis for creating a new Helm Chart that
 attempts to apply Helm best practices to ONAP applications being configured,
diff --git a/kubernetes/oof/charts/oof-has/values.yaml b/kubernetes/oof/charts/oof-has/values.yaml
index 952aa83..d825e44 100755
--- a/kubernetes/oof/charts/oof-has/values.yaml
+++ b/kubernetes/oof/charts/oof-has/values.yaml
@@ -25,7 +25,7 @@
   commonConfigPrefix: onap-oof-has
   image:
     readiness: oomk8s/readiness-check:2.0.0
-    optf_has: onap/optf-has:1.2.3
+    optf_has: onap/optf-has:1.2.4
     filebeat: docker.elastic.co/beats/filebeat:5.5.0
 
 pullPolicy: Always
diff --git a/kubernetes/oof/values.yaml b/kubernetes/oof/values.yaml
index 1d926fa..24a0333 100644
--- a/kubernetes/oof/values.yaml
+++ b/kubernetes/oof/values.yaml
@@ -26,7 +26,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/optf-osdf:1.2.3
+image: onap/optf-osdf:1.2.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/policy/resources/config/pe/push-policies.sh b/kubernetes/policy/resources/config/pe/push-policies.sh
index 5b883e0..bdf5933 100644
--- a/kubernetes/policy/resources/config/pe/push-policies.sh
+++ b/kubernetes/policy/resources/config/pe/push-policies.sh
@@ -74,7 +74,7 @@
         "RULE": {
             "templateName": "ClosedLoopControlName",
             "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
-            "controlLoopYaml": "controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%0A++++timeout%3A+1200%0A++++success%3A+final_success%0A++++failure%3A+final_failure%0A++++failure_timeout%3A+final_failure_timeout%0A++++failure_retries%3A+final_failure_retries%0A++++failure_exception%3A+final_failure_exception%0A++++failure_guard%3A+final_failure_guard"
+            "controlLoopYaml": "controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%0A++++timeout%3A+1200%0A++++success%3A+final_success%0A++++failure%3A+final_failure%0A++++failure_timeout%3A+final_failure_timeout%0A++++failure_retries%3A+final_failure_retries%0A++++failure_exception%3A+final_failure_exception%0A++++failure_guard%3A+final_failure_guard"
         }
     }
 }' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/resources/bin/pre_start.sh b/kubernetes/pomba/charts/pomba-contextaggregator/resources/bin/pre_start.sh
new file mode 100644
index 0000000..3ef1434
--- /dev/null
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/resources/bin/pre_start.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# Get the list of topic from curl ressult
+dmaap_mr_host=message-router
+dmaap_mr_port=3904
+temp_output_file=".tmpoutput"
+curl -X GET http://$dmaap_mr_host:$dmaap_mr_port/topics  > $temp_output_file
+
+# Test topic POA-AUDIT-INIT, POA-AUDIT-RESULT, POA-RULE-VALIDATION
+TOPICS="POA-AUDIT-INIT POA-RULE-VALIDATION POA-AUDIT-RESULT"
+for i_topic in $TOPICS
+do
+  echo "Looping ... topic: $i_topic"
+  if grep -iFq "$i_topic" $temp_output_file
+  then
+      # code if found
+      echo "$i_topic found."
+  else
+      # code if not found
+      echo "$i_topic NOT found."
+      curl -X POST -H "content-type: application/json" --data "Empty post to create topic" http://$dmaap_mr_host:$dmaap_mr_port/events/$i_topic
+  fi
+done
+
+# remove the temp file
+rm -f $temp_output_file
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/templates/configmap.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/templates/configmap.yaml
index 767b240..d5ce98e 100755
--- a/kubernetes/pomba/charts/pomba-contextaggregator/templates/configmap.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/templates/configmap.yaml
@@ -27,3 +27,11 @@
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/builders/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-pre-start-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/bin/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
index 44268db..52a28d0 100755
--- a/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
@@ -30,6 +30,21 @@
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - message-router
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
@@ -63,6 +78,10 @@
           - mountPath: /opt/app/config/builders
             name: {{ include "common.fullname" . }}-config-builders
             readOnly: true
+          - mountPath: /opt/app/bin/pre_start.sh
+            name: {{ include "common.fullname" . }}-pre-start
+            subPath: pre_start.sh
+            readOnly: false
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -83,5 +102,9 @@
         - name: {{ include "common.fullname" . }}-config-builders
           configMap:
             name: {{ include "common.fullname" . }}-configmap-builders
+        - name: {{ include "common.fullname" . }}-pre-start
+          configMap:
+            name: {{ include "common.fullname" . }}-pre-start-configmap
+            defaultMode: 0777
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
index ac8aa6b..9c9a6ff 100755
--- a/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
@@ -18,6 +18,8 @@
 global:
   nodePortPrefix: 302
   repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
 
 #################################################################
 # Application configuration defaults.
diff --git a/kubernetes/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh
index 8f74139..11d41a3 100755
--- a/kubernetes/robot/demo-k8s.sh
+++ b/kubernetes/robot/demo-k8s.sh
@@ -1,4 +1,5 @@
-# Copyright © 2018 Amdocs, Bell Canada
+#!/bin/bash
+# Copyright (C) 2018 Amdocs, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,9 +12,6 @@
 # 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.
-
-#!/bin/bash
-
 #
 # Execute tags built to support the hands on demo,
 #
@@ -47,6 +45,11 @@
 	echo " "
 	echo "       demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service> <oam-ip-address>"
     echo "               - Run heatbridge against the stack for the given service instance and service"
+	echo " "
+	echo "       demo.sh <namespace> vfwclosedloop <pgn-ip-address>"
+        echo "           - vFWCL: Sets the packet generator to high and low rates, and checks whether the policy "
+        echo "             kicks in to modulate the rates back to medium"
+	echo " "
 }
 
 # Set the defaults
@@ -170,6 +173,12 @@
                         TAG="distributeVFWNG"
                         shift
                         ;;
+        vfwclosedloop)
+                        TAG="vfwclosedloop"
+                        shift
+                        VARIABLES="$VARIABLES -v pkg_host:$1"
+                        shift
+                        ;;
     	*)
 			usage
 			exit
diff --git a/kubernetes/robot/ete-k8s.sh b/kubernetes/robot/ete-k8s.sh
index 7726c12..c4059b9 100755
--- a/kubernetes/robot/ete-k8s.sh
+++ b/kubernetes/robot/ete-k8s.sh
@@ -20,7 +20,7 @@
 # Note: Do not run multiple concurrent ete.sh as the --display is not parameterized and tests will collide
 #
 if [ "$1" == "" ] || [ "$2" == "" ]; then
-   echo "Usage: ete-k8s.sh [namespace] [ health | ete | closedloop | instantiate | distribute | portal ]"
+   echo "Usage: ete-k8s.sh [namespace] [ health | healthdist | distribute | instantiate | instantiateVFWCL | instantiateDemoVFWCL |  | portal ]"
    exit
 fi
 
diff --git a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml
index e3e9781..4f8339f 100644
--- a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml
+++ b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml
@@ -53,7 +53,7 @@
         - /root/job_complete.py
         args:
         - --job-name
-        - {{ .Release.Name }}-sdc-es-config-elasticsearch
+        - {{ .Release.Name }}-sdc-onboarding-be-cassandra-init
         env:
         - name: NAMESPACE
           valueFrom:
diff --git a/kubernetes/sdc/charts/sdc-es/values.yaml b/kubernetes/sdc/charts/sdc-es/values.yaml
index 93a66a9..f7487c5 100644
--- a/kubernetes/sdc/charts/sdc-es/values.yaml
+++ b/kubernetes/sdc/charts/sdc-es/values.yaml
@@ -52,7 +52,7 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
diff --git a/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties b/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties
index 4ff572a..86e5131 100644
--- a/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties
+++ b/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties
@@ -12,7 +12,7 @@
 org.onap.ccsdk.sli.northbound.uebclient.spool.archive=/opt/onap/sdnc/ueb-listener/spool/archive
 org.onap.ccsdk.sli.northbound.uebclient.polling-interval=30
 org.onap.ccsdk.sli.northbound.uebclient.polling-timeout=15
-org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout=900
+org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout=300
 org.onap.ccsdk.sli.northbound.uebclient.relevant-artifact-types=TOSCA_CSAR
 org.onap.ccsdk.sli.northbound.uebclient.activate-server-tls-auth=false
 org.onap.ccsdk.sli.northbound.uebclient.keystore-path=
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 fc6d216..cf554df 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
@@ -264,8 +264,7 @@
         timeout: 360000
       write: APPC-LCM-READ
       sdnc:
-        read:
-          name: SDNC-LCM-WRITE
+        read: SDNC-LCM-WRITE
         write: SDNC-LCM-READ
     response:
       timeout: 360000