Commit 87186cbc authored by Kamil Trzciński's avatar Kamil Trzciński

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
parents 40343096 a97d8767
...@@ -85,7 +85,7 @@ module Clusters ...@@ -85,7 +85,7 @@ module Clusters
if kubernetes_namespace = cluster.kubernetes_namespaces.has_service_account_token.find_by(project: project) if kubernetes_namespace = cluster.kubernetes_namespaces.has_service_account_token.find_by(project: project)
variables.concat(kubernetes_namespace.predefined_variables) variables.concat(kubernetes_namespace.predefined_variables)
else elsif cluster.project_type?
# From 11.5, every Clusters::Project should have at least one # From 11.5, every Clusters::Project should have at least one
# Clusters::KubernetesNamespace, so once migration has been completed, # Clusters::KubernetesNamespace, so once migration has been completed,
# this 'else' branch will be removed. For more information, please see # this 'else' branch will be removed. For more information, please see
......
---
title: Fallback to admin KUBE_TOKEN for project clusters only
merge_request: 23527
author:
type: other
...@@ -5,11 +5,13 @@ FactoryBot.define do ...@@ -5,11 +5,13 @@ FactoryBot.define do
association :cluster, :project, :provided_by_gcp association :cluster, :project, :provided_by_gcp
after(:build) do |kubernetes_namespace| after(:build) do |kubernetes_namespace|
if kubernetes_namespace.cluster.project_type?
cluster_project = kubernetes_namespace.cluster.cluster_project cluster_project = kubernetes_namespace.cluster.cluster_project
kubernetes_namespace.project = cluster_project.project kubernetes_namespace.project = cluster_project.project
kubernetes_namespace.cluster_project = cluster_project kubernetes_namespace.cluster_project = cluster_project
end end
end
trait :with_token do trait :with_token do
service_account_token { FFaker::Lorem.characters(10) } service_account_token { FFaker::Lorem.characters(10) }
......
...@@ -273,6 +273,36 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching ...@@ -273,6 +273,36 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching
) )
end end
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 end
describe '#terminals' do describe '#terminals' do
......
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