diff options
author | Shinya Maeda <shinya@gitlab.com> | 2018-11-09 13:26:51 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-11-09 13:26:51 +0900 |
commit | 399dc372b2447c785824dcc32be435e0819432aa (patch) | |
tree | fc35e97b8c24b03a7ca0fdad02d18606a8915fc9 | |
parent | e3dd86973d1a38e33180f866af5e933b4888ff15 (diff) | |
download | gitlab-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.rb | 3 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb | 22 |
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 |