Skip to content

Commit f850f5c

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent c948b51 commit f850f5c

File tree

81 files changed

+355
-307
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+355
-307
lines changed

.gitlab/ci/qa.gitlab-ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
extends:
2727
- .qa-job-base
2828
variables:
29-
WORKING_DIR: qa/gems/gitlab-cng
29+
WORKING_DIR: qa/gems/gitlab-orchestrator
3030
cache: *qa-ruby-cng-gems-cache
3131

3232
.e2e-trigger-base:

.gitlab/ci/rules.gitlab-ci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -760,8 +760,8 @@
760760
- "tooling/ci/job_tokens/docs/templates/fine_grained_permissions.md.erb"
761761

762762
.cng-orchestrator-patterns: &cng-orchestrator-patterns
763-
- "qa/gems/gitlab-cng/**/*.rb"
764-
- "qa/gems/gitlab-cng/{Gemfile,Gemfile.lock}"
763+
- "qa/gems/gitlab-orchestrator/**/*.rb"
764+
- "qa/gems/gitlab-orchestrator/{Gemfile,Gemfile.lock}"
765765

766766
.observability-code-patterns: &observability-code-patterns
767767
# backend

.gitlab/ci/test-on-cng/main.gitlab-ci.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ workflow:
2323
- echo "${EXTRA_DEPLOY_VALUES}" > $CI_PROJECT_DIR/EXTRA_DEPLOY_VALUES
2424
- export GITLAB_DOMAIN="$(getent hosts docker | awk '{ print $1 }' | head -n1).nip.io"
2525
- |
26-
bundle exec cng create deployment "${DEPLOYMENT_TYPE:-kind}" \
26+
bundle exec orchestrator create deployment "${DEPLOYMENT_TYPE:-kind}" \
2727
--gitlab-domain "${GITLAB_DOMAIN}" \
2828
--timeout 5m \
2929
--chart-sha "${GITLAB_HELM_CHART_REF}" \
@@ -69,11 +69,11 @@ workflow:
6969
echo "SUITE_FAILED=true" >> "$QA_SUITE_STATUS_ENV_FILE"
7070
fi
7171
- cd qa
72-
- bundle exec cng log events --save
73-
- bundle exec cng log pods --save --containers all --no-fail-on-missing-pods
72+
- bundle exec orchestrator log events --save
73+
- bundle exec orchestrator log pods --save --containers all --no-fail-on-missing-pods
7474
# This command prints all the necessary arguments to be able to recreate the same deployment as on CI
7575
- |
76-
bundle exec cng create deployment "${DEPLOYMENT_TYPE}" \
76+
bundle exec orchestrator create deployment "${DEPLOYMENT_TYPE}" \
7777
--chart-sha "${GITLAB_HELM_CHART_REF}" \
7878
--ci \
7979
--print-deploy-args \
@@ -126,7 +126,7 @@ cng-helm-cache:
126126
allow_failure: true
127127
changes:
128128
- .gitlab/ci/qa-common/variables.gitlab-ci.yml
129-
- qa/gems/gitlab-cng/lib/gitlab/cng/lib/kind/cluster.rb
129+
- qa/gems/gitlab-orchestrator/lib/gitlab/orchestrator/lib/kind/cluster.rb
130130

131131
cng-instance:
132132
extends:

app/assets/javascripts/ml/model_registry/components/delete_model_disclosure_dropdown_item.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ export default {
5959
i18n: {
6060
actionPrimaryText: s__('MlModelRegistry|Delete model'),
6161
deleteConfirmationText: s__(
62-
'MlExperimentTracking|Are you sure you would like to delete this model?',
62+
'MlModelRegistry|Are you sure you would like to delete this model?',
6363
),
6464
deleteConfirmationNote: s__(
65-
'MlExperimentTracking|Deleting this model also deletes all its versions, including any imported or uploaded artifacts, and their associated settings.',
65+
'MlModelRegistry|Deleting this model also deletes all its versions, including any imported or uploaded artifacts, and their associated settings.',
6666
),
6767
},
6868
};

