Merge branch 'legacy_fallback_for_project_clusters_only' into 'master'
Fallback to admin KUBE_TOKEN for project clusters only See merge request gitlab-org/gitlab-ce!23527
This commit is contained in:
commit
87186cbc92
|
@ -85,7 +85,7 @@ module Clusters
|
|||
|
||||
if kubernetes_namespace = cluster.kubernetes_namespaces.has_service_account_token.find_by(project: project)
|
||||
variables.concat(kubernetes_namespace.predefined_variables)
|
||||
else
|
||||
elsif cluster.project_type?
|
||||
# From 11.5, every Clusters::Project should have at least one
|
||||
# Clusters::KubernetesNamespace, so once migration has been completed,
|
||||
# this 'else' branch will be removed. For more information, please see
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fallback to admin KUBE_TOKEN for project clusters only
|
||||
merge_request: 23527
|
||||
author:
|
||||
type: other
|
|
@ -5,10 +5,12 @@ FactoryBot.define do
|
|||
association :cluster, :project, :provided_by_gcp
|
||||
|
||||
after(:build) do |kubernetes_namespace|
|
||||
cluster_project = kubernetes_namespace.cluster.cluster_project
|
||||
if kubernetes_namespace.cluster.project_type?
|
||||
cluster_project = kubernetes_namespace.cluster.cluster_project
|
||||
|
||||
kubernetes_namespace.project = cluster_project.project
|
||||
kubernetes_namespace.cluster_project = cluster_project
|
||||
kubernetes_namespace.project = cluster_project.project
|
||||
kubernetes_namespace.cluster_project = cluster_project
|
||||
end
|
||||
end
|
||||
|
||||
trait :with_token do
|
||||
|
|
|
@ -273,6 +273,36 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching
|
|||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'group level cluster' do
|
||||
let!(:cluster) { create(:cluster, :group, platform_kubernetes: kubernetes) }
|
||||
|
||||
let(:project) { create(:project, group: cluster.group) }
|
||||
|
||||
subject { kubernetes.predefined_variables(project: project) }
|
||||
|
||||
context 'no kubernetes namespace for the project' do
|
||||
it_behaves_like 'setting variables'
|
||||
|
||||
it 'does not return KUBE_TOKEN' do
|
||||
expect(subject).not_to include(
|
||||
{ key: 'KUBE_TOKEN', value: kubernetes.token, public: false }
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'kubernetes namespace exists for the project' do
|
||||
let!(:kubernetes_namespace) { create(:cluster_kubernetes_namespace, :with_token, cluster: cluster, project: project) }
|
||||
|
||||
it_behaves_like 'setting variables'
|
||||
|
||||
it 'sets KUBE_TOKEN' do
|
||||
expect(subject).to include(
|
||||
{ key: 'KUBE_TOKEN', value: kubernetes_namespace.service_account_token, public: false }
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#terminals' do
|
||||
|
|
Loading…
Reference in New Issue