Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
370 changes: 370 additions & 0 deletions lock/redis/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,370 @@
# yaml-language-server: $schema=../../../component-metadata-schema.json
schemaVersion: v1
type: lock
name: lock.redis
version: v1
status: alpha
title: "Redis"
urls:
- title: Reference
url: https://docs.dapr.io/reference/components-reference/supported-locks/redis-lock/
authenticationProfiles:
- title: "Username and password"
description: "Authenticate using username and password."
metadata:
- name: redisUsername
type: string
required: false
description: |
Username for Redis host. Defaults to empty. Make sure your Redis server
version is 6 or above, and have created ACL rule correctly.
example: "my-username"
default: ""
- name: redisPassword
type: string
required: false
sensitive: true
description: |
Password for Redis host. No default. Use secretKeyRef for
secret reference
example: "KeFg23!"
default: ""
- name: sentinelUsername
type: string
required: false
description: |
Username for Redis Sentinel. Applicable only when "failover" is true, and
Redis Sentinel has authentication enabled. Defaults to empty.
example: "my-sentinel-username"
default: ""
url:
title: "Redis Sentinel authentication documentation"
url: "https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#configuring-sentinel-instances-with-authentication"
- name: sentinelPassword
type: string
required: false
sensitive: true
description: |
Password for Redis Sentinel. Applicable only when "failover" is true, and
Redis Sentinel has authentication enabled. Use secretKeyRef for
secret reference. Defaults to empty.
example: "KeFg23!"
default: ""
url:
title: "Redis Sentinel authentication documentation"
url: "https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#configuring-sentinel-instances-with-authentication"
builtinAuthenticationProfiles:
- name: "azuread"
metadata:
- name: useEntraID
required: false
default: "false"
example: "true"
type: bool
description: |
If set, enables authentication to Azure Cache for Redis using Microsoft EntraID. The Redis server must explicitly enable EntraID authentication. Note that
Azure Cache for Redis also requires the use of TLS, so `enableTLS` should be set. No username or password should be set.
- name: enableTLS
required: true
description: Must be set to true if using EntraID
example: "true"
metadata:
- name: redisHost
required: true
description: |
Connection-string for the redis host. If "redisType" is "cluster" it can be multiple hosts separated by commas or just a single host
example: '"redis-master.default.svc.cluster.local:6379"'
type: string
- name: enableTLS
required: false
description: |
If the Redis instance supports TLS, can be configured to be enabled or disabled.
example: "false"
type: bool
default: "false"
- name: clientCert
required: false
description: Client certificate for Redis host. No Default. Can be secretKeyRef to use a secret reference
example: ""
type: string
- name: clientKey
required: false
description: Client key for Redis host. No Default. Can be secretKeyRef to use a secret reference
example: ""
type: string
- name: maxRetries
required: "false"
type: number
default: "3"
description: |
Maximum number of retries before giving up.
example: "5"
- name: maxRetryBackoff
required: "false"
type: number
default: "2"
description: |
Maximum backoff between each retry in seconds.
example: 30000
- name: failover
required: "false"
type: bool
description: |
Property to enable failover configuration. This requires the sentinelMasterName to be set. The redisHost
should be the sentinel host address.
default: "false"
- name: sentinelMasterName
required: "false"
type: string
description: |
The sentinel master name.
- name: redeliverInterval
required: "false"
type: string
description: |
The interval between checking for pending messages to redeliver.
default: "60s"
example: '"60s", "0"'
- name: processingTimeout
required: "false"
type: string
description: |
The amount of time a message must be pending before attempting to redeliver it. "0" disables redelivery.
default: "15s"
example: "10s"
- name: redisType
type: string
required: "false"
description: |
The type of redis. There are two valid values: "node" for a single node mode, or "cluster" for redis cluster
mode.
default: "node"
example: '"node", "cluster"'
- name: redisDB
required: "false"
type: string
description: |
Database selected after connecting to redis. If "redisType" is "cluster" this option is ignored.
default: "0"
- name: redisMaxRetries
required: "false"
type: number
description: |
Alias for maxRetries. If both values are set, maxRetries is ignored.
- name: redisMinRetryInterval
required: "false"
type: string
description: |
Minimum backoff for redis commands between each retry.
default: "8ms"
example: '"10ms", "-1"'
- name: redisMaxRetryInterval
required: "false"
type: string
description: |
Alias for maxRetryBackoff. If both values are set, maxRetryBackoff is ignored.
- name: dialTimeout
required: "false"
type: string
description: |
Dial timeout for establishing new connections.
default: "5s"
example: "2s"
- name: readTimeout
required: "false"
type: string
description: |
Timeout for socket reads. If reached, redis commands will fail with a timeout instead of blocking.
default: "3s"
example: "5s"
- name: writeTimeout
required: "false"
type: string
description: |
Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking.
example: "3s"
- name: poolSize
required: "false"
type: number
description: |
Maximum number of socket connections.
example: "20"
- name: poolTimeout
required: "false"
type: string
description: |
Amount of time client waits for a connection if all connections are busy before returning an error.
example: "5s"
- name: maxConnAge
required: "false"
type: string
description: |
Connection age at which the client retires (closes) the connection.
example: "30m"
- name: minIdleConns
required: "false"
type: number
description: |
Minimum number of idle connections to keep open in order to avoid the performance degredation associated
with creating new connections.
default: "0"
example: "2"
- name: idleCheckFrequency
required: "false"
type: string
description: |
Frequency of idle checks made by idle connections reaper.
default: "1m"
example: "15m"
- name: idleTimeout
required: "false"
type: string
description: |
Amount of time after which the client closes idle connections. Should be less than the server's timeout.
default: "5m"
example: "15m"



