diff --git a/installers/charm/bundles/osm-ha/bundle.yaml b/installers/charm/bundles/osm-ha/bundle.yaml
index f60082e..ff666c0 100644
--- a/installers/charm/bundles/osm-ha/bundle.yaml
+++ b/installers/charm/bundles/osm-ha/bundle.yaml
@@ -83,7 +83,6 @@
       gui-y: 50
   nbi-k8s:
     charm: "%(prefix)s/nbi-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 3
     series: kubernetes
     storage:
@@ -97,7 +96,6 @@
       gui-y: -200
   ro-k8s:
     charm: "%(prefix)s/ro-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 3
     series: kubernetes
     storage:
@@ -109,19 +107,8 @@
     annotations:
       gui-x: -250
       gui-y: 300
-  ui-k8s:
-    charm: "%(prefix)s/ui-k8s%(suffix)s"
-    channel: "%(channel)s"
-    scale: 3
-    series: kubernetes
-    options:
-      mysql_database: lwui
-    annotations:
-      gui-x: 250
-      gui-y: -200
   ng-ui:
     charm: "%(prefix)s/ng-ui%(suffix)s"
-    channel: "%(channel)s"
     scale: 3
     series: kubernetes
     options:
@@ -134,7 +121,6 @@
       gui-y: 100
   lcm-k8s:
     charm: "%(prefix)s/lcm-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 3
     series: kubernetes
     storage:
@@ -153,8 +139,7 @@
       gui-y: 50
   mon-k8s:
     charm: "%(prefix)s/mon-k8s%(suffix)s"
-    channel: "%(channel)s"
-    scale: 3
+    scale: 1
     series: kubernetes
     storage:
       database: 100M
@@ -175,7 +160,6 @@
       gui-y: 50
   pol-k8s:
     charm: "%(prefix)s/pol-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 3
     series: kubernetes
     storage:
@@ -187,7 +171,6 @@
       gui-y: 550
   pla:
     charm: "%(prefix)s/pla%(suffix)s"
-    channel: "%(channel)s"
     scale: 3
     series: kubernetes
     annotations:
@@ -196,7 +179,7 @@
   prometheus-k8s:
     charm: "cs:~charmed-osm/prometheus-k8s"
     channel: "stable"
-    scale: 3
+    scale: 1
     series: kubernetes
     storage:
       database: 100M
@@ -251,10 +234,6 @@
     - "mon-k8s:prometheus"
   - - "grafana-k8s:prometheus"
     - "prometheus-k8s:prometheus"
-  - - "ui-k8s:mysql"
-    - "mariadb-k8s:mysql"
-  - - "ui-k8s:nbi"
-    - "nbi-k8s:nbi"
   - - "prometheus-k8s:prometheus"
     - "nbi-k8s:prometheus"
   - - "pla:kafka"
@@ -267,3 +246,7 @@
     - 'mariadb-k8s:mysql'
   - - 'keystone:keystone'
     - 'nbi-k8s:keystone'
+  - - "ro-k8s:mongo"
+    - "mongodb-k8s:mongo"
+  - - "ro-k8s:kafka"
+    - "kafka-k8s:kafka"
diff --git a/installers/charm/bundles/osm/bundle.yaml b/installers/charm/bundles/osm/bundle.yaml
index a3ac408..f1a846c 100644
--- a/installers/charm/bundles/osm/bundle.yaml
+++ b/installers/charm/bundles/osm/bundle.yaml
@@ -83,7 +83,6 @@
       gui-y: 50
   nbi-k8s:
     charm: "%(prefix)s/nbi-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     storage:
@@ -97,7 +96,6 @@
       gui-y: -200
   ro-k8s:
     charm: "%(prefix)s/ro-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     storage:
@@ -109,19 +107,8 @@
     annotations:
       gui-x: -250
       gui-y: 300
-  ui-k8s:
-    charm: "%(prefix)s/ui-k8s%(suffix)s"
-    channel: "%(channel)s"
-    scale: 1
-    series: kubernetes
-    options:
-      mysql_database: lwui
-    annotations:
-      gui-x: 250
-      gui-y: -200
   ng-ui:
     charm: "%(prefix)s/ng-ui%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     options:
@@ -134,7 +121,6 @@
       gui-y: 100
   lcm-k8s:
     charm: "%(prefix)s/lcm-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     storage:
@@ -153,7 +139,6 @@
       gui-y: 50
   mon-k8s:
     charm: "%(prefix)s/mon-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     storage:
@@ -175,7 +160,6 @@
       gui-y: 50
   pol-k8s:
     charm: "%(prefix)s/pol-k8s%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     storage:
@@ -187,7 +171,6 @@
       gui-y: 550
   pla:
     charm: "%(prefix)s/pla%(suffix)s"
-    channel: "%(channel)s"
     scale: 1
     series: kubernetes
     annotations:
@@ -217,7 +200,6 @@
       gui-y: 550
   keystone:
     charm: '%(prefix)s/keystone%(suffix)s'
-    channel: '%(channel)s'
     scale: 1
     series: kubernetes
     annotations:
@@ -251,10 +233,6 @@
     - "mon-k8s:prometheus"
   - - "grafana-k8s:prometheus"
     - "prometheus-k8s:prometheus"
-  - - "ui-k8s:mysql"
-    - "mariadb-k8s:mysql"
-  - - "ui-k8s:nbi"
-    - "nbi-k8s:nbi"
   - - "prometheus-k8s:prometheus"
     - "nbi-k8s:prometheus"
   - - "pla:kafka"
@@ -267,3 +245,7 @@
     - 'mariadb-k8s:mysql'
   - - 'keystone:keystone'
     - 'nbi-k8s:keystone'
+  - - "ro-k8s:mongo"
+    - "mongodb-k8s:mongo"
+  - - "ro-k8s:kafka"
+    - "kafka-k8s:kafka"
diff --git a/installers/charm/ro-k8s/layer.yaml b/installers/charm/ro-k8s/layer.yaml
index 73a7090..04d1612 100644
--- a/installers/charm/ro-k8s/layer.yaml
+++ b/installers/charm/ro-k8s/layer.yaml
@@ -16,6 +16,8 @@
   - "layer:status"
   - "layer:leadership"
   - "layer:osm-common"
+  - "interface:kafka"
+  - "interface:mongodb"
   - "interface:juju-relation-mysql"
   - "interface:osm-ro"
 
diff --git a/installers/charm/ro-k8s/metadata.yaml b/installers/charm/ro-k8s/metadata.yaml
index 3531e4b..102851a 100755
--- a/installers/charm/ro-k8s/metadata.yaml
+++ b/installers/charm/ro-k8s/metadata.yaml
@@ -27,6 +27,10 @@
 requires:
   mysql:
     interface: mysql
+  kafka:
+    interface: kafka
+  mongo:
+    interface: mongodb
 storage:
   log:
     type: filesystem
diff --git a/installers/charm/ro-k8s/reactive/ro.py b/installers/charm/ro-k8s/reactive/ro.py
index 8f91b4b..094812f 100644
--- a/installers/charm/ro-k8s/reactive/ro.py
+++ b/installers/charm/ro-k8s/reactive/ro.py
@@ -11,51 +11,96 @@
 #     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.
+import yaml
+
+from charmhelpers.core.hookenv import log, metadata, config
+from charms import layer
 from charms.layer.caas_base import pod_spec_set
+from charms.osm.k8s import get_service_ip
 from charms.reactive import endpoint_from_flag
 from charms.reactive import when, when_not, hook
 from charms.reactive.flags import set_flag, clear_flag
-from charmhelpers.core.hookenv import log, metadata, config
-from charms import layer
-from charms.osm.k8s import get_service_ip
 
 
 @hook("upgrade-charm")
 @when("leadership.is_leader")
 def upgrade():
     clear_flag("ro-k8s.configured")
+    clear_flag("ro-k8s.ready")
 
 
 @when("config.changed")
 @when("leadership.is_leader")
 def restart():
     clear_flag("ro-k8s.configured")
+    clear_flag("ro-k8s.ready")
 
 
+@when_not("mongo.ready")
 @when_not("mysql.available")
 @when_not("ro-k8s.configured")
 @when("leadership.is_leader")
 def waiting_for_mysql():
-    layer.status.waiting("Waiting for mysql to be ready")
+    layer.status.waiting("Waiting for db to be ready")
+    clear_flag("ro-k8s.ready")
 
 
+@when_not("kafka.ready")
+@when_not("ro-k8s.configured")
+@when("leadership.is_leader")
+def waiting_for_kafka():
+    layer.status.waiting("Waiting for kafka to be ready")
+    clear_flag("ro-k8s.ready")
+
+
+@when_not("ro-k8s.ready")
 @when("mysql.available")
