Installing GitLab on Kubernetes

Officially supported cloud providers are Google Container Service and Azure Container Service.

The easiest method to deploy GitLab in Kubernetes is to take advantage of GitLab's Helm charts. Helm is a package management tool for Kubernetes, allowing apps to be easily managed via their Charts. A Chart is a detailed description of the application including how it should be deployed, upgraded, and configured.

GitLab provides official Helm Charts which are the recommended way to run GitLab within Kubernetes.

There are also two other sets of charts:

Official GitLab Helm Charts

This chart is the best available way to operate GitLab on Kubernetes. It deploys and configures nearly all features of GitLab, including: a Runner, Container Registry, Mattermost, automatic SSL, and a load balancer. It is based on our GitLab Omnibus Docker Images.

Deploying GitLab on Kubernetes

Note: This chart will eventually be replaced by the cloud native charts, which are presently in development.

The best way to deploy GitLab on Kubernetes is to use the gitlab-omnibus chart.

It includes everything needed to run GitLab, including: a Runner, Container Registry, automatic SSL, and an Ingress. This chart is in beta while additional features are being completed.

Deploying just the GitLab Runner

To deploy just the GitLab Runner, utilize the gitlab-runner chart.

It offers a quick way to configure and deploy the Runner on Kubernetes, regardless of where your GitLab server may be running.

Advanced deployment of GitLab

Note: This chart will be replaced by the gitlab-omnibus chart, once it supports additional configuration options.

If you already have a GitLab instance running, inside or outside of Kubernetes, and you'd like to leverage the Runner's Kubernetes capabilities, it can be deployed with the GitLab Runner chart.

For most deployments we recommend using our gitlab-omnibus chart.

Upcoming Cloud Native Helm Charts

GitLab is working towards a building a cloud native deployment method. A key part of this effort is to isolate each service into it's own Docker container and Helm chart, rather than utilizing the all-in-one container image of the current charts.

By offering individual containers and charts, we will be able to provide a number of benefits:

  • Easier horizontal scaling of each service
  • Smaller more efficient images
  • Potential for rolling updates and canaries within a service
  • and plenty more.

This is a large project and will be worked on over the span of multiple releases. For the most up to date status and release information, please see our tracking issue.

Community Contributed Helm Charts

The community has also contributed GitLab charts to the Helm Stable Repository. These charts should be considered deprecated in favor of the official Charts.