Cassandra Click here for latest

Scale applications based on Cassandra query results.

Availability: v2.5+ Maintainer: Community

Warning

You are currently viewing v"2.6" of the documentation and it is not the latest. For the most recent documentation, kindly click here.

Trigger Specification

This specification describes the cassandra trigger that scales based on the outputs of a Cassandra query.

triggers:
  - type: cassandra
    metadata:
      username: "cassandra"
      port: "9042"
      clusterIPAddress: "cassandra.default"
      consistency: "Quorum"
      protocolVersion: "4"
      keyspace: "test_keyspace"
      query: "SELECT COUNT(*) FROM test_keyspace.test_table;"
      targetQueryValue: "1"
      metricName: "test_keyspace"

Parameter list:

  • username - The username credential for connecting to the Cassandra instance.
  • port - The port number of the Cassandra instance. (Optional, Can be set either here or in clusterIPAddress)
  • clusterIPAddress - The IP address or the host name of the Cassandra instance.
  • consistency - Configuration for a session or per individual read operation. (Values: LOCAL_ONE, LOCAL_QUORUM, EACH_QUORUM, LOCAL_SERIAL, ONE, TWO, THREE, QUORUM, SERIAL, ALL, Default: ONE, Optional)
  • protocolVersion - CQL Binary Protocol. (Default: 4, Optional)
  • keyspace - The name of the keyspace used in Cassandra.
  • query - A Cassandra query that should return single numeric value.
  • targetQueryValue - The threshold value that is provided by the user and used as targetAverageValue in the Horizontal Pod Autoscaler (HPA).
  • metricName - Name to assign to the metric. (Default: s<X>-cassandra-<KEYSPACE>, Optional, In case of metricName is specified, it will be used to generate the metricName like this: s<X>-cassandra-<METRICNAME>, where <X> is the index of the trigger in a ScaledObject)

Authentication Parameters

You can authenticate by using a password via TriggerAuthentication configuration.

Password Authentication:

  • password - Password for configured user to login to the Cassandra instance.

Example

apiVersion: v1
kind: Secret
metadata:
  name: cassandra-secrets
type: Opaque
data:
  cassandra_password: CASSANDRA_PASSWORD
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: keda-trigger-auth-cassandra-secret
spec:
  secretTargetRef:
  - parameter: password
    name: cassandra-secrets
    key: cassandra_password
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: cassandra-scaledobject
spec:
  scaleTargetRef:
    name: nginx-deployment
  triggers:
  - type: cassandra
    metadata:
      username: "cassandra"
      port: "9042"
      clusterIPAddress: "cassandra.default"
      consistency: "Quorum"
      protocolVersion: "4"
      query: "SELECT COUNT(*) FROM test_keyspace.test_table;"
      targetQueryValue: "1"
      metricName: "test_keyspace"
    authenticationRef:
      name: keda-trigger-auth-cassandra-secret