diff --git a/tests/itests/README.md b/tests/itests/README.md
index f2d275a..f424a2e 100644
--- a/tests/itests/README.md
+++ b/tests/itests/README.md
@@ -82,7 +82,7 @@
 * **Device_state_changes**: This tests uses the ponsim OLT and ONUs to exercise 
 the device state changes (preprovisioning, enabled, disabled, reboot). 
 It exercises the following areas:
-    * Chameleon REST interface 
+    * Envoy REST interface 
     * Voltha GRPC interface
     * Voltha data model and business logic
     * Ponsim_olt and Ponsim_onu adapters
@@ -133,7 +133,7 @@
 nosetests -s tests/itests/voltha/test_persistence.py
 ```  
 
-* **Voltha_rest_apis**: This test exercises the Chameleon REST interface and 
+* **Voltha_rest_apis**: This test exercises the Envoy REST interface and 
 indirectly
  the Voltha GPRC interface as well.  It tests both the Local and the Global 
  interfaces.
diff --git a/tests/itests/docutests/build_md_test.py b/tests/itests/docutests/build_md_test.py
index 4e6c2d9..133736e 100644
--- a/tests/itests/docutests/build_md_test.py
+++ b/tests/itests/docutests/build_md_test.py
@@ -414,7 +414,7 @@
             # the list obtained from docker composed
             print "Verify all services are registered in consul ..."
             expected_services = ['consul-rest', 'fluentd-intake',
-                                 'chameleon-rest', 'voltha-grpc',
+                                 'voltha-grpc',
                                  'voltha-health',
                                  'consul-8600', 'zookeeper', 'consul',
                                  'kafka']
@@ -484,7 +484,7 @@
                   "..."
             expected_output = ['voltha_1', 'fluentd_1', 'consul_1',
                                'registrator_1', 'kafka_1', 'zookeeper_1',
-                               'chameleon_1', 'ofagent_1', 'netconf_1']
+                               'ofagent_1', 'netconf_1']
             cmd = command_defs['docker_compose_logs']
             docker_compose_logs = run_long_running_command_with_timeout(cmd, 5,
                                                                         0)
diff --git a/tests/itests/voltha/test_device_state_changes.py b/tests/itests/voltha/test_device_state_changes.py
index 1b97136..93685ca 100644
--- a/tests/itests/voltha/test_device_state_changes.py
+++ b/tests/itests/voltha/test_device_state_changes.py
@@ -75,7 +75,7 @@
         self.simulate_eapol_flow_install(ldev_id, olt_id, onu_ids)
         self.verify_olt_eapol_flow(olt_id)
         self.disable_device(onu_ids[0])
-        self.delete_device(onu_ids[0])
+        # self.delete_device(onu_ids[0])
         self.verify_logical_ports(ldev_id, 4)
         self.disable_device(olt_ids[0])
         self.delete_device(olt_ids[0])
diff --git a/tests/itests/voltha/test_dispatcher.py b/tests/itests/voltha/test_dispatcher.py
index 5766640..38bf233 100644
--- a/tests/itests/voltha/test_dispatcher.py
+++ b/tests/itests/voltha/test_dispatcher.py
@@ -360,19 +360,12 @@
         out, err, rc = run_command_to_completion_with_raw_stdout(cmd)
         self.assertEqual(rc, 0)
 
-        self.pt("Waiting for voltha and chameleon containers to be ready ...")
+        self.pt("Waiting for voltha container to be ready ...")
         self.wait_till('voltha services HEALTHY',
                        lambda: verify_all_services_healthy(
                            LOCAL_CONSUL, service_name='voltha-grpc') == True,
                        timeout=10)
-        self.wait_till('chameleon services HEALTHY',
-                       lambda: verify_all_services_healthy(
-                           LOCAL_CONSUL,
-                           service_name='chameleon-rest') == True,
-                       timeout=10)
 
-        # Chameleon takes some time to compile the protos and make them
-        # available.  So let's wait 10 seconds
         sleep(10)
 
     def set_rest_endpoint(self):
diff --git a/tests/itests/voltha/test_persistence.py b/tests/itests/voltha/test_persistence.py
index 3ee7424..54f091d 100644
--- a/tests/itests/voltha/test_persistence.py
+++ b/tests/itests/voltha/test_persistence.py
@@ -276,12 +276,6 @@
         except Exception as e:
             self.pt('get-devices-fail expected')
         # Wait for everything to settle
-        self.wait_till('chameleon service HEALTHY',
-                       lambda: verify_all_services_healthy(LOCAL_CONSUL,
-                                                           service_name='chameleon-rest') == True,
-                       timeout=30)
-        # Chameleon takes some time to compile the protos and make them
-        # available.  So let's wait 10 seconds
         sleep(10)
         # Update the REST endpoint info
         self.set_rest_endpoint()
@@ -313,18 +307,11 @@
         out, err, rc = run_command_to_completion_with_raw_stdout(cmd)
         self.assertEqual(rc, 0)
 
-        self.pt("Waiting for voltha and chameleon containers to be ready ...")
+        self.pt("Waiting for voltha container to be ready ...")
         self.wait_till('voltha services HEALTHY',
                        lambda: verify_all_services_healthy(LOCAL_CONSUL,
                                                            service_name='vcore-grpc') == True,
                        timeout=10)
-        self.wait_till('chameleon services HEALTHY',
-                       lambda: verify_all_services_healthy(LOCAL_CONSUL,
-                                                           service_name='chameleon-rest') == True,
-                       timeout=10)
-
-        # Chameleon takes some time to compile the protos and make them
-        # available.  So let's wait 10 seconds
         sleep(10)
 
     def start_voltha(self):
diff --git a/tests/itests/voltha/test_self_signed_cert_auth_failure.py b/tests/itests/voltha/test_self_signed_cert_auth_failure.py
index 2c9009b..c04fe00 100644
--- a/tests/itests/voltha/test_self_signed_cert_auth_failure.py
+++ b/tests/itests/voltha/test_self_signed_cert_auth_failure.py
@@ -69,18 +69,12 @@
         out, err, rc = run_command_to_completion_with_raw_stdout(cmd)
         self.assertEqual(rc, 0)
 
-        self.pt("Waiting for voltha and chameleon containers to be ready ...")
+        self.pt("Waiting for voltha container to be ready ...")
         self.wait_till('voltha services HEALTHY',
                        lambda: verify_all_services_healthy(
                            LOCAL_CONSUL, service_name='voltha-grpc') == True,
                        timeout=10)
-        self.wait_till('chameleon services HEALTHY',
-                       lambda: verify_all_services_healthy(
-                           LOCAL_CONSUL,service_name='envoy-8443') == True,
-                       timeout=10)
 
-        # Chameleon takes some time to compile the protos and make them
-        # available.  So let's wait 10 seconds
         sleep(10)
 
     def set_rest_endpoint(self):
