Timeline for switching the minimum PostgreSQL required to PG13
This issue is for discussing our timeline to switch the minimum required PostgreSQL to PG13.
Switching to PostgreSQL 13 will at least require to first switch to PG13 in GitLab.com and all major cloud providers supporting it.
Our timeline will also depend on the new features provided and the performance and availability/reliability gains from doing so.
Current status
- (Omnibus) We are currently (%14.8) bundling PostgreSQL 13 with omnibus as opt-in for fresh installs (omnibus-gitlab#5507 (closed)) (with no HA or Geo), but we do not require it.
- [Completed] Verification for HA setups (omnibus-gitlab#6132 (closed))
- [Completed] Verification of Geo installation with PostgreSQL 13 (omnibus-gitlab#6131 (closed))
- [Pending] Verification of upgrade procedure for PostgreSQL 13 on Geo installations (omnibus-gitlab#6133 (closed))
- (GitLab.com) GitLab.com runs on PostgreSQL 12
- Scheduled upgrade to PostgreSQL 13 - Prepare upgrade to PG13 Q3, execute the upgrade early Q4 (meeting notes)
- (Cloud Databases) Most managed database services offer a PG13 option, but not all:
- Cloud SQL supports PG13 (link)
- Amazon RDS and Amazon Aurora support PostgreSQL 13
- Azure Flexible Server supports PostgreSQL 13
- Azure Single server does not support PostgreSQL 13 (nor PG12 - gitlab-com/Product#2685)
- Internal discussion on Azure Single server (gitlab-org/quality/reference-architectures#86)
Upgrade Plan
PostgreSQL 13 specific actions:
- GitLab.com plan for 2022 - Prepare upgrade to PG13 Q3, execute the upgrade early Q4 (meeting notes)
- PostgreSQL 12 will remain the minimum supported PostgreSQL version for GitLab 15.x (no changes)
- In 15.0 we announce the deprecation of PostgreSQL 12 with a removal date of May 2023 (GitLab 16.0).
- In GitLab 16.0, PostgreSQL 13 will become the minimum supported PostgreSQL version
- PostgreSQL 13 becomes the default for Omnibus fresh installs on 15.0
Setup yearly cadence going forward (GitLab 16+):
-
With every major GitLab version we will be increasing the minimum required PostgreSQL version to the next major version.
For example, if we follow the proposed plan, in GitLab 17.0 PostgreSQL 14 will become the minimum supported PostgreSQL version, in GitLab 18.0 PostgreSQL 15 will become the minimum supported PostgreSQL version, etc
-
We will be announcing the deprecation of the current minimum PostgreSQL version one year in advance, with the release of each major version of GitLab.
For example, in GitLab 15.0 we will announce the deprecation of PG12 (to be removed in GitLab 16.0), in GitLab 16.0 we will announce the deprecation of PG13 (to be removed in GitLab 17.0), etc
-
GitLab.com will be upgrading to the next major version every year during Q4 - Prepare upgrade in Q3 of every year. Execute upgrade during Q4
-
Optional support for the next major PG version will be added to Omnibus with the release of each major version of GitLab. The next major PG version will become the default for fresh installations in the middle of the release cycle (~ minor version
.6
)For example, in GitLab
16.0
we'll add optional support for PostgreSQL 14 and it will become the default for fresh installations around16.6
.This is not required for GitLab 15.x as we are going to remain to PG12 as the minimum and support for PG13 will be added earlier this year (GitLab 15.0).
At a glance:
GitLab Version | Minimum Supported Version | Optionally Supported Version (Omnibus fresh installs) | Omnibus Default | Release notes | GitLab.com |
---|---|---|---|---|---|
15.0 | PG12 | PG13 | PG13 | Support for PG12 will be removed in 16.0 | |
Upgrade to PG13 early Q4 2022 | |||||
16.0 | PG13 | PG14 | PG13 | Support for PG13 will be removed in 17.0 | |
16.6 | PG13 | PG14 | PG14 | Upgrade to PG14 early Q4 2023 | |
17.0 | PG14 | PG15 | PG14 | Support for PG14 will be removed in 18.0 | |
17.6 | PG14 | PG15 | PG15 | Upgrade to PG15 early Q4 2024 |