diff --git a/installers/charm/pla/config.yaml b/installers/charm/pla/config.yaml
index 92bb422..3f092c5 100644
--- a/installers/charm/pla/config.yaml
+++ b/installers/charm/pla/config.yaml
@@ -24,19 +24,15 @@
     description: Port number
     type: int
     default: 8080 # Fake port
-  kafka_host:
-    description: Kafka Hostname
-    type: string
-    default: kafka-k8s
-  kafka_port:
-    description: Kafka Port
-    type: int
-    default: 9092
-  mongo_uri:
-    description: Mongo URI
-    type: string
-    default: mongodb://mongodb-k8s:27017
   log_level:
     description: Log level
     type: string
     default: INFO
+  database:
+    description: Database name
+    type: string
+    default: pla
+  database_common_key:
+    description: Common Key for Mongo database
+    type: string
+    default: osm
diff --git a/installers/charm/pla/hooks/install b/installers/charm/pla/hooks/install
new file mode 120000
index 0000000..25b1f68
--- /dev/null
+++ b/installers/charm/pla/hooks/install
@@ -0,0 +1 @@
+../src/charm.py
\ No newline at end of file
diff --git a/installers/charm/pla/hooks/upgrade-charm b/installers/charm/pla/hooks/upgrade-charm
new file mode 120000
index 0000000..25b1f68
--- /dev/null
+++ b/installers/charm/pla/hooks/upgrade-charm
@@ -0,0 +1 @@
+../src/charm.py
\ No newline at end of file
diff --git a/installers/charm/pla/metadata.yaml b/installers/charm/pla/metadata.yaml
index 37b6214..afd4574 100644
--- a/installers/charm/pla/metadata.yaml
+++ b/installers/charm/pla/metadata.yaml
@@ -26,6 +26,6 @@
   kafka:
     interface: kafka
   mongo:
-    interface: mongo
+    interface: mongodb
   mysql:
     interface: mysql
\ No newline at end of file
diff --git a/installers/charm/pla/src/charm.py b/installers/charm/pla/src/charm.py
index b94d62b..f90b407 100755
--- a/installers/charm/pla/src/charm.py
+++ b/installers/charm/pla/src/charm.py
@@ -24,6 +24,7 @@
 from ops.model import (
     ActiveStatus,
     MaintenanceStatus,
+    WaitingStatus,
 )
 
 from glob import glob
@@ -39,49 +40,76 @@
     def __init__(self, framework, key):
         super().__init__(framework, key)
         self.state.set_default(spec=None)
+        self.state.set_default(kafka_host=None)
+        self.state.set_default(kafka_port=None)
+        self.state.set_default(mongodb_uri=None)
+        self.state.set_default(mysql_host=None)
+        self.state.set_default(mysql_port=None)
 
         # Observe Charm related events
         self.framework.observe(self.on.config_changed, self.on_config_changed)
         self.framework.observe(self.on.start, self.on_start)
         self.framework.observe(self.on.upgrade_charm, self.on_upgrade_charm)
 
+        # Relations
+        self.framework.observe(
+            self.on.kafka_relation_changed, self.on_kafka_relation_changed
+        )
+        self.framework.observe(
+            self.on.mongo_relation_changed, self.on_mongo_relation_changed
+        )
+        self.framework.observe(
+            self.on.mysql_relation_changed, self.on_mysql_relation_changed
+        )
+
     def _apply_spec(self):
         # Only apply the spec if this unit is a leader.
-        if not self.framework.model.unit.is_leader():
+        unit = self.model.unit
+        if not unit.is_leader():
+            unit.status = ActiveStatus("Ready")
             return
+        if not self.state.kafka_host or not self.state.kafka_port:
+            unit.status = WaitingStatus("Waiting for Kafka")
+            return
+        if not self.state.mongodb_uri:
+            unit.status = WaitingStatus("Waiting for MongoDB")
+            return
+        if not self.state.mysql_host or not self.state.mysql_port:
+            unit.status = WaitingStatus("Waiting for MySQL")
+            return
+
+        unit.status = MaintenanceStatus("Applying new pod spec")
+
         new_spec = self.make_pod_spec()
         if new_spec == self.state.spec:
