This changelog keeps track of work items that have been completed and are ready to be shipped in the next release.
To learn more about our roadmap, we recommend reading this document.
To learn more about active deprecations, we recommend checking GitHub Discussions.
- Unreleased
- v2.12.0
- v2.11.2
- v2.11.1
- v2.11.0
- v2.10.1
- v2.10.0
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.8.1
- v2.8.0
- v2.7.1
- v2.7.0
- v2.6.1
- v2.6.0
- v2.5.0
- v2.4.0
- v2.3.0
- v2.2.0
- v2.1.0
- v2.0.0
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- General: TODO (#XXX)
Here is an overview of all new experimental features:
- General: TODO (#XXX)
- General: Add parameter queryParameters to prometheus-scaler (#4962)
- General: Support TriggerAuthentication properties from ConfigMap (#4830)
- Hashicorp Vault: Add support to get secret that needs write operation (e.g. pki) (#5067)
- Kafka Scaler: Ability to set upper bound to the number of partitions with lag (#3997)
- Kafka Scaler: Add support for Kerberos authentication (SASL / GSSAPI) (#4836)
- Prometheus Metrics: Introduce paused ScaledObjects in Prometheus metrics (#4430)
- Pulsar Scaler: support endpointParams in pulsar oauth (#5069)
- General: Fix CVE-2023-39325 in golang.org/x/net (#5122)
- General: Prevented stuck status due to timeouts during scalers generation (#5083)
- Azure Pipelines: No more HTTP 400 errors produced by poolName with spaces (#5107)
- ScaledJobs: Copy ScaledJob annotations to child Jobs (#4594)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s):
- Remove support for Azure AD Pod Identity-based authentication (#5035)
- General: TODO (#XXX)
- General: Fix CVE-2023-45142 in Opentelemetry (#5089)
- General: Fix logger in Opentelemetry collector (#5094)
- General: Support profiling for KEDA components (#4789)
- General: Introduce new Google Cloud Tasks scaler (#3613)
- AWS SQS Scaler: Support for scaling to include delayed messages. (#4377)
- Governance: KEDA transitioned to CNCF Graduated project (#63)
Here is an overview of all new experimental features:
- General: Introduce pushing operational metrics to an OpenTelemetry Collector (#3078)
- General: New
apache-kafka
scaler based on kafka-go library (#4692) - General: Support for formula-based evaluation of metric values (#2440|#4998)
- General: Automatically set
GOMAXPROCS
to match Linux container CPU quota (#4999) - General: Configurable Kubernetes cluster domain for Cert Manager (#4861)
- General: Introduce annotation
autoscaling.keda.sh/paused: true
for ScaledObject to pause autoscaling (#3304) - General: Introduce changelog validation check during PR for formatting and order violations (#3190)
- General: Introduce Prometheus metrics of API server to KEDA Metric Server (#4460)
- General: Introduce standalone CRD generation to release workflow (#2726)
- General: Provide new Kubernetes events about internal state and scaling (#3764)
- General: Show ScaledObject/ScaledJob names to output of
kubectl get triggerauthentication/clustertriggerauthentication
(#796) - General: Updated AWS SDK and updated all the AWS scalers (#4905)
- Azure Pod Identity: Introduce validation to prevent usage of empty identity ID for Azure identity providers (#4528)
- Kafka Scaler: Add
unsafeSsl
flag for kafka scaler (#4977) - Prometheus Scaler: Remove trailing whitespaces in
customAuthHeader
andcustomAuthValue
(#4960) - Pulsar Scaler: Support for OAuth extensions (#4700)
- Redis Scalers: Support for TLS authentication for Redis & Redis stream scalers (#4917)
- General: Add validations for
stabilizationWindowSeconds
(#4976) - RabbitMQ Scaler: Allow subpaths along with vhost in connection string (#2634)
- Selenium Grid Scaler: Fix scaling based on latest browser version (#4858)
- Solace Scaler: Fix a bug where
queueName
is not properly escaped during URL encode (#4936)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s):
- None.
- General: Remove deprecated
metricName
from trigger metadata section (#4899)
- General: Fixed a typo in the StatefulSet scaling resolver (#4902)
- General: Only show logs with a severity level of ERROR or higher in the stderr in metrics server (#4049)
- General: Refactor ScaledJob related methods to be located at scale_handler (#4781)
- General: Replace deprecated
set-output
command with environment file in GitHub Actions workflows (#4914)
- General: Metrics server exposes Prometheus metrics (#4776)
- AWS Pod Identity Authentication: Use
default
service account if the workload doesn't set it (#4767) - GitHub Runner Scaler: Fix explicit repo check 404 to skip not crash (#4790)
- GitHub Runner Scaler: Fix rate checking on GHEC when HTTP 200 (#4786)
- Pulsar Scaler: Fix
msgBacklogThreshold
field being named wrongly asmsgBacklog
(#4681)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s):
- Pulsar Scaler: Fix
msgBacklogThreshold
field being named wrongly asmsgBacklog
(#4681)
None.
None.
- General: Paused ScaledObject continues working after removing the annotation (#4733)
- General: Skip resolving secrets if namespace is restricted (#4519)
- Prometheus: Authenticated connections to Prometheus work in non-PodIdenty case (#4695)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s): None.
None.
None.
- General: Introduce annotation
autoscaling.keda.sh/paused: true
for ScaledJobs to pause autoscaling (#3303) - General: Introduce new Solr Scaler (#4234)
- General: Support ScaledObject taking over existing HPAs with the same name while they are not managed by other ScaledObject (#4457)
- CPU/Memory scaler: Add support for scale to zero if there are multiple triggers(#4269)
- Redis Scalers: Allow scaling using consumer group lag (#3127)
- Redis Scalers: Allow scaling using redis stream length (#4277)
- General: Metrics Adapter: remove deprecated Prometheus Metrics and non-gRPC code (#3930)
- General: Add a Prometheus metric for measuring the processing loop lag (#4702)
- General: Add a Prometheus metric with KEDA build info (#4647)
- General: Allow to change the port of the Admission Webhook (#468)
- General: Enable secret scanning in GitHub repo (#4710)
- General: Kubernetes v1.25, v1.26 or v1.27 are supported (#4710)
- AWS DynamoDB: Add support for
indexName
(#4680) - Azure Data Explorer Scaler: Use azidentity SDK (#4489)
- External Scaler: Add tls options in TriggerAuth metadata. (#3565)
- GCP PubSub Scaler: Make it more flexible for metrics (#4243)
- GitHub Runner Scaler: Added support for GitHub App authentication (#4651)
- Kafka Scaler: Add support for OAuth extensions (#4544)
- NATS JetStream Scaler: Add support for pulling AccountID from TriggerAuthentication (#4586)
- PostgreSQL Scaler: Replace
lib/pq
withpgx
(#4704) - Prometheus Scaler: Add support for Google Managed Prometheus (#4674)
- Pulsar Scaler: Improve error messages for unsuccessful connections (#4563)
- RabbitMQ Scaler: Add support for
unsafeSsl
in trigger metadata (#4448) - RabbitMQ Scaler: Add support for
workloadIdentityResource
and utilize AzureAD Workload Identity for HTTP authorization (#4716) - Solace Scaler: Add new
messageReceiveRateTarget
metric to Solace Scaler (#4665)
- General: Allow to remove the finalizer even if the ScaledObject isn't valid (#4396)
- General: Check ScaledObjects with multiple triggers with non unique name in the Admission Webhook (#4664)
- General: Grafana Dashboard: Fix HPA metrics panel by replacing $namepsace to $exported_namespace due to label conflict (#4539)
- General: Grafana Dashboard: Fix HPA metrics panel to use range instead of instant (#4513)
- General: ScaledJob: Check if MaxReplicaCount is nil before access to it (#4568)
- AWS SQS Scaler: Respect
scaleOnInFlight
value (#4276) - Azure Monitor: Exclude Azure Monitor scaler from metricName deprecation (#4713)
- Azure Pipelines: Respect all required demands (#4404)
- Kafka Scaler: Add back
strings.TrimSpace()
function for saslAuthType (#4689) - NATS Jetstream Scaler: Fix compatibility if node is not advertised (#4524)
- Prometheus Metrics: Create e2e tests for all exposed Prometheus metrics (#4127)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s):
- Azure Data Explorer: Deprecate
metadata.clientSecret
(#4514)
- General: Add e2e test for external push scaler (#2698)
- General: Automatically scale test clusters in/out to reduce environmental footprint & improve cost-efficiency (#4456)
- General: Bump Golang to 1.20 (#4517)
- General: Bump
kubernetes-sigs/controller-runtime
to v0.15.0 and code alignment (#4582) - General: Drop a transitive dependency on bou.ke/monkey (#4364)
- General: Fix odd number of arguments passed as key-value pairs for logging (#4368)
- General: Refactor several functions for Status & Conditions handling into pkg util functions (#2906)
- General: Stop logging errors for paused ScaledObject (with
autoscaling.keda.sh/paused-replicas
annotation) by skipping reconciliation loop for the object (stop the scale loop and delete the HPA) (#4253) - General: Trying to prevent operator crash when accessing
ScaledObject.Status.ScaleTargetGVKR
(#4389) - General: Use default metrics provider from
sigs.k8s.io/custom-metrics-apiserver
(#4473)
- General: Drop a transitive dependency on bou.ke/monkey (#4366)
- General: Fix odd number of arguments passed as key-value pairs for logging (#4369)
- General: Update supported versions in the welcome message (#4360)
- Admission Webhooks: Allow to remove the finalizer even if the ScaledObject isn't valid (#4396)
- AWS SQS Scaler: Respect
scaleOnInFlight
value (#4276) - Azure Pipelines: Fix for disallowing
$top
on query when usingmeta.parentID
method (#4397) - Azure Pipelines: Respect all required demands (#4404)
Here is an overview of all stable additions:
- General: Add support to register custom CAs globally in KEDA operator (#4168)
- General: Introduce admission webhooks to automatically validate resource changes to prevent misconfiguration and enforce best practices (#3755)
- General: Introduce new ArangoDB Scaler (#4000)
- Prometheus Metrics: Introduce scaler activity in Prometheus metrics (#4114)
- Prometheus Metrics: Introduce scaler latency in Prometheus metrics (#4037)
Here is an overview of all new experimental features:
- GitHub Scaler: Introduced new GitHub Scaler (#1732)
- General: Add a warning when KEDA run outside supported k8s versions (#4130)
- General: Use (self-signed) certificates for all the communications (internals and externals) (#3931)
- General: Use TLS1.2 as minimum TLS version (#4193)
- Azure Application Insights Scaler: Add ignoreNullValues to ignore errors when the data returned has null in its values (#4316)
- Azure Pipelines Scaler: Improve error logging for
validatePoolID
(#3996) - Azure Pipelines Scaler: New configuration parameter
requireAllDemands
to scale only if jobs request all demands provided by the scaling definition (#4138) - Hashicorp Vault: Add support to secrets backend version 1 (#2645)
- Kafka Scaler: Add support to use
tls
andsasl
in ScaledObject (#4322) - Kafka Scaler: Improve error logging for
GetBlock
method (#4232) - Prometheus Scaler: Add custom headers and custom auth support (#4208)
- Prometheus Scaler: Extend Prometheus Scaler to support Azure managed service for Prometheus (#4153)
- RabbitMQ Scaler: Add TLS support (#967)
- Redis Scalers: Add support to Redis 7 (#4052)
- Selenium Grid Scaler: Add
platformName
to selenium-grid scaler metadata structure (#4038)
- General: Fix regression in fallback mechanism (#4249)
- General: Prevent a panic that might occur while refreshing a scaler cache (#4092)
- AWS Cloudwatch Scaler: Make
metricName
andnamespace
optional when usingexpression
(#4334) - Azure Pipelines Scaler: Add new parameter to limit the jobs returned (#4324)
- Azure Queue Scaler: Fix azure queue length (#4002)
- Azure Service Bus Scaler: Improve way clients are created to reduce amount of ARM requests (#4262)
- Azure Service Bus Scaler: Use correct auth flows with pod identity (#4026|#4123)
- Cassandra Scaler: Checking whether the port information is entered in the ClusterIPAddres is done correctly. (#4110)
- CPU Memory Scaler: Store forgotten logger (#4022)
- Datadog Scaler: Return correct error when getting a 429 error (#4187)
- Kafka Scaler: Return error if the processing of the partition lag fails (#4098)
- Kafka Scaler: Support 0 in activationLagThreshold configuration (#4137)
- Kafka Scaler: Trim whitespace from
partitionLimitation
field (#4333) - NATS Jetstream Scaler: Fix compatibility when cluster not on kubernetes (#4101)
- Prometheus Metrics: Expose Prometheus Metrics also when getting ScaledObject state (#4075)
- Redis Scalers: Fix panic produced by incorrect logger initialization (#4197)
- Selenium Grid Scaler: ScaledObject with a trigger whose metadata browserVersion is latest is always being triggered regardless of the browserVersion requested by the user (#4347)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s):
- General: Deprecate explicitly setting
metricName
field fromScaledObject.triggers[*].metadata
(#4220) - Prometheus Scaler:
cortexOrgId
metadata deprecated in favor of custom headers (#4208)
- General: Bump Golang to 1.19 (#4094)
- General: Check that ScaledObject name is specified as part of a query for getting metrics (#4088)
- General: Compare error with
errors.Is
(#4004) - General: Consolidate
GetMetrics
andIsActive
toGetMetricsAndActivity
for Azure Event Hub, Cron and External scalers (#4015) - General: Improve test coverage in
pkg/util
(#3871) - General: Metrics Server: print a message on successful connection to gRPC server (#4190)
- General: Pass deep copy object to scalers cache from the ScaledObject controller (#4207)
- General: Review CodeQL rules and enable it on PRs (#4032)
- RabbitMQ Scaler: Move from
streadway/amqp
torabbitmq/amqp091-go
(#4004)
- General: Prevent a panic that might occur while refreshing a scaler cache (#4092)
- Azure Service Bus Scaler: Use correct auth flows with pod identity (#4026)
- Prometheus Metrics: Fix exposed metric from
keda_scaled_errors
tokeda_scaled_object_errors
(#4037)
- General: Properly retrieve and close scalers cache (#4011)
- Azure Key Vault: Raise an error if authentication mechanism not provided (#4010)
- Redis Scalers: Support
unsafeSsl
and enable ssl verification as default (#4005)
- General: Change API version of HPA from
autoscaling/v2beta2
toautoscaling/v2
(#2462) - General: As per our support policy, Kubernetes v1.23 or above is required and support for Kubernetes v1.22 or below was removed (docs)
Here is an overview of all stable additions:
- General: Introduce new CouchDB Scaler (#3746)
- General: Introduce new Etcd Scaler (#3880)
- General: Introduce new Loki Scaler (#3699)
- General: Introduce rate-limitting parameters to KEDA manager to allow override of client defaults (#3730)
- General: Introduction deprecation & breaking change policy (#68)
- General: Produce reproducible builds (#3509)
- General: Provide off-the-shelf Grafana dashboard for application autoscaling (#3911)
- AWS Scalers: Introduce new AWS endpoint URL settings. (#3337)
- Azure Service Bus Scaler: Support for Shared Access Signature (SAS) tokens for authentication. (#2920)
- Azure Service Bus Scaler: Support regex usage in queueName / subscriptionName parameters. (#1624)
- ElasticSearch Scaler: Support for ElasticSearch Service on Elastic Cloud (#3785)
- Prometheus Metrics: Expose renamed version of existing Prometheus Metrics in KEDA Operator. (#3919)
- Prometheus Metrics: Introduce new
ScalerName
label in Prometheus metrics. (#3588) - Prometheus Metrics: Provide Prometheus metric with indication of total number of custom resources per namespace for each custom resource type (CRD). (#2637|#2638|#2639)
- Prometheus Metrics: Provide Prometheus metric with indication of total number of triggers per trigger type in
ScaledJob
/ScaledObject
. (#3663) - Selenium Grid Scaler: Allow setting url trigger parameter from TriggerAuthentication/ClusterTriggerAuthentication (#3752)
Here is an overview of all new experimental features:
- General: Adding an option to cache metric values for a scaler during the polling interval (#2282)
- General: Add explicit
seccompProfile
type tosecurityContext
config (#3561) - General: Add
Min
column to ScaledJob visualization (#3689) - General: Disable response compression for k8s restAPI in client-go (#3863)
- General: Improve the function used to normalize metric names (#3789)
- General: Support disable keep http connection alive (#3874)
- General: Support for using pod identities for authentication in Azure Key Vault (#3813)
- General: Support "Restrict Secret Access" to mitigate the security risk (#3668)
- Apache Kafka Scaler: Support for excluding persistent lag (#3904)
- Apache Kafka Scaler: Support for limiting Kafka partitions KEDA will monitor (#3830)
- Apache Kafka Scaler: Support for SASL/OAuth bearer authentication (#3681)
- Azure AD Pod Identity Authentication: Improve logs around integration with aad-pod-identity for simplified troubleshooting (#3610)
- Azure Event Hubs Scaler: Support Azure Active Directory Pod & Workload Identity for Storage Blobs (#3569)
- Azure Event Hubs Scaler: Support for
dapr
checkpoint strategy (#3022) - Azure Event Hubs Scaler: Support for using connection strings for Event Hub namespace instead of the Event Hub itself. (#3922)
- Azure Pipelines Scaler: Improved performance for scaling big amount of job requests (#3702)
- Cron Scaler: Improve instance count determination. (#3838)
- GCP Storage Scaler: Support for blob delimiters (#3756)
- GCP Storage Scaler: Support for blob prefix (#3756)
- Metrics API Scaler: Support for
unsafeSsl
parameter to skip certificate validation when connecting over HTTPS (#3728) - NATS Jetstream Scaler: Improved querying to respect stream consumer leader in clustered scenarios (#3860)
- NATS Scalers: Support HTTPS protocol in NATS Scalers (#3805)
- Prometheus Scaler: Introduce skipping of certificate check for unsigned certs (#2310)
- Pulsar Scaler: Add support for basic authentication (#3844)
- Pulsar Scaler: Add support for bearer token authentication (#3844)
- Pulsar Scaler: Add support for partitioned topics (#3833)
- General: Ensure
Close
is only called once duringPushScaler
's deletion (#3881) - General: Respect optional parameter inside
envs
for ScaledJobs (#3568) - Azure Blob Scaler: Store forgotten logger (#3811)
- Datadog Scaler: The last data point of some specific query is always null (#3906)
- GCP Stackdriver Scalar: Update Stackdriver client to handle detecting double and int64 value types (#3777)
- MongoDB Scaler: Username/password can contain
:/?#[]@
(#3992) - NATS Jetstream: Correctly count messages that should be redelivered (waiting for ack) towards KEDA value (#3787)
- New Relic Scaler: Store forgotten logger (#3945)
- Prometheus Scaler: Treat Inf the same as Null result (#3644)
- Security: Provide patch for CVE-2022-3172 vulnerability (#3690)
You can find all deprecations in this overview and join the discussion here.
New deprecation(s):
- Prometheus metrics on KEDA Metric Server are deprecated in favor of Prometheus metrics on KEDA Operator (#3972 | Discussion)
Previously announced deprecation(s):
- Default checkpointing strategy for Azure Event Hubs scaler
azureFunctions
is deprecated in favor ofblobMetadata
(#XXX | Discussion) metadata.type
is deprecated in favor of the globalmetricType
for CPU, Memory, Datadog scalers (#2844 | Discussion)rolloutStrategy
is deprecated in favor ofrollout.strategy
in ScaledJobs (#3596 | Discussion)
- General: Bump
github.com/Azure/azure-event-hubs-go/v3
(#2986) - General: Bump Golang to 1.18.6 (#3205)
- General: Metrics Server: use gRPC connection to get metrics from Operator (#3920)
- General: Metrics Server: use OpenAPI definitions served by custom-metrics-apiserver (#3929)
- General: Migrate from
azure-service-bus-go
toazservicebus
(#3394) - Apache Kafka Scaler: Increase logging V-level (#3948)
- Azure EventHub: Add e2e tests (#2792)
None.
- Datadog Scaler: Support multi-query metrics, and aggregation (#3423)
- General: Metrics endpoint returns correct HPA values (#3554)
- Datadog Scaler: Fix: panic in datadog scaler (#3448)
- RabbitMQ Scaler: Parse vhost correctly if it's provided in the host url (#3602)
None.
None.
- General: Execute trivy scan (on PRs) only if there are changes in deps (#3540)
- General: Use re-usable workflows for GitHub Actions (#2569)
- General: Introduce
activationThreshold
/minMetricValue
for all scalers (#2800) - General: Introduce new AWS DynamoDB Streams Scaler (#3124)
- General: Introduce new NATS JetStream scaler (#2391)
- General: Make propagation policy for ScaledJob rollout configurable (#2910)
- General: Support for Azure AD Workload Identity as a pod identity provider. (#2487|#2656)
- General: Support for
minReplicaCount
in ScaledJob (#3426) - General: Support for permission segregation when using Azure AD Pod / Workload Identity. (#2656)
- General: Support to customize HPA name (#3057)
- AWS SQS Queue Scaler: Support for scaling to include in-flight messages. (#3133)
- Azure Pipelines Scaler: Support for Azure Pipelines to support demands (capabilities) (#2328)
- CPU Scaler: Support for targeting specific container in a pod (#1378)
- GCP Stackdriver Scaler: Added aggregation parameters (#3008)
- Kafka Scaler: Support of passphrase encrypted PKCS #\8 private key (#3449)
- Memory Scaler: Support for targeting specific container in a pod (#1378)
- Prometheus Scaler: Add
ignoreNullValues
to return error when prometheus return null in values (#3065)
- General: Add settings for configuring leader election (#2836)
- General:
external
extension reduces connection establishment with long links (#3193) - General: Reference ScaledObject's/ScaledJob's name in the scalers log (#3419)
- General: Use
mili
scale for the returned metrics (#3135) - General: Use more readable timestamps in KEDA Operator logs (#3066)
- Kafka Scaler: Handle Sarama errors properly (#3056)
- General: Provide patch for CVE-2022-27191 vulnerability (#3378)
- General: Refactor adapter startup to ensure proper log initilization. (#2316)
- General: Scaleobject ready condition 'False/Unknown' to 'True' requeue (#3096)
- General: Use
go install
in the Makefile for downloading dependencies (#2916) - General: Use metricName from GetMetricsSpec in ScaledJobs instead of
queueLength
(#3032) - ActiveMQ Scaler: KEDA doesn't respect restAPITemplate (#3188)
- Azure Eventhub Scaler: KEDA operator crashes on nil memory panic if the eventhub connectionstring for Azure Eventhub Scaler contains an invalid character (#3082)
- Azure Pipelines Scaler: Fix issue with Azure Pipelines wrong PAT Auth. (#3159)
- Datadog Scaler: Ensure that returns the same element that has been checked (#3448)
- Kafka Scaler: Check
lagThreshold
is a positive number (#3366) - Selenium Grid Scaler: Fix bug where edge active sessions not being properly counted (#2709)
- Selenium Grid Scaler: Fix bug where Max Sessions was not working correctly (#3061)
- ScaledJob:
rolloutStrategy
is deprecated in favor ofrollout.strategy
(#2910)
None.
- General: Bump Golang to 1.17.13 and deps (#3447)
- General: Fix devcontainer on ARM64 Arch. (#3084)
- General: Improve e2e on PR process through comments. (#3004)
- General: Improve error message in resolving ServiceAccount for AWS EKS PodIdentity (#3142)
- General: Migrate e2e test to Go. (#2737)
- General: Split e2e test by functionality. (#3270)
- General: Unify the used tooling on different workflows and arch. (#3092)
- General: Use Github's Checks API for e2e tests on PR. (#2567)
- General: Don't hardcode UIDs in securityContext (#3012)
- General: Bump Golang to 1.17.9 (#3016)
- General: Fix autoscaling behaviour while paused. (#3009)
- General: Fix CVE-2022-21221 in
github.com/valyala/fasthttp
(#2775)
- General: Introduce annotation
"autoscaling.keda.sh/paused-replicas"
for ScaledObjects to pause scaling at a fixed replica count. (#944) - General: Introduce ARM-based container image for KEDA (#2263|#2262)
- General: Introduce new AWS DynamoDB Scaler (#2482)
- General: Introduce new Azure Data Explorer Scaler (#1488|#2734)
- General: Introduce new GCP Stackdriver Scaler (#2661)
- General: Introduce new GCP Storage Scaler (#2628)
- General: Provide support for authentication via Azure Key Vault (#900|#2733)
- General: Support for
ValueMetricType
inScaledObject
for all scalers except CPU/Memory (#2030)
- General: Bump dependencies versions (#2978)
- General: Properly handle
restoreToOriginalReplicaCount
ifScaleTarget
is missing (#2872) - General: Support for running KEDA secure-by-default as non-root (#2933)
- General: Synchronize HPA annotations from ScaledObject (#2659)
- General: Updated HTTPClient to be proxy-aware, if available, from environment variables. (#2577)
- General: Using manager client in KEDA Metrics Server to avoid flush request to Kubernetes Apiserver(#2914)
- ActiveMQ Scaler: Add CorsHeader information to ActiveMQ Scaler (#2884)
- AWS CloudWatch: Add support to use expressions(#2998)
- Azure Application Insights Scaler: Provide support for non-public clouds (#2735)
- Azure Blob Storage Scaler: Add optional parameters for counting blobs recursively (#1789)
- Azure Event Hub Scaler: Improve logging when blob container not found (#2363)
- Azure Event Hub Scaler: Provide support for non-public clouds (#1915)
- Azure Log Analytics Scaler: Provide support for non-public clouds (#1916)
- Azure Monitor Scaler: Provide support for non-public clouds (#1917)
- Azure Queue: Don't call Azure queue GetProperties API unnecessarily (#2613)
- Datadog Scaler: Rely on Datadog API to validate the query (#2761)
- Datadog Scaler: Several improvements, including a new optional parameter
metricUnavailableValue
to fill data when no Datadog metric was returned (#2657) - Datadog Scaler: Validate query to contain
{
to prevent panic on invalid query (#2625) - Graphite Scaler: Use the latest non-null datapoint returned by query (#2944)
- Kafka Scaler: Make "disable" a valid value for tls auth parameter (#2608)
- Kafka Scaler: New
scaleToZeroOnInvalidOffset
to control behavior when partitions have an invalid offset (#2033|#2612) - Metric API Scaler: Improve error handling on not-ok response (#2317)
- New Relic Scaler: Support to get account value from authentication resources. (#2883)
- Prometheus Scaler: Check and properly inform user that
threshold
is not set (#2793) - Prometheus Scaler: Support for
X-Scope-OrgID
header (#2667) - RabbitMQ Scaler: Include
vhost
for RabbitMQ when retrieving queue info withuseRegex
(#2498) - Selenium Grid Scaler: Consider
maxSession
grid info when scaling. (#2618)
- CPU, Memory, Datadog Scalers:
metadata.type
is deprecated in favor of the globalmetricType
(#2030)
None.
- General: Clean go.mod to fix golangci-lint (#2783)
- General: Consistent file naming in
pkg/scalers/
(#2806) - General: Fix mismatched errors for updating HPA (#2719)
- General: Improve e2e tests reliability (#2580)
- General: Improve e2e tests to always cleanup resources in cluster (#2584)
- General: Internally represent value and threshold as int64 (#2790)
- General: Refactor active directory endpoint parsing for Azure scalers. (#2853)
- AWS CloudWatch: Adding e2e test (#1525)
- AWS DynamoDB: Setup AWS DynamoDB test account (#2803)
- AWS Kinesis Stream: Adding e2e test (#1526)
- AWS SQS Queue: Adding e2e test (#1527)
- Azure Data Explorer: Adding e2e test (#2841)
- Azure Data Explorer: Replace deprecated function
iter.Next()
in favour ofiter.NextRowOrError()
(#2989) - Azure Service Bus: Adding e2e test (#2731|#2732)
- External Scaler: Adding e2e test. (#2697)
- External Scaler: Fix issue with internal KEDA core prefix being passed to external scaler. (#2640)
- GCP Pubsub Scaler: Adding e2e test (#1528)
- Hashicorp Vault Secret Provider: Adding e2e test (#2842)
- Memory Scaler: Adding e2e test (#2220)
- Selenium Grid Scaler: Adding e2e test (#2791)
- General: Fix generation of metric names if any of ScaledObject's triggers is unavailable (#2592)
- General: Fix logging in KEDA operator and properly set
ScaledObject.Status
in case there is a problem in a ScaledObject's trigger (#2603)
- General: Fix failing tests based on the scale to zero bug (#2603)
- Add ActiveMQ Scaler (#2305)
- Add Azure Application Insights Scaler (2506)
- Add New Datadog Scaler (#2354)
- Add New Relic Scaler (#2387)
- Add PredictKube Scaler (#2418)
- General: Delete the cache entry when a ScaledObject is deleted (#2564)
- General: Fail fast on
buildScalers
when not able to resolve a secret that a deployment is relying on (#2394) - General:
keda-operator
Cluster Role: addlist
andwatch
access to service accounts (#2406)|(#2410) - General: Sign KEDA images published on GitHub Container Registry (#2501)|(#2502)|(#2504)
- AWS Scalers: Support temporary AWS credentials using session tokens (#2573)
- AWS SQS Scaler: Allow using simple queue name instead of URL (#2483)
- Azure EventHub Scaler: Don't expose connection string in metricName (#2404)
- Azure Pipelines Scaler: Support
poolName
orpoolID
validation (#2370) - CPU Scaler: Adding e2e test for the cpu scaler (#2441)
- External Scaler: Fix wrong calculation of retry backoff duration (#2416)
- Graphite Scaler: Use the latest datapoint returned, not the earliest (#2365)
- Kafka Scaler: Allow flag
topic
to be optional, where lag of all topics within the consumer group will be used for scaling (#2409) - Kafka Scaler: Concurrently query brokers for consumer and producer offsets (#2405)
- Kubernetes Workload Scaler: Ignore terminated pods (#2384)
- PostgreSQL Scaler: Assign PostgreSQL
userName
to correct attribute (#2432)|(#2433) - Prometheus Scaler: Support namespaced Prometheus queries (#2575)
- No longer push to Docker Hub as of v2.5 as per our announcement in March 2021
- Learn more about the background on kedacore/governance#16
- Add Cassandra Scaler (#2211)
- Add Elasticsearch Scaler (#2311)
- Add Graphite Scaler (#1628)
- ScaledJob: introduce
MultipleScalersCalculation
(#2016) - ScaledJob: introduce
RolloutStrategy
(#2164) - Add ScalersCache to reuse scalers unless they need changing (#2187)
- Cache metric names provided by KEDA Metrics Server (#2279)
- Artemis Scaler: parse out broker config parameters in case
restAPITemplate
is given (#2104) - AWS Cloudwatch Scaler: improve metric exporting logic (#2243)
- AWS Cloudwatch Scaler: return minimum value for the metric when cloudwatch returns empty list (#2345)
- Azure Log Analytics Scaler: add support to provide the metric name(#2106)
- Azure Pipelines Scaler: improve logs (#2297)
- Cron Scaler: improve validation in case start & end input is same (#2032)
- Cron Scaler: improve the cron validation (#2038)
- GCP PubSub Scaler: introduce
SubscriptionSize
andOldestUnackedMessageAge
modes (#2266) - GCP PubSub Scaler: add GCP identity authentication when using (#2225)
- GCP PubSub Scaler: add possibility to reference a GCP PubSub subscription by full link, including project ID (#2269)
- InfluxDB Scaler: add
unsafeSsl
parameter (#2157|#2320) - Metrics API Scaler: add Bearer auth (#2028)
- MongoDB Scaler: add support to get connection data from Trigger Authorization (#2115)
- MSSQL Scaler: add support to get connection data from Trigger Authorization (#2112)
- MySQL Scaler: add support to get connection data from Trigger Authorization (#2113)
- MySQL Scaler: don't expose connection string in
metricName
(#2171) - PostgreSQL Scaler: add support to get connection data from Trigger Authorization (#2114)
- Prometheus Scaler: validating values length in Prometheus query response (#2264)
- Prometheus Scaler: omit
serverAddress
from generated metric name (#2099) - RabbitMQ Scaler: anonymize the host in case of HTTP failure (#2041)
- RabbitMQ Scaler: escape
queueName
andvhostName
before use them in query string (bug fix) (#2055) - RabbitMQ Scaler: add custom http timeout (#2086)
- RabbitMQ Scaler: add
pageSize
(using regex) (#2162|#2319) - Redis Scaler: upgrade library, add username and Sentinel support (#2181)
- SeleniumGrid Scaler: add
unsafeSsl
parameter (#2157) - Stan Scaler: provide support for configuring authentication through TriggerAuthentication (#2167)
- Allow setting
MaxConcurrentReconciles
for controllers (#2272) - Cleanup metric names inside scalers (#2260)
- Drop support to
ValueMetricType
using cpu_memory_scaler (#2218) - Improve metric name creation to be unique using scaler index inside the scaler (#2161)
- Improve error message if
IdleReplicaCount
are equal toMinReplicaCount
to be the same as the check (#2212) - TriggerAuthentication/Vault: add support for HashiCorp Vault namespace (Vault Enterprise) (#2085)
- GCP PubSub Scaler:
subscriptionSize
is deprecated in favor ofmode
andvalue
(#2266)
- TODO (#XXX)
- Ensure that
context.Context
values are properly passed down the stack (#2202|#2249) - Refactor AWS related scalers to reuse the AWS clients instead of creating a new one for every
GetMetrics
call (#2255) - Improve context handling in appropriate functionality in which we instantiate scalers (#2267)
- Migrate to Kubebuilder v3 (#2082)
- API path has been changed:
github.com/kedacore/keda/v2/api/v1alpha1
->github.com/kedacore/keda/v2/apis/keda/v1alpha1
- API path has been changed:
- Use Patch to set FallbackCondition on ScaledObject.Status (#2037)
- Bump Golang to 1.17.3 (#2329)
- Add Makefile mockgen targets (#2090|#2184)
- Add github action to run e2e command "on-demand" (#2241)
- Add execution url in the pr-e2e triggering comment and fix problem related with not starting with (#2306)
- Add Solace PubSub+ Event Broker scaler (#1945)
- Add Selenium Grid scaler (#1971)
- Add Kubernetes Workload scaler (#2010)
- Introduce fallback functionality (#1872)
- Introduce Idle Replica Mode (#1958)
- ScaledJob: Support pod conditions for pending job count calculation (#1970|#2009)
- Optimize Kafka scaler by fetching all topic offsets using a single HTTP request (#1956)
- Adding ability to specify Kafka Broker Version (#1866)
- Support custom metric name in RabbitMQ scaler (#1976)
- Support using regex to select the queues in RabbitMQ scaler (#1957)
- Extend Azure Monitor scaler to support custom metrics (#1883)
- Support non-public cloud environments in the Azure Service Bus scaler (#1907)
- Support non-public cloud environments in the Azure Storage Queue and Azure Storage Blob scalers (#1863)
- Adjusts InfluxDB scaler to support queries that return integers in addition to those that return floats (#1977)
- Allow InfluxDB
authToken
,serverURL
, andorganizationName
to be sourced from(Cluster)TriggerAuthentication
(#1904) - IBM MQ scaler password handling fix (#1939)
- Metrics APIServer: Add ratelimiting parameters to override client (#1944)
- Fix READY and ACTIVE fields of ScaledJob to show status when we run
kubectl get sj
(#1855) - Show HashiCorp Vault Address when using
kubectl get ta
orkubectl get cta
(#1862) - Don't panic when HashiCorp Vault path doesn't exist (#1864)
- Fix
keda-system-auth-delegator
ClusterRoleBinding name (#1616. Upgrading may leave a stray ClusterRoleBinding with the old namekeda:system:auth-delegator
behind.
- Use
scaled[object/job].keda.sh/
prefix for KEDA related labels (#2008)
- Add Azure Pipelines Scaler (#1706)
- Add OpenStack Metrics Scaler (#1382)
- Added basic, tls and bearer authentication support to the Prometheus scaler #1559
- Add header Origin to Apache Artemis scaler #1796
- Azure Service Bus Scaler: Namespace from
connectionString
parameter is added tometricName
due to uniqueness violation for clusters having more than one queue with the same name (#1755) - Remove app.kubernetes.io/version label from label selectors (#1696)
- Apache Kafka Scaler: Add
allowIdleConsumers
to the list of trigger parameters (#1684) - Fixed goroutine leaks in usage of timers (#1704 | #1739)
- Setting timeouts in the HTTP client used by the IBM MQ scaler (#1758)
- Fix cleanup of removed triggers (#1768)
- Eventhub Scaler: Add trigger parameter
checkpointStrategy
to support more language-specific checkpoints (#1621) - Fix Azure Blob scaler when using multiple triggers with the same
blobContainerName
and added a optionalmetricName
field (#1816)
- None.
- Adding OpenStack Swift scaler end-to-end tests (#1522)
- Pass deepCopy objects to the polling goroutines (#1812)
- Emit Kubernetes Events on KEDA events (#1523 | #1647)
- Support Quantities in Metrics API scaler (#1667)
- Add Microsoft SQL Server (MSSQL) scaler (#674 | docs)
- Add
publishRate
trigger to RabbitMQ scaler (#1653) - ScaledJob: support metadata labels in Job template (#1686)
- Add
KEDA_HTTP_DEFAULT_TIMEOUT
support in Operator (#1548) - Removed
MIN field
for ScaledJob (#1553) - Add container port for Prometheus on Operator YAML (#1562)
- Fix a memory leak in Kafka client and close push scalers (#1565)
- Add 'Metadata' header to AAD podIdentity request (#1566)
- KEDA should make sure generate correct labels for HPA (#1630)
- Fix memory leak by checking triggers uniqueness properly (#1640)
- Print correct ScaleTarget Kind in Events (#1641)
- Fixed KEDA ClusterRoles to give permissions for ClusterTriggerAuthentications (#1645)
- Make
swiftURL
parameter optional for the OpenStack Swift scaler (#1652) - Fix memory leak of
keda-metrics-apiserver
by setting a controller-runtime logger properly (#1654) - AWS SQS Scaler: Add Visible + NotVisible messages for scaling considerations (#1664)
- Fixing behavior on ScaledJob with incorrect External Scaler (#1672)
- None.
- None.
- Can use Pod Identity with Azure Event Hub scaler (#994)
- Introducing InfluxDB scaler (#1239)
- Add Redis cluster support for Redis list and Redis streams scalers (#1437)
- Global authentication credentials can be managed using
ClusterTriggerAuthentication
objects (#1452) - Introducing OpenStack Swift scaler (#1342)
- Introducing MongoDB scaler (#1467)
- Support add ScaledJob's label to its job (#1311)
- Bug fix in aws_iam_authorization to utilize correct secret from env key name (#1332)
- Add metricName field to postgres scaler and auto generate if not defined (#1381)
- Mask password in postgres scaler auto generated metricName (#1381)
- Bug fix for pending jobs in ScaledJob's accurateScalingStrategy (#1323)
- Fix memory leak because of unclosed scalers (#1413)
- Override the vhost on a RabbitMQ scaler via
vhostName
in the metadata (#1451) - Optimize Kafka scaler's
getLagForPartition
function (#1464) - Reduce unnecessary /scale requests from ScaledObject controller (#1453)
- Add support for the
WATCH_NAMESPACE
environment variable to the operator (#1474) - Automatically determine the RabbitMQ protocol when possible, and support setting the protocl via TriggerAuthentication (#1459, #1483)
- Improve performance when fetching pod information (#1457)
- Improve performance when fetching current scaling information on Deployments (#1458)
- Improve error reporting in prometheus scaler (#1497)
- Check that metricNames are unique in ScaledObject (#1390)
- Serve OpenAPI spec from KEDA Metrics Apiserver (#1512)
- Support metrics with multiple dimensions and configurable metricValues on AWS Cloudwatch Scaler (#1230)
- Show
MIN/MAX
replica counts when usingkubectl get scaledobject/scaledjob
(#1534) - Fix unnecessary HPA updates when Resource based Trigger is used (#1541)
None.
- Bump go module version to v2 (#1324)
- KEDA uses a dedicated HTTP client, connection pool, and (optional) TLS certificate for each configured scaler
- KEDA scales any CustomResource that implements Scale subresource (#703)
- Provide KEDA go-client (#494)
- Define KEDA readiness and liveness probes (#788)
- KEDA Support for configurable scaling behavior in HPA v2beta2 (#802)
- Add External Push scaler (#820 | docs)
- Managed Identity support for Azure Monitor scaler (#936)
- Add support for multiple triggers on ScaledObject (#476)
- Add consumer offset reset policy option to Kafka scaler (#925)
- Add option to restore to original replica count after ScaledObject's deletion (#219)
- Add Prometheus metrics for KEDA Metrics API Server (#823 | docs)
- Add support for multiple redis list types in redis list scaler (#1006) | docs)
- Introduce Azure Log Analytics scaler (#1061) | docs)
- Add Metrics API Scaler (#1026)
- Add cpu/memory Scaler (#1215)
- Add Scaling Strategy for ScaledJob (#1227)
- Add IBM MQ Scaler (#1253)
- Move from autoscaling
v2beta1
tov2beta2
for HPA (#721) - Introduce shortnames for CRDs (#774)
- Improve
kubectl get scaledobject
to show related trigger authentication (#777) - Improve
kubectl get triggerauthentication
to show information about configured parameters (#778) - Added ScaledObject Status Conditions to display status of scaling (#750)
- Added optional authentication parameters for the Redis Scaler (#962)
- Improved GCP PubSub Scaler performance by closing the client correctly (#1087)
- Added support for Trigger Authentication for GCP PubSub scaler (#1291)
- Change
apiGroup
fromkeda.k8s.io
tokeda.sh
(#552) - Introduce a separate ScaledObject and ScaledJob(#653)
- Remove
New()
andClose()
from the interface ofservice ExternalScaler
inexternalscaler.proto
. - Removed deprecated brokerList for Kafka scaler (#882)
- All scalers metadata that is resolved from the scaleTarget environment have suffix
FromEnv
added. e.g:connection
->connectionFromEnv
- Kafka: split metadata and config for SASL and TLS (#1074)
- Service Bus:
queueLength
is now calledmessageCount
(#1109) - Use
host
instead ofapiHost
inrabbitmq
scaler. Addprotocol
in trigger spec to specify which protocol should be used (#1115) - CRDs are using
apiextensions.k8s.io/v1
apiVersion (#1202)
- Change API optional structs to pointers to conform with k8s guide (#1170)
- Update Operator SDK and k8s deps (#1007,#870,#1180)
- Change Metrics Server image name from
keda-metrics-adapter
tokeda-metrics-apiserver
(#1105) - Add Argo Rollouts e2e test (#1234)
Learn more about our release in our milestone.
- Scalers
- Secret Providers
- Other
- Introduction of
nodeSelector
in raw YAML deployment specifications (Details)
- Introduction of
- Improved message count determination when using
includeUnacked
in RabbitMQ scaler (Details) - Fix for blank path without trailing slash in RabbitMQ scaler (Details)
- Improved parsing of connection strings to support
BlobEndpoint
,QueueEndpoint
,TableEndpoint
&FileEndpoint
segments (Details) - Support scaling when no storage checkpoint exists in Azure Event Hubs scaler (Details)
- GCP Pub Scaler should not panic on invalid credentials (Details)
- Make
queueLength
optional in RabbitMQ scaler (Details)
None.
None.
None
- Fix for scale-to-zero for Prometheus scaler no longer working (#770)
- Fix for passing default VHost for Rabbit MQ scaler no longer working (#770)
- Provide capability to define time encoding for operator (#766)
None.
- Print version of metric adapter in logs (#770)
- Extend RabbitMQ scaler to support count unacked messages(#700)
- Fix scalers leaking (#684)
- Provide installation YAML package as release artifact (#740)
- Improve Azure Monitor scaler to handle queries without metrics (#680)
- Authenticate to AWS with dedicated role without AssumeRole permissions (#656)
- KEDA now respects label restrictions on Horizontal Pod Autoscaler to have max 63 chars (#707)
- KEDA will automatically assign
deploymentName
label if it was not defined inScaledObject
(#709)
None.
- Adding label for metrics service selection (#745)
- Filter returned metrics from api server based on queried name (#732)
- Add redis host and port parameter to the scaler with tests (#719)
- Remove go micro version (#718)
- Update zero result return to be non-error inducing (#695)
- Return if kafka offset response is nil (#689)
- Fix typos in MySQL scaler (#683)
- Update README to mention CNCF (#682)
- Add Azure monitor scaler (#584)
- Introduce changelog (#664)
- Introduce support for AWS pod identity (#499)
- Make targetQueryValue configurable in postgreSQL scaler (#643)
- Removed the need for deploymentName label (#644)
- Adding Kubernetes recommended labels to resources (#596)
None.
- Updating license to Apache per CNCF donation (#661)
- Introduce new Postgres scaler (#553)
- Introduce new MySQL scaler (#564)
- Provide SASL_SSL Plain authentication for Kafka trigger scalar to work with Event Hubs (#585)
- TLS parameter to Redis-scaler (#540)
- Redis db index option (#577)
- Optional param for ConfigMaps and Secrets (#562)
- Remove manually adding sslmode to connection string (#558)
- ScaledObject.Status update should handle stale resource (#582)
- Improve reconcile loop (#581)
- Address naming changes for postgresql scaler (#593)
None.
- Move Metrics adapter into the separate Deployment (#506)
- Fix gopls location (#574)
- Add instructions on local development and debugging (#583)
- Add a checkenv target (#600)
- Mentioning problem with checksum mismatch error (#605)
- Introduce new Huawei Cloud CloudEye scaler (#478)
- Introduce new kinesis stream scaler (#526)
- Introduce new Azure blob scaler (#514)
- Support for SASL authentication for Kafka scaler (#486)
- Event Hub scalar expansion to work with Java and C# applications (#517)
- Escape Prometheus querystring (#521)
- Change how number of pending messages is calculated and add more error handling. (#533)
- Service bus scaler pod identity fix (#534)
- Eventhub scalar fix (#537)
- Kafka scaler fix for SASL plaintext auth (#544)
None.
- ScaledObject Status clean up (#466)
- Add default log level for operator (#468)
- Ensure get the metrics that have been aggregated (#509)
- Scale from zero when minReplicaCount is > 0 (#524)
- Total running Jobs must not exceed maxScale - Running jobs (#528)
- Check deploymentName definition in ScaledObject (#532)
- Many more scalers added
- Scaler extensibility (run scalers in a different container and communicate with KEDA via gRPC)
- TriggerAuthentication and Pod Identity for identity based auth that can be shared across deployments
- Schedule jobs on events in addition scaling out deployments
- Additional tests and automation through GitHub Actions
- RabbitMQ
host
property now must resolve from a secret (#347)
None.