]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: prevent alert redirect 47146/head
authorTatjana Dehler <tdehler@suse.com>
Thu, 7 Jul 2022 15:21:14 +0000 (17:21 +0200)
committerTatjana Dehler <tdehler@suse.com>
Mon, 18 Jul 2022 08:41:33 +0000 (10:41 +0200)
Prevent Alertmanager alerts from being redirected to the active mgr
dashboard instance. There are two reasons for it:

1. It doesn't bring any additional benefit. The Alertmanager config
   includes all available mgr instances - active and passive ones. In
   case of an alert, it will be sent to all of them. It ensures that
   the active mgr dashboard will receive the alert in any case.
2. The redirect URL includes the mgr IP and NOT the FQDN. This leads
   to issues in environments where an SSL certificate is configured and
   matches the FQDNs, only.

Fixes: https://tracker.ceph.com/issues/56401
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
(cherry picked from commit 965005e0789e566ccadce7a326b0e197ab8d7f5f)

src/pybind/mgr/dashboard/module.py

index 5b2f90ab204d615efd7324d9590d14daeca8b69a..946c853f880d66330d91fa3940be94553d16f363 100644 (file)
@@ -517,6 +517,13 @@ class StandbyModule(MgrStandbyModule, CherryPyConfig):
             def default(self, *args, **kwargs):
                 if module.get_module_option('standby_behaviour', 'redirect') == 'redirect':
                     active_uri = module.get_active_uri()
+
+                    if cherrypy.request.path_info.startswith('/api/prometheus_receiver'):
+                        module.log.debug("Suppressed redirecting alert to active '%s'",
+                                         active_uri)
+                        cherrypy.response.status = 204
+                        return None
+
                     if active_uri:
                         module.log.info("Redirecting to active '%s'", active_uri)
                         raise cherrypy.HTTPRedirect(active_uri)