Overview
Redis Cluster is a distributed Redis deployment with automatic data sharding across multiple primary nodes and built-in replication. This template deploys a native Redis Cluster with 3 primary shards and 3 replicas, providing both horizontal scalability and high availability without an external Sentinel process.This template does not create a GVC. You must deploy it into an existing GVC.
What Gets Created
- Stateful Workload — A multi-replica Redis Cluster workload (
RELEASE_NAME-redis-cluster). All replicas are managed together. Replica 0 initializes the cluster once all nodes are healthy. - Volume Set — Persistent storage for each Redis node’s data directory.
- Secret — An opaque secret containing the Redis cluster configuration (
redis.conf), mounted into each container. - Secret — An opaque secret containing the cluster initialization script, mounted and executed at startup.
- Secret (optional) — A dictionary secret holding the Redis password, created when
redis.passwordis set. - Identity & Policy — An identity bound to the workload with
revealaccess to the config, startup script, and auth secrets.
Installation
To install, follow the instructions for your preferred method:UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
Configuration
The defaultvalues.yaml for this template:
Authentication
Authentication is disabled by default. To enable it, set a password:requirepass and masterauth in redis.conf, ensuring all nodes authenticate with each other.
Cluster Size
replicas— Total number of Redis nodes. Minimum is 6 (3 primaries + 3 replicas). The cluster is always created with--cluster-replicas 1, meaning each primary has exactly one replica.
Do not scale the replica count below 6. The cluster requires at least 3 primary nodes and 3 replica nodes to initialize. Replica 0 waits for all nodes to be healthy before running
redis-cli --cluster create.Resources
cpu— CPU allocated to each Redis node.memory— Memory allocated to each Redis node.
Storage
A Volume Set is always created to persist cluster data. The file system isext4 and the performance class is general-purpose-ssd.
volumeset.capacity— Initial volume size in GiB per node (minimum 10).volumeset.autoscaling.enabled— Automatically expand volumes as they fill. When enabled:maxCapacity— Maximum volume size in GiB.minFreePercentage— Trigger a scale-up when free space drops below this percentage.scalingFactor— Multiply current capacity by this factor when scaling up.
Internal Access
Redis Cluster nodes must be able to communicate with each other on both the data port and the cluster bus port. SettinginternalAccess.type to none will prevent inter-node communication and break the cluster.
internalAccess.type— Controls which workloads can connect to the cluster:
| Value | Description |
|---|---|
same-gvc | Allow access from all workloads in the same GVC (recommended) |
same-org | Allow access from all workloads in the same organization |
workload-list | Allow access only from specific workloads listed in workloads |
internalAccess.workloads— List of specific workload links, used whentypeisworkload-list.
Connecting to Redis Cluster
Redis Cluster requires a cluster-aware client. Connect to any node as a seed address — the client will discover the rest of the cluster automatically:Ports
| Port | Protocol | Description |
|---|---|---|
6379 | TCP | Redis data port |
16379 | TCP | Redis cluster bus (internal node-to-node communication) |