- name: redeliverInterval
required: false
description: |
The interval between checking for pending messages to redelivery. "0" disables redelivery.
example: "30s"
default: "60s"
type: duration
- name: processingTimeout
required: false
description: |
The amount time a message must be pending before attempting to redeliver it. "0" disables redelivery.
example: "30s"
type: duration
default: "15s"
- name: queueDepth
required: false
description: |
The size of the message queue for processing.
example: "1000"
default: "100"
type: number
- name: concurrency
required: false
description: |
The number of concurrent workers that are processing messages.
example: "15"
default: "10"
type: number
- name: redisType
required: false
description: |
The type of redis. There are two valid values, one is "node" for single node mode, the other is "cluster" for redis cluster mode.
example: "cluster"
type: string
default: "node"
- name: redisDB
required: false
description: |
Database selected after connecting to redis. If "redisType" is "cluster" this option is ignored.
example: "0"
default: "0"
type: number
- name: redisMaxRetries
required: false
description: Maximum number of times to retry commands before giving up. Default is to not retry failed commands.
example: "5"
type: number
- name: redisMinRetryInterval
required: false
description: |
Minimum backoff for redis commands between each retry. "-1" disables backoff.
example: "8ms"
default: "8ms"
type: duration
- name: redisMaxRetryInterval
required: false
description: |
Maximum backoff for redis commands between each retry. "-1" disables backoff.
example: "5s"
default: "512ms"
type: duration
- name: dialTimeout
required: false
description: |
Dial timeout for establishing new connections.
example: "5s"
default: "5s"
type: duration
- name: readTimeout
required: false
description: |
Timeout for socket reads. If reached, redis commands will fail with a timeout instead of blocking. "-1" for no timeout.
example: "3s"
default: "3"
type: duration
- name: writeTimeout
required: false
description: Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking. Defaults is readTimeout.
example: "3s"
type: duration
- name: poolSize
required: false
description: Maximum number of socket connections. Default is 10 connections per every CPU as reported by runtime.NumCPU.
example: "20"
type: number
- name: poolTimeout
required: false
description: Amount of time client waits for a connection if all connections are busy before returning an error. Default is readTimeout + 1 second.
example: "5s"
type: duration
- name: maxConnAge
required: false
description: Connection age at which the client retires (closes) the connection. Default is to not close aged connections.
example: "30m"
type: duration
- name: minIdleConns
required: false
description: |
Minimum number of idle connections to keep open in order to avoid the performance degradation associated with creating new connections.
example: "2"
default: "0"
type: number
- name: idleCheckFrequency
required: false
description: |
Frequency of idle checks made by idle connections reaper. "-1" disables idle connections reaper.
example: "-1"
default: "1m"
type: duration
- name: idleTimeout
required: false
description: |
Amount of time after which the client closes idle connections. Should be less than server's timeout. "-1" disables idle timeout check.
example: "10m"
default: "5m"
type: duration
- name: failover
required: false
description: |
Property to enabled failover configuration. Needs sentinelMasterName to be set.
example: "false"
default: "false"
type: bool
- name: sentinelMasterName
required: false
description: The sentinel master name. See Redis Sentinel Documentation.
example: "mymaster"
type: string
- name: maxLenApprox
required: false
description: Maximum number of items inside a stream. The old entries are automatically evicted when the specified length is reached, so that the stream is left at a constant size. Defaults to unlimited.
example: "10000"
type: number
- name: streamTTL
required: false
description: |
TTL duration for stream entries. Entries older than this duration will be evicted.
This is an approximate value, as it's implemented using Redis stream's MINID trimming with the '~' modifier.
The actual retention may include slightly more entries than strictly defined by the TTL,
as Redis optimizes the trimming operation for efficiency by potentially keeping some additional entries.
example: "30d"
type: duration