summaryrefslogtreecommitdiff
path: root/app/workers/cluster_upgrade_app_worker.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/workers/cluster_upgrade_app_worker.rb')
-rw-r--r--app/workers/cluster_upgrade_app_worker.rb30
1 files changed, 23 insertions, 7 deletions
diff --git a/app/workers/cluster_upgrade_app_worker.rb b/app/workers/cluster_upgrade_app_worker.rb
index d1a538859b4..44deff2f3a2 100644
--- a/app/workers/cluster_upgrade_app_worker.rb
+++ b/app/workers/cluster_upgrade_app_worker.rb
@@ -1,13 +1,29 @@
# frozen_string_literal: true
-class ClusterUpgradeAppWorker
- include ApplicationWorker
- include ClusterQueue
- include ClusterApplications
-
+class ClusterUpgradeAppWorker < ClusterApplicationBaseWorker
def perform(app_name, app_id)
- find_application(app_name, app_id) do |app|
- Clusters::Applications::UpgradeService.new(app).execute
+ super
+ execute
+ end
+
+ def execute
+ return unless app.scheduled?
+
+ begin
+ app.make_updating!
+
+ # install_command works with upgrades too
+ # as it basically does `helm upgrade --install`
+ helm_api.update(install_command)
+
+ ClusterWaitForAppInstallationWorker.perform_in(
+ ClusterWaitForAppInstallationWorker::INTERVAL, app.name, app.id)
+ rescue Kubeclient::HttpError => e
+ log_error(e)
+ app.make_update_errored!("Kubernetes error: #{e.error_code}")
+ rescue StandardError => e
+ log_error(e)
+ app.make_update_errored!("Can't start upgrade process.")
end
end
end