Skip to content

Latest commit

 

History

History
1054 lines (782 loc) · 74.5 KB

CHANGELOG.md

File metadata and controls

1054 lines (782 loc) · 74.5 KB

Changelog

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.

Deprecations

To learn more about active deprecations, we recommend checking GitHub Discussions.

History

Unreleased

New

Improvements

  • General:: Add ScaledObject/ScaledJob names to output of kubectl get triggerauthentication/clustertriggerauthentication (#796)

Fixes

  • 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 rate checking on GHEC when HTTP 200 (#4786)
  • GitHub Runner Scaler: Fix explicit repo check 404 to skip not crash (#4790)
  • Pulsar Scaler: Fix msgBacklogThreshold field being named wrongly as msgBacklog (#4681)

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s):

Breaking Changes

Other

  • General: Refactor ScaledJob related methods to be located at scale_handler (#4781)

v2.11.1

New

None.

Improvements

None.

Fixes

  • 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)

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s): None.

Breaking Changes

None.

Other

None.

v2.11.0

New

  • 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 redis stream length (#4277)
  • Redis Scalers: Allow scaling using consumer group lag (#3127)

Breaking Changes

  • General: Metrics Adapter: remove deprecated Prometheus Metrics and non-gRPC code (#3930)

Improvements

  • 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
  • General: Kubernetes v1.25, v1.26 or v1.27 are supported
  • 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 with pgx (#4704)
  • Prometheus Scaler: Add support for Google Managed Prometheus (#467)
  • 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)

Fixes

  • 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 to use range instead of instant (#4513)
  • General: Grafana Dashboard: Fix HPA metrics panel by replacing $namepsace to $exported_namespace due to label conflict (#4539)
  • 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)

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s):

  • Azure Data Explorer: Deprecate metadata.clientSecret (#4514)

Other

  • 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)

v2.10.1

Fixes

  • 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 using meta.parentID method ([#4397])
  • Azure Pipelines: Respect all required demands (#4404)

v2.10.0

New

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)

Improvements

  • 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 and sasl in ScaledObject (#4232)
  • Kafka Scaler: Improve error logging for GetBlock method (#4232)
  • Prometheus Scaler: Add custom headers and custom auth support (#4208)
  • 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)
  • Prometheus Scaler: Extend Prometheus Scaler to support Azure managed service for Prometheus (#4153)

Fixes

  • 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 and namespace optional when using expression (#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)

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s):

  • General: Deprecate explicitly setting metricName field from ScaledObject.triggers[*].metadata (#4220)
  • Prometheus Scaler: cortexOrgId metadata deprecated in favor of custom headers (#4208)

Other

  • 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 and IsActive to GetMetricsAndActivity 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 to rabbitmq/amqp091-go (#4004)

v2.9.3

Fixes

  • Azure Service Bus Scaler: Use correct auth flows with pod identity (#4026|#4123)

v2.9.2

Fixes

  • General: Prevent a panic that might occur while refreshing a scaler cache (#4092)
  • Prometheus Metrics: Fix exposed metric from keda_scaled_errors to keda_scaled_object_errors (#4037)
  • Azure Service Bus Scaler: Use correct auth flows with pod identity (#4026)

v2.9.1

Fixes

  • 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)

v2.9.0

Breaking Changes

  • General: Change API version of HPA from autoscaling/v2beta2 to autoscaling/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)

New

Here is an overview of all stable additions:

  • General: EXPERIMENTAL Adding an option to cache metric values for a scaler during the polling interval (#2282)
  • 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 (Governance #68)
  • General: Provide off-the-shelf Grafana dashboard for application autoscaling (Docs | #3911)
  • General: Produce reproducible builds (#3509
  • 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: Introduce new ScalerName label in Prometheus metrics. (#3588)
  • Prometheus Metrics: Expose renamed version of existing Prometheus Metrics in KEDA Operator. (#3919)
  • 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: EXPERIMENTAL Adding an option to cache metric values for a scaler during the polling interval (#2282)

Improvements

  • General: Add explicit seccompProfile type to securityContext config (#3561)
  • General: Add Min column to ScaledJob visualization (#3689)
  • General: Disable response compression for k8s restAPI in client-go (#3863 | Kubernetes #112296)
  • General: Improve the function used to normalize metric names (#3789
  • General: Support for using pod identities for authentication in Azure Key Vault (#3813
  • General: Support disable keep http connection alive (#3874
  • General: Support "Restrict Secret Access" to mitigate the security risk (#3668
  • Apache Kafka Scaler: Support for SASL/OAuth bearer authentication (#3681)
  • Apache Kafka Scaler: Support for limiting Kafka partitions KEDA will monitor (#3830)
  • Apache Kafka Scaler: Support for excluding persistent lag (#3904)
  • 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 using connection strings for Event Hub namespace instead of the Event Hub itself. (#3922)
  • Azure Event Hubs Scaler: Support for dapr checkpoint strategy (#3022)
  • 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 prefix (#3756)
  • GCP Storage Scaler: Support for blob delimiters (#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)

Fixes

  • General: Respect optional parameter inside envs for ScaledJobs (#3568)
  • General: Ensure Close is only called once during PushScaler's deletion (#3881)
  • Security: Provide patch for CVE-2022-3172 vulnerability (#3690)
  • 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)
  • New Relic Scaler Store forgotten logger (#3945)
  • Prometheus Scaler: Treat Inf the same as Null result (#3644)
  • NATS Jetstream: Correctly count messages that should be redelivered (waiting for ack) towards KEDA value (#3787)

Deprecations

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 of blobMetadata (#XXX | Discussion)
  • metadata.type is deprecated in favor of the global metricType for CPU, Memory, Datadog scalers (#2844 | Discussion)
  • rolloutStrategy is deprecated in favor of rollout.strategy in ScaledJobs (#3596 | Discussion)

Other

  • General: Bump Golang to 1.18.6 (#3205)
  • General: Bump github.com/Azure/azure-event-hubs-go/v3 (#2986)
  • General: Migrate from azure-service-bus-go to azservicebus (#3394)
  • General: Metrics Server: use gRPC connection to get metrics from Operator (#3920)
  • General: Metrics Server: use OpenAPI definitions served by custom-metrics-apiserver (#3929)
  • Azure EventHub: Add e2e tests (#2792)
  • Apache Kafka Scaler: Increase logging V-level (#3948)

v2.8.1

New

None.

Improvements

  • Datadog Scaler: Support multi-query metrics, and aggregation (#3423)

Fixes

  • 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)

Deprecations

None.

Breaking Changes

None.

Other

  • General: Execute trivy scan (on PRs) only if there are changes in deps (#3540)
  • General: Use re-usable workflows for GitHub Actions (#2569)

v2.8.0

New

  • General: Introduce new AWS DynamoDB Streams Scaler (#3124)
  • General: Introduce new NATS JetStream scaler (#2391)
  • General: Introduce activationThreshold/minMetricValue for all scalers (#2800)
  • General: Support for minReplicaCount in ScaledJob (#3426)
  • General: Support to customize HPA name (#3057)
  • 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 permission segregation when using Azure AD Pod / Workload Identity. (#2656)
  • 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)

Improvements

  • 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)

Fixes

  • 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)

Deprecations

  • ScaledJob: rolloutStrategy is deprecated in favor of rollout.strategy (#2910)

Breaking Changes

None.

Other

  • General: Migrate e2e test to Go. (2737)
  • General: Bump Golang to 1.17.13 and deps (#3447)
  • General: Fix devcontainer on ARM64 Arch. (3084)
  • General: Improve error message in resolving ServiceAccount for AWS EKS PodIdentity (3142)
  • General: Improve e2e on PR process through comments. (3004)
  • 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)

v2.7.1

Improvements

  • General: Don't hardcode UIDs in securityContext (#3012)

Other

  • General: Fix CVE-2022-21221 in github.com/valyala/fasthttp (#2775)
  • General: Bump Golang to 1.17.9 (#3016)
  • General: Fix autoscaling behaviour while paused. (#3009)

v2.7.0

New

  • 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 (#2486)
  • 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 in ScaledObject for all scalers except CPU/Memory (#2030)

Improvements

  • General: Bump dependencies versions (#2978)
  • General: Properly handle restoreToOriginalReplicaCount if ScaleTarget 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: Validate query to contain { to prevent panic on invalid query (#2625)
  • Datadog Scaler: Several improvements, including a new optional parameter metricUnavailableValue to fill data when no Datadog metric was returned (#2657)
  • Datadog Scaler: Rely on Datadog API to validate the query (2761)
  • Graphite Scaler Use the latest non-null datapoint returned by query. (#2625)
  • 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 with useRegex (#2498)
  • Selenium Grid Scaler: Consider maxSession grid info when scaling. (#2618)

Deprecations

  • CPU, Memory, Datadog Scalers: metadata.type is deprecated in favor of the global metricType (#2030)

Breaking Changes

None.

Other

  • 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 of iter.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)

v2.6.1

Improvements

  • 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)

Other

  • General: Fix failing tests based on the scale to zero bug (#2603)

v2.6.0

New

  • Add ActiveMQ Scaler (#2305)
  • Add Azure Application Insights Scaler (2506)
  • Add New Datadog Scaler (#2354)
  • Add New Relic Scaler (#2387)
  • Add PredictKube Scaler (#2418)

Improvements

  • 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: add list and watch 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 or poolID 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)

Breaking Changes

v2.5.0

New

  • 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)

Improvements

  • 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 and OldestUnackedMessageAge 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 and vhostName 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 to MinReplicaCount to be the same as the check (#2212)
  • TriggerAuthentication/Vault: add support for HashiCorp Vault namespace (Vault Enterprise) (#2085)

Deprecations

  • GCP PubSub Scaler: subscriptionSize is deprecated in favor of mode and value (#2266)

Breaking Changes

Other

  • 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
  • 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)

v2.4.0

New

  • 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)

Improvements

  • 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, and organizationName 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 or kubectl get cta (#1862)
  • Don't panic when HashiCorp Vault path doesn't exist (#1864)

Breaking Changes

  • Fix keda-system-auth-delegator ClusterRoleBinding name (#1616. Upgrading may leave a stray ClusterRoleBinding with the old name keda:system:auth-delegator behind.

Other

  • Use scaled[object/job].keda.sh/ prefix for KEDA related labels (#2008)

v2.3.0

New

  • 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

Improvements

  • Azure Service Bus Scaler: Namespace from connectionString parameter is added to metricName 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 optional metricName field (#1816)

Breaking Changes

  • None.

Other

  • Adding OpenStack Swift scaler end-to-end tests (#1522)
  • Pass deepCopy objects to the polling goroutines (#1812)

v2.2.0

New

  • 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)

Improvements

  • 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)

Breaking Changes

  • None.

Other

  • None.

v2.1.0

New

  • 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)

Improvements

  • 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 using kubectl get scaledobject/scaledjob (#1534)
  • Fix unnecessary HPA updates when Resource based Trigger is used (#1541)

Breaking Changes

None.

Other

  • Bump go module version to v2 (#1324)

v2.0.0

New

  • 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)

Improvements

  • Move from autoscaling v2beta1 to v2beta2 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)

Breaking Changes

  • Change apiGroup from keda.k8s.io to keda.sh (#552)
  • Introduce a separate ScaledObject and ScaledJob(#653)
  • Remove New() and Close() from the interface of service ExternalScaler in externalscaler.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 called messageCount (#1109)
  • Use host instead of apiHost in rabbitmq scaler. Add protocol in trigger spec to specify which protocol should be used (#1115)
  • CRDs are using apiextensions.k8s.io/v1 apiVersion (#1202)

Other

  • 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 to keda-metrics-apiserver (#1105)
  • Add Argo Rollouts e2e test (#1234)

v1.5.0

Learn more about our release in our milestone.

New

  • Scalers
    • Introduce Active MQ Artemis scaler (Docs)
    • Introduce Redis Streams scaler (Docs | Details)
    • Introduce Cron scaler (Docs | Details)
  • Secret Providers
    • Introduce HashiCorp Vault secret provider (Docs | Details)
  • Other
    • Introduction of nodeSelector in raw YAML deployment specifications (Details)

Improvements

  • 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)

Breaking Changes

None.

Other

None.

v1.4.1

New

None

Improvements

  • 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)

Breaking Changes

None.

Other

  • Print version of metric adapter in logs (#770)

v1.4.0

New

  • Extend RabbitMQ scaler to support count unacked messages(#700)

Improvements

  • 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 in ScaledObject (#709)

Breaking Changes

None.

Other

  • 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)

v1.3.0

New

  • Add Azure monitor scaler (#584)
  • Introduce changelog (#664)
  • Introduce support for AWS pod identity (#499)

Improvements

  • Make targetQueryValue configurable in postgreSQL scaler (#643)
  • Removed the need for deploymentName label (#644)
  • Adding Kubernetes recommended labels to resources (#596)

Breaking Changes

None.

Other

  • Updating license to Apache per CNCF donation (#661)

v1.2.0

New

  • 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)

Improvements

  • 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)

Breaking Changes

None.

Other

  • 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)

v1.1.0

New

  • 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)

Improvements

  • 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)

Breaking Changes

None.

Other

  • 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)

v1.0.0

New

  • 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

Improvements

  • Additional tests and automation through GitHub Actions

Breaking Changes

  • RabbitMQ host property now must resolve from a secret (#347)

Other

None.