Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IBM MQ scaler doc #283

Merged
merged 14 commits into from
Oct 23, 2020
96 changes: 96 additions & 0 deletions content/docs/2.0/scalers/ibm-mq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
+++
title = "IBM MQ"
layout = "scaler"
availability = "v2.0+"
maintainer = "Community"
description = "Scale applications based on IBM MQ Queue"
go_file = "ibmmq_scaler"
+++

### Trigger Specification

This specification describes the `ibmmq` trigger for IBM MQ Queue.

```yaml
triggers:
- type: ibmmq
metadata:
host: <ibm-host> # REQUIRED - IBM MQ Queue Manager Admin REST Endpoint
queueManager: <queue-manager> # REQUIRED - Your queue manager
zroubalik marked this conversation as resolved.
Show resolved Hide resolved
queueName: <queue-name> # REQUIRED - Your queue name
tlsDisabled: <TLS enabled/disabled> # OPTIONAL - Set 'true' to disable TLS. Default: false
queueDepth: <queue-depth> # OPTIONAL - Queue depth target for HPA. Default: 5 messages
usernameFromEnv: <admin-user> # Optional: Provide admin username from env instead of as a secret
passwordFromEnv: <admin-password> # Optional: Provide admin password from env instead of as a secret
authenticationRef:
name: ibmmq-consumer-trigger
```

**Parameter list**
tomkerkhove marked this conversation as resolved.
Show resolved Hide resolved
- `host`: REQUIRED - IBM MQ Queue Manager Admin REST Endpoint. Example URI endpoint structure on IBM cloud `https://example.mq.appdomain.cloud/ibmmq/rest/v2/admin/action/qmgr/QM/mqsc`
- `queueManager`: REQUIRED - Name of the queue manager from which messages will be consumed
- `queueName`: REQUIRED - Name of the Queue within the Queue Manager defined from which messages will be consumed
- `tlsDisabled`: OPTIONAL - A boolean: Can be set to 'true' to disable TLS. False by default.
- `queueDepth`: OPTIONAL - Queue depth Target for HPA. Will be set to Default Value of 5 if not Provided.
- `usernameFromEnv`: OPTIONAL: Provide admin username from env instead of as a secret
- `passwordFromEnv`: OPTIONAL: Provide admin password from env instead of as a secret

### Authentication Parameters

TriggerAuthentication CRD is used to connect and authenticate to IBM MQ:
tomkerkhove marked this conversation as resolved.
Show resolved Hide resolved
**Authentication Parameters**
- `ADMIN_USER`: REQUIRED - The admin REST endpoint username for your MQ Queue Manager
- `ADMIN_PASSWORD`: REQUIRED - The admin REST endpoint API key for your MQ Queue Manager
- `usernameFromEnv`: OPTIONAL: Provide admin username from env instead of as a secret
- `passwordFromEnv`: OPTIONAL: Provide admin password from env instead of as a secret

### Example
```yaml
apiVersion: v1
kind: Secret
metadata:
name: keda-ibmmq-secret
data:
ADMIN_USER: <encoded-username> # REQUIRED - Admin Username
ADMIN_PASSWORD: <encoded-password> # REQUIRED - Admin Password
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: ibmmq-scaledobject
namespace: default
labels:
deploymentName: ibmmq-deployment
spec:
scaleTargetRef:
name: ibmmq-deployment
pollingInterval: 5 # OPTIONAL - Default: 30 seconds
cooldownPeriod: 30 # OPTIONAL - Default: 300 seconds
maxReplicaCount: 18 # OPTIONAL - Default: 100
triggers:
- type: ibmmq
metadata:
host: <ibm-host> # REQUIRED - IBM MQ Queue Manager Admin REST Endpoint
queueManager: <queue-manager> # REQUIRED - Your queue manager
queueName: <queue-name> # REQUIRED - Your queue name
tlsDisabled: <TLS enabled/disabled> # OPTIONAL - Set 'true' to disable TLS. Default: false
queueDepth: <queue-depth> # OPTIONAL - Queue depth target for HPA. Default: 5 messages
usernameFromEnv: <admin-user> # Optional: Provide admin username from env instead of as a secret
passwordFromEnv: <admin-password> # Optional: Provide admin password from env instead of as a secret
authenticationRef:
name: keda-ibmmq-trigger-auth
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-ibmmq-trigger-auth
namespace: default
spec:
secretTargetRef:
- parameter: username
name: keda-ibmmq-secret
key: ADMIN_USER
- parameter: password
name: keda-ibmmq-secret
key: ADMIN_PASSWORD
```