diff options
Diffstat (limited to 'spec/lib/gitlab/kubernetes/helm/install_command_spec.rb')
-rw-r--r-- | spec/lib/gitlab/kubernetes/helm/install_command_spec.rb | 76 |
1 files changed, 65 insertions, 11 deletions
diff --git a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb index f28941ce58f..2b7e3ea6def 100644 --- a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb @@ -5,6 +5,8 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do let(:repository) { 'https://repository.example.com' } let(:rbac) { false } let(:version) { '1.2.3' } + let(:preinstall) { nil } + let(:postinstall) { nil } let(:install_command) do described_class.new( @@ -13,7 +15,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do rbac: rbac, files: files, version: version, - repository: repository + repository: repository, + preinstall: preinstall, + postinstall: postinstall ) end @@ -22,8 +26,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do it_behaves_like 'helm commands' do let(:commands) do <<~EOS - helm init --client-only >/dev/null + helm init --client-only helm repo add app-name https://repository.example.com + helm repo update #{helm_install_comand} EOS end @@ -38,7 +43,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do --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 + -f /data/helm/app-name/config/values.yaml EOS end end @@ -49,8 +54,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do it_behaves_like 'helm commands' do let(:commands) do <<~EOS - helm init --client-only >/dev/null + helm init --client-only helm repo add app-name https://repository.example.com + helm repo update #{helm_install_command} EOS end @@ -66,7 +72,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do --version 1.2.3 --set rbac.create\\=true,rbac.enabled\\=true --namespace gitlab-managed-apps - -f /data/helm/app-name/config/values.yaml >/dev/null + -f /data/helm/app-name/config/values.yaml EOS end end @@ -78,7 +84,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do it_behaves_like 'helm commands' do let(:commands) do <<~EOS - helm init --client-only >/dev/null + helm init --client-only #{helm_install_command} EOS end @@ -93,7 +99,53 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do --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 + -f /data/helm/app-name/config/values.yaml + EOS + end + end + end + + context 'when there is a pre-install script' do + let(:preinstall) { ['/bin/date', '/bin/true'] } + + it_behaves_like 'helm commands' do + let(:commands) do + <<~EOS + helm init --client-only + helm repo add app-name https://repository.example.com + helm repo update + #{helm_install_command} + EOS + end + + let(:helm_install_command) do + <<~EOS.strip + /bin/date + /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 + EOS + end + end + end + + context 'when there is a post-install script' do + let(:postinstall) { ['/bin/date', "/bin/false\n"] } + + it_behaves_like 'helm commands' do + let(:commands) do + <<~EOS + helm init --client-only + helm repo add app-name https://repository.example.com + helm repo update + #{helm_install_command} + EOS + end + + let(:helm_install_command) do + <<~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 + /bin/date + /bin/false EOS end end @@ -105,8 +157,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do it_behaves_like 'helm commands' do let(:commands) do <<~EOS - helm init --client-only >/dev/null + helm init --client-only helm repo add app-name https://repository.example.com + helm repo update #{helm_install_command} EOS end @@ -117,7 +170,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do --name app-name --version 1.2.3 --namespace gitlab-managed-apps - -f /data/helm/app-name/config/values.yaml >/dev/null + -f /data/helm/app-name/config/values.yaml EOS end end @@ -129,8 +182,9 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do it_behaves_like 'helm commands' do let(:commands) do <<~EOS - helm init --client-only >/dev/null + helm init --client-only helm repo add app-name https://repository.example.com + helm repo update #{helm_install_command} EOS end @@ -144,7 +198,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do --tls-cert /data/helm/app-name/config/cert.pem --tls-key /data/helm/app-name/config/key.pem --namespace gitlab-managed-apps - -f /data/helm/app-name/config/values.yaml >/dev/null + -f /data/helm/app-name/config/values.yaml EOS end end |