+def ro_k8s_mysql_ready():
+    set_flag("ro-k8s.ready")
+
+
+@when_not("ro-k8s.ready")
+@when("kafka.ready")
+@when("mongo.ready")
+def ro_k8s_kafka_mongo_ready():
+    set_flag("ro-k8s.ready")
+
+
+@when("ro-k8s.ready")
 @when_not("ro-k8s.configured")
 @when("leadership.is_leader")
 def configure():
     layer.status.maintenance("Configuring ro container")
     try:
         mysql = endpoint_from_flag("mysql.available")
+        kafka = endpoint_from_flag("kafka.ready")
+        mongo = endpoint_from_flag("mongo.ready")
+        spec = None
+        if mysql:
+            if mysql.host() is not None:
+                spec = make_pod_spec(
+                    mysql.host(),
+                    mysql.port(),
+                    mysql.user(),
+                    mysql.password(),
+                    mysql.root_password(),
+                )
+        elif kafka and mongo:
+            kafka_units = kafka.kafkas()
+            kafka_unit = kafka_units[0]
+            mongo_uri = mongo.connection_string()
 
-        if mysql.host() is not None:
-            spec = make_pod_spec(
-                mysql.host(),
-                mysql.port(),
-                mysql.user(),
-                mysql.password(),
-                mysql.root_password(),
-            )
-
+            if (
+                mongo_uri
+                and kafka_unit["host"]
+                # and kafka_unit["port"]
+            ):
+                spec = make_pod_spec_new_ro(
+                    kafka_unit["host"],
+                    # kafka_unit["port"],
+                    mongo_uri,
+                )
+        if spec:
             log("set pod spec:\n{}".format(spec))
             pod_spec_set(spec)
             layer.status.active("creating container")
@@ -64,7 +109,7 @@
         layer.status.blocked("k8s spec failed to deploy: {}".format(e))
 
 
-@when("mysql.available")
+@when("ro-k8s.configured")
 @when_not("leadership.is_leader")
 def non_leaders_active():
     layer.status.active("ready")
@@ -84,7 +129,8 @@
             service_ip = get_service_ip("ro")
             if service_ip:
                 ro.send_connection(
-                    service_ip, get_ro_port(),
+                    service_ip,
+                    get_ro_port(),
                 )
                 clear_flag("ro.joined")
     except Exception as e:
@@ -114,15 +160,56 @@
 
     data = {
         "name": md.get("name"),
-        "mysql_host": mysql_host,
-        "mysql_port": mysql_port,
-        "mysql_user": mysql_user,
-        "mysql_password": mysql_password,
-        "mysql_root_password": mysql_root_password,
     }
     data.update(cfg)
+    spec = yaml.safe_load(pod_spec_template % data)
+    spec["containers"][0]["config"].update(
+        {
+            "RO_DB_HOST": mysql_host,
+            "RO_DB_PORT": mysql_port,
+            "RO_DB_NAME": cfg.get("ro_database"),
+            "RO_DB_USER": mysql_user,
+            "RO_DB_ROOT_PASSWORD": mysql_root_password,
+            "RO_DB_PASSWORD": mysql_password,
+            "RO_DB_OVIM_PASSWORD": mysql_password,
+            "RO_DB_OVIM_HOST": mysql_host,
+            "RO_DB_OVIM_PORT": mysql_port,
+            "RO_DB_OVIM_USER": mysql_user,
+            "RO_DB_OVIM_ROOT_PASSWORD": mysql_root_password,
+            "RO_DB_OVIM_NAME": cfg.get("vim_database"),
+        }
+    )
+    return spec
 
-    return pod_spec_template % data
+
+def make_pod_spec_new_ro(kafka_host, mongodb_uri):
+    """Make pod specification for Kubernetes
+
+    Args:
+        kafka_host (str): Kafka host
+        mongodb_uri (str): Mongodb URI
+    Returns:
+        pod_spec: Pod specification for Kubernetes
+    """
+
+    with open("reactive/spec_template.yaml") as spec_file:
+        pod_spec_template = spec_file.read()
+
+    md = metadata()
+    cfg = config()
+
+    data = {
+        "name": md.get("name"),
+    }
+    data.update(cfg)
+    spec = yaml.safe_load(pod_spec_template % data)
+    spec["containers"][0]["config"].update(
+        {
+            "OSMRO_DATABASE_URI": mongodb_uri,
+            "OSMRO_MESSAGE_HOST": kafka_host,
+        }
+    )
+    return spec
 
 
 def get_ro_port():
