summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Griffith <dyl.griffith@gmail.com>2019-06-14 15:57:48 +1000
committerDylan Griffith <dyl.griffith@gmail.com>2019-06-14 16:00:54 +1000
commitee28255b21b712bf3d92db548915fee43658a430 (patch)
tree8a9245f37926c8e8e578c0f75ac9b7d5df93ea67
parentf35d3a241caab4c4b926d1ad6fee64ad1bdf8625 (diff)
downloadgitlab-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
-rw-r--r--changelogs/unreleased/55362-refresh-blank-service-account-token.yml5
-rw-r--r--lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb2
-rw-r--r--spec/factories/clusters/kubernetes_namespaces.rb4
-rw-r--r--spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb8
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