Skip to content

Expire the Gitlab::CurrentSettings cache

Reuben Pereira requested to merge expire-settings-cache-after-modifying into master

What does this MR do?

The PrometheusService model (saved in the add_prometheus_manual_configuration method) needs to be able to see the new self_monitoring_project_id, which is saved in application_settings table. So we expire the Gitlab::CurrentSettings cache after saving the self_monitoring_project_id so that PrometheusService sees the latest value.

In the add_prometheus_manual_configuration method, the Prometheus listen_address config is saved as an api_url in a PrometheusService model. In the PrometheusService model, there are validates hooks that check if the project associated with the PrometheusService is the self_monitoring project. It checks Gitlab::CurrentSettings.self_monitoring_project_id, which is why the Gitlab::CurrentSettings cache needs to be expired after the self_monitoring_project_id has been saved, and before the PrometheusService model is saved.

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by 🤖 GitLab Bot 🤖

Merge request reports