debian-mirror-gitlab/app/helpers/clusters_helper.rb

124 lines
4.1 KiB
Ruby
Raw Normal View History

2018-12-05 23:21:45 +05:30
# frozen_string_literal: true
2018-03-17 18:26:18 +05:30
module ClustersHelper
2021-12-11 22:18:48 +05:30
def display_cluster_agents?(clusterable)
clusterable.is_a?(Project)
2021-01-03 14:25:43 +05:30
end
2021-12-11 22:18:48 +05:30
def js_clusters_list_data(clusterable)
2020-06-23 00:09:42 +05:30
{
2020-07-28 23:09:34 +05:30
ancestor_help_path: help_page_path('user/group/clusters/index', anchor: 'cluster-precedence'),
2021-12-11 22:18:48 +05:30
endpoint: clusterable.index_path(format: :json),
2020-06-23 00:09:42 +05:30
img_tags: {
aws: { path: image_path('illustrations/logos/amazon_eks.svg'), text: s_('ClusterIntegration|Amazon EKS') },
default: { path: image_path('illustrations/logos/kubernetes.svg'), text: _('Kubernetes Cluster') },
gcp: { path: image_path('illustrations/logos/google_gke.svg'), text: s_('ClusterIntegration|Google GKE') }
2021-12-11 22:18:48 +05:30
},
clusters_empty_state_image: image_path('illustrations/empty-state/empty-state-clusters.svg'),
2022-05-07 20:08:51 +05:30
empty_state_image: image_path('illustrations/empty-state/empty-state-agents.svg'),
2021-12-11 22:18:48 +05:30
empty_state_help_text: clusterable.empty_state_help_text,
2022-05-07 20:08:51 +05:30
add_cluster_path: clusterable.connect_path,
2022-06-21 17:19:12 +05:30
new_cluster_docs_path: clusterable.new_cluster_docs_path,
2022-04-04 11:22:00 +05:30
can_add_cluster: clusterable.can_add_cluster?.to_s,
2022-05-07 20:08:51 +05:30
can_admin_cluster: clusterable.can_admin_cluster?.to_s,
display_cluster_agents: display_cluster_agents?(clusterable).to_s,
2022-07-16 23:28:13 +05:30
certificate_based_clusters_enabled: clusterable.certificate_based_clusters_enabled?.to_s,
2022-05-07 20:08:51 +05:30
default_branch_name: default_branch_name(clusterable),
project_path: clusterable_project_path(clusterable),
2022-04-04 11:22:00 +05:30
kas_address: Gitlab::Kas.external_url,
2022-07-16 23:28:13 +05:30
gitlab_version: Gitlab.version_info,
kas_version: Gitlab::Kas.version_info
2022-05-07 20:08:51 +05:30
}
2021-12-11 22:18:48 +05:30
end
2020-10-24 23:57:45 +05:30
def js_cluster_form_data(cluster, can_edit)
{
enabled: cluster.enabled?.to_s,
editable: can_edit.to_s,
environment_scope: cluster.environment_scope,
base_domain: cluster.base_domain,
auto_devops_help_path: help_page_path('topics/autodevops/index'),
2022-07-16 23:28:13 +05:30
external_endpoint_help_path: help_page_path('user/project/clusters/gitlab_managed_clusters.md', anchor: 'base-domain')
2020-11-24 15:15:51 +05:30
}
end
2018-10-15 14:42:47 +05:30
def render_gcp_signup_offer
2018-11-08 19:23:39 +05:30
return if Gitlab::CurrentSettings.current_application_settings.hide_third_party_offers?
2018-10-15 14:42:47 +05:30
return unless show_gcp_signup_offer?
content_tag :section, class: 'no-animate expanded' do
2018-12-13 13:39:08 +05:30
render 'clusters/clusters/gcp_signup_offer_banner'
2018-10-15 14:42:47 +05:30
end
end
2019-07-07 11:18:12 +05:30
2020-04-08 14:13:33 +05:30
def render_cluster_info_tab_content(tab, expanded)
case tab
when 'environments'
render_if_exists 'clusters/clusters/environments'
when 'health'
2023-07-09 08:55:56 +05:30
if Feature.enabled?(:remove_monitor_metrics)
render('details', expanded: expanded)
else
render_if_exists 'clusters/clusters/health'
end
2020-04-08 14:13:33 +05:30
when 'apps'
render 'applications'
2021-04-29 21:17:54 +05:30
when 'integrations'
2023-07-09 08:55:56 +05:30
if Feature.enabled?(:remove_monitor_metrics)
render('details', expanded: expanded)
else
render 'integrations'
end
2020-04-08 14:13:33 +05:30
when 'settings'
render 'advanced_settings_container'
else
render('details', expanded: expanded)
end
end
2020-04-22 19:07:51 +05:30
def cluster_type_label(cluster_type)
case cluster_type
when 'project_type'
s_('ClusterIntegration|Project cluster')
when 'group_type'
s_('ClusterIntegration|Group cluster')
when 'instance_type'
s_('ClusterIntegration|Instance cluster')
else
Gitlab::ErrorTracking.track_and_raise_for_dev_exception(
ArgumentError.new('Cluster Type Missing'),
cluster_error: { error: 'Cluster Type Missing', cluster_type: cluster_type }
)
_('Cluster')
end
end
2019-07-07 11:18:12 +05:30
def has_rbac_enabled?(cluster)
return cluster.platform_kubernetes_rbac? if cluster.platform_kubernetes
2019-12-26 22:10:19 +05:30
cluster.provider.has_rbac_enabled?
2019-07-07 11:18:12 +05:30
end
2020-04-08 14:13:33 +05:30
def project_cluster?(cluster)
cluster.cluster_type.in?('project_type')
end
def cluster_created?(cluster)
!cluster.status_name.in?(%i/scheduled creating/)
end
def can_admin_cluster?(user, cluster)
can?(user, :admin_cluster, cluster)
end
2022-05-07 20:08:51 +05:30
private
def default_branch_name(clusterable)
clusterable.default_branch if clusterable.is_a?(Project)
end
def clusterable_project_path(clusterable)
clusterable.full_path if clusterable.is_a?(Project)
end
2018-03-17 18:26:18 +05:30
end