summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorThong Kuah <tkuah@gitlab.com>2018-12-19 21:50:12 +1300
committerThong Kuah <tkuah@gitlab.com>2019-01-15 10:03:08 +1300
commit8296ff580c2bb1b2a9ee07193f79f66fd6444de0 (patch)
treec101388d589cee84b116974e47046c0f90ebe6d6 /app
parent4a6c7661edae664a7f6366201d017e24d8f42026 (diff)
downloadgitlab-ce-8296ff580c2bb1b2a9ee07193f79f66fd6444de0.tar.gz
Port generic upgrade functionality to CE55544-port-upgrade-command
Port from EE generic upgrade related functionality used to upgrade Helm applications Remove memoization which could be incorrect It looks like we are memoizing without regard to the method's argument so this could result in an incorrect upgrade_command Remove `const_get` indirection now we are no longer in EE
Diffstat (limited to 'app')
-rw-r--r--app/models/clusters/applications/prometheus.rb28
-rw-r--r--app/services/clusters/applications/base_helm_service.rb4
2 files changed, 31 insertions, 1 deletions
diff --git a/app/models/clusters/applications/prometheus.rb b/app/models/clusters/applications/prometheus.rb
index e25be522d68..7a97760536a 100644
--- a/app/models/clusters/applications/prometheus.rb
+++ b/app/models/clusters/applications/prometheus.rb
@@ -25,13 +25,21 @@ module Clusters
end
def ready_status
- [:installed]
+ [:installed, :updating, :updated, :update_errored]
end
def ready?
ready_status.include?(status_name)
end
+ def update_in_progress?
+ status_name == :updating
+ end
+
+ def update_errored?
+ status_name == :update_errored
+ end
+
def chart
'stable/prometheus'
end
@@ -55,6 +63,24 @@ module Clusters
)
end
+ def upgrade_command(values)
+ ::Gitlab::Kubernetes::Helm::UpgradeCommand.new(
+ name,
+ version: VERSION,
+ chart: chart,
+ rbac: cluster.platform_kubernetes_rbac?,
+ files: files_with_replaced_values(values)
+ )
+ end
+
+ # Returns a copy of files where the values of 'values.yaml'
+ # are replaced by the argument.
+ #
+ # See #values for the data format required
+ def files_with_replaced_values(replaced_values)
+ files.merge('values.yaml': replaced_values)
+ end
+
def prometheus_client
return unless kube_client
diff --git a/app/services/clusters/applications/base_helm_service.rb b/app/services/clusters/applications/base_helm_service.rb
index e86ca8cf1d0..8a71730d5ec 100644
--- a/app/services/clusters/applications/base_helm_service.rb
+++ b/app/services/clusters/applications/base_helm_service.rb
@@ -45,6 +45,10 @@ module Clusters
def install_command
@install_command ||= app.install_command
end
+
+ def upgrade_command(new_values = "")
+ app.upgrade_command(new_values)
+ end
end
end
end