220 lines
7.5 KiB
YAML
220 lines
7.5 KiB
YAML
# yaml-language-server: $schema=../../component-metadata-schema.json
|
|
schemaVersion: v1
|
|
type: pubsub
|
|
name: redis
|
|
version: v1
|
|
status: stable
|
|
title: "Redis"
|
|
urls:
|
|
- title: Reference
|
|
url: https://docs.dapr.io/reference/components-reference/supported-pubsub/setup-redis-pubsub/
|
|
capabilities:
|
|
- ttl
|
|
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: ""
|
|
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: consumerID
|
|
required: false
|
|
description: The consumer group ID
|
|
example: "myGroup"
|
|
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: 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: "127.0.0.1:6379"
|
|
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
|
|
|
|
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" |