Warning
You are currently viewing v1.4 of the documentation and it is not the latest. For the most recent documentation, kindly click here.
This specification describes the azure-monitor trigger that scales based on an Azure Monitor metric.
triggers:
- type: azure-monitor
metadata:
resourceURI: Microsoft.ContainerService/managedClusters/azureMonitorCluster
tenantId: xxx-xxx-xxx-xxx-xxx
subscriptionId: yyy-yyy-yyy-yyy-yyy
resourceGroupName: azureMonitor
metricName: kube_pod_status_ready
metricFilter: namespace eq 'default'
metricAggregationInterval: "0:1:0"
targetValue: "1"
activeDirectoryClientId: CLIENT_ID_ENV_NAME
activeDirectoryClientPassword: CLIENT_PASSWORD_ENV_NAME
Parameter list:
resourceURI - Shortened URI to the Azure resource. The format is "<resourceProviderNamespace>/<resourceType>/<resourceName>".tenantId - Tenant id for the Azure resource. Used for authentication.subscriptionId - Subscription id for the Azure resource. Used for determining the full resource URI.resourceGroupName - Resource group for the Azure resource.metricName - Name of the Azure Monitor metric. Must be an officially supported metric found in the official documentation.metricFilter - Filter to define a more specific part of the resource. You can filter by supported dimensions of the metric found in the official documentation. (Optional)metricAggregationInterval - Aggregation interval of the metric. Reported in the format "mm:hh:ss". (Default: "0:5:0", Optional)metricAggregationType - Aggregation method of the Azure monitor metric. Some possible values include Average, Total, Maximum with a full list in the official documentation. No default.targetValue - Target value for the Azure metric to use in the HPA.activeDirectoryClientId - Name of the environment variable that contains the active directory client id. Should have the RBAC role of Monitoring Reader.activeDirectoryClientPassword - Name of the environment variable that contains the active directory client password. Should have the RBAC role of Monitoring Reader.You can use TriggerAuthentication CRD to configure the authentication by providing a set of Azure Active Directory credentials.
Credential based authentication:
activeDirectoryClientId - Active Directory client id.activeDirectoryClientPassword - Active Directory client password.The user will need access to read data from the Azure resource.
apiVersion: v1
kind: Secret
metadata:
name: azure-monitor-secrets
data:
activeDirectoryClientId: <clientId>
activeDirectoryClientPassword: <clientPassword>
---
apiVersion: keda.k8s.io/v1alpha1
kind: TriggerAuthentication
metadata:
name: azure-monitor-trigger-auth
spec:
secretTargetRef:
- parameter: activeDirectoryClientId
name: azure-monitor-secrets
key: activeDirectoryClientId
- parameter: activeDirectoryClientPassword
name: azure-monitor-secrets
key: activeDirectoryClientPassword
---
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
name: azure-monitor-scaler
labels:
app: azure-monitor-example
spec:
scaleTargetRef:
deploymentName: azure-monitor-example
minReplicaCount: 1
maxReplicaCount: 10
triggers:
- type: azure-monitor
metadata:
resourceURI: Microsoft.ContainerService/managedClusters/azureMonitorCluster
tenantId: xxx-xxx-xxx-xxx-xxx
subscriptionId: yyy-yyy-yyy-yyy-yyy
resourceGroupName: azureMonitor
metricName: kube_pod_status_ready
metricFilter: namespace eq 'default'
metricAggregationInterval: "0:1:0"
metricAggregationType: Average
targetValue: "1"
authenticationRef:
name: azure-monitor-trigger-auth