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 Workload — Redis (
RELEASE_NAME-redis): a master-replica cluster. Replica 0 starts as the primary; all others replicate from it. - Stateful Workload — Sentinel (
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. - 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.
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. 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 |