diff options
Diffstat (limited to 'app/models/clusters/applications/prometheus.rb')
-rw-r--r-- | app/models/clusters/applications/prometheus.rb | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/app/models/clusters/applications/prometheus.rb b/app/models/clusters/applications/prometheus.rb index b9c136abab4..21f7e410843 100644 --- a/app/models/clusters/applications/prometheus.rb +++ b/app/models/clusters/applications/prometheus.rb @@ -22,21 +22,18 @@ module Clusters attr_encrypted :alert_manager_token, mode: :per_attribute_iv, - key: Settings.attr_encrypted_db_key_base_truncated, + key: Settings.attr_encrypted_db_key_base_32, algorithm: 'aes-256-gcm' + default_value_for(:alert_manager_token) { SecureRandom.hex } + after_destroy do - run_after_commit do - disable_prometheus_integration - end + cluster.find_or_build_integration_prometheus.destroy end state_machine :status do after_transition any => [:installed, :externally_installed] do |application| - application.run_after_commit do - Clusters::Applications::ActivateServiceWorker - .perform_async(application.cluster_id, ::PrometheusService.to_param) # rubocop:disable CodeReuse/ServiceClass - end + application.cluster.find_or_build_integration_prometheus.update(enabled: true, alert_manager_token: application.alert_manager_token) end after_transition any => :updating do |application| @@ -44,6 +41,10 @@ module Clusters end end + def managed_prometheus? + !externally_installed? && !uninstalled? + end + def updated_since?(timestamp) last_update_started_at && last_update_started_at > timestamp && @@ -70,6 +71,7 @@ module Clusters ) end + # Deprecated, to be removed in %14.0 as part of https://gitlab.com/groups/gitlab-org/-/epics/4280 def patch_command(values) helm_command_module::PatchCommand.new( name: name, @@ -98,23 +100,8 @@ module Clusters files.merge('values.yaml': replaced_values) end - def generate_alert_manager_token! - unless alert_manager_token.present? - update!(alert_manager_token: generate_token) - end - end - private - def generate_token - SecureRandom.hex - end - - def disable_prometheus_integration - ::Clusters::Applications::DeactivateServiceWorker - .perform_async(cluster_id, ::PrometheusService.to_param) # rubocop:disable CodeReuse/ServiceClass - end - def install_knative_metrics return [] unless cluster.application_knative_available? |