summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-11-09 13:26:51 +0900
committerShinya Maeda <shinya@gitlab.com>2018-11-09 13:26:51 +0900
commit399dc372b2447c785824dcc32be435e0819432aa (patch)
treefc35e97b8c24b03a7ca0fdad02d18606a8915fc9
parente3dd86973d1a38e33180f866af5e933b4888ff15 (diff)
downloadgitlab-ce-fix-kubernetes-active-keyword.tar.gz
Fix kubernetes active keyword to lookup relevant clustersfix-kubernetes-active-keyword
-rw-r--r--lib/gitlab/ci/build/policy/kubernetes.rb3
-rw-r--r--spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb22
2 files changed, 21 insertions, 4 deletions
diff --git a/lib/gitlab/ci/build/policy/kubernetes.rb b/lib/gitlab/ci/build/policy/kubernetes.rb
index 4c7dc947cd0..c7ef64861a0 100644
--- a/lib/gitlab/ci/build/policy/kubernetes.rb
+++ b/lib/gitlab/ci/build/policy/kubernetes.rb
@@ -12,7 +12,8 @@ module Gitlab
end
def satisfied_by?(pipeline, seed = nil)
- pipeline.has_kubernetes_active?
+ build = seed.to_resource
+ build.project.deployment_platform(environment: build.environment)&.active?
end
end
end
diff --git a/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb b/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb
index 4884d5f8ba4..f6f07daf3f1 100644
--- a/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb
+++ b/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb
@@ -3,11 +3,17 @@ require 'spec_helper'
describe Gitlab::Ci::Build::Policy::Kubernetes do
let(:pipeline) { create(:ci_pipeline, project: project) }
+ let(:ci_build) do
+ create(:ci_build, pipeline: pipeline, project: project, ref: 'master')
+ end
+
+ let(:seed) { double('build seed', to_resource: ci_build) }
+
context 'when kubernetes service is active' do
shared_examples 'same behavior between KubernetesService and Platform::Kubernetes' do
it 'is satisfied by a kubernetes pipeline' do
expect(described_class.new('active'))
- .to be_satisfied_by(pipeline)
+ .to be_satisfied_by(pipeline, seed)
end
end
@@ -25,12 +31,22 @@ describe Gitlab::Ci::Build::Policy::Kubernetes do
end
end
- context 'when kubernetes service is inactive' do
+ context 'when kubernetes platform does not exist' do
set(:project) { create(:project) }
it 'is not satisfied by a pipeline without kubernetes available' do
expect(described_class.new('active'))
- .not_to be_satisfied_by(pipeline)
+ .not_to be_satisfied_by(pipeline, seed)
+ end
+ end
+
+ context 'when inactive kubernetes platform exists' do
+ let!(:cluster) { create(:cluster, :project, :disabled, :provided_by_gcp) }
+ let(:project) { cluster.project }
+
+ it 'is not satisfied by a pipeline without kubernetes available' do
+ expect(described_class.new('active'))
+ .not_to be_satisfied_by(pipeline, seed)
end
end