Commit a71b3f6a authored by Dylan Griffith's avatar Dylan Griffith

Extract Helm::ClientCommand for shared commands

parent fe1469e1
......@@ -66,6 +66,9 @@ module Clusters
end
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)
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
module Helm
class InstallCommand
include BaseCommand
include ClientCommand
attr_reader :name, :files, :chart, :version, :repository, :preinstall, :postinstall
......@@ -20,10 +21,7 @@ module Gitlab
def generate_script
super + [
init_command,
# Sleep 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_command,
wait_for_tiller_command,
repository_command,
repository_update_command,
preinstall_command,
......@@ -38,18 +36,6 @@ module Gitlab
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
'helm repo update' if repository
end
......
......@@ -5,6 +5,7 @@ module Gitlab
module Helm
class UpgradeCommand
include BaseCommand
include ClientCommand
attr_reader :name, :chart, :version, :repository, :files
......@@ -20,10 +21,7 @@ module Gitlab
def generate_script
super + [
init_command,
# Sleep 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_command,
wait_for_tiller_command,
repository_command,
script_command
].compact.join("\n")
......@@ -39,18 +37,6 @@ module Gitlab
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
upgrade_flags = "#{optional_version_flag}#{optional_tls_flags}" \
" --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