Commit 982e5436 authored by Matija Čupić's avatar Matija Čupić

Add installed scope to cluster applications

parent a5f9e49f
...@@ -8,6 +8,8 @@ module Clusters ...@@ -8,6 +8,8 @@ module Clusters
default_value_for :version, Gitlab::Kubernetes::Helm::HELM_VERSION default_value_for :version, Gitlab::Kubernetes::Helm::HELM_VERSION
scope :installed, -> { where(status: ::Clusters::Applications::Helm.state_machines[:status].states[:installed].value) }
def set_initial_status def set_initial_status
return unless not_installable? return unless not_installable?
......
...@@ -11,6 +11,8 @@ module Clusters ...@@ -11,6 +11,8 @@ module Clusters
default_value_for :ingress_type, :nginx default_value_for :ingress_type, :nginx
default_value_for :version, :nginx default_value_for :version, :nginx
scope :installed, -> { where(status: ::Clusters::Applications::Ingress.state_machines[:status].states[:installed].value) }
enum ingress_type: { enum ingress_type: {
nginx: 1 nginx: 1
} }
......
...@@ -13,6 +13,8 @@ module Clusters ...@@ -13,6 +13,8 @@ module Clusters
default_value_for :version, VERSION default_value_for :version, VERSION
scope :installed, -> { where(status: ::Clusters::Applications::Prometheus.state_machines[:status].states[:installed].value) }
state_machine :status do state_machine :status do
after_transition any => [:installed] do |application| after_transition any => [:installed] do |application|
application.cluster.projects.each do |project| application.cluster.projects.each do |project|
......
...@@ -14,6 +14,8 @@ module Clusters ...@@ -14,6 +14,8 @@ module Clusters
default_value_for :version, VERSION default_value_for :version, VERSION
scope :installed, -> { where(status: ::Clusters::Applications::Runner.state_machines[:status].states[:installed].value) }
def chart def chart
"#{name}/gitlab-runner" "#{name}/gitlab-runner"
end end
......
...@@ -3,6 +3,18 @@ require 'rails_helper' ...@@ -3,6 +3,18 @@ require 'rails_helper'
describe Clusters::Applications::Helm do describe Clusters::Applications::Helm do
include_examples 'cluster application core specs', :clusters_applications_helm include_examples 'cluster application core specs', :clusters_applications_helm
describe '.installed' do
subject { described_class.installed }
let!(:cluster) { create(:clusters_applications_helm, :installed) }
before do
create(:clusters_applications_helm, :errored)
end
it { is_expected.to contain_exactly(cluster) }
end
describe '#install_command' do describe '#install_command' do
let(:helm) { create(:clusters_applications_helm) } let(:helm) { create(:clusters_applications_helm) }
......
...@@ -11,6 +11,18 @@ describe Clusters::Applications::Ingress do ...@@ -11,6 +11,18 @@ describe Clusters::Applications::Ingress do
allow(ClusterWaitForIngressIpAddressWorker).to receive(:perform_async) allow(ClusterWaitForIngressIpAddressWorker).to receive(:perform_async)
end end
describe '.installed' do
subject { described_class.installed }
let!(:cluster) { create(:clusters_applications_ingress, :installed) }
before do
create(:clusters_applications_ingress, :errored)
end
it { is_expected.to contain_exactly(cluster) }
end
describe '#make_installed!' do describe '#make_installed!' do
before do before do
application.make_installed! application.make_installed!
......
...@@ -4,6 +4,18 @@ describe Clusters::Applications::Prometheus do ...@@ -4,6 +4,18 @@ describe Clusters::Applications::Prometheus do
include_examples 'cluster application core specs', :clusters_applications_prometheus include_examples 'cluster application core specs', :clusters_applications_prometheus
include_examples 'cluster application status specs', :cluster_application_prometheus include_examples 'cluster application status specs', :cluster_application_prometheus
describe '.installed' do
subject { described_class.installed }
let!(:cluster) { create(:clusters_applications_prometheus, :installed) }
before do
create(:clusters_applications_prometheus, :errored)
end
it { is_expected.to contain_exactly(cluster) }
end
describe 'transition to installed' do describe 'transition to installed' do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:cluster) { create(:cluster, projects: [project]) } let(:cluster) { create(:cluster, projects: [project]) }
......
...@@ -8,6 +8,18 @@ describe Clusters::Applications::Runner do ...@@ -8,6 +8,18 @@ describe Clusters::Applications::Runner do
it { is_expected.to belong_to(:runner) } it { is_expected.to belong_to(:runner) }
describe '.installed' do
subject { described_class.installed }
let!(:cluster) { create(:clusters_applications_runner, :installed) }
before do
create(:clusters_applications_runner, :errored)
end
it { is_expected.to contain_exactly(cluster) }
end
describe '#install_command' do describe '#install_command' do
let(:kubeclient) { double('kubernetes client') } let(:kubeclient) { double('kubernetes client') }
let(:gitlab_runner) { create(:clusters_applications_runner, runner: ci_runner) } let(:gitlab_runner) { create(:clusters_applications_runner, runner: ci_runner) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment