Trigger Specification
This specification describes the rabbitmq trigger for RabbitMQ Queue.
triggers:
- type: rabbitmq
metadata:
host: RabbitMqHost # Optional. If not specified, it must be done by using TriggerAuthentication.
queueLength: '20' # Optional. Queue length target for HPA. Default: 20 messages
queueName: testqueue
includeUnacked: 'true' # Optional, use unacked + ready messages count
apiHost: RabbitApiHost # Optional. Represents the HTTP management API endpoint. If not specified, it must be done by using TriggerAuthentication.
authenticationRef:
name: keda-trigger-auth-rabbitmq-conn
Parameter list:
host- Value is the name of the environment variable your deployment uses to get the connection string. This is usually resolved from aSecret V1or aConfigMap V1collections.envandenvFromare both supported. The resolved host should follow a format likeamqp://guest:password@localhost:5672/vhost.queueName- Name of the queue to read message from.queueLength- Queue length target for HPA. (Default:20, Optional)includeUnacked- By defaultincludeUnackedisfalsein this case scaler uses AMQP protocol, requireshostand only counts messages in the queue and ignores unacked messages. IfincludeUnackedistruethenhostis not required butapiHostis required in this case scaler uses HTTP management API and counts messages in the queue + unacked messages count.hostorapiHostvalue comes from authentication trigger. (Optional)apiHost- It has similar format as ofhostbut for HTTP API endpoint, like https://guest:password@localhost:443/vhostname.
Note host and apiHost both have an optional vhost name after the host slash which will be used to scope API request.
Authentication Parameters
TriggerAuthentication CRD is used to connect and authenticate to RabbitMQ:
host- AMQP URI connection string, likeamqp://guest:password@localhost:5672/vhost.apiHost- HTTP API endpoint, likehttps://guest:password@localhost:443/vhostname.
Example
AMQP protocol:
apiVersion: v1
kind: Secret
metadata:
name: keda-rabbitmq-secret
data:
host: <AMQP URI connection string> # base64 encoded value of format amqp://guest:password@localhost:5672/vhost
---
apiVersion: keda.k8s.io/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-trigger-auth-rabbitmq-conn
namespace: default
spec:
secretTargetRef:
- parameter: host
name: keda-rabbitmq-secret
key: host
---
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
name: rabbitmq-scaledobject
namespace: default
spec:
scaleTargetRef:
deploymentName: rabbitmq-deployment
triggers:
- type: rabbitmq
metadata:
queueName: testqueue
queueLength: "20"
authenticationRef:
name: keda-trigger-auth-rabbitmq-conn
HTTP protocol:
apiVersion: v1
kind: Secret
metadata:
name: keda-rabbitmq-secret
data:
apiHost: <HTTP API endpoint> # base64 encoded value of format https://guest:password@localhost:443/vhostname
---
apiVersion: keda.k8s.io/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-trigger-auth-rabbitmq-conn
namespace: default
spec:
secretTargetRef:
- parameter: apiHost
name: keda-rabbitmq-secret
key: apiHost
---
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
name: rabbitmq-scaledobject
namespace: default
spec:
scaleTargetRef:
deploymentName: rabbitmq-deployment
triggers:
- type: rabbitmq
metadata:
includeUnacked: "true"
queueName: testqueue
queueLength: "20"
authenticationRef:
name: rabbitmq-consumer-trigger