]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: set dashboard grafana-api-password when user provides one 47545/head
authorAdam King <adking@redhat.com>
Wed, 10 Aug 2022 19:58:44 +0000 (15:58 -0400)
committerAdam King <adking@redhat.com>
Wed, 10 Aug 2022 21:01:36 +0000 (17:01 -0400)
If a user provides this in the spec, cephadm will set up the inital admin
user with the given password, but the conig setting accessed with
"ceph dashboard get-grafana-api-password" is never updated. Cephadm
can handle updating it since it's the one setting the password.

Fixes: https://tracker.ceph.com/issues/57095
Signed-off-by: Adam King <adking@redhat.com>
src/pybind/mgr/cephadm/services/ingress.py
src/pybind/mgr/cephadm/services/monitoring.py

index 02fd8141d5b52dbcee18d35e89a13a350467a9a2..a6429c43743aea30e03769891ec83a5e376e1fa4 100644 (file)
@@ -78,7 +78,8 @@ class IngressService(CephService):
         password = self.mgr.get_store(pw_key)
         if password is None:
             if not spec.monitor_password:
-                password = ''.join(random.choice(string.ascii_lowercase) for _ in range(self.MAX_KEEPALIVED_PASS_LEN))
+                password = ''.join(random.choice(string.ascii_lowercase)
+                                   for _ in range(self.MAX_KEEPALIVED_PASS_LEN))
                 self.mgr.set_store(pw_key, password)
         else:
             if spec.monitor_password:
@@ -177,7 +178,8 @@ class IngressService(CephService):
         password = self.mgr.get_store(pw_key)
         if password is None:
             if not spec.keepalived_password:
-                password = ''.join(random.choice(string.ascii_lowercase) for _ in range(self.MAX_KEEPALIVED_PASS_LEN))
+                password = ''.join(random.choice(string.ascii_lowercase)
+                                   for _ in range(self.MAX_KEEPALIVED_PASS_LEN))
                 self.mgr.set_store(pw_key, password)
         else:
             if spec.keepalived_password:
index d07c67bd5b979f5b4650d8344416a09b26258f6b..03e8f3addb6404663516699e11754743a4625f24 100644 (file)
@@ -79,6 +79,10 @@ class GrafanaService(CephadmService):
                 'http_addr': daemon_spec.ip if daemon_spec.ip else ''
             })
 
+        if 'dashboard' in self.mgr.get('mgr_map')['modules'] and spec.initial_admin_password:
+            self.mgr.check_mon_command(
+                {'prefix': 'dashboard set-grafana-api-password'}, inbuf=spec.initial_admin_password)
+
         config_file = {
             'files': {
                 "grafana.ini": grafana_ini,