index.md 3.87 KB
Newer Older
1
# Installing GitLab on Kubernetes
2
> Officially supported cloud providers are Google Container Service and Azure Container Service.
3
4

The easiest method to deploy GitLab in [Kubernetes](https://kubernetes.io/) is
Joshua Lambert's avatar
Joshua Lambert committed
5
to take advantage of GitLab's Helm charts. [Helm] is a package
6
7
8
9
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.

Joshua Lambert's avatar
Joshua Lambert committed
10
11
GitLab provides [official Helm Charts](#official-gitlab-helm-charts-recommended) which is the recommended way to run GitLab with Kubernetes.

Joshua Lambert's avatar
Joshua Lambert committed
12
There are also two other sets of charts:
Joshua Lambert's avatar
Joshua Lambert committed
13
* Our [upcoming cloud native Charts](#upcoming-cloud-native-helm-charts), which are in development but will eventually replace the current official charts.
Joshua Lambert's avatar
Joshua Lambert committed
14
* [Community contributed charts](#community-contributed-helm-charts). These charts should be considered deprecated, in favor of the official charts.
Joshua Lambert's avatar
Joshua Lambert committed
15
16

## Official GitLab Helm Charts (Recommended)
Joshua Lambert's avatar
Joshua Lambert committed
17
> *Note*: These charts will eventually be replaced by the [cloud native charts](#upcoming-cloud-native-helm-charts), which are presently in development.
18

Joshua Lambert's avatar
Updates    
Joshua Lambert committed
19
The best way to deploy GitLab on Kubernetes is to use the [gitlab-omnibus](gitlab_omnibus.md) chart. It includes everything needed to run GitLab, including: a [Runner](https://docs.gitlab.com/runner/), [Container Registry](https://docs.gitlab.com/ee/user/project/container_registry.html#gitlab-container-registry), [automatic SSL](https://github.com/kubernetes/charts/tree/master/stable/kube-lego), and an [Ingress](https://github.com/kubernetes/ingress/tree/master/controllers/nginx). This chart is in beta while [additional features](https://gitlab.com/charts/charts.gitlab.io/issues/68) are being completed.
Joshua Lambert's avatar
Joshua Lambert committed
20
21
22

To deploy just the GitLab Runner, utilize the [gitlab-runner](gitlab_runner_chart.md) chart. It offers a quick way to configure and deploy the Runner on Kubernetes, regardless of where your GitLab server may be running.

Joshua Lambert's avatar
Joshua Lambert committed
23
If advanced configuration of GitLab is required, the beta [gitlab](gitlab_chart.md) chart can be used which deploys the GitLab service along with optional Posgres and Redis. It offers extensive configuration, but requires deep knowledge of Kubernetes and Helm to use.
Joshua Lambert's avatar
Joshua Lambert committed
24
25
26

These charts utilize our [GitLab Omnibus Docker images](https://docs.gitlab.com/omnibus/docker/README.html). You can report any issues and feedback related these charts at
https://gitlab.com/charts/charts.gitlab.io/issues.
27

Joshua Lambert's avatar
Joshua Lambert committed
28
## Upcoming Cloud Native Helm Charts
29

Joshua Lambert's avatar
Joshua Lambert committed
30
31
32
33
34
35
36
37
38
GitLab is working towards a building a [cloud native deployment method](https://gitlab.com/charts/helm.gitlab.io/blob/master/README.md). A key part of this effort is to isolate each service into it's [own Docker container and Helm chart](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2420), rather than utilizing the all-in-one container image of the [current charts](#official-gitlab-helm-charts-recommended).

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](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2420).
39

Joshua Lambert's avatar
Joshua Lambert committed
40
## Community Contributed Helm Charts
41

Joshua Lambert's avatar
Updates    
Joshua Lambert committed
42
The community has also [contributed GitLab charts](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ce) to the [Helm Stable Repository](https://github.com/kubernetes/charts#repository-structure). These charts should be considered [deprecated](https://github.com/kubernetes/charts/issues/1138) in favor of the [official Charts](#official-gitlab-helm-charts-recommended).
Joshua Lambert's avatar
Joshua Lambert committed
43

44
45
[chart]: https://github.com/kubernetes/charts
[helm]: https://github.com/kubernetes/helm/blob/master/README.md