UNCLASSIFIED - NO CUI

GitLab 19 Upgrade

This MR contains the following updates:

Package Update Change
bigbang/bb-common minor 1.1.0 -> 1.4.0
gitlab/gitlab (source) major 9.11.8 -> 10.1.3
Bundled PostgreSQL, Redis, and MinIO charts/images removed External services required by GitLab chart 10
bigbang/gluon patch 1.1.2 -> 1.1.3
registry1.dso.mil/ironbank/big-bang/cypress (source) minor 15.17.0 -> 15.18.1
registry1.dso.mil/gitlab/gitlab-org/build/cng/certificates (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/cfssl-self-sign (source) major 1.6.1 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitaly (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-base (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-container-registry (source) major 18.11.7 -> v4.40.1-gitlab-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-exporter (source) major 18.11.7 -> 16.8.0-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-mailroom (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-pages (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-shell (source) major 18.11.7 -> v14.54.0-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-sidekiq-ee (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-toolbox-ee (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-webservice-ee (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-workhorse-ee (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-kas (source) major 18.11.7 -> v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitaly-init-cgroups (source) new v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-geo-logcursor (source) new v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-openbao (source) new v19.1.3-ubi
registry1.dso.mil/gitlab/gitlab-org/build/cng/gitlab-zoekt (source) new v19.1.3-ubi
registry1.dso.mil/ironbank/opensource/nginx/nginx (source) new 1.30.4
registry1.dso.mil/gitlab/gitlab-org/build/cng/kubectl (source) major 18.11.7 -> v19.1.3-ubi

Verified Publisher image migration: The GitLab image rows also move repositories from registry1.dso.mil/ironbank/gitlab/gitlab/* to Verified Publisher CNG UBI images under registry1.dso.mil/gitlab/gitlab-org/build/cng/*. Because the Verified Publisher images use upstream component-specific tag schemes, Renovate’s generated major classification is not a direct semantic-version comparison for every component; the left-hand tag belongs to the former Iron Bank image and the right-hand tag to the replacement Verified Publisher image. Disabled-by-default Gitaly cgroups, Geo log cursor, OpenBao, and Zoekt workloads use the same VP release images; Zoekt gateways use Iron Bank Nginx.

Complete MR checklist

Assignee

  • Followed upgrade instructions outlined in docs/DEVELOPMENT_MAINTENANCE.md
  • Update Docs with new/updated steps as needed
  • Tested and Validated Changes made with supporting info like logs or screenshots from test pipelines

Add supporting info below

Fresh staged upgrade: GitLab and GitLab Runner HelmReleases

GitLab and GitLab Runner HelmReleases ready on the final deployment

Fresh staged upgrade: GitLab namespace pods

GitLab namespace application pods healthy with zero restarts

Redis HelmRelease

Redis HelmRelease ready

Redis namespace pods

Redis namespace pods healthy

Garage HelmRelease

Garage HelmRelease ready

Garage namespace pods

Garage namespace pods healthy

CloudNativePG operator HelmRelease

CloudNativePG operator HelmRelease ready on the final deployment

CloudNativePG operator namespace pods

CloudNativePG operator pod healthy with zero restarts on the final deployment

PostgreSQL operand HelmRelease (wrapper/post-renderer)

PostgreSQL operand HelmRelease ready with wrapper 0.4.15

PostgreSQL operand namespace pods

Single CloudNativePG PostgreSQL primary healthy with no helper or readiness pods

Pre-upgrade and post-upgrade backups

Verified GitLab 18 and GitLab 19 backup archives

Batched background migrations

All 19 batched background migrations finished

GitLab 19.1.3 version

GitLab v19.1.3-ee Help page

Upgraded repository and LFS content

Preserved GitLab 18 files plus GitLab 19 commits and LFS content

Pre-upgrade and post-upgrade pipelines and artifacts

All three runner pipelines passed with downloadable artifacts

Preserved issue attachment

Preserved issue attachment

Preserved package registry content

Preserved generic package

Preserved container registry content

Preserved container image repository

P1 CAC SSO session

Authenticated P1 CAC SSO home

P1 CAC SSO user profile

P1 CAC SSO user profile

P1 CAC SSO profile update

P1 CAC SSO profile update persisted

Ambient topology validation

Ambient topology validation

GitLab application script test

Successful application script test

GitLab webservice Prometheus target

Healthy GitLab webservice Prometheus target

Validation summary

The GitLab package remains external-service-only. It adds no PostgreSQL, Redis, Garage, or CloudNativePG subcharts, templates, custom resources, or consumer defaults. For internal validation only, the temporary Big Bang umbrella validation MR !8036 provisions the dependencies as independent releases through the umbrella packages: mechanism:

  • The Big Bang maintained CloudNativePG operator runs in the cloudnative-pg namespace.
  • Big Bang wrapper chart 0.4.15 is the postgresql HelmRelease. Flux replaces its placeholder ConfigMap in memory with the single PostgreSQL 17 Cluster/postgresql resource before Helm applies or stores the manifest, so no placeholder ConfigMap is installed. The release depends on CloudNativePG and waits for the Cluster's Ready=True condition; CloudNativePG generates Secret/postgresql-app.
  • The Big Bang maintained Redis and Garage releases run in the redis and garage namespaces.
  • GitLab depends on the PostgreSQL, Redis, and Garage HelmReleases. A CI-only Kyverno policy copies the Redis and CloudNativePG-generated credentials and transforms Garage's test-only source Secret into the GitLab namespace.

These dependencies and credentials exist only in package and umbrella test profiles. They are not part of this GitLab chart and are not a supported consumer development or production persistence topology.

Static validation passed at package head 96f0d3cb: Helm dependencies are synchronized, chart linting and standard/ambient rendering pass, all package Helm unit tests pass (5/5), both test-value files parse successfully, the chart/changelog versions agree, git diff --check passes, and Renovate 43.268.4 validates the configuration and extracts the expected dependencies.

A fresh staged upgrade was completed from GitLab 18.11.7 / chart 9.11.8-bb.1 to GitLab 19.1.3 / chart 10.1.3-bb.0. The GitLab 18 deployment was seeded with repository history, Git LFS, an issue attachment, a generic package, a Container Registry image, a Runner pipeline, and an artifact. PostgreSQL 17.10, Redis, and Garage were installed and populated before GitLab 18 was moved off its bundled services; GitLab 18 and a fresh backup were then verified against those external services before the GitLab 19 upgrade.

The upgraded deployment completed all 513 regular database migrations and all 19 batched background migrations. A GitLab 19 backup and restore was also exercised: pre-backup application data survived, a post-backup sentinel commit was removed by the restore, and a fresh post-restore Runner pipeline and artifact passed. Existing GitLab 18 and new GitLab 19 repository, LFS, upload, package, Registry, and pipeline data were verified; new Git, LFS, package, upload, Registry push/pull/delete, and backup operations also passed.

The final deployment was validated with both sidecar and ambient service-mesh profiles. GitLab, GitLab Runner, CloudNativePG, PostgreSQL, Redis, and Garage reconciled Ready; application pods are healthy with no active failures. Verified Publisher image pulls, P1 CAC SSO login and profile updates, the documented GitLab application script test, and the GitLab Prometheus target all passed.

The approved skip-job-upgrade label remains necessary because the generic one-step CI upgrade lane cannot perform GitLab 19's required staged data migration away from the removed bundled services. The full staged upgrade, backup, restore, and application checks above provide the upgrade evidence for this major release. Required exact-head pipeline results remain visible in the GitLab widgets for package MR !473 and temporary umbrella validation MR !8036.

Reviewer only

  • Tested and Validated changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This MR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this MR, check this box

This MR was automatically generated by Renovate Bot.

Upgrade Notices

GitLab 19 / chart 10 removes the bundled PostgreSQL, Redis, and MinIO charts. Helm does not migrate their data.

  • Consumers using any bundled service must remain on the latest GitLab 18.11 / chart 9.11 patch while following GitLab's bundled-chart migration procedure. Verify GitLab and a fresh backup against the replacement services before upgrading to chart 10. Retain the old PVCs, Secrets, and recovery artifacts until GitLab 19 and a new backup are verified.
  • Consumers already using GitLab 19-compatible external PostgreSQL 17, Redis 7.0 or later (7.2 recommended) or Valkey 7.2 or later, and GitLab-supported external object storage do not need a service-data migration solely because the bundled charts were removed. They must still complete the normal GitLab 19 pre-upgrade checks, verify every external connection and bucket, finish pending migrations, and take a fresh verified backup.
  • This package does not deploy or support replacement PostgreSQL, Redis/Valkey, object-storage, or CloudNativePG resources for consumers. Configure GitLab-supported external services before upgrading. If CloudNativePG is selected, install and manage the Big Bang maintained CloudNativePG operator before creating the PostgreSQL Cluster; its lifecycle remains outside this GitLab package. For production, follow GitLab's Cloud Native Hybrid guidance.
  • Build clean chart 10 values instead of reusing chart 9 values. Remove obsolete global.minio, upstream.minio, upstream.postgresql, and upstream.redis keys while retaining every supported override. In particular, preserve the existing Gitaly persistence size because the StatefulSet volume-claim template is immutable. Render and diff the chart 10 StatefulSets before reconciling.
  • Follow the Big Bang-specific GitLab 19 upgrade notes. Inventory all optional databases and object-storage buckets because the default GitLab backup does not cover every site-specific data store. Once GitLab 19 database migrations run, do not start GitLab 18 against that database; rollback requires matching GitLab, database, and object-storage recovery points.
  • GitLab 19 removes the OAuth Resource Owner Password Credentials grant. Replace integrations using that grant before upgrading. If bundled Spamcheck is enabled, deploy Spamcheck separately. GitLab 19.1 also drops Elasticsearch 7.x support for Advanced Search; move to a supported Elasticsearch or OpenSearch release first.
  • GitLab application images move from Iron Bank to Verified Publisher CNG images under registry1.dso.mil/gitlab/gitlab-org/build/cng/*. No separate application or data migration is required for this image-source change, but Registry1 credentials, mirrors, policies, and allowlists must permit the new path.
  • Review the GitLab 19 breaking changes, deprecations and removals, chart 10 upgrade notes, and GitLab 19 upgrade changes for site-specific impacts.

Umbrella Branch

gitlab-19-external-ci-dependencies

Linked issues

#412 (closed)

Edited by Matt Vasquez

Merge request reports

Loading