Gitlab Omnibus deployment.
Add the repository to Helm:
$ helm repo add homelab https://lkummer.github.io/Helm-Charts
$ helm repo update
Create a values.yaml
file with values you wish to override.
Install the chart:
$ helm install example homelab/gitlab-omnibus --file values.yaml
Upgrade the chart:
$ helm upgrade example homelab/gitlab-omnibus --file values.yaml
Delete the chart:
$ helm delete example
The chart offers the following list of configuration values.
Parameter | Description |
---|---|
nameOverride |
Override the name of the chart. |
fullnameOverride |
Override the full name of the chart. |
image |
Gitlab Omnibus image settings. |
image.repository |
Image repository and name to use. |
image.tag |
Image version tag to use. |
image.pullPolicy |
Image pull policy. |
image.pullSecrets |
Image pull secrets. |
podAnnotations |
Pod annotations. |
podSecurityContext |
Pod security context. |
volumeClaims |
Options for persistent volume claims. |
volumeClaims.config |
Options for config folder persistent volume claims. |
volumeClaims.config.enabled |
Enable creation of config persistent volume claim. |
volumeClaims.config.name |
Config persistent volume claim name. |
volumeClaims.config.annotations |
Config persistent volume claim annotations. |
volumeClaims.config.resources |
Config persistent volume claim resource requests. |
volumeClaims.config.volumeMode |
Config persistent volume claim volume mode. |
volumeClaims.config.accessModes |
Config persistent volume claim access modes. |
volumeClaims.config.selector |
Config persistent volume claim selector. |
volumeClaims.data |
Options for data folder persistent volume claims. |
volumeClaims.data.enabled |
Enable creation of data persistent volume claim. |
volumeClaims.data.name |
Data persistent volume claim name. |
volumeClaims.data.annotations |
Data persistent volume claim annotations. |
volumeClaims.data.resources |
Data persistent volume claim resource requests. |
volumeClaims.data.volumeMode |
Data persistent volume claim volume mode. |
volumeClaims.data.accessModes |
Data persistent volume claim access modes. |
volumeClaims.data.selector |
Data persistent volume claim selector. |
securityContext |
Container security context. |
service |
Service related options. |
httpService.port |
HTTP Service port. |
httpService.type |
HTTP Service type. |
sshService.port |
SSH Service port. |
sshService.type |
SSH Service type. |
ingress |
Ingress related options. |
ingress.enabled |
Enable ingress creation. |
ingress.hosts |
Ingress hosts. |
ingress.hosts.gitlab.url |
Gitlab primary hostname. |
ingress.hosts.pages.url |
Gitlab Pages hostname. |
ingress.hosts.registry.url |
Gitlab container registry hostname. |
ingress.annotations |
Ingress annotations. |
ingress.tls |
Ingress TLS options. |
resources |
Gitlab Omnibus resource requests and limits. |
nodeSelector |
Pod node selector. |
tolerations |
Pod tolerations. |
affinity |
Pod affinity. |
metrics |
Prometheus metrics related options. |
metrics.gitlab.whitelist |
Addresses to whitelist for collection. |
metrics.workhorse.port |
Workhorse metrics port. |
metrics.gitaly.port |
Gitaly metrics port. |
podMonitor |
Promehteus Operator PodMonitor related options. |
podMonitor.enabled |
Enable PodMonitor. |
podMonitor.labels |
PodMonitor labels. |
timezone |
Gitlab time zone. |
backup |
Backup and restore related options. |
backup.enabled |
Enable backup and restore functionality when true. |
backup.backup.enabled |
Enable backup CronJob when true. |
backup.backup.schedule |
Backup CronJob schedule. |
backup.restore.enabled |
Enable backup restoration when true. |
backup.restore.snapshot |
Restic snapshot to restore from. |
backup.keep |
Keep options passed to Restic forget command, see values for an example. |
backup.repository.s3AccessKey |
S3 access key for backup storage authentication. |
backup.repository.s3SecretKey |
S3 secret key for backup storage authentication. |
backup.repository.repository |
Backup Restic repository, see values for an example. |
backup.repository.repositoryPassword |
Backup Restic repository password. |
Always follow the official upgrade instructions. Check out upgrade paths documentation for more information. This section describes the upgrade path that worked for me with this chart.
When updating from version 0.1.1
(Gitlab 13.10.2) to version 0.3.0
(Gitlab 14.6.1), follow the upgrade path:
0.1.1
with default image.tag
.0.1.1
with image.tag
=13.12.11-ee.0
.0.1.1
with image.tag
=14.0.10-ee.0
. Wait for background migrations to finish. Gitlab Pages will not work until updating the chart version later on.0.1.1
with image.tag
=14.1.5-ee.0
.0.1.1
with image.tag
=14.2.3-ee.0
. Wait for background migrations to finish.0.2.0
with default image.tag
. Gitlab Pages should work.0.3.1
with default image.tag
.When updating from version 0.3.0
(Gitlab 14.6.1) to version 0.4.1
(Gitlab 15.5.0), follow the upgrade path:
0.3.0
with default image.tag
.0.4.0
with image.tag
=14.9.5-ee.0
. Wait for background migrations to finish.0.4.0
with image.tag
=14.10.5-ee.0
. Wait for background migrations to finish.0.4.0
with image.tag
=15.0.5-ee.0
. Wait for background migrations to finish.0.4.0
with image.tag
=15.4.0-ee.0
. Wait for background migrations to finish.0.4.0
with image.tag
=15.5.0-ee.0
. Wait for background migrations to finish.0.46.0
.0.4.1
with image.tag
=15.8.1-ee.0
. Wait for background migrations to finish.Note: Chart version 0.4.0
and 0.4.1
are functionally identical.
When updating from version 0.4.1
(Gitlab 15.8.1) to version 0.5.0
(Gitlab 16.2.1), follow the upgrade path:
0.5.0
with default image.tag
. Wait for background migrations to finish.0.5.0
with image.tag
=16.2.1-ee.0
. Wait for background migrations to finish.0.55.0
.Should the need to reconfigure Gitlab arise, open a shell in the Gitlab Omnibus container, stop Gitlab and reconfigure:
$ kubectl exec -i -t example-gitlab-omnibus-xxxxxxxx-xxxxx -- /bin/bash
$ gitlab-ctl stop
$ gitlab-ctl reconfigure