summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorDylan Griffith <dyl.griffith@gmail.com>2018-11-28 13:29:01 +0100
committerDylan Griffith <dyl.griffith@gmail.com>2018-11-30 11:03:42 +0100
commite7f2be49d812079e1521dd7479ce4e8007afbf43 (patch)
tree6c1b2f78eaf1903d403166d83f72bb48a4f166f2 /spec/lib
parent817bb1905703f0ae63c3a877348b7b4bcc1136c6 (diff)
downloadgitlab-ce-e7f2be49d812079e1521dd7479ce4e8007afbf43.tar.gz
Make KUBECONFIG nil if KUBE_TOKEN is nil
Having an invalid KUBECONFIG without a token in it is not helpful. This only became possible recently now that we are creating a separate namespace and service account (and hence token) to send to the runners. This led to somewhat surprising results when troubleshooting https://gitlab.com/gitlab-org/gitlab-ce/issues/53879 as I found that the KUBECONFIG was still being passed but KUBE_TOKEN was not. These things really should have been linked. Furthermore now that we are also using the [presence of KUBECONFIG to decide whether or not to run build steps in Auto DevOps](https://gitlab.com/gitlab-org/gitlab-ce/blob/294d15be3e9497e7b67e1f9131ce9d5c0d68406c/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml#L164) I think it makes even more sense to ensure that KUBECONFIG is a complete config if passed to a job.
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/kubernetes_spec.rb24
1 files changed, 14 insertions, 10 deletions
diff --git a/spec/lib/gitlab/kubernetes_spec.rb b/spec/lib/gitlab/kubernetes_spec.rb
index 5c03a2ce7d3..f326d57e9c6 100644
--- a/spec/lib/gitlab/kubernetes_spec.rb
+++ b/spec/lib/gitlab/kubernetes_spec.rb
@@ -48,26 +48,30 @@ describe Gitlab::Kubernetes do
end
describe '#to_kubeconfig' do
+ let(:token) { 'TOKEN' }
+ let(:ca_pem) { 'PEM' }
+
subject do
to_kubeconfig(
url: 'https://kube.domain.com',
namespace: 'NAMESPACE',
- token: 'TOKEN',
- ca_pem: ca_pem)
+ token: token,
+ ca_pem: ca_pem
+ )
end
- context 'when CA PEM is provided' do
- let(:ca_pem) { 'PEM' }
- let(:path) { expand_fixture_path('config/kubeconfig.yml') }
-
- it { is_expected.to eq(YAML.load_file(path)) }
- end
+ it { expect(YAML.safe_load(subject)).to eq(YAML.load_file(expand_fixture_path('config/kubeconfig.yml'))) }
context 'when CA PEM is not provided' do
let(:ca_pem) { nil }
- let(:path) { expand_fixture_path('config/kubeconfig-without-ca.yml') }
- it { is_expected.to eq(YAML.load_file(path)) }
+ it { expect(YAML.safe_load(subject)).to eq(YAML.load_file(expand_fixture_path('config/kubeconfig-without-ca.yml'))) }
+ end
+
+ context 'when token is not provided' do
+ let(:token) { nil }
+
+ it { is_expected.to be_nil }
end
end