Add disconnected OpenShift installation page
What does this MR do?
Adds a page for installing the GitLab Operator and a GitLab instance on a disconnected OpenShift cluster, as agreed in #860 (comment 4021843648). The page covers the manifest and Helm installation methods, redirects pulls with an ImageTagMirrorSet or with image values, links the chart's custom images page, and leaves OLM out of scope.
The charts pull images by tag, so an ImageDigestMirrorSet alone redirects none of the default pulls. The page says so and shows the tag-based set that oc-mirror generates.
flowchart LR
N[Node pulls registry.gitlab.com/gitlab-org/...] --> S{ImageTagMirrorSet applied?}
S -- yes --> M[Mirror registry in your network]
S -- no --> X[Public registry, blocked]
M --> OK[Pod starts]
X --> F[ImagePullBackOff]Test plan
Each step ran on OpenShift 4.22.14 with Operator 3.5.0, chart 10.5.0, and egress to the public registries blocked. The GitLab CR used external PostgreSQL and Redis and turned off Gateway API. Unless an item says otherwise, it also turned off TLS, the registry, KAS, and GitLab Exporter.
- No mirror set: the Operator pod stays in
ImagePullBackOff. ImageTagMirrorSetwith the manifest or Helm install:Running.- Image values only:
Running. With a self-signed certificate and Routes,/users/sign_inreturns 200.global.image.registryalone leaves the shared-secrets pod inErrImagePull. ImageDigestMirrorSetalone:ImagePullBackOff. Withimage.digest, it pulls from the mirror.- Default components, with the registry, KAS, GitLab Exporter, a self-signed certificate, and S3:
Running, with every pod image from the mirror. - Mirror to disk, then from disk to the registry on the same host with egress blocked:
Running. - OpenShift Routes on the default-components install: with
global.ingress.enabled: true,/users/sign_inreturns 200 through the router. - cert-manager images mirrored the same way: Available.
Related issues
Relates to #860
The page's entry in the global navigation comes in the companion MR gitlab-org/technical-writing/docs-gitlab-com!2758 (merged).
Author's checklist
- Ensure the branch name starts with
docs-or ends with-docs, so only the docs-related CI jobs are included - Consider taking the GitLab Technical Writing Fundamentals course
- Follow the:
- Merge Request Title and Description are up to date, accurate, and descriptive
- MR targeting the appropriate branch
- MR has a green pipeline on GitLab.com
- When ready for review, MR is marked as ready (not a draft) and assigned to a reviewer
If you are only adding documentation, do not add any of the following labels:
~"feature"~"frontend"~"backend"~"bug"~"database"
These labels cause the MR to be added to code verification QA issues.
Review checklist
Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on Documentation Guidelines and the Style Guide.
- As soon as you begin reviewing, select Start a review on your first comment so the MR shows Reviewer started review.
- If the content requires it, ensure the information is reviewed by a subject matter expert.
- Technical writer review items:
- Ensure docs metadata is present and up-to-date.
- Ensure the appropriate labels are added to this MR.
- If relevant to this MR, ensure content topic type principles are in use, including:
- The headings should be something you'd do a Google search for. Instead of
Default behavior, say something likeDefault behavior when you close an issue. - The headings (other than the page title) should be active. Instead of
Configuring GDK, say something likeConfigure GDK. - Any task steps should be written as a numbered list.
- If the content still needs to be edited for topic types, you can create a follow-up issue with the docs-technical-debt label.
- The headings should be something you'd do a Google search for. Instead of
- 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.
An AI coding assistant wrote this change. The assistant also ran each described step on an OpenShift Local 4.22.14 cluster on a test VM, and ran vale, markdownlint-cli2, and lychee on the changed pages from the repository's lint configuration.