X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharm%2Fmongodb-exporter%2Fsrc%2Fpod_spec.py;h=ff42e02c94d69b8d9f8d061d7f11a8193d0020ed;hb=06cacb28e8256c0d7c287516f7aaddb6e3fb6d21;hp=781c68927155e14c4a6587869f9fed5ef5e718f8;hpb=3884e23c245102cdebe39301786fec2a3f5d5150;p=osm%2Fdevops.git diff --git a/installers/charm/mongodb-exporter/src/pod_spec.py b/installers/charm/mongodb-exporter/src/pod_spec.py index 781c6892..ff42e02c 100644 --- a/installers/charm/mongodb-exporter/src/pod_spec.py +++ b/installers/charm/mongodb-exporter/src/pod_spec.py @@ -20,8 +20,8 @@ # osm-charmers@lists.launchpad.net ## -import logging from ipaddress import ip_network +import logging from typing import Any, Dict, List from urllib.parse import urlparse @@ -62,6 +62,9 @@ def _validate_data(config_data: Dict[str, Any], relation_data: Dict[str, Any]) - "site_url": lambda value, _: isinstance(value, str) if value is not None else True, + "cluster_issuer": lambda value, _: isinstance(value, str) + if value is not None + else True, "ingress_whitelist_source_range": lambda value, _: _validate_ip_network(value), "tls_secret_name": lambda value, _: isinstance(value, str) if value is not None @@ -122,10 +125,15 @@ def _make_pod_envconfig( Returns: Dict[str, Any]: pod environment configuration. """ + parsed = urlparse(relation_state.get("mongodb_connection_string")) + envconfig = { - "MONGODB_URI": relation_state.get("mongodb_connection_string"), + "MONGODB_URI": f"mongodb://{parsed.netloc.split(',')[0]}{parsed.path}", } + if parsed.query: + envconfig["MONGODB_URI"] += f"?{parsed.query}" + return envconfig @@ -153,6 +161,8 @@ def _make_pod_ingress_resources( return ingress_whitelist_source_range = config["ingress_whitelist_source_range"] + cluster_issuer = config["cluster_issuer"] + annotations = {} if ingress_whitelist_source_range: @@ -160,6 +170,9 @@ def _make_pod_ingress_resources( "nginx.ingress.kubernetes.io/whitelist-source-range" ] = ingress_whitelist_source_range + if cluster_issuer: + annotations["cert-manager.io/cluster-issuer"] = cluster_issuer + ingress_spec_tls = None if parsed.scheme == "https":