index.md 5.48 KB
Newer Older
1
# Installing GitLab on Kubernetes
2
> **Note**: These charts have been tested on Google Container Engine and Azure Container Service. Other Kubernetes installations may work as well, if not please [open an issue](https://gitlab.com/charts/charts.gitlab.io/issues).
3

4
The easiest method to deploy GitLab on [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.

10
## Chart Overview
Joshua Lambert's avatar
Joshua Lambert committed
11

Joshua Lambert's avatar
updates    
Joshua Lambert committed
12
13
* **[GitLab-Omnibus](gitlab_omnibus.md)**: The best way to run GitLab on Kubernetes today. It is suited for small to medium deployments, and is in beta while support for backups and other features are added.
* **[Cloud Native Charts](https://gitlab.com/charts/helm.gitlab.io/blob/master/README.md)**: The next generation of charts, currently in development. Will support large deployments, with horizontal scaling of individual GitLab components.
14
15
16
17
* Other Charts
  * [GitLab Runner Chart](#gitlab-runner-chart): For deploying just the GitLab Runner.
  * [Advanced GitLab Installation](#advanced-gitlab-installation): Provides additional deployment options, but provides less functionality out-of-the-box. It's beta, no longer actively developed, and will be deprecated by [gitlab-omnibus](#gitlab-omnibus-chart-recommended) once it supports these options.
  * [Community Contributed Charts](#community-contributed-charts): Community contributed charts, deprecated by the official GitLab charts.
Joshua Lambert's avatar
Joshua Lambert committed
18

19
20
## GitLab-Omnibus Chart (Recommended)
> **Note**: This chart is in beta while [additional features](https://gitlab.com/charts/charts.gitlab.io/issues/68) are being added.
Joshua Lambert's avatar
Joshua Lambert committed
21

Joshua Lambert's avatar
Joshua Lambert committed
22
This chart is the best available way to operate GitLab on Kubernetes. It deploys and configures nearly all features of GitLab, including: a [Runner](https://docs.gitlab.com/runner/), [Container Registry](../../user/project/container_registry.html#gitlab-container-registry), [Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/), [automatic SSL](https://github.com/kubernetes/charts/tree/master/stable/kube-lego), and a [load balancer](https://github.com/kubernetes/ingress/tree/master/controllers/nginx). It is based on our [GitLab Omnibus Docker Images](https://docs.gitlab.com/omnibus/docker/README.html).
Joshua Lambert's avatar
Joshua Lambert committed
23

24
Once the [cloud native charts](#upcoming-cloud-native-helm-charts) are ready for production use, this chart will be deprecated. Due to the difficulty in supporting upgrades to the new architecture, migrating will require exporting data out of this instance and importing it into the new deployment.
25

26
Learn more about the [gitlab-omnibus chart.](gitlab_omnibus.md)
Joshua Lambert's avatar
Joshua Lambert committed
27

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

Joshua Lambert's avatar
updates    
Joshua Lambert committed
30
GitLab is working towards building a [cloud native GitLab chart](https://gitlab.com/charts/helm.gitlab.io/blob/master/README.md). A key part of this effort is to isolate each service into its [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).
Joshua Lambert's avatar
Joshua Lambert committed
31

32
33
34
35
36
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.
Joshua Lambert's avatar
Joshua Lambert committed
37

38
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). We do not expect these to be production ready before the second half of 2018.
Joshua Lambert's avatar
Joshua Lambert committed
39

Joshua Lambert's avatar
updates    
Joshua Lambert committed
40
41
Learn more about the [cloud native GitLab chart.](https://gitlab.com/charts/helm.gitlab.io/blob/master/README.md)

42
## Other Charts
Joshua Lambert's avatar
Joshua Lambert committed
43

44
### GitLab Runner Chart
45

Joshua Lambert's avatar
Joshua Lambert committed
46
If you already have a GitLab instance running, inside or outside of Kubernetes, and you'd like to leverage the Runner's [Kubernetes capabilities](https://docs.gitlab.com/runner/executors/kubernetes.html), it can be deployed with the GitLab Runner chart.
Joshua Lambert's avatar
Joshua Lambert committed
47

48
Learn more about [gitlab-runner chart.](gitlab_runner_chart.md)
49

50
### Advanced GitLab Installation
Joshua Lambert's avatar
Joshua Lambert committed
51

52
53
54
If advanced configuration of GitLab is required, the beta [gitlab](gitlab_chart.md) chart can be used which deploys the core GitLab service along with optional Postgres and Redis. It offers extensive configuration, but offers limited functionality out-of-the-box; it's lacking Pages support, the container registry, and Mattermost. It requires deep knowledge of Kubernetes and Helm to use.

This chart will be deprecated and replaced by the [gitlab-omnibus](gitlab_omnibus.md) chart, once it supports [additional configuration options](https://gitlab.com/charts/charts.gitlab.io/issues/68). It's beta quality, and since it is not actively under development, it will never be GA.
Joshua Lambert's avatar
Joshua Lambert committed
55

56
Learn more about the [gitlab chart.](gitlab_chart.md)
57

58
### Community Contributed Charts
59

Joshua Lambert's avatar
Joshua Lambert committed
60
The community has also contributed GitLab [CE](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ce) and [EE](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ee) charts 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](gitlab_omnibus.md).
Joshua Lambert's avatar
Joshua Lambert committed
61

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