GitLab Operator

The GitLab Operator is an installation and management method that follows the Kubernetes Operator pattern.

Use the GitLab Operator to run GitLab in OpenShift or on another Kubernetes-compatible platform.

note
The GitLab Operator has known limitations and is only suitable for specific scenarios in production use.
caution
The default values of the GitLab custom resource are not intended for production use. With these values, GitLab Operator creates a GitLab instance where all services, including the persistent data, are deployed in a Kubernetes cluster, which is not suitable for production workloads. For production deployments, you must follow the Cloud Native Hybrid reference architectures. GitLab does not support any issues related to PostgreSQL, Redis, Gitaly, Praefect, or MinIO deployed inside of a Kubernetes Cluster.

Known issues

GitLab Operator does not support:

GitLab Operator has any other limitation of GitLab Chart. GitLab Operator relies on GitLab Chart to provision Kubernetes resources. Therefore, any limitation in GitLab Chart impacts GitLab Operator. Removing the GitLab Chart dependency from GitLab Operator is proposed in Cloud Native epic 64.

Installation

Instructions on how to install the GitLab Operator can be found in our installation document.

We list details of how we use Security Context Constraints in their respective document.

You should also be aware of the considerations for SSH access to Git, especially when using OpenShift.

Upgrading

Operator upgrades documentation demonstrates how to upgrade the GitLab Operator.

GitLab upgrades documentation demonstrates how to upgrade a GitLab instance, managed by the GitLab Operator.

Backup and restore

Backup and restore documentation demonstrates how to back up and restore a GitLab instance that is managed by the Operator.

Using RedHat certified images

RedHat certified images documentation demonstrates how to instruct the GitLab Operator to deploy images that have been certified by RedHat.

Developer Tooling

  • Developer guide: Outlines the project structure and how to contribute.
  • Versioning and Release Info: Records notes concerning versioning and releasing the operator.
  • Design decisions: This projects makes use of Architecture Decision Records, detailing the structure, functionality, and feature implementation of this Operator.
  • OpenShift Cluster Setup: Instructions for creating/configuring OpenShift clusters for Development purposes.