Migrate to new NBI charm, and change in NGUI charm

- Fixes bug 1365
- Changes in the installer:
    - use site_url config to expose both NBI and NG-UI
    - use resources for images
- Changes in the NBI: some minor fixes
- Changes in the NG-UI: follow the same pattern as in the new set of
charms

Change-Id: I6a11009ddf9cd22689602b2a53ecf67f376830cb
Signed-off-by: David Garcia <david.garcia@canonical.com>
diff --git a/installers/charm/nbi/src/charm.py b/installers/charm/nbi/src/charm.py
index 6db99be..f2b2ecf 100755
--- a/installers/charm/nbi/src/charm.py
+++ b/installers/charm/nbi/src/charm.py
@@ -143,7 +143,7 @@
             )
         ):
             self.state.message_host = message_host
-            self.state.message_port = message_port
+            self.state.message_port = int(message_port)
             self.on.configure_pod.emit()
 
     def _on_kafka_relation_departed(self, event: EventBase) -> NoReturn:
@@ -219,7 +219,7 @@
             )
         ):
             self.state.keystone_host = keystone_host
-            self.state.keystone_port = keystone_port
+            self.state.keystone_port = int(keystone_port)
             self.state.keystone_user_domain_name = keystone_user_domain_name
             self.state.keystone_project_domain_name = keystone_project_domain_name
             self.state.keystone_username = keystone_username
@@ -262,7 +262,7 @@
             )
         ):
             self.state.prometheus_host = prometheus_host
-            self.state.prometheus_port = prometheus_port
+            self.state.prometheus_port = int(prometheus_port)
             self.on.configure_pod.emit()
 
     def _on_prometheus_relation_departed(self, event: EventBase) -> NoReturn:
@@ -281,13 +281,12 @@
         Args:
             event (EventBase): NBI relation event.
         """
-        if self.unit.is_leader():
-            rel_data = {
-                "host": self.model.app.name,
-                "port": str(NBI_PORT),
-            }
-            for k, v in rel_data.items():
-                event.relation.data[self.model.app][k] = v
+        rel_data = {
+            "host": self.model.app.name,
+            "port": str(NBI_PORT),
+        }
+        for k, v in rel_data.items():
+            event.relation.data[self.unit][k] = v
 
     def _missing_relations(self) -> str:
         """Checks if there missing relations.
diff --git a/installers/charm/nbi/src/pod_spec.py b/installers/charm/nbi/src/pod_spec.py
index 77fff3e..96518b9 100644
--- a/installers/charm/nbi/src/pod_spec.py
+++ b/installers/charm/nbi/src/pod_spec.py
@@ -270,7 +270,7 @@
 
     annotations = {
         "nginx.ingress.kubernetes.io/proxy-body-size": "{}".format(
-            max_file_size + "m" if max_file_size > 0 else max_file_size
+            str(max_file_size) + "m" if max_file_size > 0 else max_file_size
         ),
         "nginx.ingress.kubernetes.io/backend-protocol": "HTTPS",
     }