summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorThong Kuah <tkuah@gitlab.com>2019-06-18 01:11:48 +0000
committerThong Kuah <tkuah@gitlab.com>2019-06-18 01:11:48 +0000
commitdb9ef69272155b3c8ead5c0e7d027bda2b623d43 (patch)
treef95645eb6a20e0613c5f4d02b01bb4a34ee5205c /spec/models
parent1276ff85453c6331e53f79680627c981b5ef00f7 (diff)
parent5aa9b710be2e03b296b68942d4053fa0a24e884c (diff)
downloadgitlab-ce-db9ef69272155b3c8ead5c0e7d027bda2b623d43.tar.gz
Merge branch '60617-allow-switching-from-gitlab-managed-to-unmanaged-clusters' into 'master'
Allow switching clusters between managed/unmanaged Closes #60617 See merge request gitlab-org/gitlab-ce!29322
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/clusters/platforms/kubernetes_spec.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/models/clusters/platforms/kubernetes_spec.rb b/spec/models/clusters/platforms/kubernetes_spec.rb
index f4dd457c3d3..1fb3a8de808 100644
--- a/spec/models/clusters/platforms/kubernetes_spec.rb
+++ b/spec/models/clusters/platforms/kubernetes_spec.rb
@@ -298,6 +298,46 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching
{ key: 'KUBE_TOKEN', value: kubernetes_namespace.service_account_token, public: false, masked: true }
)
end
+
+ context 'the cluster has been set to unmanaged after the namespace was created' do
+ before do
+ cluster.update!(managed: false)
+ end
+
+ it_behaves_like 'setting variables'
+
+ it 'sets KUBE_TOKEN from the platform' do
+ expect(subject).to include(
+ { key: 'KUBE_TOKEN', value: kubernetes.token, public: false, masked: true }
+ )
+ end
+
+ context 'the platform has a custom namespace set' do
+ before do
+ kubernetes.update!(namespace: 'custom-namespace')
+ end
+
+ it 'sets KUBE_NAMESPACE from the platform' do
+ expect(subject).to include(
+ { key: 'KUBE_NAMESPACE', value: kubernetes.namespace, public: true, masked: false }
+ )
+ end
+ end
+
+ context 'there is no namespace specified on the platform' do
+ let(:project) { cluster.project }
+
+ before do
+ kubernetes.update!(namespace: nil)
+ end
+
+ it 'sets KUBE_NAMESPACE to a default for the project' do
+ expect(subject).to include(
+ { key: 'KUBE_NAMESPACE', value: "#{project.path}-#{project.id}", public: true, masked: false }
+ )
+ end
+ end
+ end
end
context 'namespace is provided' do