# 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
"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
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
return
ingress_whitelist_source_range = config["ingress_whitelist_source_range"]
+ cluster_issuer = config["cluster_issuer"]
+
annotations = {}
if ingress_whitelist_source_range:
"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":