diff --git a/installers/charm/ro-k8s/reactive/spec_template.yaml b/installers/charm/ro-k8s/reactive/spec_template.yaml
index f2b3535..499acd7 100644
--- a/installers/charm/ro-k8s/reactive/spec_template.yaml
+++ b/installers/charm/ro-k8s/reactive/spec_template.yaml
@@ -21,14 +21,6 @@
       username: %(image_username)s
       password: %(image_password)s
     kubernetes:
-      readinessProbe:
-        httpGet:
-          path: /openmano/tenants
-          port: %(advertised-port)s
-        periodSeconds: 10
-        timeoutSeconds: 5
-        successThreshold: 1
-        failureThreshold: 3
       livenessProbe:
         tcpSocket:
           port: %(advertised-port)s
@@ -42,17 +34,4 @@
       protocol: TCP
     config:
         ALLOW_ANONYMOUS_LOGIN: 'yes'
-        RO_DB_HOST: %(mysql_host)s
-        RO_DB_PORT: %(mysql_port)s
-        RO_DB_NAME: %(ro_database)s
-        RO_DB_USER: %(mysql_user)s
-        RO_DB_ROOT_PASSWORD: %(mysql_root_password)s
-        RO_DB_PASSWORD: %(mysql_password)s
-
-        RO_DB_OVIM_PASSWORD: %(mysql_password)s
-        RO_DB_OVIM_HOST: %(mysql_host)s
-        RO_DB_OVIM_PORT: %(mysql_port)s
-        RO_DB_OVIM_USER: %(mysql_user)s
-        RO_DB_OVIM_ROOT_PASSWORD: %(mysql_root_password)s
-        RO_DB_OVIM_NAME: %(vim_database)s
         OPENMANO_TENANT: %(OPENMANO_TENANT)s
diff --git a/installers/charm/ro-k8s/tox.ini b/installers/charm/ro-k8s/tox.ini
index fef77c0..badd81e 100644
--- a/installers/charm/ro-k8s/tox.ini
+++ b/installers/charm/ro-k8s/tox.ini
@@ -36,8 +36,10 @@
                       mv
 commands =
     rm -rf release
+    rm -rf ../interfaces/mongodb
     rm -rf ../interfaces/juju-relation-mysql
     rm -rf /tmp/canonical-osm
+    git clone https://git.launchpad.net/interface-mongodb ../interfaces/mongodb
     git clone https://git.launchpad.net/canonical-osm/ /tmp/canonical-osm
     mv /tmp/canonical-osm/charms/interfaces/juju-relation-mysql ../interfaces/juju-relation-mysql
     charm build . --build-dir /tmp
diff --git a/installers/charmed_install.sh b/installers/charmed_install.sh
index 9d41e3e..69f74fc 100755
--- a/installers/charmed_install.sh
+++ b/installers/charmed_install.sh
@@ -275,22 +275,16 @@
     juju expose prometheus-k8s
     wait_for_port prometheus-k8s 3
 
-    # Expose UI
-    juju config ui-k8s juju-external-hostname=osm.${API_SERVER}.xip.io
-    juju expose ui-k8s
-    wait_for_port ui-k8s 4
-
     # Apply annotations
     sg ${KUBEGRP} -c "${KUBECTL} annotate ingresses.networking nginx.ingress.kubernetes.io/backend-protocol=HTTPS -n osm -l juju-app=nbi-k8s"
     sg ${KUBEGRP} -c "${KUBECTL} annotate ingresses.networking nginx.ingress.kubernetes.io/proxy-body-size=0 -n osm -l juju-app=nbi-k8s"
     sg ${KUBEGRP} -c "${KUBECTL} annotate ingresses.networking nginx.ingress.kubernetes.io/proxy-body-size=0 -n osm -l juju-app=ng-ui"
-    sg ${KUBEGRP} -c "${KUBECTL} annotate ingresses.networking nginx.ingress.kubernetes.io/proxy-body-size=0 -n osm -l juju-app=ui-k8s"
 }
 
 function check_osm_deployed() {
     TIME_TO_WAIT=600
     start_time="$(date -u +%s)"
-    total_service_count=15
+    total_service_count=14
     previous_count=0
     while true
     do
@@ -381,9 +375,6 @@
   pol-k8s:
     options:
       image: ${REGISTRY_URL}opensourcemano/pol:$TAG ${REGISTRY_CREDENTIALS}
-  ui-k8s:
-    options:
-      image: ${REGISTRY_URL}opensourcemano/light-ui:$TAG ${REGISTRY_CREDENTIALS}
   pla:
     options:
       image: ${REGISTRY_URL}opensourcemano/pla:$TAG ${REGISTRY_CREDENTIALS}
