Support deploying GitLab on OpenShift - Beta (MVP)
OpenShift is a popular Kubernetes platform for organizations that have strict security requirements, such as federal government agencies and financial institutions. There are many customers interested in running GitLab itself on OpenShift, as documented in https://gitlab.com/groups/gitlab-org/-/epics/2068.
https://gitlab.com/groups/gitlab-org/-/epics/2068 addresses overall support for OpenShift, including deploying applications to OpenShift using GitLab, running GitLab runners on OpenShift, and using the GitLab Kubernetes integration to manage a cluster on OpenShift. This epic is specifically to address deploying GitLab itself on OpenShift.
The [Runner operator](https://gitlab.com/groups/gitlab-org/-/epics/4452) for OpenShift is in beta and [transitioning to GA](https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/3). It is available on the Operator Hub. Work is in progress to extend this operator and add a resource to deploy GitLab itself on OpenShift. This epic defines and groups the work remaining to reach a beta release of the GitLab resource.
### Acceptance criteria for beta (WIP)
- Must Have
- [x] The operator supports installing GitLab on OpenShift 4.0 and higher
- [x] The operator supports upgrading GitLab (https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/97)
- [x] Issues related to anyuid are mitigated and the solution is documented for end users (gitlab-org/gl-openshift/gitlab-operator#11, https://gitlab.com/gitlab-org/gl-openshift/documentation/-/merge_requests/7)
> GitLab containers normally run as static users, but OpenShift assigns an arbitrary UID that is used to start processes within a container. RedHat [recommends](https://docs.openshift.com/container-platform/4.4/openshift_images/create-images.html#images-create-guide-openshift_create-images) that directories and files be owned by the root group if processes in the image need to write to them.
- [x] A process exists for updating and releasing new versions of the operator itself (https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/118)
- [x] End user documentation exists to help users install, use, and update the operator (MVP in repo, https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/135, https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/merge_requests/137)
- Nice to have
- [x] The operator supports backing up and restoring GitLab data (https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/121, https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/66)
- [x] If possible, the operator consumes the GitLab Helm chart so that support for new GitLab features can be added to the Helm chart, without the additional need to add them to the operator [issue](https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator/-/issues/1)
### Additional notes
- OpenShift did not support Helm until OpenShift 4.3.
- GitLab can run with anyuid in 4.0
epic