summaryrefslogtreecommitdiff
path: root/app/services/clusters/applications/prometheus_update_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/clusters/applications/prometheus_update_service.rb')
-rw-r--r--app/services/clusters/applications/prometheus_update_service.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/services/clusters/applications/prometheus_update_service.rb b/app/services/clusters/applications/prometheus_update_service.rb
new file mode 100644
index 00000000000..437f6ab1202
--- /dev/null
+++ b/app/services/clusters/applications/prometheus_update_service.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module Clusters
+ module Applications
+ class PrometheusUpdateService < BaseHelmService
+ attr_accessor :project
+
+ def initialize(app, project)
+ super(app)
+ @project = project
+ end
+
+ def execute
+ app.make_updating!
+
+ helm_api.update(patch_command(values))
+
+ ::ClusterWaitForAppUpdateWorker.perform_in(::ClusterWaitForAppUpdateWorker::INTERVAL, app.name, app.id)
+ rescue ::Kubeclient::HttpError => ke
+ app.make_update_errored!("Kubernetes error: #{ke.message}")
+ rescue StandardError => e
+ app.make_update_errored!(e.message)
+ end
+
+ private
+
+ def values
+ PrometheusConfigService
+ .new(project, cluster, app)
+ .execute
+ .to_yaml
+ end
+ end
+ end
+end