From ee28255b21b712bf3d92db548915fee43658a430 Mon Sep 17 00:00:00 2001 From: Dylan Griffith Date: Fri, 14 Jun 2019 15:57:48 +1000 Subject: Refresh service_account_token for kubernetes_namespaces There seems to be several examples where service_account_token is blank even in GitLab.com newly created kubernetes_namespaces . We have not figured out why they are blank but this should hopefully fix some issues similar to https://gitlab.com/gitlab-org/gitlab-ce/issues/55362 --- .../unreleased/55362-refresh-blank-service-account-token.yml | 5 +++++ lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb | 2 +- spec/factories/clusters/kubernetes_namespaces.rb | 4 ++++ .../lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb | 8 +++++++- 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/55362-refresh-blank-service-account-token.yml diff --git a/changelogs/unreleased/55362-refresh-blank-service-account-token.yml b/changelogs/unreleased/55362-refresh-blank-service-account-token.yml new file mode 100644 index 00000000000..3189de97e8b --- /dev/null +++ b/changelogs/unreleased/55362-refresh-blank-service-account-token.yml @@ -0,0 +1,5 @@ +--- +title: Refresh service_account_token for kubernetes_namespaces +merge_request: 29657 +author: +type: fixed diff --git a/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb b/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb index dbdc59505ac..531c9ce4256 100644 --- a/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb +++ b/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb @@ -9,7 +9,7 @@ module Gitlab deployment_cluster.present? && deployment_cluster.managed? && !deployment_cluster.project_type? && - kubernetes_namespace.new_record? + (kubernetes_namespace.new_record? || kubernetes_namespace.service_account_token.blank?) end def complete! diff --git a/spec/factories/clusters/kubernetes_namespaces.rb b/spec/factories/clusters/kubernetes_namespaces.rb index 3b50a57433f..042be7b4c4a 100644 --- a/spec/factories/clusters/kubernetes_namespaces.rb +++ b/spec/factories/clusters/kubernetes_namespaces.rb @@ -16,5 +16,9 @@ FactoryBot.define do trait :with_token do service_account_token { FFaker::Lorem.characters(10) } end + + trait :without_token do + service_account_token nil + end end end diff --git a/spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb b/spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb index 5387863bd07..5ac5122e800 100644 --- a/spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb +++ b/spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb @@ -35,9 +35,15 @@ describe Gitlab::Ci::Build::Prerequisite::KubernetesNamespace do end context 'and a namespace is already created for this project' do - let!(:kubernetes_namespace) { create(:cluster_kubernetes_namespace, cluster: cluster, project: build.project) } + let!(:kubernetes_namespace) { create(:cluster_kubernetes_namespace, :with_token, cluster: cluster, project: build.project) } it { is_expected.to be_falsey } + + context 'and the service_account_token is blank' do + let!(:kubernetes_namespace) { create(:cluster_kubernetes_namespace, :without_token, cluster: cluster, project: build.project) } + + it { is_expected.to be_truthy } + end end context 'and cluster is project type' do -- cgit v1.2.1