Commit a71b3f6a authored by Dylan Griffith's avatar Dylan Griffith

Extract Helm::ClientCommand for shared commands

parent fe1469e1
...@@ -66,6 +66,9 @@ module Clusters ...@@ -66,6 +66,9 @@ module Clusters
end end
before_transition any => [:installed, :updated] do |app_status, _| before_transition any => [:installed, :updated] do |app_status, _|
# When installing any application we are also performing an update
# of tiller (see Gitlab::Kubernetes::Helm::ClientCommand) so
# therefore we need to reflect that in the database.
app_status.cluster.application_helm.update!(version: Gitlab::Kubernetes::Helm::HELM_VERSION) app_status.cluster.application_helm.update!(version: Gitlab::Kubernetes::Helm::HELM_VERSION)
end end
end end
......
module Gitlab
module Kubernetes
module Helm
module ClientCommand
def init_command
# Here we are always upgrading to the latest version of Tiller when
# installing an app. We ensure the helm version stored in the
# database is correct by also updating this after transition to
# :installed,:updated in Clusters::Concerns::ApplicationStatus
'helm init --upgrade --tiller-namespace gitlab-managed-apps'
end
def wait_for_tiller_command
# This is necessary to give Tiller time to restart after upgrade.
# Ideally we'd be able to use --wait but cannot because of
# https://github.com/helm/helm/issues/4855
'sleep 30'
end
def repository_command
['helm', 'repo', 'add', name, repository].shelljoin if repository
end
end
end
end
end
...@@ -3,6 +3,7 @@ module Gitlab ...@@ -3,6 +3,7 @@ module Gitlab
module Helm module Helm
class InstallCommand class InstallCommand
include BaseCommand include BaseCommand
include ClientCommand
attr_reader :name, :files, :chart, :version, :repository, :preinstall, :postinstall attr_reader :name, :files, :chart, :version, :repository, :preinstall, :postinstall
...@@ -20,10 +21,7 @@ module Gitlab ...@@ -20,10 +21,7 @@ module Gitlab
def generate_script def generate_script
super + [ super + [
init_command, init_command,
# Sleep is necessary to give Tiller time to restart after upgrade. wait_for_tiller_command,
# Ideally we'd be able to use --wait but cannot because of
# https://github.com/helm/helm/issues/4855
sleep_command,
repository_command, repository_command,
repository_update_command, repository_update_command,
preinstall_command, preinstall_command,
...@@ -38,18 +36,6 @@ module Gitlab ...@@ -38,18 +36,6 @@ module Gitlab
private private
def init_command
'helm init --upgrade --tiller-namespace gitlab-managed-apps'
end
def sleep_command
'sleep 30'
end
def repository_command
['helm', 'repo', 'add', name, repository].shelljoin if repository
end
def repository_update_command def repository_update_command
'helm repo update' if repository 'helm repo update' if repository
end end
......
...@@ -5,6 +5,7 @@ module Gitlab ...@@ -5,6 +5,7 @@ module Gitlab
module Helm module Helm
class UpgradeCommand class UpgradeCommand
include BaseCommand include BaseCommand
include ClientCommand
attr_reader :name, :chart, :version, :repository, :files attr_reader :name, :chart, :version, :repository, :files
...@@ -20,10 +21,7 @@ module Gitlab ...@@ -20,10 +21,7 @@ module Gitlab
def generate_script def generate_script
super + [ super + [
init_command, init_command,
# Sleep is necessary to give Tiller time to restart after upgrade. wait_for_tiller_command,
# Ideally we'd be able to use --wait but cannot because of
# https://github.com/helm/helm/issues/4855
sleep_command,
repository_command, repository_command,
script_command script_command
].compact.join("\n") ].compact.join("\n")
...@@ -39,18 +37,6 @@ module Gitlab ...@@ -39,18 +37,6 @@ module Gitlab
private private
def init_command
'helm init --upgrade --tiller-namespace gitlab-managed-apps'
end
def sleep_command
'sleep 30'
end
def repository_command
"helm repo add #{name} #{repository}" if repository
end
def script_command def script_command
upgrade_flags = "#{optional_version_flag}#{optional_tls_flags}" \ upgrade_flags = "#{optional_version_flag}#{optional_tls_flags}" \
" --reset-values" \ " --reset-values" \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment