278 lines
11 KiB
JavaScript
278 lines
11 KiB
JavaScript
import { __, s__, sprintf } from '~/locale';
|
|
import { helpPagePath } from '~/helpers/help_page_helper';
|
|
|
|
export const MAX_LIST_COUNT = 25;
|
|
export const INSTALL_AGENT_MODAL_ID = 'install-agent';
|
|
export const ACTIVE_CONNECTION_TIME = 480000;
|
|
export const NAME_MAX_LENGTH = 50;
|
|
|
|
export const CLUSTER_ERRORS = {
|
|
default: {
|
|
tableText: s__('ClusterIntegration|Unknown Error'),
|
|
title: s__('ClusterIntegration|Unknown Error'),
|
|
description: s__(
|
|
'ClusterIntegration|An unknown error occurred while attempting to connect to Kubernetes.',
|
|
),
|
|
troubleshootingTips: [
|
|
s__('ClusterIntegration|Check your cluster status'),
|
|
s__('ClusterIntegration|Make sure your API endpoint is correct'),
|
|
s__(
|
|
'ClusterIntegration|Node calculations use the Kubernetes Metrics API. Make sure your cluster has metrics installed',
|
|
),
|
|
],
|
|
},
|
|
authentication_error: {
|
|
tableText: s__('ClusterIntegration|Unable to Authenticate'),
|
|
title: s__('ClusterIntegration|Authentication Error'),
|
|
description: s__('ClusterIntegration|GitLab failed to authenticate.'),
|
|
troubleshootingTips: [
|
|
s__('ClusterIntegration|Check your token'),
|
|
s__('ClusterIntegration|Check your CA certificate'),
|
|
],
|
|
},
|
|
connection_error: {
|
|
tableText: s__('ClusterIntegration|Unable to Connect'),
|
|
title: s__('ClusterIntegration|Connection Error'),
|
|
description: s__('ClusterIntegration|GitLab failed to connect to the cluster.'),
|
|
troubleshootingTips: [
|
|
s__('ClusterIntegration|Check your cluster status'),
|
|
s__('ClusterIntegration|Make sure your API endpoint is correct'),
|
|
],
|
|
},
|
|
http_error: {
|
|
tableText: s__('ClusterIntegration|Unable to Connect'),
|
|
title: s__('ClusterIntegration|HTTP Error'),
|
|
description: s__('ClusterIntegration|There was an HTTP error when connecting to your cluster.'),
|
|
troubleshootingTips: [s__('ClusterIntegration|Check your cluster status')],
|
|
},
|
|
};
|
|
|
|
export const CLUSTER_TYPES = {
|
|
project_type: __('Project'),
|
|
group_type: __('Group'),
|
|
instance_type: __('Instance'),
|
|
};
|
|
|
|
export const MAX_REQUESTS = 3;
|
|
|
|
export const STATUSES = {
|
|
default: { className: 'bg-white', title: __('Unknown') },
|
|
disabled: { className: 'disabled', title: __('Disabled') },
|
|
created: { className: 'bg-success', title: __('Connected') },
|
|
unreachable: { className: 'bg-danger', title: __('Unreachable') },
|
|
authentication_failure: { className: 'bg-warning', title: __('Authentication Failure') },
|
|
deleting: { title: __('Deleting') },
|
|
creating: { title: __('Creating') },
|
|
};
|
|
|
|
export const I18N_AGENT_TABLE = {
|
|
nameLabel: s__('ClusterAgents|Name'),
|
|
statusLabel: s__('ClusterAgents|Connection status'),
|
|
lastContactLabel: s__('ClusterAgents|Last contact'),
|
|
versionLabel: __('Version'),
|
|
configurationLabel: s__('ClusterAgents|Configuration'),
|
|
optionsLabel: __('Options'),
|
|
troubleshootingText: s__('ClusterAgents|Learn how to troubleshoot'),
|
|
neverConnectedText: s__('ClusterAgents|Never'),
|
|
versionMismatchTitle: s__('ClusterAgents|Agent version mismatch'),
|
|
versionMismatchText: s__(
|
|
"ClusterAgents|The agent version do not match each other across your cluster's pods. This can happen when a new agent version was just deployed and Kubernetes is shutting down the old pods.",
|
|
),
|
|
versionOutdatedTitle: s__('ClusterAgents|Agent version update required'),
|
|
versionOutdatedText: s__(
|
|
'ClusterAgents|Your agent version is out of sync with your GitLab version (v%{version}), which might cause compatibility problems. Update the agent installed on your cluster to the most recent version.',
|
|
),
|
|
versionMismatchOutdatedTitle: s__('ClusterAgents|Agent version mismatch and update'),
|
|
viewDocsText: s__('ClusterAgents|How to update an agent?'),
|
|
defaultConfigText: s__('ClusterAgents|Default configuration'),
|
|
defaultConfigTooltip: s__('ClusterAgents|What is default configuration?'),
|
|
};
|
|
|
|
export const I18N_AGENT_TOKEN = {
|
|
copyToken: s__('ClusterAgents|Copy token'),
|
|
copyCommand: s__('ClusterAgents|Copy command'),
|
|
tokenLabel: s__('ClusterAgents|Agent access token:'),
|
|
tokenSingleUseWarningTitle: s__(
|
|
'ClusterAgents|You cannot see this token again after you close this window.',
|
|
),
|
|
tokenSubtitle: s__('ClusterAgents|The agent uses the token to connect with GitLab.'),
|
|
|
|
basicInstallTitle: s__('ClusterAgents|Install using Helm (recommended)'),
|
|
basicInstallBody: s__(
|
|
'ClusterAgents|From a terminal, connect to your cluster and run this command. The token is included in the command.',
|
|
),
|
|
helmVersionText: s__(
|
|
'ClusterAgents|Use a Helm version compatible with your Kubernetes version (see %{linkStart}Helm version support policy%{linkEnd}).',
|
|
),
|
|
|
|
advancedInstallTitle: s__('ClusterAgents|Advanced installation methods'),
|
|
advancedInstallBody: s__(
|
|
'ClusterAgents|%{linkStart}View the documentation%{linkEnd} for advanced installation. Ensure you have your access token available.',
|
|
),
|
|
};
|
|
|
|
export const HELM_VERSION_POLICY_URL = 'https://helm.sh/docs/topics/version_skew/';
|
|
|
|
export const I18N_AGENT_MODAL = {
|
|
registerAgentButton: s__('ClusterAgents|Register'),
|
|
close: __('Close'),
|
|
cancel: __('Cancel'),
|
|
|
|
modalTitle: s__('ClusterAgents|Connect a Kubernetes cluster'),
|
|
modalBody: s__(
|
|
'ClusterAgents|Add an agent configuration file to %{linkStart}this repository%{linkEnd} and select it, or create a new one to register with GitLab:',
|
|
),
|
|
enableKasText: s__(
|
|
"ClusterAgents|Your instance doesn't have the %{linkStart}GitLab Agent Server (KAS)%{linkEnd} set up. Ask a GitLab Administrator to install it.",
|
|
),
|
|
altText: s__('ClusterAgents|GitLab agent for Kubernetes'),
|
|
learnMoreLink: s__('ClusterAgents|How do I register an agent?'),
|
|
registrationErrorTitle: s__('ClusterAgents|Failed to register an agent'),
|
|
unknownError: s__('ClusterAgents|An unknown error occurred. Please try again.'),
|
|
};
|
|
|
|
export const KAS_DISABLED_ERROR = 'Gitlab::Kas::Client::ConfigurationError';
|
|
|
|
export const I18N_AVAILABLE_AGENTS_DROPDOWN = {
|
|
selectAgent: s__('ClusterAgents|Select an agent or enter a name to create new'),
|
|
registeringAgent: s__('ClusterAgents|Registering agent'),
|
|
noResults: __('No matching results'),
|
|
createButton: s__('ClusterAgents|Create agent: %{searchTerm}'),
|
|
};
|
|
|
|
export const AGENT_STATUSES = {
|
|
active: {
|
|
name: s__('ClusterAgents|Connected'),
|
|
icon: 'status-success',
|
|
class: 'text-success-500',
|
|
tooltip: {
|
|
title: sprintf(s__('ClusterAgents|Last connected %{timeAgo}.')),
|
|
},
|
|
},
|
|
inactive: {
|
|
name: s__('ClusterAgents|Not connected'),
|
|
icon: 'status-alert',
|
|
class: 'text-danger-500',
|
|
tooltip: {
|
|
title: s__('ClusterAgents|Agent might not be connected to GitLab'),
|
|
body: sprintf(
|
|
s__(
|
|
'ClusterAgents|The agent has not been connected in a long time. There might be a connectivity issue. Last contact was %{timeAgo}.',
|
|
),
|
|
),
|
|
},
|
|
},
|
|
unused: {
|
|
name: s__('ClusterAgents|Never connected'),
|
|
icon: 'status-neutral',
|
|
class: 'text-secondary-500',
|
|
tooltip: {
|
|
title: s__('ClusterAgents|Agent never connected to GitLab'),
|
|
body: s__('ClusterAgents|Make sure you are using a valid token.'),
|
|
},
|
|
},
|
|
};
|
|
|
|
export const I18N_AGENTS_EMPTY_STATE = {
|
|
introText: s__(
|
|
'ClusterIntegration|Use the %{linkStart}GitLab agent%{linkEnd} to safely connect your Kubernetes clusters to GitLab. You can deploy your applications, run your pipelines, use Review Apps, and much more.',
|
|
),
|
|
};
|
|
|
|
export const I18N_CLUSTERS_EMPTY_STATE = {
|
|
introText: s__(
|
|
'ClusterIntegration|Connect your cluster to GitLab through %{linkStart}cluster certificates%{linkEnd}.',
|
|
),
|
|
alertText: s__(
|
|
'ClusterIntegration|The certificate-based method to connect clusters to GitLab was %{linkStart}deprecated%{linkEnd} in GitLab 14.5.',
|
|
),
|
|
};
|
|
|
|
export const AGENT_CARD_INFO = {
|
|
tabName: 'agent',
|
|
title: sprintf(s__('ClusterAgents|%{number} of %{total} agents')),
|
|
emptyTitle: s__('ClusterAgents|No agents'),
|
|
tooltip: {
|
|
label: s__('ClusterAgents|Recommended'),
|
|
title: s__('ClusterAgents|GitLab agent'),
|
|
text: sprintf(
|
|
s__(
|
|
'ClusterAgents|The GitLab agent provides an increased level of security when connecting Kubernetes clusters to GitLab. %{linkStart}Learn more about the GitLab agent.%{linkEnd}',
|
|
),
|
|
),
|
|
link: helpPagePath('user/clusters/agent/index'),
|
|
},
|
|
footerText: sprintf(s__('ClusterAgents|View all %{number} agents')),
|
|
};
|
|
|
|
export const CERTIFICATE_BASED_CARD_INFO = {
|
|
tabName: 'certificate_based',
|
|
title: sprintf(
|
|
s__('ClusterAgents|%{number} of %{total} clusters connected through cluster certificates'),
|
|
),
|
|
emptyTitle: s__('ClusterAgents|No clusters connected through cluster certificates'),
|
|
footerText: sprintf(s__('ClusterAgents|View all %{number} clusters')),
|
|
badgeText: s__('ClusterAgents|Deprecated'),
|
|
};
|
|
|
|
export const MAX_CLUSTERS_LIST = 6;
|
|
|
|
export const ALL_TAB = {
|
|
title: s__('ClusterAgents|All'),
|
|
component: 'ClustersViewAll',
|
|
queryParamValue: 'all',
|
|
};
|
|
|
|
export const AGENT_TAB = {
|
|
title: s__('ClusterAgents|Agent'),
|
|
component: 'agents',
|
|
queryParamValue: 'agent',
|
|
};
|
|
export const CERTIFICATE_TAB = {
|
|
title: s__('ClusterAgents|Certificate'),
|
|
component: 'clusters',
|
|
queryParamValue: 'certificate_based',
|
|
};
|
|
|
|
export const CLUSTERS_TABS = [ALL_TAB, AGENT_TAB, CERTIFICATE_TAB];
|
|
|
|
export const CLUSTERS_ACTIONS = {
|
|
connectCluster: s__('ClusterAgents|Connect a cluster'),
|
|
connectWithAgent: s__('ClusterAgents|Connect a cluster (agent)'),
|
|
connectClusterDeprecated: s__('ClusterAgents|Connect a cluster (deprecated)'),
|
|
createCluster: s__('ClusterAgents|Create a cluster'),
|
|
connectClusterCertificate: s__('ClusterAgents|Connect a cluster (certificate - deprecated)'),
|
|
actionsDisabledHint: s__(
|
|
'ClusterAgents|Requires a Maintainer or greater role to perform these actions',
|
|
),
|
|
};
|
|
|
|
export const DELETE_AGENT_BUTTON = {
|
|
deleteButton: s__('ClusterAgents|Delete agent'),
|
|
disabledHint: s__('ClusterAgents|Requires a Maintainer or greater role to delete agents'),
|
|
modalTitle: __('Are you sure?'),
|
|
modalBody: s__('ClusterAgents|Are you sure you want to delete this agent? You cannot undo this.'),
|
|
modalInputLabel: s__('ClusterAgents|To delete the agent, type %{name} to confirm:'),
|
|
modalAction: s__('ClusterAgents|Delete'),
|
|
modalCancel: __('Cancel'),
|
|
successMessage: s__('ClusterAgents|%{name} successfully deleted'),
|
|
defaultError: __('An error occurred. Please try again.'),
|
|
};
|
|
|
|
export const AGENT = 'agent';
|
|
export const CERTIFICATE_BASED = 'certificate_based';
|
|
|
|
export const EVENT_LABEL_MODAL = 'agent_registration_modal';
|
|
export const EVENT_LABEL_TABS = 'kubernetes_section_tabs';
|
|
export const EVENT_ACTIONS_OPEN = 'open_modal';
|
|
export const EVENT_ACTIONS_SELECT = 'select_agent';
|
|
export const EVENT_ACTIONS_CLICK = 'click_button';
|
|
export const EVENT_ACTIONS_CHANGE = 'change_tab';
|
|
|
|
export const MODAL_TYPE_EMPTY = 'empty_state';
|
|
export const MODAL_TYPE_REGISTER = 'agent_registration';
|
|
|
|
export const DELETE_AGENT_MODAL_ID = 'delete-agent-modal-%{agentName}';
|
|
|
|
export const AGENT_FEEDBACK_ISSUE = 'https://gitlab.com/gitlab-org/gitlab/-/issues/342696';
|
|
export const AGENT_FEEDBACK_KEY = 'agent_feedback_banner';
|