app/assets/javascripts/ml/model_registry/components/model_version_list.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,11 @@ export default {
9393
sortableFields: [
9494
{
9595
orderBy: LIST_KEY_VERSION,
96-
label: s__('MlExperimentTracking|Version'),
96+
label: s__('MlModelRegistry|Version'),
9797
},
9898
{
9999
orderBy: LIST_KEY_CREATED_AT,
100-
label: s__('MlExperimentTracking|Created'),
100+
label: s__('MlModelRegistry|Created'),
101101
},
102102
],
103103
emptyState: {

app/assets/javascripts/ml/model_registry/constants.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ export const SORT_KEY_ORDER = 'DESC';
99
export const BASE_SORT_FIELDS = Object.freeze([
1010
{
1111
orderBy: 'name',
12-
label: s__('MlExperimentTracking|Name'),
12+
label: s__('MlModelRegistry|Name'),
1313
},
1414
{
1515
orderBy: LIST_KEY_CREATED_AT,
16-
label: s__('MlExperimentTracking|Created'),
16+
label: s__('MlModelRegistry|Created'),
1717
},
1818
]);
1919

app/assets/javascripts/super_sidebar/components/help_center.vue

+5-3
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ export default {
239239
<span class="gl-flex gl-flex-col gl-leading-24">
240240
<span class="gl-text-sm gl-font-bold">
241241
{{ item.text }}
242-
<gl-emoji data-name="rocket" />
242+
<gl-emoji data-name="rocket" aria-hidden="true" />
243243
</span>
244244
<span>
245245
<span class="gl-mr-2">{{ item.version }}</span>
@@ -258,8 +258,10 @@ export default {
258258
<template #list-item="{ item }">
259259
<span class="-gl-my-1 gl-flex gl-items-center gl-justify-between">
260260
{{ item.text }}
261-
<gl-badge v-if="item.count" pill variant="info">{{ item.count }}</gl-badge>
262-
<kbd v-else-if="item.shortcut" class="flat">?</kbd>
261+
<gl-badge v-if="item.count" pill variant="info" aria-hidden="true">{{
262+
item.count
263+
}}</gl-badge>
264+
<kbd v-else-if="item.shortcut" aria-hidden="true" class="flat">?</kbd>
263265
</span>
264266
</template>
265267
</gl-disclosure-dropdown-group>

app/views/profiles/usage_quotas/index.html.haml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
= s_('UsageQuota|Usage of resources across your projects')
33

44
- content_for :usage_quotas_alerts do
5-
= render 'shared/shared_runners_minutes_limit', namespace: @namespace, usage_quotas_link_hidden: true, classes: 'gl-my-3'
5+
= render_if_exists 'shared/shared_runners_minutes_limit', namespace: @namespace, usage_quotas_link_hidden: true, classes: 'gl-my-3'
66

77
- content_for :usage_quotas_tabs do
88
= render_if_exists 'shared/usage_quotas/tabs_content/pipelines'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
class ScheduleIndexOnMergeRequestDiffsIdAndProjectId < Gitlab::Database::Migration[2.2]
4+
milestone '17.10'
5+
6+
INDEX_NAME = 'index_merge_request_diffs_on_project_id_and_id'
7+
8+
def up
9+
# rubocop:disable Migration/PreventIndexCreation -- This index will replace index_merge_request_diffs_on_project_id
10+
prepare_async_index :merge_request_diffs, [:project_id, :id], name: INDEX_NAME
11+
# rubocop:enable Migration/PreventIndexCreation
12+
end
13+
14+
def down
15+
unprepare_async_index :merge_request_diffs, [:project_id, :id], name: INDEX_NAME
16+
end
17+
end

db/schema_migrations/20250211220147

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
caf5f7c0160bc89a8dcbdcc371d432a446b57b90eb83ac41625ec89511a70613

doc/administration/gitaly/configure_gitaly.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,8 @@ reconfigure the GitLab application servers to remove the `default` storage becau
579579

580580
To work around the limitation:
581581

582-
1. Define an additional storage location on the new Gitaly service and configure the additional storage to be `default`.
582+
1. Define an additional storage location on the new Gitaly service and configure the additional storage to be `default`. The storage location must have a
583+
Gitaly service running and available to avoid issues with database migrations that expect working storages.
583584
1. In the [**Admin** area](../repository_storage_paths.md#configure-where-new-repositories-are-stored), set `default` to a weight of zero
584585
to prevent repositories being stored there.
585586

doc/development/ee_features.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ end
430430

431431
To override a method present in the CE codebase, use `prepend`. It
432432
lets you override a method in a class with a method from a module, while
433-
still having access the class's implementation with `super`.
433+
still having access to the class's implementation with `super`.
434434
435435
There are a few gotchas with it:
436436

doc/development/real_time.md

+31-28
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,32 @@ If you are not sure, ask for help in the [`#f_real-time` internal Slack channel]
2626

2727
{{< /alert >}}
2828

29+
## Working Safely with WebSockets
30+
31+
WebSockets are a relatively new technology at GitLab and you should code defensively when
32+
using a WebSocket connection.
33+
34+
### Backwards Compatibility
35+
36+
Treat the connection as ephemeral and ensure the feature you're building is backwards compatible. Ensure critical functionality degrades gracefully when a WebSocket connection isn't available.
37+
38+
You can work on the frontend and backend at the same time because updates over WebSockets
39+
are difficult to simulate without the necessary backend code in place.
40+
41+
However, always deploy backend changes first. It is strongly advised to package the backend
42+
and frontend changes in separate releases or to manage rollout with a Feature Flag, especially
43+
where a new connection is introduced.
44+
45+
This ensures that when the frontend starts subscribing to events, the backend is already prepared
46+
to service them.
47+
48+
### New Connections at Scale
49+
50+
Introducing a new WebSocket connection is particularly risky at scale. If you need to establish a
51+
connection on a new area of the site, perform the steps detailed in the
52+
[Introduce a new WebSocket Connection](#introduce-a-new-websocket-connection) section before going
53+
further.
54+
2955
## Build real-time view components
3056

3157
Prerequisites:
@@ -330,20 +356,7 @@ of the issue's fields changing, we could extend `Issues::UpdateService` to call
330356

331357
The real-time view component is now functional. Updates to an issue should now propagate immediately into the GitLab UI.
332358

333-
## Deploy real-time view components
334-
335-
WebSockets are a relatively new technology at GitLab, and supporting them at
336-
scale introduces some challenges. For that reason, new features should be rolled
337-
out using the instructions below.
338-
339-
### Shipping a real-time component
340-
341-
You can work on the frontend and backend at the same time, because updates over WebSockets
342-
are difficult to simulate without the necessary backend code in place.
343-
344-
However, it is safer to send changes in separate merge requests and deploy the backend changes first.
345-
This ensures that when the frontend starts subscribing to events, the backend is already prepared
346-
to service them.
359+
## Shipping a real-time component
347360

348361
### Reuse an existing WebSocket connection
349362

@@ -363,7 +376,7 @@ connections and on downstream services; such as Redis and the primary database.
363376
The first real-time feature to be fully enabled on GitLab.com was
364377
[real-time assignees](https://gitlab.com/gitlab-org/gitlab/-/issues/17589). By comparing
365378
peak throughput to the issue page against peak simultaneous WebSocket connections it is
366-
possible to crudely estimate that each 1 request per second adds
379+
possible to crudely estimate that each 1 request per second to a page adds
367380
approximately 4200 WebSocket connections.
368381

369382
To understand the impact a new feature might have, sum the peak throughput (RPS)
@@ -373,13 +386,13 @@ to the pages it originates from (`n`) and apply the formula:
373386
(n * 4200) / peak_active_connections
374387
```
375388

376-
Current active connections are visible on
377-
[this Grafana chart](https://dashboards.gitlab.net/d/websockets-main/websockets-overview?viewPanel=1357460996&orgId=1).
378-
379389
This calculation is crude, and should be revised as new features are
380390
deployed. It yields a rough estimate of the capacity that must be
381391
supported, as a proportion of existing capacity.
382392

393+
Current active connections are visible on
394+
[this Grafana chart](https://dashboards.gitlab.net/d/websockets-main/websockets-overview?viewPanel=1357460996&orgId=1).
395+
383396
### Graduated roll-out
384397

385398
New capacity may need to be provisioned to support your changes, depending on
@@ -399,16 +412,6 @@ of the feature flag ensures that effects can be observed on the
399412
1. Copy in a member of the Plan and Scalability teams to estimate a percentage-based
400413
roll-out plan.
401414

402-
### Backward compatibility
403-
404-
For the duration of the feature flag roll-out and indefinitely thereafter,
405-
real-time features must be backward-compatible, or at least degrade
406-
gracefully. Not all customers have Action Cable enabled, and further work
407-
needs to be done before Action Cable can be enabled by default.
408-
409-
Making real-time a requirement represents a breaking change, so the next
410-
opportunity to do this is version 15.0.
411-
412415
### Real-time infrastructure on GitLab.com
413416

414417
On GitLab.com, WebSocket connections are served from dedicated infrastructure,

doc/development/testing_guide/end_to_end/test_pipelines.md

+4-5
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ This Rake task:
3131

3232
The `e2e:test-on-cng` child pipeline runs tests against a [Cloud Native GitLab](https://gitlab.com/gitlab-org/build/CNG) installation.
3333

34-
Deployment is managed by the [`cng`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/gems/gitlab-cng/README.md)
35-
orchestrator tool, which you can also use to locally recreate CI/CD deployments.
34+
Deployment is managed by the [`orchestrator`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/gems/gitlab-orchestrator/README.md)
35+
CLI tool, which you can also use to locally recreate CI/CD deployments.
3636

3737
The `e2e:test-on-cng` child pipeline is executed in merge requests and is part of pre-merge validation lifecycle. If any test fails, you can't merge introduced
3838
code changes.
@@ -67,10 +67,9 @@ This stage is responsible for [allure test report](_index.md#allure-report) gene
6767

6868
To help with debugging:
6969

70-
- Each test job prints a list of arguments that you can pass to the [`cng`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/gems/gitlab-cng/README.md)
71-
orchestrator to exactly recreate the same deployment for local debugging.
70+
- Each test job prints a list of arguments that you can pass to the [`orchestrator`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/gems/gitlab-orchestrator/README.md) to exactly recreate the same deployment for local debugging.
7271
- Cluster events log and all pod logs are saved in E2E test job artifacts.
73-
- `cng` orchestrator automatically outputs all cluster events with errors in the case of failed deployment.
72+
- `orchestrator` automatically outputs all cluster events with errors in the case of failed deployment.
7473

7574
## `e2e:test-on-omnibus`
7675

locale/gitlab.pot

+12-12
Original file line numberDiff line numberDiff line change
@@ -36867,15 +36867,9 @@ msgstr ""
3686736867
msgid "MissingSSHKeyWarningLink|You won't be able to pull or push repositories via SSH until you add an SSH key to your profile"
3686836868
msgstr ""
3686936869

36870-
msgid "MlExperimentTracking|Are you sure you would like to delete this model?"
36871-
msgstr ""
36872-
3687336870
msgid "MlExperimentTracking|Create an experiment using MLflow"
3687436871
msgstr ""
3687536872

36876-
msgid "MlExperimentTracking|Created"
36877-
msgstr ""
36878-
3687936873
msgid "MlExperimentTracking|Created at"
3688036874
msgstr ""
3688136875

@@ -36900,9 +36894,6 @@ msgstr ""
3690036894
msgid "MlExperimentTracking|Deleting this experiment will also delete its runs and their associated metadata."
3690136895
msgstr ""
3690236896

36903-
msgid "MlExperimentTracking|Deleting this model also deletes all its versions, including any imported or uploaded artifacts, and their associated settings."
36904-
msgstr ""
36905-
3690636897
msgid "MlExperimentTracking|Deleting this run will delete the associated parameters, metrics, and metadata."
3690736898
msgstr ""
3690836899

@@ -36981,9 +36972,6 @@ msgstr ""
3698136972
msgid "MlExperimentTracking|Value"
3698236973
msgstr ""
3698336974

36984-
msgid "MlExperimentTracking|Version"
36985-
msgstr ""
36986-
3698736975
msgid "MlExperimentTracking|by %{author}"
3698836976
msgstr ""
3698936977

@@ -37011,6 +36999,9 @@ msgstr ""
3701136999
msgid "MlModelRegistry|Are you sure you want to delete this model version?"
3701237000
msgstr ""
3701337001

37002+
msgid "MlModelRegistry|Are you sure you would like to delete this model?"
37003+
msgstr ""
37004+
3701437005
msgid "MlModelRegistry|Artifact file creation failed"
3701537006
msgstr ""
3701637007

@@ -37062,6 +37053,9 @@ msgstr ""
3706237053
msgid "MlModelRegistry|Create/Import model"
3706337054
msgstr ""
3706437055

37056+
msgid "MlModelRegistry|Created"
37057+
msgstr ""
37058+
3706537059
msgid "MlModelRegistry|Creating a model"
3706637060
msgstr ""
3706737061

@@ -37086,6 +37080,9 @@ msgstr ""
3708637080
msgid "MlModelRegistry|Delete version %{versionName}"
3708737081
msgstr ""
3708837082

37083+
msgid "MlModelRegistry|Deleting this model also deletes all its versions, including any imported or uploaded artifacts, and their associated settings."
37084+
msgstr ""
37085+
3708937086
msgid "MlModelRegistry|Deleting this version also deletes all of its imported or uploaded artifacts and its settings."
3709037087
msgstr ""
3709137088

@@ -37224,6 +37221,9 @@ msgstr ""
3722437221
msgid "MlModelRegistry|Must be unique. May not contain spaces."
3722537222
msgstr ""
3722637223

37224+
msgid "MlModelRegistry|Name"
37225+
msgstr ""
37226+
3722737227
msgid "MlModelRegistry|New version"
3722837228
msgstr ""
3722937229

qa/Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ group :development do
4848
end
4949

5050
group :ci do
51-
gem 'gitlab-cng', path: 'gems/gitlab-cng'
51+
gem 'gitlab-orchestrator', path: 'gems/gitlab-orchestrator'
5252
gem 'junit_merge', '~> 0.1.2'
5353
end

qa/Gemfile.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ PATH
88
rake (~> 13.0)
99

1010
PATH
11-
remote: gems/gitlab-cng
11+
remote: gems/gitlab-orchestrator
1212
specs:
13-
gitlab-cng (0.0.1)
13+
gitlab-orchestrator (0.0.1)
1414
activesupport (>= 7)
1515
rainbow (~> 3.1)
1616
require_all (~> 3.0)
@@ -366,7 +366,7 @@ DEPENDENCIES
366366
faraday-retry (~> 2.2, >= 2.2.1)
367367
fog-core (= 2.1.0)
368368
fog-google (~> 1.24, >= 1.24.1)
369-
gitlab-cng!
369+
gitlab-orchestrator!
370370
gitlab-qa (~> 15, >= 15.3.0)
371371
gitlab-utils!
372372
gitlab_quality-test_tooling (~> 2.8.0)

0 commit comments

Comments
 (0)