Commit 57cee176 authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch '51792-improve-debugging-capabilities-for-helm-installs' into 'master'

Improve Debugging Capabilities For Helm Application Installs

See merge request gitlab-org/gitlab-ce!22924
parents 8b1212ed da783695
...@@ -44,7 +44,7 @@ module Clusters ...@@ -44,7 +44,7 @@ module Clusters
private private
def install_script def install_script
["/usr/bin/kubectl apply -f #{ISTIO_CRDS} >/dev/null"] ["/usr/bin/kubectl apply -f #{ISTIO_CRDS}"]
end end
end end
end end
......
...@@ -10,7 +10,7 @@ module Gitlab ...@@ -10,7 +10,7 @@ module Gitlab
def generate_script def generate_script
<<~HEREDOC <<~HEREDOC
set -eo pipefail set -xeo pipefail
HEREDOC HEREDOC
end end
......
...@@ -45,7 +45,7 @@ module Gitlab ...@@ -45,7 +45,7 @@ module Gitlab
def init_helm_command def init_helm_command
command = %w[helm init] + init_command_flags command = %w[helm init] + init_command_flags
command.shelljoin + " >/dev/null\n" command.shelljoin
end end
def init_command_flags def init_command_flags
......
...@@ -35,7 +35,7 @@ module Gitlab ...@@ -35,7 +35,7 @@ module Gitlab
private private
def init_command def init_command
'helm init --client-only >/dev/null' 'helm init --client-only'
end end
def repository_command def repository_command
...@@ -43,13 +43,13 @@ module Gitlab ...@@ -43,13 +43,13 @@ module Gitlab
end end
def repository_update_command def repository_update_command
'helm repo update >/dev/null' if repository 'helm repo update' if repository
end end
def install_command def install_command
command = ['helm', 'install', chart] + install_command_flags command = ['helm', 'install', chart] + install_command_flags
command.shelljoin + " >/dev/null\n" command.shelljoin
end end
def preinstall_command def preinstall_command
......
...@@ -36,7 +36,7 @@ module Gitlab ...@@ -36,7 +36,7 @@ module Gitlab
private private
def init_command def init_command
'helm init --client-only >/dev/null' 'helm init --client-only'
end end
def repository_command def repository_command
...@@ -50,7 +50,7 @@ module Gitlab ...@@ -50,7 +50,7 @@ module Gitlab
" --namespace #{::Gitlab::Kubernetes::Helm::NAMESPACE}" \ " --namespace #{::Gitlab::Kubernetes::Helm::NAMESPACE}" \
" -f /data/helm/#{name}/config/values.yaml" " -f /data/helm/#{name}/config/values.yaml"
"helm upgrade #{name} #{chart}#{upgrade_flags} >/dev/null\n" "helm upgrade #{name} #{chart}#{upgrade_flags}"
end end
def optional_version_flag def optional_version_flag
......
...@@ -8,7 +8,7 @@ describe Gitlab::Kubernetes::Helm::InitCommand do ...@@ -8,7 +8,7 @@ describe Gitlab::Kubernetes::Helm::InitCommand do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --tiller-tls --tiller-tls-verify --tls-ca-cert /data/helm/helm/config/ca.pem --tiller-tls-cert /data/helm/helm/config/cert.pem --tiller-tls-key /data/helm/helm/config/key.pem >/dev/null helm init --tiller-tls --tiller-tls-verify --tls-ca-cert /data/helm/helm/config/ca.pem --tiller-tls-cert /data/helm/helm/config/cert.pem --tiller-tls-key /data/helm/helm/config/key.pem
EOS EOS
end end
...@@ -22,7 +22,7 @@ describe Gitlab::Kubernetes::Helm::InitCommand do ...@@ -22,7 +22,7 @@ describe Gitlab::Kubernetes::Helm::InitCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --tiller-tls --tiller-tls-verify --tls-ca-cert /data/helm/helm/config/ca.pem --tiller-tls-cert /data/helm/helm/config/cert.pem --tiller-tls-key /data/helm/helm/config/key.pem --service-account tiller >/dev/null helm init --tiller-tls --tiller-tls-verify --tls-ca-cert /data/helm/helm/config/ca.pem --tiller-tls-cert /data/helm/helm/config/cert.pem --tiller-tls-key /data/helm/helm/config/key.pem --service-account tiller
EOS EOS
end end
end end
......
...@@ -26,9 +26,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -26,9 +26,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add app-name https://repository.example.com helm repo add app-name https://repository.example.com
helm repo update >/dev/null helm repo update
#{helm_install_comand} #{helm_install_comand}
EOS EOS
end end
...@@ -43,7 +43,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -43,7 +43,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
--tls-key /data/helm/app-name/config/key.pem --tls-key /data/helm/app-name/config/key.pem
--version 1.2.3 --version 1.2.3
--namespace gitlab-managed-apps --namespace gitlab-managed-apps
-f /data/helm/app-name/config/values.yaml >/dev/null -f /data/helm/app-name/config/values.yaml
EOS EOS
end end
end end
...@@ -54,9 +54,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -54,9 +54,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add app-name https://repository.example.com helm repo add app-name https://repository.example.com
helm repo update >/dev/null helm repo update
#{helm_install_command} #{helm_install_command}
EOS EOS
end end
...@@ -72,7 +72,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -72,7 +72,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
--version 1.2.3 --version 1.2.3
--set rbac.create\\=true,rbac.enabled\\=true --set rbac.create\\=true,rbac.enabled\\=true
--namespace gitlab-managed-apps --namespace gitlab-managed-apps
-f /data/helm/app-name/config/values.yaml >/dev/null -f /data/helm/app-name/config/values.yaml
EOS EOS
end end
end end
...@@ -84,7 +84,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -84,7 +84,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
#{helm_install_command} #{helm_install_command}
EOS EOS
end end
...@@ -99,7 +99,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -99,7 +99,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
--tls-key /data/helm/app-name/config/key.pem --tls-key /data/helm/app-name/config/key.pem
--version 1.2.3 --version 1.2.3
--namespace gitlab-managed-apps --namespace gitlab-managed-apps
-f /data/helm/app-name/config/values.yaml >/dev/null -f /data/helm/app-name/config/values.yaml
EOS EOS
end end
end end
...@@ -111,9 +111,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -111,9 +111,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add app-name https://repository.example.com helm repo add app-name https://repository.example.com
helm repo update >/dev/null helm repo update
#{helm_install_command} #{helm_install_command}
EOS EOS
end end
...@@ -122,7 +122,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -122,7 +122,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
<<~EOS.strip <<~EOS.strip
/bin/date /bin/date
/bin/true /bin/true
helm install chart-name --name app-name --tls --tls-ca-cert /data/helm/app-name/config/ca.pem --tls-cert /data/helm/app-name/config/cert.pem --tls-key /data/helm/app-name/config/key.pem --version 1.2.3 --namespace gitlab-managed-apps -f /data/helm/app-name/config/values.yaml >/dev/null helm install chart-name --name app-name --tls --tls-ca-cert /data/helm/app-name/config/ca.pem --tls-cert /data/helm/app-name/config/cert.pem --tls-key /data/helm/app-name/config/key.pem --version 1.2.3 --namespace gitlab-managed-apps -f /data/helm/app-name/config/values.yaml
EOS EOS
end end
end end
...@@ -134,17 +134,16 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -134,17 +134,16 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add app-name https://repository.example.com helm repo add app-name https://repository.example.com
helm repo update >/dev/null helm repo update
#{helm_install_command} #{helm_install_command}
EOS EOS
end end
let(:helm_install_command) do let(:helm_install_command) do
<<~EOS.strip <<~EOS.strip
helm install chart-name --name app-name --tls --tls-ca-cert /data/helm/app-name/config/ca.pem --tls-cert /data/helm/app-name/config/cert.pem --tls-key /data/helm/app-name/config/key.pem --version 1.2.3 --namespace gitlab-managed-apps -f /data/helm/app-name/config/values.yaml >/dev/null helm install chart-name --name app-name --tls --tls-ca-cert /data/helm/app-name/config/ca.pem --tls-cert /data/helm/app-name/config/cert.pem --tls-key /data/helm/app-name/config/key.pem --version 1.2.3 --namespace gitlab-managed-apps -f /data/helm/app-name/config/values.yaml
/bin/date /bin/date
/bin/false /bin/false
EOS EOS
...@@ -158,9 +157,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -158,9 +157,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add app-name https://repository.example.com helm repo add app-name https://repository.example.com
helm repo update >/dev/null helm repo update
#{helm_install_command} #{helm_install_command}
EOS EOS
end end
...@@ -171,7 +170,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -171,7 +170,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
--name app-name --name app-name
--version 1.2.3 --version 1.2.3
--namespace gitlab-managed-apps --namespace gitlab-managed-apps
-f /data/helm/app-name/config/values.yaml >/dev/null -f /data/helm/app-name/config/values.yaml
EOS EOS
end end
end end
...@@ -183,9 +182,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -183,9 +182,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add app-name https://repository.example.com helm repo add app-name https://repository.example.com
helm repo update >/dev/null helm repo update
#{helm_install_command} #{helm_install_command}
EOS EOS
end end
...@@ -199,7 +198,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do ...@@ -199,7 +198,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do
--tls-cert /data/helm/app-name/config/cert.pem --tls-cert /data/helm/app-name/config/cert.pem
--tls-key /data/helm/app-name/config/key.pem --tls-key /data/helm/app-name/config/key.pem
--namespace gitlab-managed-apps --namespace gitlab-managed-apps
-f /data/helm/app-name/config/values.yaml >/dev/null -f /data/helm/app-name/config/values.yaml
EOS EOS
end end
end end
......
...@@ -21,8 +21,8 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do ...@@ -21,8 +21,8 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm upgrade #{application.name} #{application.chart} --tls --tls-ca-cert /data/helm/#{application.name}/config/ca.pem --tls-cert /data/helm/#{application.name}/config/cert.pem --tls-key /data/helm/#{application.name}/config/key.pem --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null helm upgrade #{application.name} #{application.chart} --tls --tls-ca-cert /data/helm/#{application.name}/config/ca.pem --tls-cert /data/helm/#{application.name}/config/cert.pem --tls-key /data/helm/#{application.name}/config/key.pem --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml
EOS EOS
end end
end end
...@@ -33,8 +33,8 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do ...@@ -33,8 +33,8 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm upgrade #{application.name} #{application.chart} --tls --tls-ca-cert /data/helm/#{application.name}/config/ca.pem --tls-cert /data/helm/#{application.name}/config/cert.pem --tls-key /data/helm/#{application.name}/config/key.pem --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null helm upgrade #{application.name} #{application.chart} --tls --tls-ca-cert /data/helm/#{application.name}/config/ca.pem --tls-cert /data/helm/#{application.name}/config/cert.pem --tls-key /data/helm/#{application.name}/config/key.pem --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml
EOS EOS
end end
end end
...@@ -56,9 +56,9 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do ...@@ -56,9 +56,9 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm repo add #{application.name} #{application.repository} helm repo add #{application.name} #{application.repository}
helm upgrade #{application.name} #{application.chart} --tls --tls-ca-cert /data/helm/#{application.name}/config/ca.pem --tls-cert /data/helm/#{application.name}/config/cert.pem --tls-key /data/helm/#{application.name}/config/key.pem --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null helm upgrade #{application.name} #{application.chart} --tls --tls-ca-cert /data/helm/#{application.name}/config/ca.pem --tls-cert /data/helm/#{application.name}/config/cert.pem --tls-key /data/helm/#{application.name}/config/key.pem --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml
EOS EOS
end end
end end
...@@ -70,8 +70,8 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do ...@@ -70,8 +70,8 @@ describe Gitlab::Kubernetes::Helm::UpgradeCommand do
it_behaves_like 'helm commands' do it_behaves_like 'helm commands' do
let(:commands) do let(:commands) do
<<~EOS <<~EOS
helm init --client-only >/dev/null helm init --client-only
helm upgrade #{application.name} #{application.chart} --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null helm upgrade #{application.name} #{application.chart} --reset-values --install --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml
EOS EOS
end end
end end
......
...@@ -2,12 +2,12 @@ shared_examples 'helm commands' do ...@@ -2,12 +2,12 @@ shared_examples 'helm commands' do
describe '#generate_script' do describe '#generate_script' do
let(:helm_setup) do let(:helm_setup) do
<<~EOS <<~EOS
set -eo pipefail set -xeo pipefail
EOS EOS
end end
it 'should return appropriate command' do it 'should return appropriate command' do
expect(subject.generate_script).to eq(helm_setup + commands) expect(subject.generate_script.strip).to eq((helm_setup + commands).strip)
end end
end end
end end
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