+            unit.status = ActiveStatus("Ready")
             return
         self.framework.model.pod.set_spec(new_spec)
         self.state.spec = new_spec
+        unit.status = ActiveStatus("Ready")
 
     def make_pod_spec(self):
         config = self.framework.model.config
 
+        mysql_uri = "mysql://root:{}@{}:{}/{}".format(
+            self.state.mysql_root_password,
+            self.state.mysql_host,
+            self.state.mysql_port,
+            self.state.mysql_database,
+        )
         ports = [
             {"name": "port", "containerPort": config["port"], "protocol": "TCP",},
         ]
 
-        kubernetes = {
-            "readinessProbe": {
-                "tcpSocket": {"port": config["port"]},
-                "timeoutSeconds": 5,
-                "periodSeconds": 5,
-                "initialDelaySeconds": 10,
-            },
-            "livenessProbe": {
-                "tcpSocket": {"port": config["port"]},
-                "timeoutSeconds": 5,
-                "initialDelaySeconds": 45,
-            },
-        }
         config_spec = {
             "OSMPLA_MESSAGE_DRIVER": "kafka",
-            "OSMPLA_MESSAGE_HOST": config["kafka_host"],
-            "OSMPLA_MESSAGE_PORT": config["kafka_port"],
+            "OSMPLA_MESSAGE_HOST": self.state.kafka_host,
+            "OSMPLA_MESSAGE_PORT": self.state.kafka_port,
             "OSMPLA_DATABASE_DRIVER": "mongo",
-            "OSMPLA_DATABASE_URI": config["mongo_uri"],
+            "OSMPLA_DATABASE_URI": self.state.mongodb_uri,
             "OSMPLA_GLOBAL_LOG_LEVEL": config["log_level"],
+            "OSMPLA_SQL_DATABASE_URI": mysql_uri,
+            "OSMPLA_DATABASE_COMMONKEY": config["database_common_key"],
         }
 
         spec = {
@@ -89,9 +117,8 @@
             "containers": [
                 {
                     "name": self.framework.model.app.name,
-                    "image": "{}".format(config["image"]),
+                    "image": config["image"],
                     "ports": ports,
-                    "kubernetes": kubernetes,
                     "config": config_spec,
                 }
             ],
@@ -101,17 +128,11 @@
 
     def on_config_changed(self, event):
         """Handle changes in configuration"""
-        unit = self.model.unit
-        unit.status = MaintenanceStatus("Applying new pod spec")
         self._apply_spec()
-        unit.status = ActiveStatus("Ready")
 
     def on_start(self, event):
         """Called when the charm is being installed"""
-        unit = self.model.unit
-        unit.status = MaintenanceStatus("Applying pod spec")
         self._apply_spec()
-        unit.status = ActiveStatus("Ready")
 
     def on_upgrade_charm(self, event):
         """Upgrade the charm."""
@@ -119,6 +140,34 @@
         unit.status = MaintenanceStatus("Upgrading charm")
         self.on_start(event)
 
+    def on_kafka_relation_changed(self, event):
+        unit = self.model.unit
+        if not unit.is_leader():
+            return
+        self.state.kafka_host = event.relation.data[event.unit].get("host")
+        self.state.kafka_port = event.relation.data[event.unit].get("port")
+        self._apply_spec()
+
+    def on_mongo_relation_changed(self, event):
+        unit = self.model.unit
+        if not unit.is_leader():
+            return
+        self.state.mongodb_uri = event.relation.data[event.unit].get(
+            "connection_string"
+        )
+        self._apply_spec()
+
+    def on_mysql_relation_changed(self, event):
+        unit = self.model.unit
+        if not unit.is_leader():
+            return
+        unit_data = event.relation.data[event.unit]
+        self.state.mysql_host = unit_data.get("host")
+        self.state.mysql_port = unit_data.get("port")
+        self.state.mysql_root_password = unit_data.get("root_password")
+        self.state.mysql_database = self.model.config["database"]
+        self._apply_spec()
+
 
 if __name__ == "__main__":
     main(PLACharm)
