diff options
author | Dylan Griffith <dyl.griffith@gmail.com> | 2019-06-14 15:57:48 +1000 |
---|---|---|
committer | Dylan Griffith <dyl.griffith@gmail.com> | 2019-06-14 16:00:54 +1000 |
commit | ee28255b21b712bf3d92db548915fee43658a430 (patch) | |
tree | 8a9245f37926c8e8e578c0f75ac9b7d5df93ea67 | |
parent | f35d3a241caab4c4b926d1ad6fee64ad1bdf8625 (diff) | |
download | gitlab-ce-55362-refresh-blank-service-account-token.tar.gz |
Refresh service_account_token for kubernetes_namespaces55362-refresh-blank-service-account-token
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
4 files changed, 17 insertions, 2 deletions
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 |