Omnibus deployments with older installed package levels for PostgreSQL only
What does this MR do?
This MR effectively proposes a pattern for deploying GitLab that we would then support.
It arises from a discussion about PostgreSQL extensions causing issues with zero-downtime updates for PostgreSQL and a ticket a large premium customer (SF,ZD - internal links) raised.
They were surprised to discover minor updates to PostgreSQL had occurred, and that there was then a mismatch between on-disk PostgreSQL and in-memory.
I raised #5815 and suggested:
If customers are using Omnibus as a distribution of PostgreSQL, and running a VM with just the database server on it, could they run an older Omnibus version than the rest of their fleet? Treat Omnibus purely as a distribution mechanism for PostgreSQL. Similar to how customers with external PostgreSQL may not do anything about upgrading it until or unless GitLab requires a major update.
Which I summarised as:
One random thought I introduce on there .. would upgrading Omnibus on a dedicated postgresql server be necessary if they accept the risks around bugs and security. (ie: just use it as a distribution of postgresql)
We really only enforce versions for major version upgrades, so as long as they track that, they will be fine (well, except for running a vulnerable db
😄 ). They could even run db only nodes using the omnibus-gitlab package, so they could still use our tooling when they are ready to upgrade.
In proposing this, I've restricted it to single-node installations of PostgreSQL.
Related issues
Author's checklist (required)
-
Follow the Documentation Guidelines and Style Guide. - If you have
developeraccess or higher (for example, GitLab team members or Core Team members)-
Apply the documentation label, plus: - The corresponding DevOps stage and group label, if applicable.
-
development guidelines when changing docs under
doc/development/*,CONTRIBUTING.md, orREADME.md. -
development guidelines and Documentation guidelines when changing docs under
development/documentation/*. - development guidelines and Description templates (.gitlab/*) when creating/updating issue and MR description templates.
-
Assign the designated Technical Writer.
-
Do not add the ~"feature", frontend, backend, ~"bug", or database labels if you are only updating documentation. These labels will cause the MR to be added to code verification QA issues.
When applicable:
-
Update the permissions table. -
Link docs to and from the higher-level index page, plus other related docs where helpful. -
Add GitLab's version history note(s). -
Add the product tier badge. -
Add/update the feature flag section. -
If you're changing document headings, search doc/*,app/views/*, andee/app/views/*for old headings replacing with the new ones to avoid broken anchors.
Review checklist
All reviewers can help ensure accuracy, clarity, completeness, and adherence to the Documentation Guidelines and Style Guide.
1. Primary Reviewer
-
Review by a code reviewer or other selected colleague to confirm accuracy, clarity, and completeness. This can be skipped for minor fixes without substantive content changes.
2. Technical Writer
-
Technical writer review. If not requested for this MR, must be scheduled post-merge. To request for this MR, assign the writer listed for the applicable DevOps stage. -
Ensure Technical Writing, documentation, and a docs::scoped label are added. -
Add docs-only when the only files changed are under doc/*. -
Add twdoing when starting work on the MR. -
Add twfinished if Technical Writing team work on the MR is complete but it remains open.
-
3. Maintainer
-
Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review. -
Ensure a release milestone is set. -
If there has not been a technical writer review, create an issue for one using the Doc Review template.