Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
16a3b4cc09
commit
cab300ea41
|
|
@ -101,7 +101,7 @@ To do so, follow these steps:
|
|||
If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1),
|
||||
the feature can be officially announced in a release blog post: `/chatops run release check <merge-request-url> <milestone>`
|
||||
- [ ] After the default-enabling MR has been deployed, clean up the feature flag from all environments by running these chatops command in the `#production` channel: `/chatops run feature delete <feature-flag-name> --dev --pre --staging --staging-ref --production`
|
||||
- [ ] Close [the feature issue][<feature-issue-link>] to indicate the feature will be released in the current milestone.
|
||||
- [ ] Close [the feature issue](<feature-issue-link>) to indicate the feature will be released in the current milestone.
|
||||
- [ ] Set the next milestone to this rollout issue for scheduling [the flag removal](#release-the-feature).
|
||||
- [ ] (Optional) You can [create a separate issue](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20Flag%20Cleanup) for scheduling the steps below to [Release the feature](#release-the-feature).
|
||||
- [ ] Set the title to "[Feature flag] Cleanup `<feature-flag-name>`".
|
||||
|
|
@ -128,7 +128,7 @@ or use the checklist below in this same issue.
|
|||
- [ ] Ensure that the cleanup MR has been included in the release package.
|
||||
If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1),
|
||||
the feature can be officially announced in a release blog post: `/chatops run release check <merge-request-url> <milestone>`
|
||||
- [ ] Close [the feature issue][<feature-issue-link>] to indicate the feature will be released in the current milestone.
|
||||
- [ ] Close [the feature issue](<feature-issue-link>) to indicate the feature will be released in the current milestone.
|
||||
- [ ] Once the cleanup MR has been deployed to production, clean up the feature flag from all environments by running these chatops command in `#production` channel: `/chatops run feature delete <feature-flag-name> --dev --pre --staging --staging-ref --production`
|
||||
- [ ] Close this rollout issue.
|
||||
|
||||
|
|
|
|||
|
|
@ -392,7 +392,7 @@ Layout/LineEndStringConcatenationIndentation:
|
|||
- 'qa/qa/service/docker_run/product_analytics/dotnet_sdk_app.rb'
|
||||
- 'qa/qa/specs/features/ee/api/10_govern/compliance_pipeline_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/10_govern/export_vulnerability_report_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/9_data_stores/elasticsearch/elasticsearch_reindexing_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/9_tenant_scale/elasticsearch/elasticsearch_reindexing_spec.rb'
|
||||
- 'qa/qa/support/system_logs/kibana.rb'
|
||||
- 'qa/qa/tools/revoke_user_personal_access_tokens.rb'
|
||||
- 'qa/qa/tools/test_resources_handler.rb'
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ RSpec/ExampleWithoutDescription:
|
|||
- 'ee/spec/workers/group_destroy_worker_spec.rb'
|
||||
- 'ee/spec/workers/security/scan_execution_policies/create_pipeline_worker_spec.rb'
|
||||
- 'ee/spec/workers/security/scan_execution_policies/rule_schedule_worker_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/9_data_stores/project/dashboard_images_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb'
|
||||
- 'qa/spec/specs/helpers/feature_flag_spec.rb'
|
||||
- 'spec/bin/audit_event_type_spec.rb'
|
||||
- 'spec/bin/feature_flag_spec.rb'
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ RSpec/NoExpectationExample:
|
|||
- 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_non_inheritable_when_forward_pipeline_variables_false_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/api/2_plan/epics_to_work_items_sync_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/api/9_data_stores/elasticsearch/elasticsearch_api_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/api/9_tenant_scale/elasticsearch/elasticsearch_api_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb'
|
||||
|
|
|
|||
|
|
@ -46,7 +46,8 @@ export default {
|
|||
i18n: {
|
||||
button: {
|
||||
revoke: s__('AccessTokens|Revoke'),
|
||||
revokeAriaLabel: (name) => sprintf(s__('AccessTokens|Revoke %{name}'), { name }).trim(),
|
||||
revokeAriaLabel: (name) =>
|
||||
sprintf(s__('AccessTokens|Revoke %{name}'), { name }, false).trim(),
|
||||
rotate: s__('AccessTokens|Rotate'),
|
||||
},
|
||||
emptyDateField: __('Never'),
|
||||
|
|
@ -216,10 +217,14 @@ export default {
|
|||
}
|
||||
},
|
||||
modalMessage(tokenName, action) {
|
||||
return sprintf(this.$options.i18n.modal.message[action], {
|
||||
accessTokenType: this.accessTokenType,
|
||||
tokenName,
|
||||
});
|
||||
return sprintf(
|
||||
this.$options.i18n.modal.message[action],
|
||||
{
|
||||
accessTokenType: this.accessTokenType,
|
||||
tokenName,
|
||||
},
|
||||
false,
|
||||
);
|
||||
},
|
||||
sortingChanged(aRow, bRow, key) {
|
||||
if (['createdAt', 'lastUsedAt', 'expiresAt'].includes(key)) {
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@ export default {
|
|||
<div class="gl-overflow-hidden">
|
||||
<div class="gl-flex">
|
||||
<gl-button data-testid="select-file-button" @click="$refs.fileUpload.click()">
|
||||
{{ __('Choose File...') }}
|
||||
{{ __('Choose File…') }}
|
||||
</gl-button>
|
||||
<gl-button
|
||||
v-if="filename"
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ export default {
|
|||
<devops-score-callout />
|
||||
<gl-empty-state
|
||||
v-if="isEmpty"
|
||||
:title="__('Data is still calculating...')"
|
||||
:title="__('Data is still calculating…')"
|
||||
:svg-path="noDataImagePath"
|
||||
>
|
||||
<template #description>
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ export default {
|
|||
<gl-filtered-search
|
||||
class="gl-min-w-0 gl-grow"
|
||||
:value="tokens"
|
||||
:placeholder="s__('CredentialsInventory|Search or filter credentials...')"
|
||||
:placeholder="s__('CredentialsInventory|Search or filter credentials…')"
|
||||
:available-tokens="availableTokens"
|
||||
terms-as-tokens
|
||||
@submit="search"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
title() {
|
||||
return __('Deploy to...');
|
||||
return __('Deploy to…');
|
||||
},
|
||||
actionItems() {
|
||||
return this.actions.map((actionItem) => ({
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ export default {
|
|||
data-testid="begin-commit-button"
|
||||
@click="beginCommit"
|
||||
>
|
||||
{{ __('Create commit...') }}
|
||||
{{ __('Create commit…') }}
|
||||
</gl-button>
|
||||
</div>
|
||||
<p class="gl-text-center gl-font-bold">{{ overviewText }}</p>
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import { mapActions, mapGetters, mapState } from 'vuex';
|
|||
import { __ } from '~/locale';
|
||||
|
||||
const barLabel = __('File templates');
|
||||
const templateListDropdownLabel = __('Choose a template...');
|
||||
const templateTypesDropdownLabel = __('Choose a type...');
|
||||
const templateListDropdownLabel = __('Choose a template…');
|
||||
const templateTypesDropdownLabel = __('Choose a type…');
|
||||
const undoButtonText = __('Undo');
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export const avatarI18n = {
|
|||
),
|
||||
uploadAvatar: s__('Profiles|You can upload your avatar here'),
|
||||
uploadNewAvatar: s__('Profiles|Upload new avatar'),
|
||||
chooseFile: s__('Profiles|Choose file...'),
|
||||
chooseFile: s__('Profiles|Choose file…'),
|
||||
noFileChosen: s__('Profiles|No file chosen.'),
|
||||
maximumFileSize: s__('Profiles|The maximum file size allowed is 200 KiB.'),
|
||||
imageDimensions: s__('Profiles|The ideal image size is 192 x 192 pixels.'),
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export default {
|
|||
GlTooltip: GlTooltipDirective,
|
||||
},
|
||||
i18n: {
|
||||
createNew: __('Create new...'),
|
||||
createNew: __('Create new…'),
|
||||
},
|
||||
inject: ['isImpersonating'],
|
||||
props: {
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ export default {
|
|||
markAsReady: __('Mark as ready'),
|
||||
markAsDraft: __('Mark as draft'),
|
||||
close: __('Close %{issuableType}'),
|
||||
closing: __('Closing %{issuableType}...'),
|
||||
closing: __('Closing %{issuableType}…'),
|
||||
reopen: __('Reopen %{issuableType}'),
|
||||
reopening: __('Reopening %{issuableType}...'),
|
||||
reopening: __('Reopening %{issuableType}…'),
|
||||
lock: __('Lock %{issuableType}'),
|
||||
mergeRequestActions: __('Merge request actions'),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export default {
|
|||
placeholder: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: __('Add a title...'),
|
||||
default: __('Add a title…'),
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
|
|
|
|||
|
|
@ -283,10 +283,10 @@ export default {
|
|||
|
||||
if (target === WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE) {
|
||||
this.checkingSourceValidity = true;
|
||||
this.sourceDescription = __('Checking source validity...');
|
||||
this.sourceDescription = __('Checking source validity…');
|
||||
} else {
|
||||
this.checkingBranchValidity = true;
|
||||
this.branchDescription = __('Checking branch validity...');
|
||||
this.branchDescription = __('Checking branch validity…');
|
||||
}
|
||||
|
||||
this.refCancelToken = axios.CancelToken.source();
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ module Ci
|
|||
"test_report_summary_url" => test_report_summary(project, build),
|
||||
"page_path" => project_job_path(project, build),
|
||||
"project_path" => project.full_path,
|
||||
"artifact_help_url" => help_page_path('user/gitlab_com/_index.md', anchor: 'gitlab-cicd'),
|
||||
"artifact_help_url" => help_page_path('user/gitlab_com/_index.md', anchor: 'cicd'),
|
||||
"deployment_help_url" => help_page_path('user/project/clusters/deploy_to_cluster.md', anchor: 'troubleshooting'),
|
||||
"runner_settings_url" => project_runners_path(build.project, anchor: 'js-runners-settings'),
|
||||
"retry_outdated_job_docs_url" => help_page_path('ci/pipelines/settings.md', anchor: 'prevent-outdated-deployment-jobs'),
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ module Nav
|
|||
return unless current_user
|
||||
|
||||
menu_sections = []
|
||||
data = { title: _('Create new...') }
|
||||
data = { title: _('Create new…') }
|
||||
|
||||
if project&.persisted?
|
||||
menu_sections.push(project_menu_section(project))
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
alert_options: { class: 'hidden js-cluster-creating gl-mt-5 gl-mb-5' }) do |c|
|
||||
- c.with_body do
|
||||
= render Pajamas::SpinnerComponent.new(inline: true)
|
||||
%span.gl-ml-2= s_('ClusterIntegration|Kubernetes cluster is being created...')
|
||||
%span.gl-ml-2= s_('ClusterIntegration|Kubernetes cluster is being created…')
|
||||
|
||||
= render Pajamas::AlertComponent.new(variant: :warning,
|
||||
alert_options: { class: 'hidden js-cluster-api-unreachable' }) do |c|
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
.well-confirmation.gl-text-center.gl-mb-6
|
||||
%h1.gl-mt-0
|
||||
= _("Almost there...")
|
||||
= _("Almost there…")
|
||||
%p{ class: 'gl-mb-6 !gl-text-lg' }
|
||||
= _('Please check your email %{email} to confirm your account') % { email: user_email }
|
||||
%br
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
%p.validation-success.gl-text-success.gl-field-error-ignore.gl-mt-2.field-validation.hide
|
||||
= _('Username is available.')
|
||||
%p.validation-pending.gl-field-error-ignore.gl-mt-2.field-validation.hide
|
||||
= _('Checking username availability...')
|
||||
= _('Checking username availability…')
|
||||
- unless @invite_email.present?
|
||||
.form-group
|
||||
= f.label :email, _('Email')
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
- page_title _("IDE")
|
||||
|
||||
= render partial: 'shared/ide_root', locals: { data: new_ide_oauth_data, loading_text: _('Authenticating...') }
|
||||
= render partial: 'shared/ide_root', locals: { data: new_ide_oauth_data, loading_text: _('Authenticating…') }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
- if actions.present?
|
||||
.btn-group
|
||||
.dropdown
|
||||
%button.dropdown.dropdown-new.btn.gl-button.btn-default.has-tooltip{ type: 'button', 'data-toggle' => 'dropdown', title: s_('Environments|Deploy to...') }
|
||||
%button.dropdown.dropdown-new.btn.gl-button.btn-default.has-tooltip{ type: 'button', 'data-toggle' => 'dropdown', title: s_('Environments|Deploy to…') }
|
||||
= sprite_icon('play')
|
||||
= sprite_icon('chevron-down')
|
||||
%ul.dropdown-menu.dropdown-menu-right
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
%h5.gl-mt-0= s_("Profiles|Upload new avatar")
|
||||
.gl-flex.gl-items-center.gl-my-3
|
||||
= render Pajamas::ButtonComponent.new(button_options: { class: 'js-choose-user-avatar-button' }) do
|
||||
= s_("Profiles|Choose file...")
|
||||
= s_("Profiles|Choose file…")
|
||||
%span.gl-ml-3.js-avatar-filename= s_("Profiles|No file chosen.")
|
||||
= f.file_field :avatar, class: 'js-user-avatar-input hidden', accept: 'image/*'
|
||||
.form-text.gl-text-subtle
|
||||
|
|
|
|||
|
|
@ -529,6 +529,10 @@ project_security_statistics:
|
|||
- table: projects
|
||||
column: project_id
|
||||
on_delete: async_delete
|
||||
project_states:
|
||||
- table: projects
|
||||
column: project_id
|
||||
on_delete: async_delete
|
||||
projects:
|
||||
- table: users
|
||||
column: marked_for_deletion_by_user_id
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoveProjectsProjectStatesProjectIdFk < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.11'
|
||||
disable_ddl_transaction!
|
||||
|
||||
FOREIGN_KEY_NAME = "fk_rails_a6e5821877"
|
||||
|
||||
def up
|
||||
with_lock_retries do
|
||||
remove_foreign_key_if_exists(:project_states, :projects,
|
||||
name: FOREIGN_KEY_NAME, reverse_lock_order: true)
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
add_concurrent_foreign_key(:project_states, :projects,
|
||||
name: FOREIGN_KEY_NAME, column: :project_id,
|
||||
target_column: :id, on_delete: :cascade)
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
4fb80dd28bd570ee99715b8f53ddecc6bf0d0c7041b8fa444cd876eb4575438f
|
||||
|
|
@ -43046,9 +43046,6 @@ ALTER TABLE ONLY user_preferences
|
|||
ALTER TABLE ONLY sentry_issues
|
||||
ADD CONSTRAINT fk_rails_a6a9612965 FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY project_states
|
||||
ADD CONSTRAINT fk_rails_a6e5821877 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY user_permission_export_uploads
|
||||
ADD CONSTRAINT fk_rails_a7130085e3 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ UltraAuth has removed their software which supports OmniAuth integration. We hav
|
|||
The external authentication and authorization providers may support the following capabilities.
|
||||
For more information, see the links shown on this page for each external provider.
|
||||
|
||||
| Capability | GitLab.com | Self-managed |
|
||||
| Capability | GitLab.com | GitLab Self-Managed |
|
||||
|-------------------------------------------------|-----------------------------------------|------------------------------------|
|
||||
| **User Provisioning** | SCIM<br>SAML <sup>1</sup> | LDAP <sup>1</sup><br>SAML <sup>1</sup><br>[OmniAuth Providers](../../integration/omniauth.md#supported-providers) <sup>1</sup><br>SCIM |
|
||||
| **User Detail Updating** (not group management) | Not Available | LDAP Sync |
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ You may also want to back up any TLS keys and certificates (`/etc/gitlab/ssl`, `
|
|||
to avoid man-in-the-middle attack warnings if you have to perform a full machine restore.
|
||||
|
||||
In the unlikely event that the secrets file is lost, see
|
||||
[When the secrets file is lost](../backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost).
|
||||
[When the secrets file is lost](troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost).
|
||||
|
||||
### Other data
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ To restore a backup, **you must also restore the GitLab secrets**.
|
|||
If you are migrating to a new GitLab instance, you must copy the GitLab secrets file from the old server.
|
||||
These include the database encryption key, [CI/CD variables](../../ci/variables/_index.md), and
|
||||
variables used for [two-factor authentication](../../user/profile/account/two_factor_authentication.md).
|
||||
Without the keys, [multiple issues occur](../backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost), including loss of access by users with [two-factor authentication enabled](../../user/profile/account/two_factor_authentication.md),
|
||||
Without the keys, [multiple issues occur](troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost), including loss of access by users with [two-factor authentication enabled](../../user/profile/account/two_factor_authentication.md),
|
||||
and GitLab Runners cannot sign in.
|
||||
|
||||
Restore:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ When you back up GitLab, you might encounter the following issues.
|
|||
|
||||
## When the secrets file is lost
|
||||
|
||||
If you didn't [back up the secrets file](../backup_restore/backup_gitlab.md#storing-configuration-files), you
|
||||
If you didn't [back up the secrets file](backup_gitlab.md#storing-configuration-files), you
|
||||
must complete several steps to get GitLab working properly again.
|
||||
|
||||
The secrets file is responsible for storing the encryption key for the columns
|
||||
|
|
@ -266,7 +266,7 @@ Backup failed
|
|||
If this happens, examine the following:
|
||||
|
||||
- Confirm there is sufficient disk space for the Gzip operation. It's not uncommon for backups that
|
||||
use the [default strategy](../backup_restore/backup_gitlab.md#backup-strategy-option) to require half the instance size
|
||||
use the [default strategy](backup_gitlab.md#backup-strategy-option) to require half the instance size
|
||||
in free disk space during backup creation.
|
||||
- If NFS is being used, check if the mount option `timeout` is set. The
|
||||
default is `600`, and changing this to smaller values results in this error.
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ can't run more frequently than the worker.
|
|||
|
||||
The default frequency of the pipeline schedule worker is `3-59/10 * * * *` (every ten minutes,
|
||||
starting with `0:03`, `0:13`, `0:23`, and so on). The default frequency for GitLab.com
|
||||
is listed in the [GitLab.com settings](../../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
is listed in the [GitLab.com settings](../../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
To change the frequency of the pipeline schedule worker:
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ Geo does not use an active-active failover configuration. For more information,
|
|||
|
||||
Optionally, private connectivity is available for your GitLab Dedicated instance, using [AWS PrivateLink](https://aws.amazon.com/privatelink/) as a connection gateway.
|
||||
|
||||
Both [inbound](../dedicated/configure_instance/network_security.md#inbound-private-link) and [outbound](../dedicated/configure_instance/network_security.md#outbound-private-link) private links are supported.
|
||||
Both [inbound](configure_instance/network_security.md#inbound-private-link) and [outbound](configure_instance/network_security.md#outbound-private-link) private links are supported.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -33,15 +33,15 @@ You can use Switchboard to make limited configuration changes to your GitLab Ded
|
|||
|
||||
The following configuration settings are available in Switchboard:
|
||||
|
||||
- [IP allowlist](../configure_instance/network_security.md#ip-allowlist)
|
||||
- [SAML settings](../configure_instance/saml.md)
|
||||
- [Custom certificates](../configure_instance/network_security.md#custom-certificates)
|
||||
- [Outbound private links](../configure_instance/network_security.md#outbound-private-link)
|
||||
- [Private hosted zones](../configure_instance/network_security.md#private-hosted-zones)
|
||||
- [IP allowlist](network_security.md#ip-allowlist)
|
||||
- [SAML settings](saml.md)
|
||||
- [Custom certificates](network_security.md#custom-certificates)
|
||||
- [Outbound private links](network_security.md#outbound-private-link)
|
||||
- [Private hosted zones](network_security.md#private-hosted-zones)
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- You must have the [Admin](../configure_instance/users_notifications.md#add-switchboard-users) role.
|
||||
- You must have the [Admin](users_notifications.md#add-switchboard-users) role.
|
||||
|
||||
To make a configuration change:
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ When you apply changes immediately:
|
|||
- You can save multiple changes and apply them in one batch.
|
||||
|
||||
After the deployment job is complete, you receive an email notification. Check your spam folder if you do not see a notification in your main inbox.
|
||||
All users with access to view or edit your tenant in Switchboard receive a notification for each change. For more information, see [Manage Switchboard notification preferences](../configure_instance/users_notifications.md#manage-notification-preferences).
|
||||
All users with access to view or edit your tenant in Switchboard receive a notification for each change. For more information, see [Manage Switchboard notification preferences](users_notifications.md#manage-notification-preferences).
|
||||
|
||||
{{< alert type="note" >}}
|
||||
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ After you sign in to Switchboard, follow these steps to create your instance:
|
|||
You can use the same option as your primary or secondary regions, or choose a different region for [increased redundancy](../../subscriptions/gitlab_dedicated/data_residency_and_high_availability.md#disaster-recovery).
|
||||
|
||||
- **Time zone**: Select a weekly four-hour time slot when GitLab performs routine
|
||||
maintenance and upgrades. For more information, see [maintenance windows](../dedicated/maintenance.md#maintenance-windows).
|
||||
maintenance and upgrades. For more information, see [maintenance windows](maintenance.md#maintenance-windows).
|
||||
|
||||
1. Optional. On the **Security** page, add your [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) for encrypted AWS services. If you do not add keys, GitLab generates encryption keys for your instance. For more information, see [encrypting your data at rest](#encrypted-data-at-rest-byok).
|
||||
|
||||
|
|
@ -221,17 +221,17 @@ To access and configure your GitLab Dedicated instance:
|
|||
1. Go to the tenant URL for your GitLab Dedicated instance and sign in with your temporary root credentials.
|
||||
1. [Change your temporary root password](../../user/profile/user_passwords.md#change-your-password) to a new secure password.
|
||||
1. Go to the Admin area and [add the license key](../license_file.md#add-license-in-the-admin-area) for your GitLab Dedicated subscription.
|
||||
1. Return to Switchboard and [add users](../dedicated/configure_instance/users_notifications.md#add-switchboard-users), if needed.
|
||||
1. Review the [release rollout schedule](../dedicated/maintenance.md#release-rollout-schedule) for upgrades and maintenance.
|
||||
1. Return to Switchboard and [add users](configure_instance/users_notifications.md#add-switchboard-users), if needed.
|
||||
1. Review the [release rollout schedule](maintenance.md#release-rollout-schedule) for upgrades and maintenance.
|
||||
|
||||
Also plan ahead if you need the following GitLab Dedicated features:
|
||||
|
||||
- [Inbound Private Link](../dedicated/configure_instance/network_security.md#inbound-private-link)
|
||||
- [Outbound Private Link](../dedicated/configure_instance/network_security.md#outbound-private-link)
|
||||
- [SAML SSO](../dedicated/configure_instance/saml.md)
|
||||
- [Bring your own domain](../dedicated/configure_instance/network_security.md#bring-your-own-domain-byod)
|
||||
- [Inbound Private Link](configure_instance/network_security.md#inbound-private-link)
|
||||
- [Outbound Private Link](configure_instance/network_security.md#outbound-private-link)
|
||||
- [SAML SSO](configure_instance/saml.md)
|
||||
- [Bring your own domain](configure_instance/network_security.md#bring-your-own-domain-byod)
|
||||
|
||||
To view all available infrastructure configuration options, see [Configure your GitLab Dedicated instance](../dedicated/configure_instance/_index.md).
|
||||
To view all available infrastructure configuration options, see [Configure your GitLab Dedicated instance](configure_instance/_index.md).
|
||||
|
||||
{{< alert type="note" >}}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,6 @@ GitLab performs emergency maintenance per
|
|||
Emergency maintenance is initiated when urgent actions need to be executed by GitLab on a
|
||||
GitLab Dedicated tenant instance. For example, when a critical (S1) security vulnerability requires urgent patching, GitLab performs emergency maintenance to upgrade your tenant instance to a secure version. This maintenance can occur outside scheduled maintenance windows.
|
||||
|
||||
GitLab provides advance emergency maintenance notice when possible and sends complete details after the issue is resolved. The GitLab Support team creates a support ticket and notifies all [Switchboard users](../dedicated/create_instance.md#step-1-get-access-to-switchboard) by email.
|
||||
GitLab provides advance emergency maintenance notice when possible and sends complete details after the issue is resolved. The GitLab Support team creates a support ticket and notifies all [Switchboard users](create_instance.md#step-1-get-access-to-switchboard) by email.
|
||||
|
||||
You cannot postpone emergency maintenance, because the same process must be applied to all GitLab Dedicated instances to ensure their security and availability.
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ For information about how to access S3 buckets after you have the name, see the
|
|||
|
||||
The Amazon S3 bucket contains a combination of infrastructure logs and application logs from the GitLab [log system](../logs/_index.md).
|
||||
|
||||
The logs in the bucket are encrypted using an AWS KMS key managed by GitLab. If you choose to enable [BYOK](../dedicated/create_instance.md#encrypted-data-at-rest-byok), the application logs are not encrypted with the key you provide.
|
||||
The logs in the bucket are encrypted using an AWS KMS key managed by GitLab. If you choose to enable [BYOK](create_instance.md#encrypted-data-at-rest-byok), the application logs are not encrypted with the key you provide.
|
||||
|
||||
<!-- vale gitlab_base.Spelling = NO -->
|
||||
|
||||
|
|
|
|||
|
|
@ -52,10 +52,10 @@ The **Maintenance windows** section displays the:
|
|||
|
||||
{{< alert type="note" >}}
|
||||
|
||||
Each Sunday night in UTC, Switchboard updates to display the planned GitLab version upgrades for the upcoming week's maintenance windows. For more information, see [Maintenance windows](../dedicated/maintenance.md#maintenance-windows).
|
||||
Each Sunday night in UTC, Switchboard updates to display the planned GitLab version upgrades for the upcoming week's maintenance windows. For more information, see [Maintenance windows](maintenance.md#maintenance-windows).
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
## Hosted runners
|
||||
|
||||
The **Hosted runners** section shows the [hosted runners](../dedicated/hosted_runners.md) associated with your instance.
|
||||
The **Hosted runners** section shows the [hosted runners](hosted_runners.md) associated with your instance.
|
||||
|
|
|
|||
|
|
@ -85,11 +85,11 @@ No, Geo sites can be based on different reference architectures. For example, yo
|
|||
|
||||
## Does Geo replicate archived projects?
|
||||
|
||||
Yes, provided they are not excluded through [selective sync](../replication/selective_synchronization.md).
|
||||
Yes, provided they are not excluded through [selective sync](selective_synchronization.md).
|
||||
|
||||
## Does Geo replicate personal projects?
|
||||
|
||||
Yes, provided they are not excluded through [selective sync](../replication/selective_synchronization.md).
|
||||
Yes, provided they are not excluded through [selective sync](selective_synchronization.md).
|
||||
|
||||
## Are delayed deletion projects replicated to secondary sites?
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ If you want to avoid downtime, consider using [zero-downtime upgrades](../../../
|
|||
To upgrade the Geo sites when a new GitLab version is released, upgrade **primary**
|
||||
and all **secondary** sites:
|
||||
|
||||
1. Optional. [Pause replication on each **secondary** site](../replication/pause_resume_replication.md)
|
||||
1. Optional. [Pause replication on each **secondary** site](pause_resume_replication.md)
|
||||
to protect the disaster recovery (DR) capability of the **secondary** sites.
|
||||
1. SSH into each node of the **primary** site.
|
||||
1. [Upgrade GitLab on the **primary** site](../../../update/package/_index.md#by-using-the-official-repositories-recommended).
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ the roles cannot perform all necessary configuration steps. In this case, use th
|
|||
{{< alert type="note" >}}
|
||||
|
||||
The stages of the setup process must be completed in the documented order.
|
||||
If not, [complete all prior stages](../setup/_index.md#using-linux-package-installations) before proceeding.
|
||||
If not, [complete all prior stages](_index.md#using-linux-package-installations) before proceeding.
|
||||
{{< /alert >}}
|
||||
|
||||
Ensure the **secondary** site is running the same version of GitLab Enterprise Edition as the **primary** site. Confirm you have added a license for a [Premium or Ultimate subscription](https://about.gitlab.com/pricing/) to your **primary** site.
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ You can make changes to your default rate limits from the **Admin** area. For mo
|
|||
|
||||
### GitLab SaaS-specific block and error responses
|
||||
|
||||
- [403 forbidden error](../user/gitlab_com/_index.md#gitlabcom-specific-rate-limits): If the error occurs for all GitLab SaaS requests, look for an automated process that could have triggered a block. For more assistance, contact GitLab support with your error details, including the affected IP address.
|
||||
- [403 forbidden error](../user/gitlab_com/_index.md#rate-limits-on-gitlabcom): If the error occurs for all GitLab SaaS requests, look for an automated process that could have triggered a block. For more assistance, contact GitLab support with your error details, including the affected IP address.
|
||||
- [HAProxy API throttle](../user/gitlab_com/_index.md#haproxy): GitLab SaaS responds with HTTP status code 429 to API requests that exceed 10 requests per second, per IP address.
|
||||
- [Protected paths throttle](../user/gitlab_com/_index.md#protected-paths-throttle): GitLab SaaS responds with HTTP status code 429 to POST requests at protected paths that exceed 10 requests per minute, per IP address.
|
||||
- [Git and container registry failed authentication ban](../user/gitlab_com/_index.md#git-and-container-registry-failed-authentication-ban): GitLab SaaS responds with HTTP status code 403 for one hour if it receives 30 failed authentication requests in three minutes from a single IP address.
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ The following tables are intended to guide you to choose the right combination o
|
|||
|
||||
| Capability | Availability | Recoverability | Data Resiliency | Performance | Risks/Trade-offs|
|
||||
|------------|--------------|----------------|-----------------|-------------|-----------------|
|
||||
|Gitaly Cluster | Very high - tolerant of node failures | RTO for a single node of 10 s with no manual intervention | Data is stored on multiple nodes | Good - While writes may take slightly longer due to voting, read distribution improves read speeds | **Trade-off** - Slight decrease in write speed for redundant, strongly-consistent storage solution. **Risks** - [Does not support snapshot backups](../gitaly/_index.md#snapshot-backup-and-recovery), GitLab backup task can be slow for large data sets |
|
||||
|Gitaly Cluster | Very high - tolerant of node failures | RTO for a single node of 10 s with no manual intervention | Data is stored on multiple nodes | Good - While writes may take slightly longer due to voting, read distribution improves read speeds | **Trade-off** - Slight decrease in write speed for redundant, strongly-consistent storage solution. **Risks** - [Does not support snapshot backups](_index.md#snapshot-backup-and-recovery), GitLab backup task can be slow for large data sets |
|
||||
|Gitaly Shards | Single storage location is a single point of failure | Would need to restore only shards which failed | Single point of failure | Good - can allocate repositories to shards to spread load | **Trade-off** - Need to manually configure repositories into different shards to balance loads / storage space **Risks** - Single point of failure relies on recovery process when single-node failure occurs |
|
||||
|
||||
## Geo capabilities
|
||||
|
|
|
|||
|
|
@ -87,8 +87,8 @@ You can use the following GitLab Duo Chat features with GitLab Duo Self-Hosted:
|
|||
|
||||
Before setting up the GitLab Duo Self-Hosted infrastructure, you must have:
|
||||
|
||||
- A [supported model](../gitlab_duo_self_hosted/supported_models_and_hardware_requirements.md) (either cloud-based or on-premises).
|
||||
- A [supported serving platform](../gitlab_duo_self_hosted/supported_llm_serving_platforms.md) (either cloud-based or on-premises).
|
||||
- A [supported model](supported_models_and_hardware_requirements.md) (either cloud-based or on-premises).
|
||||
- A [supported serving platform](supported_llm_serving_platforms.md) (either cloud-based or on-premises).
|
||||
- A [locally hosted AI gateway](../../install/install_ai_gateway.md).
|
||||
- [Ultimate with GitLab Duo Enterprise](https://about.gitlab.com/solutions/gitlab-duo-pro/sales/?toggle=gitlab-duo-pro).
|
||||
- GitLab 17.9 or later.
|
||||
|
|
@ -105,7 +105,7 @@ The differences between these options are:
|
|||
| Feature | Self-hosted AI gateway | GitLab.com AI gateway |
|
||||
|---------|------------------------|------------------------|
|
||||
| Infrastructure requirements | Requires hosting your own AI gateway and models | No additional infrastructure needed |
|
||||
| Model options | Choose from [supported models](../gitlab_duo_self_hosted/supported_models_and_hardware_requirements.md) | Uses the default GitLab external vendor LLMs |
|
||||
| Model options | Choose from [supported models](supported_models_and_hardware_requirements.md) | Uses the default GitLab external vendor LLMs |
|
||||
| Network requirements | Can operate in fully isolated networks | Requires internet connectivity |
|
||||
| Responsibilities | You set up your infrastructure, and do your own maintenance | GitLab does the set up and maintenance |
|
||||
|
||||
|
|
@ -153,19 +153,19 @@ To set up a fully isolated GitLab Duo Self-Hosted infrastructure:
|
|||
|
||||
1. **Install a Large Language Model (LLM) Serving Infrastructure**
|
||||
|
||||
- We support various platforms for serving and hosting your LLMs, such as vLLM, AWS Bedrock, and Azure OpenAI. To help you choose the most suitable option for effectively deploying your models, see the [supported LLM platforms documentation](../gitlab_duo_self_hosted/supported_llm_serving_platforms.md) for more information on each platform's features.
|
||||
- We support various platforms for serving and hosting your LLMs, such as vLLM, AWS Bedrock, and Azure OpenAI. To help you choose the most suitable option for effectively deploying your models, see the [supported LLM platforms documentation](supported_llm_serving_platforms.md) for more information on each platform's features.
|
||||
|
||||
- We provide a comprehensive matrix of supported models along with their specific features and hardware requirements. To help select models that best align with your infrastructure needs for optimal performance, see the [supported models and hardware requirements documentation](../gitlab_duo_self_hosted/supported_models_and_hardware_requirements.md).
|
||||
- We provide a comprehensive matrix of supported models along with their specific features and hardware requirements. To help select models that best align with your infrastructure needs for optimal performance, see the [supported models and hardware requirements documentation](supported_models_and_hardware_requirements.md).
|
||||
|
||||
1. **Install the GitLab AI gateway**
|
||||
[Install the AI gateway](../../install/install_ai_gateway.md) to efficiently configure your AI infrastructure.
|
||||
|
||||
1. **Configure GitLab Duo features**
|
||||
See the [Configure GitLab Duo features documentation](../gitlab_duo_self_hosted/configure_duo_features.md) for instructions on how to customize your environment to effectively meet your operational needs.
|
||||
See the [Configure GitLab Duo features documentation](configure_duo_features.md) for instructions on how to customize your environment to effectively meet your operational needs.
|
||||
|
||||
1. **Enable logging**
|
||||
You can find configuration details for enabling logging in your environment. For help in using logs to track and manage your system's performance effectively, see the [logging documentation](../gitlab_duo_self_hosted/logging.md).
|
||||
You can find configuration details for enabling logging in your environment. For help in using logs to track and manage your system's performance effectively, see the [logging documentation](logging.md).
|
||||
|
||||
## Related topics
|
||||
|
||||
- [Troubleshooting](../gitlab_duo_self_hosted/troubleshooting.md)
|
||||
- [Troubleshooting](troubleshooting.md)
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ For more information on:
|
|||
|
||||
- vLLM supported models, see the [vLLM Supported Models documentation](https://docs.vllm.ai/en/latest/models/supported_models.html).
|
||||
- Available options when using vLLM to run a model, see the [vLLM documentation on engine arguments](https://docs.vllm.ai/en/stable/usage/engine_args.html).
|
||||
- The hardware needed for the models, see the [Supported models and Hardware requirements documentation](../gitlab_duo_self_hosted/supported_models_and_hardware_requirements.md).
|
||||
- The hardware needed for the models, see the [Supported models and Hardware requirements documentation](supported_models_and_hardware_requirements.md).
|
||||
|
||||
Examples:
|
||||
|
||||
|
|
|
|||
|
|
@ -432,7 +432,7 @@ If problem persists, report the issue to the GitLab support team.
|
|||
You might get an error that states
|
||||
`I'm sorry, I couldn't respond in time. Please try again. Error code: A1002`.
|
||||
|
||||
This error occurs when no events are returned from AI gateway or GitLab failed to parse the events. Check the [AI Gateway logs](../gitlab_duo_self_hosted/logging.md) for any errors.
|
||||
This error occurs when no events are returned from AI gateway or GitLab failed to parse the events. Check the [AI Gateway logs](logging.md) for any errors.
|
||||
|
||||
### Error A1003
|
||||
|
||||
|
|
@ -478,7 +478,7 @@ This error typically occurs due to issues with streaming from the model to the A
|
|||
|
||||
If streaming is working, chunked responses should be displayed. If it is not, it will likely show an empty response.
|
||||
|
||||
1. Check the [AI gateway logs](../gitlab_duo_self_hosted/logging.md) for specific error messages, because this is usually a model deployment issue.
|
||||
1. Check the [AI gateway logs](logging.md) for specific error messages, because this is usually a model deployment issue.
|
||||
|
||||
1. To validate the connection, disable the streaming by setting the `AIGW_CUSTOM_MODELS__DISABLE_STREAMING` environment variable in your AI gateway container:
|
||||
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ This endpoint has been requested too many times. Try again later.
|
|||
|
||||
{{< history >}}
|
||||
|
||||
- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368926) in GitLab 17.10 [with a flag](../administration/feature_flags.md) named `autocomplete_users_rate_limit`. Disabled by default.
|
||||
- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368926) in GitLab 17.10 [with a flag](feature_flags.md) named `autocomplete_users_rate_limit`. Disabled by default.
|
||||
|
||||
{{< /history >}}
|
||||
|
||||
|
|
@ -465,7 +465,7 @@ If a new pipeline would cause the total number of jobs to exceed the limit, the
|
|||
fails with a `job_activity_limit_exceeded` error.
|
||||
|
||||
- On GitLab.com, a limit is
|
||||
[defined for each subscription tier](../user/gitlab_com/_index.md#gitlab-cicd),
|
||||
[defined for each subscription tier](../user/gitlab_com/_index.md#cicd),
|
||||
and this limit affects all projects with that tier.
|
||||
- On GitLab Self-Managed, [Premium or Ultimate](https://about.gitlab.com/pricing/) subscriptions,
|
||||
this limit is defined under a `default` plan that affects all
|
||||
|
|
@ -525,7 +525,7 @@ If a new subscription would cause the total number of subscription to exceed the
|
|||
limit, the subscription is considered invalid.
|
||||
|
||||
- On GitLab.com, a limit is
|
||||
[defined for each subscription tier](../user/gitlab_com/_index.md#gitlab-cicd),
|
||||
[defined for each subscription tier](../user/gitlab_com/_index.md#cicd),
|
||||
and this limit affects all projects with that tier.
|
||||
- On GitLab Self-Managed [Premium or Ultimate](https://about.gitlab.com/pricing/),
|
||||
this limit is defined under a `default` plan that
|
||||
|
|
@ -557,7 +557,7 @@ To set this limit to `100` on a GitLab Self-Managed instance, run the following
|
|||
Plan.default.actual_limits.update!(pipeline_triggers: 100)
|
||||
```
|
||||
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
### Number of pipeline schedules
|
||||
|
||||
|
|
@ -567,7 +567,7 @@ would cause the total number of pipeline schedules to exceed the limit, the
|
|||
pipeline schedule is not created.
|
||||
|
||||
On GitLab.com, the limit is
|
||||
[defined for each subscription tier](../user/gitlab_com/_index.md#gitlab-cicd),
|
||||
[defined for each subscription tier](../user/gitlab_com/_index.md#cicd),
|
||||
and this limit affects all projects with that tier.
|
||||
|
||||
On GitLab Self-Managed [Premium or Ultimate](https://about.gitlab.com/pricing/),
|
||||
|
|
@ -603,7 +603,7 @@ To set this limit to `1440` on a GitLab Self-Managed instance, run the following
|
|||
Plan.default.actual_limits.update!(ci_daily_pipeline_schedule_triggers: 1440)
|
||||
```
|
||||
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
### Limit the number of schedule rules defined for security policy project
|
||||
|
||||
|
|
@ -627,7 +627,7 @@ To set this limit for a GitLab Self-Managed instance, run the following in the
|
|||
Plan.default.actual_limits.update!(security_policy_scan_execution_schedules: 100)
|
||||
```
|
||||
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
### CI/CD variable limits
|
||||
|
||||
|
|
@ -884,7 +884,7 @@ Plan.default.actual_limits.update!(dotenv_variables: 100)
|
|||
You can also set this limit by using the [GitLab UI](settings/continuous_integration.md#set-cicd-limits) or the
|
||||
[Plan limits API](../api/plan_limits.md).
|
||||
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
This limit is [enabled on GitLab.com](../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
### Limit dotenv file size
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ The log system is similar to [audit events](../audit_event_reports.md).
|
|||
For more information, see also:
|
||||
|
||||
- [Customizing logging on Linux package installations](https://docs.gitlab.com/omnibus/settings/logs.html)
|
||||
- [Parsing and analyzing GitLab logs in JSON format](../logs/log_parsing.md)
|
||||
- [Parsing and analyzing GitLab logs in JSON format](log_parsing.md)
|
||||
|
||||
## Log Levels
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ title: Parsing GitLab logs with `jq`
|
|||
|
||||
We recommend using log aggregation and search tools like Kibana and Splunk whenever possible,
|
||||
but if they are not available you can still quickly parse
|
||||
[GitLab logs](../logs/_index.md) in JSON format
|
||||
[GitLab logs](_index.md) in JSON format
|
||||
using [`jq`](https://stedolan.github.io/jq/).
|
||||
|
||||
{{< alert type="note" >}}
|
||||
|
|
@ -34,7 +34,7 @@ include use cases targeted for parsing GitLab log files.
|
|||
|
||||
The examples listed below address their respective log files by
|
||||
their relative Linux package installation paths and default filenames.
|
||||
Find the respective full paths in the [GitLab logs sections](../logs/_index.md#production_jsonlog).
|
||||
Find the respective full paths in the [GitLab logs sections](_index.md#production_jsonlog).
|
||||
|
||||
### Compressed logs
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ Apdex measurements are used to determine uptime.
|
|||
## IP allowlist
|
||||
|
||||
To access monitoring resources, the requesting client IP needs to be included in the allowlist.
|
||||
For details, see [how to add IPs to the allowlist for the monitoring endpoints](../monitoring/ip_allowlist.md).
|
||||
For details, see [how to add IPs to the allowlist for the monitoring endpoints](ip_allowlist.md).
|
||||
|
||||
## Using the endpoints locally
|
||||
|
||||
|
|
|
|||
|
|
@ -17,15 +17,15 @@ Keep your GitLab instance up and running.
|
|||
|
||||
- [Housekeeping](../housekeeping.md)
|
||||
- [Activate GitLab EE with license](../license_file.md)
|
||||
- [Fast SSH key lookup](../operations/fast_ssh_key_lookup.md)
|
||||
- [File system benchmarking](../operations/filesystem_benchmarking.md)
|
||||
- [`gitlab-sshd`](../operations/gitlab_sshd.md)
|
||||
- [Rails console](../operations/rails_console.md)
|
||||
- [Use SSH certificates](../operations/ssh_certificates.md)
|
||||
- [Fast SSH key lookup](fast_ssh_key_lookup.md)
|
||||
- [File system benchmarking](filesystem_benchmarking.md)
|
||||
- [`gitlab-sshd`](gitlab_sshd.md)
|
||||
- [Rails console](rails_console.md)
|
||||
- [Use SSH certificates](ssh_certificates.md)
|
||||
- [Enable encrypted configuration](../encrypted_configuration.md)
|
||||
- [Rake tasks](../../raketasks/_index.md)
|
||||
- [Backup and restore](../backup_restore/_index.md)
|
||||
- [Inactive project deletion](../inactive_project_deletion.md)
|
||||
- [Move repositories](../operations/moving_repositories.md)
|
||||
- [Move repositories](moving_repositories.md)
|
||||
- [Read-only state](../read_only_gitlab.md)
|
||||
- [Restart GitLab](../restart_gitlab.md)
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ To move all projects by using the API:
|
|||
"https://gitlab.example.com/api/v4/projects?repository_storage=<original_storage_name>"
|
||||
```
|
||||
|
||||
Alternatively use [the rails console](../operations/rails_console.md) to confirm that all
|
||||
Alternatively use [the rails console](rails_console.md) to confirm that all
|
||||
projects have moved. Run the following in the rails console:
|
||||
|
||||
```ruby
|
||||
|
|
@ -116,7 +116,7 @@ To move all snippets by using the API:
|
|||
- The moves are in progress. Re-query the repository move until it completes successfully.
|
||||
- The moves have failed. Most failures are temporary and are solved by rescheduling the move.
|
||||
|
||||
1. After the moves are complete, use [the rails console](../operations/rails_console.md) to confirm
|
||||
1. After the moves are complete, use [the rails console](rails_console.md) to confirm
|
||||
that all snippets have moved. No snippets should be returned for the original storage. Run the
|
||||
following in the rails console:
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ To move all groups by using the API:
|
|||
- The moves are in progress. Re-query the repository move until it completes successfully.
|
||||
- The moves have failed. Most failures are temporary and are solved by rescheduling the move.
|
||||
|
||||
1. After the moves are complete, use [the rails console](../operations/rails_console.md) to confirm
|
||||
1. After the moves are complete, use [the rails console](rails_console.md) to confirm
|
||||
that all groups have moved. No groups should be returned for the original storage. Run the
|
||||
following in the rails console:
|
||||
|
||||
|
|
|
|||
|
|
@ -387,7 +387,7 @@ gitlab_rails['env'] = {
|
|||
```
|
||||
|
||||
For self-compiled installations, set the environment variable.
|
||||
Refer to [Puma Worker timeout](../operations/puma.md#change-the-worker-timeout).
|
||||
Refer to [Puma Worker timeout](puma.md#change-the-worker-timeout).
|
||||
|
||||
[Reconfigure](../restart_gitlab.md#reconfigure-a-linux-package-installation) GitLab for the changes to take effect.
|
||||
|
||||
|
|
@ -401,7 +401,7 @@ separate Rails process to debug the issue:
|
|||
1. Sign in to your GitLab account.
|
||||
1. Copy the URL that is causing problems (for example, `https://gitlab.com/ABC`).
|
||||
1. Create a personal access token for your user (User Settings -> Access tokens).
|
||||
1. Bring up the [GitLab Rails console.](../operations/rails_console.md#starting-a-rails-console-session)
|
||||
1. Bring up the [GitLab Rails console.](rails_console.md#starting-a-rails-console-session)
|
||||
1. At the Rails console, run:
|
||||
|
||||
```ruby
|
||||
|
|
|
|||
|
|
@ -76,12 +76,12 @@ The contents of `gitlab.yml` are:
|
|||
```yaml
|
||||
registry:
|
||||
enabled: true
|
||||
host: registry.gitlab.example.com
|
||||
port: 5005
|
||||
api_url: http://localhost:5000/
|
||||
key: config/registry.key
|
||||
path: shared/registry
|
||||
issuer: gitlab-issuer
|
||||
host: <registry.gitlab.example.com>
|
||||
port: <5005>
|
||||
api_url: <http://localhost:5000/>
|
||||
key: <config/registry.key>
|
||||
path: <shared/registry>
|
||||
issuer: <gitlab-issuer>
|
||||
```
|
||||
|
||||
Where:
|
||||
|
|
@ -107,7 +107,7 @@ as the realm:
|
|||
```yaml
|
||||
auth:
|
||||
token:
|
||||
realm: https://gitlab.example.com/jwt/auth
|
||||
realm: <https://gitlab.example.com/jwt/auth>
|
||||
service: container_registry
|
||||
issuer: gitlab-issuer
|
||||
rootcertbundle: /root/certs/certbundle
|
||||
|
|
@ -164,7 +164,7 @@ under the `registry_external_url` line, rather than the port listed under
|
|||
path to the existing TLS certificate and key used by GitLab:
|
||||
|
||||
```ruby
|
||||
registry_external_url 'https://gitlab.example.com:5050'
|
||||
registry_external_url '<https://gitlab.example.com:5050>'
|
||||
```
|
||||
|
||||
The `registry_external_url` is listening on HTTPS under the
|
||||
|
|
@ -175,8 +175,8 @@ under the `registry_external_url` line, rather than the port listed under
|
|||
below:
|
||||
|
||||
```ruby
|
||||
registry_nginx['ssl_certificate'] = "/path/to/certificate.pem"
|
||||
registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key"
|
||||
registry_nginx['ssl_certificate'] = "</path/to/certificate.pem>"
|
||||
registry_nginx['ssl_certificate_key'] = "</path/to/certificate.key>"
|
||||
```
|
||||
|
||||
1. Save the file and [reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation)
|
||||
|
|
@ -198,7 +198,7 @@ balancer to the registry from ports `80` or `443` to the arbitrary port. This is
|
|||
rely on the `docker login` example in the container registry. Here's an example:
|
||||
|
||||
```ruby
|
||||
registry_external_url 'https://registry-gitlab.example.com'
|
||||
registry_external_url '<https://registry-gitlab.example.com>'
|
||||
registry_nginx['redirect_http_to_https'] = true
|
||||
registry_nginx['listen_port'] = 5678
|
||||
```
|
||||
|
|
@ -213,7 +213,7 @@ registry_nginx['listen_port'] = 5678
|
|||
```yaml
|
||||
registry:
|
||||
enabled: true
|
||||
host: gitlab.example.com
|
||||
host: <gitlab.example.com>
|
||||
port: 5050
|
||||
```
|
||||
|
||||
|
|
@ -228,7 +228,7 @@ Users should now be able to sign in to the container registry with their GitLab
|
|||
credentials using:
|
||||
|
||||
```shell
|
||||
docker login gitlab.example.com:5050
|
||||
docker login <gitlab.example.com:5050>
|
||||
```
|
||||
|
||||
### Configure container registry under its own domain
|
||||
|
|
@ -250,18 +250,18 @@ Let's assume that you want the container registry to be accessible at
|
|||
{{< tab title="Linux package (Omnibus)" >}}
|
||||
|
||||
1. Place your TLS certificate and key in
|
||||
`/etc/gitlab/ssl/registry.gitlab.example.com.crt` and
|
||||
`/etc/gitlab/ssl/registry.gitlab.example.com.key` and make sure they have
|
||||
`/etc/gitlab/ssl/<registry.gitlab.example.com>.crt` and
|
||||
`/etc/gitlab/ssl/<registry.gitlab.example.com>.key` and make sure they have
|
||||
correct permissions:
|
||||
|
||||
```shell
|
||||
chmod 600 /etc/gitlab/ssl/registry.gitlab.example.com.*
|
||||
chmod 600 /etc/gitlab/ssl/<registry.gitlab.example.com>.*
|
||||
```
|
||||
|
||||
1. After the TLS certificate is in place, edit `/etc/gitlab/gitlab.rb` with:
|
||||
|
||||
```ruby
|
||||
registry_external_url 'https://registry.gitlab.example.com'
|
||||
registry_external_url '<https://registry.gitlab.example.com>'
|
||||
```
|
||||
|
||||
The `registry_external_url` is listening on HTTPS.
|
||||
|
|
@ -287,7 +287,7 @@ registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key"
|
|||
```yaml
|
||||
registry:
|
||||
enabled: true
|
||||
host: registry.gitlab.example.com
|
||||
host: <registry.gitlab.example.com>
|
||||
```
|
||||
|
||||
1. Save the file and [restart GitLab](../restart_gitlab.md#self-compiled-installations) for the changes to take effect.
|
||||
|
|
@ -301,7 +301,7 @@ Users should now be able to sign in to the container registry using their GitLab
|
|||
credentials:
|
||||
|
||||
```shell
|
||||
docker login registry.gitlab.example.com
|
||||
docker login <registry.gitlab.example.com>
|
||||
```
|
||||
|
||||
## Disable container registry site-wide
|
||||
|
|
@ -455,7 +455,7 @@ The default location where images are stored in Linux package installations is
|
|||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
gitlab_rails['registry_path'] = "/path/to/registry/storage"
|
||||
gitlab_rails['registry_path'] = "</path/to/registry/storage>"
|
||||
```
|
||||
|
||||
1. Save the file and [reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
|
||||
|
|
@ -530,22 +530,22 @@ Report any issues or feedback using [issue 525855](https://gitlab.com/gitlab-org
|
|||
# Deprecated: Will be removed in GitLab 19.0
|
||||
registry['storage'] = {
|
||||
's3' => {
|
||||
'accesskey' => 's3-access-key',
|
||||
'secretkey' => 's3-secret-key-for-access-key',
|
||||
'bucket' => 'your-s3-bucket',
|
||||
'region' => 'your-s3-region',
|
||||
'regionendpoint' => 'your-s3-regionendpoint'
|
||||
'accesskey' => '<s3-access-key>',
|
||||
'secretkey' => '<s3-secret-key-for-access-key>',
|
||||
'bucket' => '<your-s3-bucket>',
|
||||
'region' => '<your-s3-region>',
|
||||
'regionendpoint' => '<your-s3-regionendpoint>'
|
||||
}
|
||||
}
|
||||
|
||||
# Beta: s3_v2 driver
|
||||
registry['storage'] = {
|
||||
's3_v2' => {
|
||||
'accesskey' => 's3-access-key',
|
||||
'secretkey' => 's3-secret-key-for-access-key',
|
||||
'bucket' => 'your-s3-bucket',
|
||||
'region' => 'your-s3-region',
|
||||
'regionendpoint' => 'your-s3-regionendpoint'
|
||||
'accesskey' => '<s3-access-key>',
|
||||
'secretkey' => '<s3-secret-key-for-access-key>',
|
||||
'bucket' => '<your-s3-bucket>',
|
||||
'region' => '<your-s3-region>',
|
||||
'regionendpoint' => '<your-s3-regionendpoint>'
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -559,18 +559,18 @@ For S3 VPC endpoints:
|
|||
```ruby
|
||||
registry['storage'] = {
|
||||
's3_v2' => { # Beta driver
|
||||
'accesskey' => 's3-access-key',
|
||||
'secretkey' => 's3-secret-key-for-access-key',
|
||||
'bucket' => 'your-s3-bucket',
|
||||
'region' => 'your-s3-region',
|
||||
'regionendpoint' => 'your-s3-vpc-endpoint',
|
||||
'accesskey' => '<s3-access-key>',
|
||||
'secretkey' => '<s3-secret-key-for-access-key>',
|
||||
'bucket' => '<your-s3-bucket>',
|
||||
'region' => '<your-s3-region>',
|
||||
'regionendpoint' => '<your-s3-vpc-endpoint>',
|
||||
'pathstyle' => false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `regionendpoint` is only required when configuring an S3 compatible service such as MinIO, or when using an AWS S3 VPC Endpoint.
|
||||
- `your-s3-bucket` should be the name of a bucket that exists, and can't include subdirectories.
|
||||
- `<your-s3-bucket>` should be the name of a bucket that exists, and can't include subdirectories.
|
||||
- `pathstyle` should be set to `true` to use host/bucket_name/object style paths instead of bucket_name.host/object. Set to `false` for AWS S3.
|
||||
|
||||
You can set a rate limit on connections to S3 to avoid 503 errors from the S3 API:
|
||||
|
|
@ -578,11 +578,11 @@ You can set a rate limit on connections to S3 to avoid 503 errors from the S3 AP
|
|||
```ruby
|
||||
registry['storage'] = {
|
||||
's3' => {
|
||||
'accesskey' => 's3-access-key',
|
||||
'secretkey' => 's3-secret-key-for-access-key',
|
||||
'bucket' => 'your-s3-bucket',
|
||||
'region' => 'your-s3-region',
|
||||
'regionendpoint' => 'your-s3-regionendpoint',
|
||||
'accesskey' => '<s3-access-key>',
|
||||
'secretkey' => '<s3-secret-key-for-access-key>',
|
||||
'bucket' => '<your-s3-bucket>',
|
||||
'region' => '<your-s3-region>',
|
||||
'regionendpoint' => '<your-s3-regionendpoint>',
|
||||
'maxrequestspersecond' => 100
|
||||
}
|
||||
}
|
||||
|
|
@ -620,7 +620,7 @@ registry['storage'] = {
|
|||
# Beta: azure_v2 driver
|
||||
registry['storage'] = {
|
||||
'azure_v2' => {
|
||||
'credentials_type' => 'client_secret',
|
||||
'credentials_type' => '<client_secret>',
|
||||
'tenant_id' => '<your_tenant_id>',
|
||||
'client_id' => '<your_client_id>',
|
||||
'secret' => '<your_secret>',
|
||||
|
|
@ -641,8 +641,8 @@ The GCS storage driver integrates with Google Cloud Storage.
|
|||
```ruby
|
||||
registry['storage'] = {
|
||||
'gcs' => {
|
||||
'bucket' => 'BUCKET_NAME',
|
||||
'keyfile' => 'PATH/TO/KEYFILE',
|
||||
'bucket' => '<your_bucket_name>',
|
||||
'keyfile' => '<path/to/keyfile>',
|
||||
# If you have the bucket shared with other apps beyond the registry, uncomment the following:
|
||||
# 'rootdirectory' => '/gcs/object/name/prefix'
|
||||
}
|
||||
|
|
@ -665,18 +665,18 @@ when you deployed your Docker registry.
|
|||
```yaml
|
||||
storage:
|
||||
s3:
|
||||
accesskey: 's3-access-key' # Not needed if IAM role used
|
||||
secretkey: 's3-secret-key-for-access-key' # Not needed if IAM role used
|
||||
bucket: 'your-s3-bucket'
|
||||
region: 'your-s3-region'
|
||||
regionendpoint: 'your-s3-regionendpoint'
|
||||
accesskey: '<s3-access-key>' # Not needed if IAM role used
|
||||
secretkey: '<s3-secret-key-for-access-key>' # Not needed if IAM role used
|
||||
bucket: '<your-s3-bucket>'
|
||||
region: '<your-s3-region>'
|
||||
regionendpoint: '<your-s3-regionendpoint>'
|
||||
cache:
|
||||
blobdescriptor: inmemory
|
||||
delete:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
`your-s3-bucket` should be the name of a bucket that exists, and can't include subdirectories.
|
||||
`<your-s3-bucket>` should be the name of a bucket that exists, and can't include subdirectories.
|
||||
|
||||
#### Migrate to object storage without downtime
|
||||
|
||||
|
|
@ -703,7 +703,7 @@ you can pull from the container registry, but you cannot push.
|
|||
all buckets.
|
||||
|
||||
```shell
|
||||
sudo aws --endpoint-url https://your-object-storage-backend.com s3 ls
|
||||
sudo aws --endpoint-url <https://your-object-storage-backend.com> s3 ls
|
||||
```
|
||||
|
||||
If you are using AWS as your back end, you do not need the [`--endpoint-url`](https://docs.aws.amazon.com/cli/latest/reference/#options).
|
||||
|
|
@ -713,7 +713,7 @@ you can pull from the container registry, but you cannot push.
|
|||
command. Make sure to keep the `docker` folder as the top-level folder inside the bucket.
|
||||
|
||||
```shell
|
||||
sudo aws --endpoint-url https://your-object-storage-backend.com s3 sync registry s3://mybucket
|
||||
sudo aws --endpoint-url <https://your-object-storage-backend.com> s3 sync registry s3://mybucket
|
||||
```
|
||||
|
||||
{{< alert type="note" >}}
|
||||
|
|
@ -729,7 +729,7 @@ you can pull from the container registry, but you cannot push.
|
|||
1. Sync any changes dating from after the initial data load to your S3 bucket, and delete files that exist in the destination bucket but not in the source:
|
||||
|
||||
```shell
|
||||
sudo aws --endpoint-url https://your-object-storage-backend.com s3 sync registry s3://mybucket --delete --dryrun
|
||||
sudo aws --endpoint-url <https://your-object-storage-backend.com> s3 sync registry s3://mybucket --delete --dryrun
|
||||
```
|
||||
|
||||
After verifying the command performs as expected, remove the
|
||||
|
|
@ -752,7 +752,7 @@ you can pull from the container registry, but you cannot push.
|
|||
```
|
||||
|
||||
```shell
|
||||
sudo aws --endpoint-url https://your-object-storage-backend.com s3 ls s3://mybucket --recursive | wc -l
|
||||
sudo aws --endpoint-url <https://your-object-storage-backend.com> s3 ls s3://<mybucket> --recursive | wc -l
|
||||
```
|
||||
|
||||
The output of these commands should match, except for the content in the
|
||||
|
|
@ -978,7 +978,7 @@ use a JSON Web Token to authenticate with GitLab. The
|
|||
```yaml
|
||||
auth:
|
||||
token:
|
||||
realm: https://gitlab.example.com/jwt/auth
|
||||
realm: https://<gitlab.example.com>/jwt/auth
|
||||
service: container_registry
|
||||
issuer: gitlab-issuer
|
||||
rootcertbundle: /root/certs/certbundle
|
||||
|
|
@ -1039,7 +1039,7 @@ You can use GitLab as an auth endpoint with an external container registry.
|
|||
Registry pages, set the following configurations:
|
||||
|
||||
```ruby
|
||||
gitlab_rails['registry_host'] = "registry.gitlab.example.com"
|
||||
gitlab_rails['registry_host'] = "<registry.gitlab.example.com>"
|
||||
gitlab_rails['registry_port'] = "5005"
|
||||
```
|
||||
|
||||
|
|
@ -1055,11 +1055,11 @@ You can use GitLab as an auth endpoint with an external container registry.
|
|||
|
||||
registry:
|
||||
enabled: true
|
||||
host: "registry.gitlab.example.com"
|
||||
host: "<registry.gitlab.example.com>"
|
||||
port: "5005"
|
||||
api_url: "https://<external_registry_host>:5000"
|
||||
path: /var/lib/registry
|
||||
key: /path/to/keyfile
|
||||
key: </path/to/keyfile>
|
||||
issuer: gitlab-issuer
|
||||
```
|
||||
|
||||
|
|
@ -1095,24 +1095,24 @@ To configure a notification endpoint for a Linux package installation:
|
|||
```ruby
|
||||
registry['notifications'] = [
|
||||
{
|
||||
'name' => 'test_endpoint',
|
||||
'url' => 'https://gitlab.example.com/api/v4/container_registry_event/events',
|
||||
'name' => '<test_endpoint>',
|
||||
'url' => 'https://<gitlab.example.com>/api/v4/container_registry_event/events',
|
||||
'timeout' => '500ms',
|
||||
'threshold' => 5, # DEPRECATED: use `maxretries` instead.
|
||||
'maxretries' => 5,
|
||||
'backoff' => '1s',
|
||||
'headers' => {
|
||||
"Authorization" => ["AUTHORIZATION_EXAMPLE_TOKEN"]
|
||||
"Authorization" => ["<AUTHORIZATION_EXAMPLE_TOKEN>"]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
gitlab_rails['registry_notification_secret'] = 'AUTHORIZATION_EXAMPLE_TOKEN' # Must match the auth token in registry['notifications']
|
||||
gitlab_rails['registry_notification_secret'] = '<AUTHORIZATION_EXAMPLE_TOKEN>' # Must match the auth token in registry['notifications']
|
||||
```
|
||||
|
||||
{{< alert type="note" >}}
|
||||
|
||||
Replace `AUTHORIZATION_EXAMPLE_TOKEN` with a case-sensitive alphanumeric string
|
||||
Replace `<AUTHORIZATION_EXAMPLE_TOKEN>` with a case-sensitive alphanumeric string
|
||||
that starts with a letter. You can generate one with `< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c 32 | sed "s/^[0-9]*//"; echo`
|
||||
|
||||
{{< /alert >}}
|
||||
|
|
@ -1131,9 +1131,9 @@ Example:
|
|||
```yaml
|
||||
notifications:
|
||||
endpoints:
|
||||
- name: alistener
|
||||
- name: <alistener>
|
||||
disabled: false
|
||||
url: https://my.listener.com/event
|
||||
url: https://<my.listener.com>/event
|
||||
headers: <http.Header>
|
||||
timeout: 500
|
||||
threshold: 5 # DEPRECATED: use `maxretries` instead.
|
||||
|
|
@ -1309,23 +1309,23 @@ Prerequisites:
|
|||
Consider the following example, where you first build the image:
|
||||
|
||||
```shell
|
||||
# This builds a image with content of sha256:111111
|
||||
docker build -t my.registry.com/my.group/my.project:latest .
|
||||
docker push my.registry.com/my.group/my.project:latest
|
||||
# This builds a image with content of sha256:<111111...>
|
||||
docker build -t <my.registry.com>/<my.group>/<my.project>:latest .
|
||||
docker push <my.registry.com>/<my.group>/<my.project>:latest
|
||||
```
|
||||
|
||||
Now, you do overwrite `:latest` with a new version:
|
||||
Now, you do overwrite `latest` with a new version:
|
||||
|
||||
```shell
|
||||
# This builds a image with content of sha256:222222
|
||||
docker build -t my.registry.com/my.group/my.project:latest .
|
||||
docker push my.registry.com/my.group/my.project:latest
|
||||
# This builds a image with content of sha256:<222222...>
|
||||
docker build -t <my.registry.com>/<my.group>/<my.project>:latest .
|
||||
docker push <my.registry.com>/<my.group>/<my.project>:latest
|
||||
```
|
||||
|
||||
Now, the `:latest` tag points to manifest of `sha256:222222`.
|
||||
Now, the `latest` tag points to manifest of `sha256:<222222...>`.
|
||||
Due to the architecture of registry, this data is still accessible when pulling the
|
||||
image `my.registry.com/my.group/my.project@sha256:111111`, though it is
|
||||
no longer directly accessible via the `:latest` tag.
|
||||
image `<my.registry.com>/<my.group>/<my.project>@sha256:<111111...>`, though it is
|
||||
no longer directly accessible via the `latest` tag.
|
||||
|
||||
### Remove unreferenced layers
|
||||
|
||||
|
|
@ -1592,8 +1592,8 @@ To configure GitLab and the container registry on separate nodes:
|
|||
# Configure registry settings
|
||||
registry['enable'] = true
|
||||
registry['registry_http_addr'] = '0.0.0.0:5000'
|
||||
registry['token_realm'] = 'https://gitlab.example.com'
|
||||
registry['http_secret'] = '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'
|
||||
registry['token_realm'] = 'https://<gitlab.example.com>'
|
||||
registry['http_secret'] = '<6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b>'
|
||||
|
||||
# Configure GitLab Rails settings
|
||||
gitlab_rails['registry_issuer'] = 'omnibus-gitlab-issuer'
|
||||
|
|
@ -1608,12 +1608,12 @@ To configure GitLab and the container registry on separate nodes:
|
|||
# - Domain: gitlab.example.com
|
||||
|
||||
# Configure GitLab URL
|
||||
external_url 'https://gitlab.example.com'
|
||||
external_url 'https://<gitlab.example.com>'
|
||||
|
||||
# Configure registry settings
|
||||
gitlab_rails['registry_enabled'] = true
|
||||
gitlab_rails['registry_api_url'] = 'http://10.30.227.194:5000'
|
||||
gitlab_rails['registry_host'] = 'registry.example.com'
|
||||
gitlab_rails['registry_api_url'] = '<http://10.30.227.194:5000>'
|
||||
gitlab_rails['registry_host'] = '<registry.example.com>'
|
||||
gitlab_rails['registry_port'] = 5000
|
||||
gitlab_rails['registry_issuer'] = 'omnibus-gitlab-issuer'
|
||||
gitlab_rails['registry_key_path'] = '/etc/gitlab/gitlab-registry.key'
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ title: Container registry metadata database
|
|||
|
||||
The metadata database enables many new registry features, including
|
||||
online garbage collection, and increases the efficiency of many registry operations.
|
||||
The work on the self-managed release of the registry metadata database feature
|
||||
The work on the GitLab Self-Managed release of the registry metadata database feature
|
||||
is tracked in [epic 5521](https://gitlab.com/groups/gitlab-org/-/epics/5521).
|
||||
|
||||
By default, the container registry uses object storage to persist metadata
|
||||
|
|
|
|||
|
|
@ -458,7 +458,7 @@ authentication mode (`patroni['tls_client_mode']`), must each have the same valu
|
|||
gitlab-ctl write-pgpass --host 127.0.0.1 --database pgbouncer --user pgbouncer --hostuser gitlab-consul
|
||||
```
|
||||
|
||||
1. [Enable monitoring](../postgresql/pgbouncer.md#enable-monitoring)
|
||||
1. [Enable monitoring](pgbouncer.md#enable-monitoring)
|
||||
|
||||
#### PgBouncer Checkpoint
|
||||
|
||||
|
|
@ -560,7 +560,7 @@ gitlab-rake gitlab:db:configure
|
|||
|
||||
> **Note**: If you encounter a `rake aborted!` error stating that PgBouncer is failing to connect to PostgreSQL it may be that your PgBouncer node's IP address is missing from
|
||||
PostgreSQL's `trust_auth_cidr_addresses` in `gitlab.rb` on your database nodes. See
|
||||
[PgBouncer error `ERROR: pgbouncer cannot connect to server`](../postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server) before you proceed.
|
||||
[PgBouncer error `ERROR: pgbouncer cannot connect to server`](replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server) before you proceed.
|
||||
|
||||
### Backups
|
||||
|
||||
|
|
@ -571,7 +571,7 @@ Do not backup or restore GitLab through a PgBouncer connection: this causes a Gi
|
|||
### Ensure GitLab is running
|
||||
|
||||
At this point, your GitLab instance should be up and running. Verify you're able
|
||||
to sign in, and create issues and merge requests. For more information, see [Troubleshooting replication and failover](../postgresql/replication_and_failover_troubleshooting.md).
|
||||
to sign in, and create issues and merge requests. For more information, see [Troubleshooting replication and failover](replication_and_failover_troubleshooting.md).
|
||||
|
||||
## Example configuration
|
||||
|
||||
|
|
@ -899,7 +899,7 @@ Stopping or restarting the Patroni service on the leader node triggers an automa
|
|||
|
||||
In GitLab 16.5 and earlier, PgBouncer nodes do not automatically fail over alongside
|
||||
Patroni nodes. PgBouncer services
|
||||
[must be restarted manually](../postgresql/replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
|
||||
[must be restarted manually](replication_and_failover_troubleshooting.md#pgbouncer-error-error-pgbouncer-cannot-connect-to-server)
|
||||
for a successful switchover.
|
||||
|
||||
{{< /alert >}}
|
||||
|
|
@ -1053,7 +1053,7 @@ Considering these, you should carefully plan your PostgreSQL upgrade:
|
|||
```
|
||||
|
||||
If issues are encountered upgrading the replicas,
|
||||
[there is a troubleshooting section](../postgresql/replication_and_failover_troubleshooting.md#postgresql-major-version-upgrade-fails-on-a-patroni-replica) that might be the solution.
|
||||
[there is a troubleshooting section](replication_and_failover_troubleshooting.md#postgresql-major-version-upgrade-fails-on-a-patroni-replica) that might be the solution.
|
||||
|
||||
{{< alert type="note" >}}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ postgresql['trust_auth_cidr_addresses'] = %w(123.123.123.123/32 <other_cidrs>)
|
|||
|
||||
Due to a [known issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8166) that
|
||||
affects versions of GitLab prior to 16.5.0, the automatic failover of PgBouncer nodes does not
|
||||
happen after a [Patroni switchover](../postgresql/replication_and_failover.md#manual-failover-procedure-for-patroni). In this
|
||||
happen after a [Patroni switchover](replication_and_failover.md#manual-failover-procedure-for-patroni). In this
|
||||
example, GitLab failed to detect a paused database, then attempted to `RESUME` a
|
||||
not-paused database:
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ ERROR -- : STDERR: Error running command: GitlabCtl::Errors::ExecutionError
|
|||
ERROR -- : STDERR: ERROR: ERROR: database gitlabhq_production is not paused
|
||||
```
|
||||
|
||||
To ensure a [Patroni switchover](../postgresql/replication_and_failover.md#manual-failover-procedure-for-patroni) succeeds,
|
||||
To ensure a [Patroni switchover](replication_and_failover.md#manual-failover-procedure-for-patroni) succeeds,
|
||||
you must manually restart the PgBouncer service on all PgBouncer nodes with this command:
|
||||
|
||||
```shell
|
||||
|
|
@ -77,7 +77,7 @@ gitlab-ctl restart pgbouncer
|
|||
|
||||
If a replica cannot start or rejoin the cluster, or when it lags behind and cannot catch up, it might be necessary to reinitialize the replica:
|
||||
|
||||
1. [Check the replication status](../postgresql/replication_and_failover.md#check-replication-status) to confirm which server
|
||||
1. [Check the replication status](replication_and_failover.md#check-replication-status) to confirm which server
|
||||
needs to be reinitialized. For example:
|
||||
|
||||
```plaintext
|
||||
|
|
@ -196,7 +196,7 @@ To fix the problem, ensure the loopback interface is included in the CIDR addres
|
|||
```
|
||||
|
||||
1. [Reconfigure GitLab](../restart_gitlab.md#reconfigure-a-linux-package-installation) for the changes to take effect.
|
||||
1. Check that [all the replicas are synchronized](../postgresql/replication_and_failover.md#check-replication-status)
|
||||
1. Check that [all the replicas are synchronized](replication_and_failover.md#check-replication-status)
|
||||
|
||||
## Error: requested start point is ahead of the Write Ahead Log (WAL) flush position
|
||||
|
||||
|
|
@ -357,7 +357,7 @@ An example set of symptoms is as follows:
|
|||
|
||||
**Important**: This workaround applies when the Patroni cluster is in the following state:
|
||||
|
||||
- The [leader has been successfully upgraded to the new major version](../postgresql/replication_and_failover.md#upgrading-postgresql-major-version-in-a-patroni-cluster).
|
||||
- The [leader has been successfully upgraded to the new major version](replication_and_failover.md#upgrading-postgresql-major-version-in-a-patroni-cluster).
|
||||
- The step to upgrade PostgreSQL on replicas is failing.
|
||||
|
||||
This workaround completes the PostgreSQL upgrade on a Patroni replica
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ I, [2018-07-27T12:08:33.755624 #89817] INFO -- : Did fix /opt/gitlab/embedded/s
|
|||
I, [2018-07-27T12:08:33.760257 #89817] INFO -- : Did move to lost and found /opt/gitlab/embedded/service/gitlab-rails/public/uploads/foo/bar/1dd6f0f7eefd2acc4c2233f89a0f7b0b/image.png -> /opt/gitlab/embedded/service/gitlab-rails/public/uploads/-/project-lost-found/foo/bar/1dd6f0f7eefd2acc4c2233f89a0f7b0b/image.png
|
||||
```
|
||||
|
||||
If using object storage, run the [All-in-one Rake task](../raketasks/uploads/migrate.md#all-in-one-rake-task) to ensure
|
||||
If using object storage, run the [All-in-one Rake task](uploads/migrate.md#all-in-one-rake-task) to ensure
|
||||
all uploads are migrated to object storage and there are no files on disk in the uploads folder.
|
||||
|
||||
### Clean up project upload files from object storage
|
||||
|
|
|
|||
|
|
@ -94,6 +94,10 @@ The default prefix is `glpat-` but administrators can change it.
|
|||
[Project access tokens](../../user/project/settings/project_access_tokens.md) and
|
||||
[group access tokens](../../user/group/settings/group_access_tokens.md) also inherit this prefix.
|
||||
|
||||
By default, [secret push protection](../../user/application_security/secret_detection/secret_push_protection/_index.md) and
|
||||
[pipeline secret detection](../../user/application_security/secret_detection/pipeline/_index.md#detected-secrets) do not detect custom prefixes.
|
||||
Custom prefixes might cause an increase in false positives.
|
||||
|
||||
### Set a prefix
|
||||
|
||||
To change the default global prefix:
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ You can set the maximum size of distinct [job artifacts](../cicd/job_artifacts.m
|
|||
- Groups
|
||||
|
||||
The default maximum size for each artifact file in a job is 100 MB.
|
||||
For GitLab.com, see [Artifacts maximum size](../../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
For GitLab.com, see [Artifacts maximum size](../../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
Job artifacts defined with `artifacts:reports` can have [different limits](../../administration/instance_limits.md#maximum-file-size-per-type-of-artifact).
|
||||
In this case, the smaller value is used.
|
||||
|
|
@ -296,7 +296,7 @@ After that time passes, the jobs are archived in the background and no longer ab
|
|||
retried. Make it empty to never expire jobs. It has to be no less than 1 day,
|
||||
for example: <code>15 days</code>, <code>1 month</code>, <code>2 years</code>.
|
||||
|
||||
For the value set for GitLab.com, see [Scheduled job archiving](../../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
For the value set for GitLab.com, see [Scheduled job archiving](../../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
## Protect CI/CD variables by default
|
||||
|
||||
|
|
|
|||
|
|
@ -54,4 +54,4 @@ To override the general user and IP rate limits for requests to deprecated API e
|
|||
## Related topics
|
||||
|
||||
- [Rate limits](../../security/rate_limits.md)
|
||||
- [User and IP rate limits](../settings/user_and_ip_rate_limits.md)
|
||||
- [User and IP rate limits](user_and_ip_rate_limits.md)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ common Git operations can generate many Git HTTP requests.
|
|||
Some of these Git HTTP requests do not contain authentication parameter and
|
||||
are considered unauthenticated. You can enforce rate limits on Git HTTP requests.
|
||||
This can improve the security and durability of your web application.
|
||||
[General user and IP rate limits](../settings/user_and_ip_rate_limits.md) aren't applied
|
||||
[General user and IP rate limits](user_and_ip_rate_limits.md) aren't applied
|
||||
to Git HTTP requests.
|
||||
|
||||
## Configure Git HTTP rate limits
|
||||
|
|
@ -45,4 +45,4 @@ To configure Git HTTP rate limits:
|
|||
## Related topics
|
||||
|
||||
- [Rate limiting](../../security/rate_limits.md)
|
||||
- [User and IP rate limits](../settings/user_and_ip_rate_limits.md)
|
||||
- [User and IP rate limits](user_and_ip_rate_limits.md)
|
||||
|
|
|
|||
|
|
@ -16,14 +16,14 @@ title: Rate limits on Git LFS
|
|||
[Git LFS (Large File Storage)](../../topics/git/lfs/_index.md) is a Git extension
|
||||
for handling large files. If you use Git LFS in your repository, common Git operations
|
||||
can generate many Git LFS requests. You can enforce
|
||||
[general user and IP rate limits](../settings/user_and_ip_rate_limits.md), but you can also
|
||||
[general user and IP rate limits](user_and_ip_rate_limits.md), but you can also
|
||||
override the general setting to enforce additional limits on Git LFS requests. This
|
||||
override can improve the security and durability of your web application.
|
||||
|
||||
## On GitLab.com
|
||||
|
||||
On GitLab.com, Git LFS requests are subject to
|
||||
[authenticated web request rate limits](../../user/gitlab_com/_index.md#gitlabcom-specific-rate-limits).
|
||||
[authenticated web request rate limits](../../user/gitlab_com/_index.md#rate-limits-on-gitlabcom).
|
||||
These limits are set to 1000 requests per minute per user.
|
||||
|
||||
Each Git LFS object uploaded or downloaded generates an HTTP request that counts toward
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ This setting applies only to repositories
|
|||
[imported from a GitLab export file](../../user/project/settings/import_export.md#import-a-project-and-its-data).
|
||||
|
||||
If you choose a size larger than the configured value for the web server,
|
||||
you may receive errors. See the [troubleshooting section](../settings/account_and_limit_settings.md#troubleshooting) for more
|
||||
you may receive errors. See the [troubleshooting section](account_and_limit_settings.md#troubleshooting) for more
|
||||
details.
|
||||
|
||||
For GitLab.com repository size limits, read [accounts and limit settings](../../user/gitlab_com/_index.md#account-and-limit-settings).
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ publish and share packages, which others can consume as a dependency in downstre
|
|||
the [Packages API](../../api/packages.md).
|
||||
|
||||
If downstream projects frequently download such dependencies, many requests are made through the
|
||||
Packages API. You may therefore reach enforced [user and IP rate limits](../settings/user_and_ip_rate_limits.md).
|
||||
Packages API. You may therefore reach enforced [user and IP rate limits](user_and_ip_rate_limits.md).
|
||||
To address this issue, you can define specific rate limits for the Packages API:
|
||||
|
||||
- [Unauthenticated requests (per IP)](#enable-unauthenticated-request-rate-limit-for-packages-api).
|
||||
|
|
|
|||
|
|
@ -56,16 +56,16 @@ In the following table, you can see:
|
|||
| Feature | Available in |
|
||||
| ------ | ------ |
|
||||
| [Email from GitLab](../email_from_gitlab.md) | GitLab 14.1 and later |
|
||||
| [Repository size limit](../settings/account_and_limit_settings.md#repository-size-limit) | GitLab 14.4 and later |
|
||||
| [Repository size limit](account_and_limit_settings.md#repository-size-limit) | GitLab 14.4 and later |
|
||||
| [Group access restriction by IP address](../../user/group/access_and_permissions.md#restrict-group-access-by-ip-address) | GitLab 14.4 and later |
|
||||
| [View description change history](../../user/discussions/_index.md#view-description-change-history) | GitLab 16.0 and later |
|
||||
| [Maintenance mode](../maintenance_mode/_index.md) | GitLab 16.0 and later |
|
||||
| [Configurable issue boards](../../user/project/issue_board.md#configurable-issue-boards) | GitLab 16.0 and later |
|
||||
| [Coverage-guided fuzz testing](../../user/application_security/coverage_fuzzing/_index.md) | GitLab 16.0 and later |
|
||||
| [Password complexity requirements](../settings/sign_up_restrictions.md#password-complexity-requirements) | GitLab 16.0 and later |
|
||||
| [Password complexity requirements](sign_up_restrictions.md#password-complexity-requirements) | GitLab 16.0 and later |
|
||||
| [Group wikis](../../user/project/wiki/group.md) | GitLab 16.5 and later |
|
||||
| [Issue analytics](../../user/group/issues_analytics/_index.md) | GitLab 16.5 and later |
|
||||
| [Custom Text in Emails](../settings/email.md#custom-additional-text) | GitLab 16.5 and later |
|
||||
| [Custom Text in Emails](email.md#custom-additional-text) | GitLab 16.5 and later |
|
||||
| [Contribution analytics](../../user/group/contribution_analytics/_index.md) | GitLab 16.5 and later |
|
||||
| [Group file templates](../../user/group/manage.md#group-file-templates) | GitLab 16.6 and later |
|
||||
| [Group webhooks](../../user/project/integrations/webhooks.md#group-webhooks) | GitLab 16.6 and later |
|
||||
|
|
@ -101,7 +101,7 @@ for all authenticated users, and on the **Admin** area pages. The statuses are:
|
|||
- Red: The version of GitLab you are running is vulnerable. You should install
|
||||
the latest version with security fixes as soon as possible.
|
||||
|
||||

|
||||

|
||||
|
||||
### Enable or disable version check
|
||||
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ The following limits apply to the GitLab GraphQL API.
|
|||
| Maximum page size | 100 records (nodes) per page. Applies to most connections in the API. Particular connections may have different max page size limits that are higher or lower. |
|
||||
| [Maximum query complexity](#maximum-query-complexity) | 200 for unauthenticated requests and 250 for authenticated requests. |
|
||||
| Maximum query size | 10,000 characters per query or mutation. If this limit is reached, use [variables](https://graphql.org/learn/queries/#variables) and [fragments](https://graphql.org/learn/queries/#fragments) to reduce the query or mutation size. Remove white spaces as last resort. |
|
||||
| Rate limits | For GitLab.com, see [GitLab.com-specific rate limits](../../user/gitlab_com/_index.md#gitlabcom-specific-rate-limits). |
|
||||
| Rate limits | For GitLab.com, see [GitLab.com-specific rate limits](../../user/gitlab_com/_index.md#rate-limits-on-gitlabcom). |
|
||||
| Request timeout | 30 seconds. |
|
||||
|
||||
### Maximum query complexity
|
||||
|
|
|
|||
|
|
@ -20816,6 +20816,15 @@ Stores Amazon S3 configurations for audit event streaming.
|
|||
| <a id="amazons3configurationtypeid"></a>`id` | [`ID!`](#id) | ID of the configuration. |
|
||||
| <a id="amazons3configurationtypename"></a>`name` | [`String!`](#string) | Name of the external destination to send audit events to. |
|
||||
|
||||
### `AncestorType`
|
||||
|
||||
#### Fields
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="ancestortypename"></a>`name` | [`String`](#string) | Name of the ancestor. |
|
||||
| <a id="ancestortypeversion"></a>`version` | [`String`](#string) | Version of the ancestor. |
|
||||
|
||||
### `ApiFuzzingCiConfiguration`
|
||||
|
||||
Data associated with configuring API fuzzing scans in GitLab CI.
|
||||
|
|
@ -29796,6 +29805,7 @@ Represents an entry from the Cloud License history.
|
|||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="locationancestors"></a>`ancestors` | [`[AncestorType!]`](#ancestortype) | Ancestors of the dependency. |
|
||||
| <a id="locationblobpath"></a>`blobPath` | [`String`](#string) | HTTP URI path to view the input file in GitLab. |
|
||||
| <a id="locationpath"></a>`path` | [`String`](#string) | Path, relative to the root of the repository, of the filewhich was analyzed to detect the dependency. |
|
||||
| <a id="locationtoplevel"></a>`topLevel` | [`Boolean`](#boolean) | Is top level dependency. |
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ When the parameter `statistics=true` is used and the authenticated user is an ad
|
|||
|
||||
- `container_registry_size_is_estimated`: Indicates whether the size is an exact calculation based on actual data from all repositories (`false`) or estimated due to performance constraints (`true`).
|
||||
|
||||
For self-managed instances, the [container registry metadata database](../administration/packages/container_registry_metadata_database.md) must be enabled to include the container registry size attributes.
|
||||
For GitLab Self-Managed instances, the [container registry metadata database](../administration/packages/container_registry_metadata_database.md) must be enabled to include the container registry size attributes.
|
||||
|
||||
```json
|
||||
[
|
||||
|
|
|
|||
|
|
@ -129,7 +129,9 @@ curl --request GET \
|
|||
|
||||
{{< /history >}}
|
||||
|
||||
Creates a project access token for a specified project. You cannot create a token with an access level greater than your account. For example, a user with the Maintainer role cannot create a project access token with the Owner role.
|
||||
Creates a project access token for a specified project. You cannot create a token with an access level greater than your account. For example, a user with the Maintainer role cannot create a project access token with the Owner role.
|
||||
|
||||
You must use a personal access token with this endpoint. You cannot authenticate with a project access token. There is an [open feature request](https://gitlab.com/gitlab-org/gitlab/-/issues/359953) to add this functionality.
|
||||
|
||||
```plaintext
|
||||
POST projects/:id/access_tokens
|
||||
|
|
@ -146,7 +148,7 @@ POST projects/:id/access_tokens
|
|||
|
||||
```shell
|
||||
curl --request POST \
|
||||
--header "PRIVATE-TOKEN: <your_access_token>" \
|
||||
--header "PRIVATE-TOKEN: <your_personal_access_token>" \
|
||||
--header "Content-Type:application/json" \
|
||||
--data '{ "name":"test_token", "scopes":["api", "read_repository"], "expires_at":"2021-01-31", "access_level":30 }' \
|
||||
--url "https://gitlab.example.com/api/v4/projects/<project_id>/access_tokens"
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ Supported attributes:
|
|||
|
||||
The responses include attributes related to container registry storage size:
|
||||
|
||||
- `container_registry_size`: Total storage size in bytes used by all container repositories in the project. Updated whenever container images are pushed or deleted. For self-managed instances, requires the [container registry metadata database](../administration/packages/container_registry_metadata_database.md) to be enabled.
|
||||
- `container_registry_size`: Total storage size in bytes used by all container repositories in the project. Updated whenever container images are pushed or deleted. For GitLab Self-Managed instances, requires the [container registry metadata database](../administration/packages/container_registry_metadata_database.md) to be enabled.
|
||||
|
||||
Example response:
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ instance being overloaded.
|
|||
- For details, see [Rate limits](../../security/rate_limits.md).
|
||||
- For details of the rate limit settings used by
|
||||
GitLab.com, see
|
||||
[GitLab.com-specific rate limits](../../user/gitlab_com/_index.md#gitlabcom-specific-rate-limits).
|
||||
[GitLab.com-specific rate limits](../../user/gitlab_com/_index.md#rate-limits-on-gitlabcom).
|
||||
|
||||
## Response format
|
||||
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ If parsing JUnit report XML results in an error, an indicator is shown next to t
|
|||
|
||||

|
||||
|
||||
For test case parsing limits, see [Max test cases per unit test report](../../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
For test case parsing limits, see [Max test cases per unit test report](../../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
GitLab does not parse very [large nodes](https://nokogiri.org/tutorials/parsing_an_html_xml_document.html#parse-options) of JUnit reports. There is [an issue](https://gitlab.com/gitlab-org/gitlab/-/issues/268035) open to make this optional.
|
||||
|
||||
|
|
|
|||
|
|
@ -1319,7 +1319,7 @@ attached to the job when it [succeeds, fails, or always](#artifactswhen).
|
|||
|
||||
The artifacts are sent to GitLab after the job finishes. They are
|
||||
available for download in the GitLab UI if the size is smaller than the
|
||||
[maximum artifact size](../../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
[maximum artifact size](../../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
By default, jobs in later stages automatically download all the artifacts created
|
||||
by jobs in earlier stages. You can control artifact download behavior in jobs with
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Use [`artifacts:reports`](_index.md#artifactsreports) to:
|
|||
Artifacts created for `artifacts: reports` are always uploaded, regardless of the job results (success or failure).
|
||||
You can use [`artifacts:expire_in`](_index.md#artifactsexpire_in) to set an expiration
|
||||
time for the artifacts, which overrides the instance's [default setting](../../administration/settings/continuous_integration.md#maximum-artifacts-size).
|
||||
GitLab.com might have a [different default artifacts expiry value](../../user/gitlab_com/_index.md#gitlab-cicd).
|
||||
GitLab.com might have a [different default artifacts expiry value](../../user/gitlab_com/_index.md#cicd).
|
||||
|
||||
Some `artifacts:reports` types can be generated by multiple jobs in the same pipeline, and used by merge request or
|
||||
pipeline features from each job.
|
||||
|
|
@ -308,7 +308,7 @@ The exceptions to the [original dotenv rules](https://github.com/motdotla/dotenv
|
|||
- The variable key can contain only letters, digits, and underscores (`_`).
|
||||
- The maximum size of the `.env` file is 5 KB.
|
||||
This limit [can be changed on GitLab Self-Managed](../../administration/instance_limits.md#limit-dotenv-file-size).
|
||||
- On GitLab.com, [the maximum number of inherited variables](../../user/gitlab_com/_index.md#gitlab-cicd)
|
||||
- On GitLab.com, [the maximum number of inherited variables](../../user/gitlab_com/_index.md#cicd)
|
||||
is 50 for Free, 100 for Premium and 150 for Ultimate. The default for
|
||||
GitLab Self-Managed is 20, and can be changed by changing the
|
||||
`dotenv_variables` [application limit](../../administration/instance_limits.md#limit-dotenv-variables).
|
||||
|
|
|
|||
|
|
@ -8,7 +8,14 @@ title: GitLab Duo licensing for local development
|
|||
|
||||
This document explains the different licensing options available for GitLab Duo features in local development environments.
|
||||
|
||||
> **Note:** When developing GitLab Duo features, it's important to test in both multi-tenant (GitLab.com) and single-tenant (Self-managed/Dedicated) environments where appropriate. There is no default or recommended approach - the setup you choose should be based on your specific testing requirements.
|
||||
{{< alert type="note" >}}
|
||||
|
||||
When developing GitLab Duo features, it's important to test in both multi-tenant
|
||||
(GitLab.com) and single-tenant (GitLab Self-Managed/Dedicated) environments where
|
||||
appropriate. There is no default or recommended approach - the setup you choose
|
||||
should be based on your specific testing requirements.
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -27,7 +34,7 @@ You should choose a license setup based on your development needs. Each approach
|
|||
| Development Scenario | License Setup | Instructions |
|
||||
|----------------------|---------------------------|-------------|
|
||||
| Multi-tenant setup (GitLab.com) | Local license with Rake task | [Option A](#option-a-local-license-with-rake-task-multi-tenantgitlabcom-mode) |
|
||||
| Single-tenant setup (Self-managed/Dedicated) | Local license with Rake task in self-managed mode | [Option B](#option-b-local-license-with-rake-task-in-self-managed-mode-single-tenant-setup) |
|
||||
| Single-tenant setup (GitLab Self-Managed/Dedicated) | Local license with Rake task in self-managed mode | [Option B](#option-b-local-license-with-rake-task-in-self-managed-mode-single-tenant-setup) |
|
||||
| Full dog-fooding experience | Cloud license via CustomersDot | [Option C](#option-c-cloud-license-via-customersdot) |
|
||||
|
||||
## Prerequisites for all options
|
||||
|
|
@ -115,7 +122,7 @@ This approach configures your environment to behave like a self-managed or Dedic
|
|||
|
||||
### When to use
|
||||
|
||||
- When you need to test in a single-tenant environment (similar to Self-managed or Dedicated)
|
||||
- When you need to test in a single-tenant environment (similar to GitLab Self-Managed or Dedicated)
|
||||
- When developing features that are specific to or need validation in self-managed or Dedicated environments
|
||||
- When testing integration points that behave differently in single-tenant mode
|
||||
|
||||
|
|
@ -275,7 +282,7 @@ If you're having issues with your Duo license setup:
|
|||
|
||||
## Additional resources
|
||||
|
||||
- [AI Features Documentation](../ai_features/_index.md)
|
||||
- [Code Suggestions Development](../ai_features/code_suggestions.md)
|
||||
- [License Management Guidelines for Code Suggestions](../ai_features/code_suggestions.md#setup-instructions-to-use-gdk-with-the-code-suggestions-add-on)
|
||||
- [AI Features Documentation](_index.md)
|
||||
- [Code Suggestions Development](code_suggestions.md)
|
||||
- [License Management Guidelines for Code Suggestions](code_suggestions.md#setup-instructions-to-use-gdk-with-the-code-suggestions-add-on)
|
||||
- [Duo Enterprise License Access Process for Staging Environment](https://gitlab.com/gitlab-com/runbooks/-/blob/master/docs/duo/duo_license.md?ref_type=heads)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ This should enable everyone to locally see how any change made in an IDE is sent
|
|||
1. In your terminal, go to your `gitlab-development-kit` > `gitlab` directory.
|
||||
1. Run `gdk rails console` or `bundle exec rails c` to start a Rails console.
|
||||
1. [Enable the Feature Flag](../../administration/feature_flags.md#enable-or-disable-the-feature) for the Code Suggestions tokens API by calling `Feature.enable(:ai_duo_code_suggestions_switch)` from the console.
|
||||
1. [Setup AI gateway](../ai_features/_index.md#required-install-ai-gateway).
|
||||
1. [Setup AI gateway](_index.md#required-install-ai-gateway).
|
||||
1. Run your GDK server with `gdk start` if it's not already running.
|
||||
|
||||
### Setup instructions to use staging AI gateway
|
||||
|
|
@ -67,7 +67,7 @@ with the deployed staging AI gateway. To do this:
|
|||
**Option 1 - Recommended**
|
||||
|
||||
1. Ensure that you have a [GitLab Team Member License](https://handbook.gitlab.com/handbook/engineering/developer-onboarding/#working-on-gitlab-ee-developer-licenses) and that it is [activated](../../administration/license_file.md).
|
||||
1. Follow the [Setup and Run GDK](../ai_features/_index.md#set-up-and-run-gdk) guide under the AI Features doc.
|
||||
1. Follow the [Setup and Run GDK](_index.md#set-up-and-run-gdk) guide under the AI Features doc.
|
||||
|
||||
**Option 2**
|
||||
|
||||
|
|
|
|||
|
|
@ -299,7 +299,7 @@ We strongly recommend running the regression evaluator in at least the following
|
|||
|
||||
| Environment | Evaluation pipeline name |
|
||||
| ----------- | ------------------------ |
|
||||
| Self-managed GitLab and a custom model that is widely adopted | `duo-chat regression sm: [bedrock_mistral_8x7b_instruct]` |
|
||||
| GitLab Self-Managed and a custom model that is widely adopted | `duo-chat regression sm: [bedrock_mistral_8x7b_instruct]` |
|
||||
| GitLab.com and GitLab Duo Enterprise add-on | `duo-chat regression .com: [duo_enterprise]` |
|
||||
| GitLab.com and GitLab Duo Pro add-on | `duo-chat regression .com: [duo_pro]` |
|
||||
|
||||
|
|
@ -477,7 +477,7 @@ The analysis can contain any of the attributes defined in the latest [iglu schem
|
|||
This table describes the requirements for the `access_duo_chat` policy to
|
||||
return `true` in different contexts.
|
||||
|
||||
| | GitLab.com | Dedicated or Self-managed | All instances |
|
||||
| | GitLab.com | Dedicated or GitLab Self-Managed | All instances |
|
||||
|----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
|
||||
| for user outside of project or group (`user.can?(:access_duo_chat)`) | User need to belong to at least one group on Premium or Ultimate tier with `duo_features_enabled` group setting switched on | - Instance needs to be on Premium or Ultimate tier<br>- Instance needs to have `duo_features_enabled` setting switched on | |
|
||||
| for user in group context (`user.can?(:access_duo_chat, group)`) | - User needs to belong to at least one group on Premium or Ultimate tier with `experiment_and_beta_features` group setting switched on<br>- Root ancestor group of the group needs to be on Premium or Ultimate tier and the group must have `duo_features_enabled` setting switched on | - Instance needs to be on Premium or Ultimate tier<br>- Instance needs to have `duo_features_enabled` setting switched on | User must have at least _read_ permissions on the group |
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ The following process outlines the steps to get embeddings generated and stored
|
|||
Elastic::MigrationWorker.new.perform
|
||||
```
|
||||
|
||||
1. Make sure you can run [GitLab Duo features on your local environment](../ai_features/_index.md#instructions-for-setting-up-gitlab-duo-features-in-the-local-development-environment).
|
||||
1. Make sure you can run [GitLab Duo features on your local environment](_index.md#instructions-for-setting-up-gitlab-duo-features-in-the-local-development-environment).
|
||||
1. Ensure running the following in a rails console outputs an embedding (a vector of 768 dimensions). If not, there is a problem with the AI setup.
|
||||
|
||||
```ruby
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ The AI Framework team should create a main migration issue following this templa
|
|||
|
||||
## Technical Details
|
||||
- [Any technical specifics about this migration]
|
||||
- [Impact on GitLab.com and self-managed instances]
|
||||
- [Impact on GitLab.com and GitLab Self-Managed instances]
|
||||
|
||||
## Implementation Steps
|
||||
- [ ] Update model configurations in each feature
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ The endpoints continue to respond with the same fields and accept the same
|
|||
arguments, although the underlying feature interaction is no longer operational.
|
||||
|
||||
The intended changes must be documented ahead of time
|
||||
[following the v4 deprecation guide](../development/documentation/restful_api_styleguide.md#deprecations).
|
||||
[following the v4 deprecation guide](documentation/restful_api_styleguide.md#deprecations).
|
||||
|
||||
For example, when we removed an application setting, we
|
||||
[kept the old API field](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/83984)
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ end
|
|||
|
||||
### Subscription Plans
|
||||
|
||||
Self-managed:
|
||||
GitLab Self-Managed:
|
||||
|
||||
- `default`: Everyone.
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ The process for adding a new throttle is loosely:
|
|||
and apply it to the desired requests.
|
||||
1. Add the new settings to the **Admin** area form in `app/views/admin/application_settings/_ip_limits.html.haml`.
|
||||
1. Document the new settings in [User and IP rate limits](../administration/settings/user_and_ip_rate_limits.md) and [Application settings API](../api/settings.md).
|
||||
1. Configure the rate limit for GitLab.com and document it in [GitLab.com-specific rate limits](../user/gitlab_com/_index.md#gitlabcom-specific-rate-limits).
|
||||
1. Configure the rate limit for GitLab.com and document it in [rate limits on GitLab.com](../user/gitlab_com/_index.md#rate-limits-on-gitlabcom).
|
||||
|
||||
Refer to these past issues for implementation details:
|
||||
|
||||
|
|
|
|||
|
|
@ -119,11 +119,10 @@ It picks reviewers and maintainers from the list at the
|
|||
page, with these behaviors:
|
||||
|
||||
- It doesn't pick people whose Slack or [GitLab status](../user/profile/_index.md#set-your-status):
|
||||
- Contains the string `OOO`, `PTO`, `Parental Leave`, `Friends and Family`, `Conference` or `BUSY`.
|
||||
- Contains the string `OOO`, `PTO`, `Parental Leave`, `Friends and Family`, or `Conference`.
|
||||
- Emoji is from one of these categories:
|
||||
- **On leave** - 🌴 `palm_tree`, 🏖️ `beach`, ⛱ `beach_umbrella`, 🏖 `beach_with_umbrella`, 🌞 `sun_with_face`, 🎡 `ferris_wheel`, 🏙 `cityscape`
|
||||
- **Out sick** - 🌡️ `thermometer`, 🤒 `face_with_thermometer`
|
||||
- **BUSY** - 🔴 `red_circle`
|
||||
- Important: The status emojis are not detected when present on the free text input **status message**. They have to be set on your GitLab **status emoji** by clicking on the emoji selector beside the text input.
|
||||
- It doesn't pick people who are already assigned a number of reviews that is equal to
|
||||
or greater than their chosen "review limit". The review limit is the maximum number of
|
||||
|
|
|
|||
|
|
@ -66,4 +66,4 @@ Before submitting a merge request for a new feature:
|
|||
|
||||
## Related links
|
||||
|
||||
- [Large tables limitations](../development/database/large_tables_limitations.md)
|
||||
- [Large tables limitations](database/large_tables_limitations.md)
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ Use this guidance to help ensure you have the tools you need.
|
|||
- Install a code editor, like VS Code or Sublime Text, to work with Markdown files.
|
||||
- [Install Git](../../topics/git/how_to_install_git/_index.md) and
|
||||
[add an SSH key to your GitLab profile](../../user/ssh.md#add-an-ssh-key-to-your-gitlab-account).
|
||||
- Install documentation [linters](../documentation/testing/_index.md) and configure them in your code editor:
|
||||
- [markdownlint](../documentation/testing/markdownlint.md)
|
||||
- [Vale](../documentation/testing/vale.md)
|
||||
- Install documentation [linters](testing/_index.md) and configure them in your code editor:
|
||||
- [markdownlint](testing/markdownlint.md)
|
||||
- [Vale](testing/vale.md)
|
||||
- [Set up the docs site to build locally](https://gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/-/blob/main/doc/setup.md).
|
||||
- Optional. Install the [Conventional Comments](https://gitlab.com/conventionalcomments/conventional-comments-button) extension for Chrome.
|
||||
The plugin adds **Conventional Comment** buttons to GitLab comments.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ When the feature changes from experiment or beta to generally available:
|
|||
|
||||
- Remove the **Status** from the product availability details.
|
||||
- Remove any language about the feature not being ready for production.
|
||||
- Update the [history](../documentation/styleguide/availability_details.md#history).
|
||||
- Update the [history](styleguide/availability_details.md#history).
|
||||
|
||||
## Features that require user enrollment or feedback
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ When documenting the [offerings](styleguide/availability_details.md#offering), f
|
|||
## Add history text
|
||||
|
||||
When the state of a flag changes (for example, from disabled by default to enabled by default), add the change to the
|
||||
[history](../documentation/styleguide/availability_details.md#history).
|
||||
[history](styleguide/availability_details.md#history).
|
||||
|
||||
Possible history entries are:
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ Example response:
|
|||
|
||||
## History
|
||||
|
||||
Add [history](../documentation/styleguide/availability_details.md#history)
|
||||
Add [history](styleguide/availability_details.md#history)
|
||||
to describe new or updated API calls.
|
||||
|
||||
To add history for an individual attribute, include it in the history
|
||||
|
|
@ -126,7 +126,7 @@ If the API or attribute is deployed behind a feature flag,
|
|||
## Deprecations
|
||||
|
||||
To document the deprecation of an API endpoint, follow the steps to
|
||||
[deprecate a page or topic](../documentation/styleguide/deprecations_and_removals.md).
|
||||
[deprecate a page or topic](styleguide/deprecations_and_removals.md).
|
||||
|
||||
To deprecate an attribute:
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ In addition:
|
|||
- Ensure that the output generates properly.
|
||||
- Ensure the version history begins with `-`.
|
||||
- If possible, include a link to the related issue. If there is no related issue, link to a merge request, or epic.
|
||||
- Do not link to [confidential issues](../styleguide/_index.md#confidential-or-restricted-access-links).
|
||||
- Do not link to [confidential issues](_index.md#confidential-or-restricted-access-links).
|
||||
- Do not link to the pricing page. Do not include the subscription tier.
|
||||
|
||||
#### Updated features
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ recommends these word choices. In addition:
|
|||
|
||||
- The GitLab handbook contains a list of
|
||||
[top misused terms](https://handbook.gitlab.com/handbook/communication/top-misused-terms/).
|
||||
- The documentation [style guide](../styleguide/_index.md#language) includes details
|
||||
- The documentation [style guide](_index.md#language) includes details
|
||||
about language and capitalization.
|
||||
- The GitLab handbook provides guidance on the [use of third-party trademarks](https://handbook.gitlab.com/handbook/legal/policies/product-third-party-trademarks-guidelines/#process-for-adding-third-party-trademarks-to-gitlab).
|
||||
|
||||
|
|
@ -873,7 +873,7 @@ Do not use Latin abbreviations. Use **for example**, **such as**, **for instance
|
|||
Avoid ellipses when you can. If you must include them, for example as part of a code block or other CLI response,
|
||||
use three periods with no space (`...`) instead of the `…` HTML entity or the `…` HTML code.
|
||||
|
||||
For more information, see [code blocks](../styleguide/_index.md#code-blocks).
|
||||
For more information, see [code blocks](_index.md#code-blocks).
|
||||
|
||||
Do not include any ellipses when documenting UI text.
|
||||
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ The following diagram illustrates the process:
|
|||
## Data flow
|
||||
|
||||
On SaaS event records are directly sent to a collection system, called Snowplow, and imported into our data warehouse.
|
||||
Self-managed and GitLab Dedicated instances record event counts locally. Every week, a process called Service Ping sends the current
|
||||
GitLab Self-Managed and GitLab Dedicated instances record event counts locally. Every week, a process called Service Ping sends the current
|
||||
values for all pre-defined and active metrics to our data warehouse. For GitLab.com, metrics are calculated directly in the data warehouse.
|
||||
|
||||
The following chart aims to illustrate this data flow:
|
||||
|
|
|
|||
|
|
@ -368,7 +368,7 @@ This guide describes how to migrate a Service Ping metric from [`lib/gitlab/usag
|
|||
- Add tests for the individual metric [`spec/lib/gitlab/usage/metrics/instrumentations/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/usage/metrics/instrumentations).
|
||||
- Add tests for Service Ping.
|
||||
|
||||
1. [Generate the metric definition file](../metrics/metrics_dictionary.md#create-a-new-metric-definition).
|
||||
1. [Generate the metric definition file](metrics_dictionary.md#create-a-new-metric-definition).
|
||||
|
||||
1. Remove the code from [`lib/gitlab/usage_data.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/usage_data.rb) or [`ee/lib/ee/gitlab/usage_data.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/ee/gitlab/usage_data.rb).
|
||||
|
||||
|
|
|
|||
|
|
@ -1572,7 +1572,7 @@ D, [2020-07-06T00:37:12.653648 #130101] DEBUG -- : ↳ config/initializers/con
|
|||
|
||||
Here's a list of current [high-traffic tables](https://gitlab.com/gitlab-org/gitlab/-/blob/master/rubocop/rubocop-migrations.yml).
|
||||
|
||||
Determining what tables are high-traffic can be difficult. Self-managed instances might use
|
||||
Determining what tables are high-traffic can be difficult. GitLab Self-Managed instances might use
|
||||
different features of GitLab with different usage patterns, thus making assumptions based
|
||||
on GitLab.com not enough.
|
||||
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ the package format does not upload and store package files.
|
|||
#### Rate Limits on GitLab.com
|
||||
|
||||
Package manager clients can make rapid requests that exceed the
|
||||
[GitLab.com standard API rate limits](../../user/gitlab_com/_index.md#gitlabcom-specific-rate-limits).
|
||||
[GitLab.com standard API rate limits](../../user/gitlab_com/_index.md#rate-limits-on-gitlabcom).
|
||||
This results in a `429 Too Many Requests` error.
|
||||
|
||||
We have opened a set of paths to allow higher rate limits. Unless it is not possible,
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ This document describes various guidelines to ensure good and consistent perform
|
|||
- [GitLab performance monitoring](../administration/monitoring/performance/_index.md)
|
||||
- [Development department performance indicators](https://handbook.gitlab.com/handbook/engineering/development/performance-indicators/)
|
||||
- [Service measurement](service_measurement.md)
|
||||
- Self-managed administration and customer-focused:
|
||||
- GitLab Self-Managed administration and customer-focused:
|
||||
- [File system performance benchmarking](../administration/operations/filesystem_benchmarking.md)
|
||||
- [Sidekiq performance troubleshooting](../administration/sidekiq/sidekiq_troubleshooting.md)
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ Like default roles, custom roles are [inherited](../../user/project/members/_ind
|
|||
|
||||
### Finding existing abilities checks
|
||||
|
||||
Abilities are often [checked in multiple locations](../permissions/authorizations.md#where-should-permissions-be-checked) for a single endpoint or web request. Therefore, it can be difficult to find the list of authorization checks that are run for a given endpoint.
|
||||
Abilities are often [checked in multiple locations](authorizations.md#where-should-permissions-be-checked) for a single endpoint or web request. Therefore, it can be difficult to find the list of authorization checks that are run for a given endpoint.
|
||||
|
||||
To assist with this, you can locally set `GITLAB_DEBUG_POLICIES=true`.
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ Before any upgrade, consider all audiences and targets, ordered by how immediate
|
|||
GitLab SaaS is affected with the next deployment.
|
||||
1. **GitLab Self-Managed.** Customers installing GitLab via [Omnibus](https://gitlab.com/gitlab-org/omnibus-gitlab) use none of the above.
|
||||
Instead, their Ruby version is defined by the [Ruby software bundle](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/config/software/ruby.rb) in Omnibus.
|
||||
Self-managed customers are affected as soon as they upgrade to the release containing this change.
|
||||
GitLab Self-Managed customers are affected as soon as they upgrade to the release containing this change.
|
||||
|
||||
## Ruby upgrade approach
|
||||
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ Add a migration (not a post-deployment migration) that uses `sidekiq_remove_jobs
|
|||
|
||||
### In the M+2 release
|
||||
|
||||
Delete the worker class file and follow the guidance in our [Sidekiq queues documentation](../sidekiq/_index.md#sidekiq-queues) around running Rake tasks to regenerate/update related files.
|
||||
Delete the worker class file and follow the guidance in our [Sidekiq queues documentation](_index.md#sidekiq-queues) around running Rake tasks to regenerate/update related files.
|
||||
|
||||
## Renaming queues
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ information on general testing practices at GitLab.
|
|||
|
||||
If you are looking for a guide on Vue component testing, you can jump right away to this [section](../fe_guide/vue.md#testing-vue-components).
|
||||
|
||||
Information on testing Vue 3 is contained in [this page](../testing_guide/testing_vue3.md).
|
||||
Information on testing Vue 3 is contained in [this page](testing_vue3.md).
|
||||
|
||||
## Jest
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue