Revert "Remove Prometheus charm"
[osm/devops.git] / installers / charm / prometheus / src / pod_spec.py
index 3e4bc44..202114e 100644 (file)
@@ -95,6 +95,7 @@ def _validate_data(config_data: Dict[str, Any], relation_data: Dict[str, Any]) -
         "tls_secret_name": lambda value, _: isinstance(value, str)
         if value is not None
         else True,
+        "enable_web_admin_api": lambda value, _: isinstance(value, bool),
     }
     relation_validators = {}
     problems = []
@@ -238,18 +239,18 @@ def _make_pod_files(config: Dict[str, Any]) -> List[Dict[str, Any]]:
                 {
                     "path": "prometheus.yml",
                     "content": (
-                        "global:"
-                        "  scrape_interval: 15s"
-                        "  evaluation_interval: 15s"
-                        "alerting:"
-                        "  alertmanagers:"
-                        "    - static_configs:"
-                        "        - targets:"
-                        "rule_files:"
-                        "scrape_configs:"
-                        "  - job_name: 'prometheus'"
-                        "    static_configs:"
-                        "      - targets: [{}]".format(config["default_target"])
+                        "global:\n"
+                        "  scrape_interval: 15s\n"
+                        "  evaluation_interval: 15s\n"
+                        "alerting:\n"
+                        "  alertmanagers:\n"
+                        "    - static_configs:\n"
+                        "        - targets:\n"
+                        "rule_files:\n"
+                        "scrape_configs:\n"
+                        "  - job_name: 'prometheus'\n"
+                        "    static_configs:\n"
+                        "      - targets: [{}]\n".format(config["default_target"])
                     ),
                 }
             ],
@@ -307,9 +308,7 @@ def _make_pod_command(config: Dict[str, Any], port: int) -> List[str]:
     Returns:
         List[str]: command to startup the process.
     """
-    return [
-        "sh",
-        "-c",
+    command = [
         "/bin/prometheus",
         "--config.file=/etc/prometheus/prometheus.yml",
         "--storage.tsdb.path=/prometheus",
@@ -320,6 +319,9 @@ def _make_pod_command(config: Dict[str, Any], port: int) -> List[str]:
             port, config.get("web_subpath")
         ),
     ]
+    if config.get("enable_web_admin_api"):
+        command.append("--web.enable-admin-api")
+    return command
 
 
 def make_pod_spec(