External Push Click here for latest

Scale applications based on an external push scaler.

Availability: v2.0+ Maintainer: Microsoft

Warning

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

Trigger Specification

This specification describes the external-push trigger for an external push scaler.

triggers:
- type: external-push
  metadata:
    scalerAddress: external-scaler-service:8080
    caCert : /path/to/tls/ca.pem
    tlsCertFile: /path/to/tls/cert.pem # Deprecated. https://github.com/kedacore/keda/issues/4549
    tlsClientCert: /path/to/tls/cert.pem
    tlsClientKey: /path/to/tls/key.pem
    unsafeSsl: false

Parameter list:

  • scalerAddress - Address of the external push scaler implementing ExternalScaler.StreamIsActive in externalscaler.proto. Format must be host:port.
  • tlsCertFile - Location of a certificate to use for the GRPC connection to authenticate with. (Optional)
  • unsafeSsl - Skip certificate validation when connecting over HTTPS. (Values: true, false, Default: false, Optional)

The entire metadata object is passed to the external scaler in ScaledObjectRef.scalerMetadata.

For implementing an external scaler, refer to External Scalers Concept.

Authentication Parameters

  • caCert - Certificate Authority (CA) certificate to use for the GRPC connection to authenticate with. (Optional)
  • tlsClientCert - Client certificate to use for the GRPC connection to authenticate with. (Optional)
  • tlsClientKey - Client private key to use for the GRPC connection to authenticate with. (Optional)

Example

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: external-scaledobject
spec:
  scaleTargetRef:
    name: keda-node
  triggers:
  - type: external-push
    metadata:
      scalerAddress: external-scaler-service:8080
      unsafeSsl: false

Here is an example of external scaler with certificates

apiVersion: v1
kind: Secret
metadata:
  name: certificate
data:
  ca.crt: "YOUR_CA_IN_SECRET"
  tls.crt: "YOUR_CERTIFICATE_IN_SECRET"
  tls.key: "YOUR_KEY_IN_SECRET"
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: keda-trigger-auth
spec:
  secretTargetRef:
  - parameter: caCert
    name: certificate
    key: ca.crt
  - parameter: tlsClientCert
    name: certificate
    key: tls.crt
  - parameter: tlsClientKey
    name: certificate
    key: tls.key
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: external-scaledobject
spec:
  scaleTargetRef:
    name: keda-node
  triggers:
  - type: external-push
    metadata:
      scalerAddress: external-scaler-service:8080
    authenticationRef:
      name: keda-trigger-auth