Add support for PostgreSQL 14
### Summary PostgreSQL 14 was released [September 30th, 2021](https://www.postgresql.org/about/news/postgresql-14-released-2318/). We should add support for PG14 starting in %"16.0" when PG12 is being removed, so that users wanting to benefit from the enhancements introduced in PG14 can easily do so. See the [PG13 epic](https://gitlab.com/groups/gitlab-org/-/epics/3832 "Add support for PostgreSQL 13") for tasks that need to be completed. We will need to create a similar list of issues for this epic. Details on how often we upgrade postgresql is documented here: https://about.gitlab.com/handbook/engineering/development/enablement/data_stores/database/postgresql-upgrade-cadence.html ### Phased plan * [x] In %"15.11" add PG14 to CI testing to test for compatibility. * [x] In %"16.2" package PG14 in Omnibus and the Helm chart as an opt-in version for new, single node installs. - [x] %"16.0" Helm chart MR for PG 14: https://gitlab.com/gitlab-org/charts/gitlab/-/merge_requests/3143+ * [ ] In 16.5 and 16.6 test PG14 with upgrades, multi node installs, failover with Patroni, and Geo and announce general support in TBD. - [ ] In `16.7` default to PostgreSQL 14 for new installs of GitLab * [ ] In `16.TDB` auto upgrade non-HA users to PG14 * [ ] In `17.0` re-validate HA upgrade and PG14 becomes the minimum required version ### Requirements * [ ] Test using PG14 in fresh installs and upgrades. * [ ] Test the following install types: * [x] Single node * [x] Separate database node, omnibus managed * [x] PG HA with 3 or more database nodes and Patroni * [ ] GEO with one primary node, one secondary node (postgresql and geo-postgresql on the same secondary node) * [ ] Geo with one primary node, separate secondary nodes for postgresql, and geo-postgresql databases * [ ] Geo HA with a primary database ha cluster and one secondary database cluster and a seperate geo-postgresql database. * [ ] Geo HA with primary database ha cluster and one secondary database cluster and a seperate geo-postgresql patroni cluster on the secondary. * [ ] Test that backup and restore work ### Tasks In summary, key tasks include: * Include PostgreSQL 14 in the omnibus-gitlab package * Verify application works on PostgreSQL 14 * At a minimum, we'll want to run gitlab-qa against an instance using PostgreSQL 14 on each of the install types. * Verify backup and restore works. * Verify upgrade from 13 -\> 14 ### Announcements _This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc._ <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> *This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.* <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
epic