External Latest
Scale applications based on an external scaler.
Trigger Specification
This specification describes the external
trigger for an external scaler.
triggers:
- type: external
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 scaler. Format must behost: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-redis-node
triggers:
- type: external
metadata:
scalerAddress: redis-external-scaler-service:8080
address: REDIS_HOST
password: REDIS_PASSWORD
listName: mylist
listLength: "5"
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-redis-node
triggers:
- type: external
metadata:
scalerAddress: redis-external-scaler-service:8080
metricType: mymetric
scalerAddress: mydomain.com:443
extraKey: "demo"
authenticationRef:
name: keda-trigger-auth