Extract Helm::ClientCommand for shared commands
This commit is contained in:
parent
fe1469e12f
commit
a71b3f6a7c
4 changed files with 33 additions and 32 deletions
|
@ -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
|
||||
|
|
26
lib/gitlab/kubernetes/helm/client_command.rb
Normal file
26
lib/gitlab/kubernetes/helm/client_command.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
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" \
|
||||
|
|
Loading…
Reference in a new issue