Page MenuHomePhabricator

Upgrade GitLab to major version 19
Closed, ResolvedPublic

Description

In two month we have to upgrade to GitLab version 19. GitLab 19.0 is scheduled for May 21, 2026. This tasks tracks all deprecation.

A list of all deprecation in version 19: https://docs.gitlab.com/update/deprecations/?removal_milestone=19.0

See also update recommendations here: https://docs.gitlab.com/policy/maintenance/#upgrade-recommendations (which are not yet available for 19).

Deprecation affecting us:

Support for PostgreSQL 16 all instances updated to postgresql 17

Deprecation NOT affecting us:

ciJobTokenScopeAddProject GraphQL mutation is deprecated
Azure storage driver for the container registry
Container Registry AWS S3 Signature Version 2 support
Enforce page limit for unauthenticated Projects API requests
Linux package support for SUSE distributions
Linux package support for Ubuntu 20.04
Mattermost bundled with Linux package
Resource owner password credentials grant is deprecated
S3 storage driver (AWS SDK v1) for the container registry
Slack slash commands
Spamcheck support in the Linux package and GitLab Helm chart
Support for bundled PostgreSQL, Redis, and MinIO in GitLab Helm chart
Support for NGINX Ingress
Support for Redis 6
The ci_job_token_scope_enabled projects API attribute is deprecated
The heroku/builder:22 image is deprecated
Trending tab in Explore projects page is deprecated
Using app passwords with Bitbucket Cloud import GitLab API

Upgraded hosts:

Test instance:

  • gitlab-1001.devtools.eqiad1.wikimedia.cloud
  • gitlab-runner-1007.devtools.eqiad1.wikimedia.cloud
  • gitlab-runner-1008.devtools.eqiad1.wikimedia.cloud

Replicas:

  • gitlab1003.wikimedia.org
  • gitlab2002.wikimedia.org

Production:

  • gitlab1004.wikimedia.org
  • Trusted runners
  • Shared runners
  • Cloud runners MR opened

Details

Related Changes in Gerrit:
Related Changes in GitLab:
TitleReferenceAuthorSource BranchDest Branch
gitlab-runner: bump image version to alpine-v19.0.1repos/releng/gitlab-cloud-runner!618dancymain-I1890a725e7c1bbc65701526bb3cca9f0f707c8c1main
gitlab-runner: bump image version to alpine-v19.0.1repos/releng/gitlab-cloud-runner!615jeltogitlab-19-0main
Customize query in GitLab

Event Timeline

I went over all deprecation and removals and it looks like only Support for PostgreSQL 16 is affecting our installation.

GitLab follows an annual upgrade cadence for PostgreSQL.
Support for PostgreSQL 16 is scheduled for removal in GitLab 19.0. In GitLab 19.0, PostgreSQL 17 becomes the minimum required PostgreSQL version.
PostgreSQL 17 is available as of GitLab 18.9, and you can upgrade at any time before the removal of PostgreSQL 16 in GitLab 19.0.
If you are running a single PostgreSQL instance you installed by using the Linux package, an automatic upgrade may be attempted with 18.11. Make sure you have enough disk space to accommodate the upgrade.
For more information, see Upgrade packaged PostgreSQL server.

We are still using psql (PostgreSQL) 16.13 and the postgres version will be updated with GitLab 16.11 (so the next upgrade). It would be possible to upgrade Postgres independently with the following steps: https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server. But I'd try doing the integrated upgrade with version 16.11. After we migrated to GitLab 16.11 we should see Postgres 17 and all blockers for the major version upgrade should be resolved.

In T428842 postgresql was updated to version 17. So all blockers for the GitLab major version upgrade are resolved.

I'll update the test instance on Monday to version 19 for initial testing.

Change #1302101 had a related patch set uploaded (by Jelto; author: Jelto):

[operations/puppet@production] aptrepo: update gitlab and gitlab-runner to version 19.0

https://gerrit.wikimedia.org/r/1302101

Change #1302101 merged by Jelto:

[operations/puppet@production] aptrepo: update gitlab and gitlab-runner to version 19.0

https://gerrit.wikimedia.org/r/1302101

I updated gitlab-ce and gitlab-runner to 19.0 and proceed with updating the test hosts

The GitLab test instance was upgraded to version v19.0.2 successfully.

@brennen @dancy feel free to test anything on the test instance https://gitlab.devtools.wmcloud.org. I did not spot any critical breaking changes so far. I'll proceed with the upgrade next Monday June 22nd.

@brennen @dancy feel free to test anything on the test instance https://gitlab.devtools.wmcloud.org. I did not spot any critical breaking changes so far. I'll proceed with the upgrade next Monday June 22nd.

Thanks - will poke around.

All hosts were upgraded accidentally during an unrelated package upgrade. So all hosts are on 19.0, I also bumped the gitlab-runners to 19.0.1.

@brennen @dancy sorry for the unexpected upgrade.

I'll leave this task open in case there are any issues.

  Today at 10:08 AM
Hmm.. Gitlab upgrade broke Gerritlab.
..
anything my team should do?

No. I prepared a fix for Gerritlab: https://github.com/yaoyuannnn/gerritlab/pull/86

I'll close the task, all hosts are on version 19 and all breaking changes have been address (thanks for the gerritlab patch and the terraform update @dancy)