0e15eec86d
Even though we currently only should have one group for a cluster, we allow the flexibility to associate to other groups in the future. This also matches the runner <=> groups association. - Adds Cluster#first_group, aliased to Cluster#group. For the conceivable future, a cluster will have at most one group. - Prevent mixing of group and project clusters. If project type clusters, it should only have projects assigned. Similarly with groups. - Default cluster_type to :project_type. As it's very small table we can set default and null: false in one release.
59 lines
1.4 KiB
Ruby
59 lines
1.4 KiB
Ruby
FactoryBot.define do
|
|
factory :cluster, class: Clusters::Cluster do
|
|
user
|
|
name 'test-cluster'
|
|
cluster_type :project_type
|
|
|
|
trait :instance do
|
|
cluster_type { Clusters::Cluster.cluster_types[:instance_type] }
|
|
end
|
|
|
|
trait :project do
|
|
cluster_type { Clusters::Cluster.cluster_types[:project_type] }
|
|
|
|
before(:create) do |cluster, evaluator|
|
|
cluster.projects << create(:project, :repository)
|
|
end
|
|
end
|
|
|
|
trait :group do
|
|
cluster_type { Clusters::Cluster.cluster_types[:group_type] }
|
|
|
|
before(:create) do |cluster, evalutor|
|
|
cluster.groups << create(:group)
|
|
end
|
|
end
|
|
|
|
trait :provided_by_user do
|
|
provider_type :user
|
|
platform_type :kubernetes
|
|
|
|
platform_kubernetes factory: [:cluster_platform_kubernetes, :configured]
|
|
end
|
|
|
|
trait :provided_by_gcp do
|
|
provider_type :gcp
|
|
platform_type :kubernetes
|
|
|
|
provider_gcp factory: [:cluster_provider_gcp, :created]
|
|
platform_kubernetes factory: [:cluster_platform_kubernetes, :configured]
|
|
end
|
|
|
|
trait :providing_by_gcp do
|
|
provider_type :gcp
|
|
provider_gcp factory: [:cluster_provider_gcp, :creating]
|
|
end
|
|
|
|
trait :disabled do
|
|
enabled false
|
|
end
|
|
|
|
trait :production_environment do
|
|
sequence(:environment_scope) { |n| "production#{n}/*" }
|
|
end
|
|
|
|
trait :with_installed_helm do
|
|
application_helm factory: %i(clusters_applications_helm installed)
|
|
end
|
|
end
|
|
end
|