Overview
Redis is a high-performance in-memory data store. This template deploys a Redis master-replica cluster with Redis Sentinel for automatic failover and leader election.This template does not create a GVC. You must deploy it into an existing GVC.
What Gets Created
- Stateful Redis Workload — (
RELEASE_NAME-redis): a master-replica cluster. Replica 0 starts as the primary; all others replicate from it. - Stateful Sentinel Workload — (
RELEASE_NAME-sentinel): monitors the Redis cluster and orchestrates automatic failover when the primary becomes unavailable. - Secret — An opaque secret containing the Redis server configuration (
redis.conf), mounted into each Redis container. - Secret — An opaque secret containing the Sentinel configuration (
sentinel.conf), mounted into each Sentinel container. - Secret (optional) — A dictionary secret holding the Redis auth password, created when
redis.auth.password.enabledis true. - Secret (optional) — A dictionary secret holding the Sentinel auth password, created when
sentinel.auth.password.enabledis true. - Identity & Policy — Separate identities and policies for the Redis and Sentinel workloads, each with
revealaccess to their respective secrets, and cloud storage access when backup is enabled. - Volume Set (optional) — Persistent storage for Redis data, created when
redis.persistence.enabledis true. - Volume Set (optional) — Persistent storage for Sentinel state, created when
sentinel.persistence.enabledis true. - Domain (optional) — External domain resources for Redis and/or Sentinel when
publicAccess.enabledis true. - Backup Cron Workload (optional) — A scheduled backup job that writes Redis snapshots to AWS S3 or GCS.
Installation
This template has no external prerequisites unless backup is enabled. 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. Both the Redis workload and the Sentinel workload support independent auth configuration. Only one method can be enabled at a time per workload. Option 1 — Inline password (creates a secret automatically):sentinel.auth.
Redis Cluster
redis.replicas— Number of Redis replicas. Replica 0 is always the initial primary.redis.resources.cpu/redis.resources.memory— Maximum CPU and memory per replica.redis.resources.minCpu/redis.resources.minMemory— Minimum CPU and memory guaranteed per replica.redis.multiZone— Spread replicas across availability zones within the location.redis.extraArgs— Additional Redis server arguments (e.g.--maxmemory 200mb --maxmemory-policy allkeys-lru).
Sentinel
Sentinel monitors the Redis cluster and automatically promotes a replica when the primary fails.sentinel.replicas— Number of Sentinel replicas. A minimum of 3 is required for a majority quorum.sentinel.quorumAutoCalculation— Whentrue, the quorum is calculated automatically as(replicas / 2) + 1. Set tofalseto usesentinel.quorumOverride.sentinel.quorumOverride— Manual quorum value, used only whenquorumAutoCalculationisfalse.sentinel.resources.cpu/sentinel.resources.memory— Maximum CPU and memory per Sentinel replica.sentinel.resources.minCpu/sentinel.resources.minMemory— Minimum CPU and memory guaranteed per Sentinel replica.sentinel.multiZone— Spread Sentinel replicas across availability zones.
Storage
Persistence is disabled by default. When enabled, a Volume Set is created to store data across restarts. Redis persistence:redis.persistence.enabled— Enable persistent storage for Redis data.redis.persistence.volumes.data.initialCapacity— Initial volume size in GiB. Minimum 1000 GiB forhigh-throughput-ssd.redis.persistence.volumes.data.performanceClass—general-purpose-ssdorhigh-throughput-ssd.redis.persistence.volumes.data.fileSystemType—ext4orxfs.redis.persistence.volumes.data.snapshots.retentionDuration— How long to retain volume snapshots.redis.persistence.volumes.data.snapshots.schedule— Cron expression for snapshot frequency.redis.persistence.volumes.data.autoscaling.maxCapacity— Maximum volume size in GiB.redis.persistence.volumes.data.autoscaling.minFreePercentage— Trigger scaling when free space drops below this percentage.redis.persistence.volumes.data.autoscaling.scalingFactor— Multiply current capacity by this factor when scaling up.
sentinel.persistence.
Firewall
Both Redis and Sentinel firewall settings are configured independently.redis.firewall.internal_inboundAllowType/sentinel.firewall.internal_inboundAllowType:
| 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 |
redis.firewall.inboundAllowWorkload— List of specific workload links when usingworkload-list.redis.firewall.external_inboundAllowCIDR— Comma-separated CIDR ranges for external inbound access.redis.firewall.external_outboundAllowCIDR— Comma-separated CIDR ranges for external outbound access.
Public Access
When enabled, a Control Plane Domain resource is created and each replica is exposed on a dedicated port for external access.redis.publicAccess.enabled— Expose Redis externally.redis.publicAccess.address— The domain address to use (must be a CNAME-capable domain configured in your Control Plane org).sentinel.publicAccess.enabled/sentinel.publicAccess.address— Same options for Sentinel.
Connecting to Redis
Once deployed, connect to Redis from within the same GVC using:mymaster.
Ports
| Workload | Port | Protocol | Description |
|---|---|---|---|
| Redis | 6379 | TCP | Redis data port |
| Sentinel | 26379 | TCP | Sentinel discovery port |
Backup
Backup is disabled by default. When enabled, a cron workload runs on the configured schedule and uploads a Redis snapshot to AWS S3 or GCS. The backup image is compatible with all Redis versions.backup.enabled— Enable scheduled backups.backup.schedule— Cron expression for backup frequency (default: daily at 2am UTC).backup.provider—awsorgcp.backup.resources.cpu/backup.resources.memory— Resources for the backup cron container.
AWS S3
Before enabling backup withprovider: aws, complete the following in your AWS account:
- Create an S3 bucket. Set
backup.aws.bucketto its name andbackup.aws.regionto its region. - If you do not have a Cloud Account set up, refer to the docs to Create a Cloud Account. Set
backup.aws.cloudAccountNameto its name. - Create an IAM policy with the following JSON, replacing
YOUR_BUCKET_NAME:
- Set
backup.aws.policyNameto the name of the policy created in step 3. - Set
backup.aws.prefixto the folder path where backups will be stored.
GCS
Before enabling backup withprovider: gcp, complete the following in your GCP account:
- Create a GCS bucket. Set
backup.gcp.bucketto its name. - If you do not have a Cloud Account set up, refer to the docs to Create a Cloud Account. Set
backup.gcp.cloudAccountNameto its name. - Add the Storage Admin role to the GCP service account associated with the Cloud Account.
- Set
backup.gcp.prefixto the folder path where backups will be stored.
Restoring a Backup
Download the.rdb backup file from your bucket and restore it into a running Redis instance. For GCS, replace aws s3 cp s3://... with gsutil cp gs://....
External References
Redis Documentation
Official Redis documentation
Redis Sentinel Documentation
Redis Sentinel setup and client configuration
Backup Image Source
Source code for the Redis backup container image
Redis Template
View the source files, default values, and chart definition