Feature 10884: Juju 2.9 support

- Update osm bundles (charmed)
- Update Juju version (snap and agent version) (charmed and k8s)
- Update to new mongodb charm (charmed and k8s)
- Fix ingress issue by adding an ingress_class config
- Charmed installer: point to local bundles until all charms are in
CharmHub
Change-Id: I6ff8328e5db6719bbf9d5d4c9b5490f478b2ace8
Signed-off-by: David Garcia <david.garcia@canonical.com>
diff --git a/installers/charm/mongodb-exporter/config.yaml b/installers/charm/mongodb-exporter/config.yaml
index 206bca5..727598b 100644
--- a/installers/charm/mongodb-exporter/config.yaml
+++ b/installers/charm/mongodb-exporter/config.yaml
@@ -20,6 +20,11 @@
 ##
 
 options:
+  ingress_class:
+    type: string
+    description: |
+      Ingress class name. This is useful for selecting the ingress to be used
+      in case there are multiple ingresses in the underlying k8s clusters.
   ingress_whitelist_source_range:
     type: string
     description: |
diff --git a/installers/charm/mongodb-exporter/src/charm.py b/installers/charm/mongodb-exporter/src/charm.py
index a2b9471..149940a 100755
--- a/installers/charm/mongodb-exporter/src/charm.py
+++ b/installers/charm/mongodb-exporter/src/charm.py
@@ -49,6 +49,7 @@
 class ConfigModel(ModelValidator):
     site_url: Optional[str]
     cluster_issuer: Optional[str]
+    ingress_class: Optional[str]
     ingress_whitelist_source_range: Optional[str]
     tls_secret_name: Optional[str]
     mongodb_uri: Optional[str]
@@ -214,7 +215,9 @@
         # Add ingress resources to PodSpec if site url exists
         if config.site_url:
             parsed = urlparse(config.site_url)
-            annotations = {"kubernetes.io/ingress.class": "public"}
+            annotations = {}
+            if config.ingress_class:
+                annotations["kubernetes.io/ingress.class"] = config.ingress_class
             ingress_resource_builder = IngressResourceV3Builder(
                 f"{self.app.name}-ingress", annotations
             )