Configure this chart with External Redis

This document intends to provide documentation on how to configure this Helm chart with an external Redis service.

If you don’t have Redis configured, for on-premise or deployment to VM, consider using our Omnibus GitLab package.

Configure the Chart

Disable the redis chart and the Redis service it provides, and point the other services to the external service.

You need to set the following parameters:

  • redis.install: Set to false to disable including the Redis chart.
  • global.redis.host: Set to the hostname of the external Redis, can be a domain or an IP address.
  • global.redis.password.enabled: Set to false if the external Redis does not require a password.
  • global.redis.password.secret: The name of the secret which contains the token for authentication.
  • global.redis.password.key: The key within the secret, which contains the token content.

Items below can be further customized if you are not using the defaults:

  • global.redis.port: The port the database is available on, defaults to 6379

For example, pass these values via Helm’s --set flag while deploying:

helm install gitlab gitlab/gitlab  \
  --set redis.install=false \
  --set global.redis.host=redis.example \
  --set global.redis.password.secret=gitlab-redis \
  --set global.redis.password.key=redis-password \

If you are connecting to a Redis HA cluster that has Sentinel servers running, the global.redis.host attribute needs to be set to the cluster name as specified in the sentinel.conf. Sentinel servers can be referenced using the global.redis.sentinels[0].host and global.redis.sentinels[0].port values for the --set flag. The index is zero based.

Using multiple Redis instances

GitLab supports splitting several of the resource intensive Redis operations across multiple Redis instances. This chart supports distributing those persistence classes to other Redis instances: cache, queues, shared_state and actioncable.

More detailed information on configuring the chart for using multiple Redis instances can be found in the globals documentation.

Specifying secure Redis scheme (SSL)

In order to connect to Redis using SSL, the rediss (note the double s) scheme parameter is required:

  --set global.redis.scheme=rediss