Inputs

The following input variables are supported:

arm_nodes_enabled

Description: Whether the database pods can be scheduled on arm64 nodes

Type: bool

Default: true

burstable_nodes_enabled

Description: Whether the database pods can be scheduled on burstable nodes

Type: bool

Default: true

controller_nodes_enabled

Description: Whether to allow pods to schedule on EKS Node Group nodes (controller nodes)

Type: bool

Default: false

creds_syncer_logging_enabled

Description: Whether to enable logging for the creds-syncer pods

Type: bool

Default: false

disabled_commands

Description: Commands that are disabled in Redis. This can be used to provide global protection against unsafe commands.

Type: list(string)

Default:

[
"FLUSHDB",
"FLUSHALL"
]

helm_version

Description: The version of the bitnamilegacy/redis helm chart to use

Type: string

Default: "20.5.0"

instance_type_anti_affinity_required

Description: Whether to enable anti-affinity to prevent pods from being scheduled on the same instance type. Defaults to true iff sla_target == 3.

Type: bool

Default: null

lfu_cache_enabled

Description: Whether redis will be deployed as an LFU cache

Type: bool

Default: false

minimum_memory_mb

Description: The minimum memory in Mb to use for the redis nodes

Type: number

Default: 25

monitoring_enabled

Description: Whether to allow monitoring CRs to be deployed in the namespace

Type: bool

Default: false

namespace

Description: The namespace to deploy to the redis instances into

Type: string

Default: n/a

panfactum_scheduler_enabled

Description: Whether to use the Panfactum pod scheduler with enhanced bin-packing

Type: bool

Default: true

persistence_backups_enabled

Description: Whether to enable backups of the Redis durable storage.

Type: bool

Default: true

persistence_size_gb

Description: How many GB to initially allocate for persistent storage (will grow automatically as needed). Can not be changed after cluster creation.

Type: number

Default: 1

persistence_storage_increase_gb

Description: The amount of GB to increase storage by if free space drops below the threshold

Type: number

Default: 1

persistence_storage_increase_threshold_percent

Description: Dropping below this percent of free storage will trigger an automatic increase in storage size

Type: number

Default: 20

persistence_storage_limit_gb

Description: The maximum number of gigabytes of storage to provision for each redis node

Type: number

Default: null

pull_through_cache_enabled

Description: Whether to use the ECR pull through cache for the deployed images

Type: bool

Default: true

redis_flags

Description: Extra configuration flags to pass to each redis node

Type: list(string)

Default: []

redis_save

Description: Sets the save option for periodic snapshotting

Type: string

Default: "300 100"

replica_count

Description: The number of redis replicas to deploy

Type: number

Default: 3

spot_nodes_enabled

Description: Whether the database pods can be scheduled on spot nodes

Type: bool

Default: true

vault_credential_lifetime_hours

Description: The lifetime of database credentials generated by Vault

Type: number

Default: 16

voluntary_disruption_window_cron_schedule

Description: The times when disruption windows should start

Type: string

Default: "0 4 * * *"

voluntary_disruption_window_enabled

Description: Whether to confine voluntary disruptions of pods in this module to specific time windows

Type: bool

Default: false

voluntary_disruption_window_seconds

Description: The length of the disruption window in seconds

Type: number

Default: 3600

voluntary_disruptions_enabled

Description: Whether to enable voluntary disruptions of pods in this module.

Type: bool

Default: true

vpa_enabled

Description: Whether the VPA resources should be enabled

Type: bool

Default: true

wait

Description: Wait for resources to be in a ready state before proceeding. Disabling this flag will allow upgrades to proceed faster but will disable automatic rollbacks. As a result, manual intervention may be required for deployment failures.

Type: bool

Default: true

Outputs

The following outputs are exported:

admin_creds_secret

Description: The name of the Kubernetes Secret holding credentials for the admin role in the Redis database

admin_role

Description: The Vault role used to get admin credentials for the created Redis cluster

master_set

Description: The value for the master set to use when configuring Sentinel-aware Redis clients

match_labels

Description: A label selector that matches all Redis pods in the cluster

match_labels_master

Description: A label selector that matches only the Redis master pod in the cluster

namespace

Description: Kubernetes namespace where module resources are created

reader_creds_secret

Description: The name of the Kubernetes Secret holding credentials for the reader role in the Redis database

reader_role

Description: The Vault role used to get read-only credentials for the created Redis cluster

redis_host

Description: A service address that points to all Redis nodes

redis_host_list

Description: A list of domain names for every Redis pod in the cluster

redis_master_host

Description: A service address that points to only the writable redis master

redis_port

Description: The port that the Redis servers listen on

redis_sentinel_host

Description: A service address that points to the Redis Sentinels

redis_sentinel_port

Description: The port that the Sentinel servers listen on

root_name

Description: The name of the root user of the database

root_password

Description: The password for root user of the database

superuser_creds_secret

Description: The name of the Kubernetes Secret holding credentials for the superuser role in the Redis database

superuser_role

Description: The Vault role used to get superuser credentials for the created Redis cluster

Providers

The following providers are needed by this module: