- Docker Container Images
- The GitLab Chart
- Design Decisions
We plan to support three tiers of components:
- Docker Containers
- Scheduler (Kubernetes)
- Higher level configuration tool (Helm)
The main method customers would use to install would be the Helm Chart in this repository. At some point in the future, we may also offer other deployment methods like Amazon CloudFormation or Docker Swarm.
As a foundation, we will be creating a Docker container for each service. This will allow easier horizontal scaling with reduced image size and complexity. Configuration should be passed in a standard way for Docker, perhaps environment variables or a mounted file. This provides a clean common interface with the scheduler software.
The GitLab application is built using Docker images that contain GitLab specific services. The build environments for these images can be found in the CNG repository.
The following GitLab components have images in the CNG repository.
- GitLab Elasticsearch Indexer
- GitLab Exporter
- GitLab Shell
- GitLab task-runner
The following are forked charts which also use GitLab specific Docker images.
Docker images that are used for
initContainers and various
We leverage the following existing official containers for underlying services:
- Docker Distribution (Docker Registry 2.0)
- NGINX Ingress
This is the top level
gitlab chart, which configures all necessary resources
for a complete configuration of GitLab. This includes GitLab, PostgreSQL, Redis,
Ingress, and certificate management charts.
At this high level, a customer can make decisions like:
- Whether they want to use the embedded Postgres chart, or to use an external database like Amazon RDS for Postgres.
- To bring their own SSL certificates, or leverage Let’s Encrypt.
- To use a load balancer, or a dedicated Ingress.
Customers who would like to get started quickly and easily should begin with this chart.
The GitLab chart is made of multiple subcharts. These charts provide individual components of the GitLab software.
Subcharts included are :
A list of which components are deployed when using the chart, and configuration instructions if needed, is available on the architecture components list page.
Documentation of the decisions made regarding the architecture of these charts can be found in Design Decisions documentation