KEDA 2.5.0
We are happy to release KEDA 2.5.0 🎉
Here are some highlights:
- Introducing a new Cassandra scaler
- Introducing a new Elasticsearch scaler
- Introducing a new Graphite scaler
- GCP PubSub Scaler:
subscriptionSize
is deprecated in favor ofmode
andvalue
- Performance improvements
- Lot of improvements in several scalers
Learn how to deploy KEDA by reading our documentation.
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
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)
Deprecations
- GCP PubSub Scaler:
subscriptionSize
is deprecated in favor ofmode
andvalue
(#2266)
Breaking Changes
- None
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
- 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)
New Contributors
- @fbalicchia made their first contribution in #2051
- @chapurlatn made their first contribution in #2085
- @bpinske made their first contribution in #2092
- @mihaitodor made their first contribution in #2137
- @dtsioumas made their first contribution in #2157
- @Deichindianer made their first contribution in #2212
- @jerbob92 made their first contribution in #2181
- @etamarw made their first contribution in #2164
- @jmalvarezf-lmes made their first contribution in #2225
- @fivesheep made their first contribution in #2243
- @sosoftmandruszak made their first contribution in #2264
- @Friedrich42 made their first contribution in #2266
- @endersonmenezes made their first contribution in #2297
- @orphaner made their first contribution in #2311
- @allupaku made their first contribution in #2345
Full Changelog: v2.4.0...v2.5.0
Detailed Overview
- Update Python in dev containers and add .gitattributes by @JorTurFer in #2021
- validation and check in cron scaler for same start and end case by @Ritikaa96 in #2032
- chore: KEDA was accepted as CNCF Incubation project by @tomkerkhove in #2039
- Add Bearer Auth for Metrics API scaler by @JorTurFer in #2028
- Update cron scaler to parse the cron with parser instead of searching for '-' by @JorTurFer in #2038
- adapt test to #381 by @fbalicchia in #2051
- use Patch to set FallbackCondition on ScaledObject.Status by @zroubalik in #2037
- Escape
queueName
andvhostName
in RabbitMQ Scaler before use them in query string (bug fix) by @JorTurFer in #2055 - Anonymize the host in case of HTTP failure (RabbitMQ Scaler) by @JorTurFer in #2041
- Update Makefile to ensure that bash is used instead of sh or another by @JorTurFer in #2061
- Adds explicit the option of setting
KEDA_HTTP_DEFAULT_TIMEOUT
by @JorTurFer in #2062 - fix typo in isScalableCache by @zroubalik in #2064
- build-tools image: bump Golang to 1.16.7 by @zroubalik in #2067
- bump golangci-lint to 1.42.0 by @zroubalik in #2066
- bump Golang to 1.16.7 by @zroubalik in #2065
- Bump bruceadams/get-release from 1.2.2 to 1.2.3 by @dependabot in #2081
- Migrate to Kubebuilder v3 by @zroubalik in #2082
- Bump github.com/aws/aws-sdk-go from 1.40.34 to 1.40.35 by @dependabot in #2088
- Bump github.com/tidwall/gjson from 1.8.1 to 1.9.0 by @dependabot in #2089
- Adds e2e test for PostgreSQL scaler by @JorTurFer in #2091
- Add custom http timeout in RabbitMQ Scaler by @JorTurFer in #2086
- TriggerAuthentication/Vault: add support for vault namespace by @chapurlatn in #2085
- ScaledJob: introduce
MultipleScalersCalculation
by @TsuyoshiUshio in #2016 - Graphite Scaler + e2e tests by @bpinske in #2092
- Fix dev container after Golang version update by @JorTurFer in #2102
- Raises an error when RabbitMQ regex matches more than 1 page by @JorTurFer in #2103
- Add support to provide the metric name in Azure Log Analytics Scaler by @JorTurFer in #2106
- Add e2e test for cron scaler by @JorTurFer in #2107
- Add support to get connection data from Trigger Authorization in MSSQL Scaler by @JorTurFer in #2112
- Add support to get connection data from Trigger Authorization in MySQL Scaler by @JorTurFer in #2113
- Add support to get connection data from Trigger Authorization in MongoDB Scaler by @JorTurFer in #2115
- Add support to get connection data from Trigger Authorization in PostgreSQL Scaler by @JorTurFer in #2114
- Fix MongoDB
dbName
property parsing by @JorTurFer in #2140 - Add Makefile mockgen targets by @mihaitodor in #2137
- Fix typo in Makefile by @JorTurFer in #2154
- Add pageSize (using regex) in RabbitMQ Scaler by @JorTurFer in #2162
- Artemis Scaler parses out broker config parameters in case
restAPITemplate
is given by @Ritikaa96 in #2104 - Add
unsafeSsl
parameter on InfluxDB by @dtsioumas in #2157 - bump Golang to 1.16.9 by @zroubalik in #2186
- bump deps by @zroubalik in #2185
- update liiklus protobuf generation by @zroubalik in #2184
- Prometheus scaler: omit
serverAddress
from generated metric name by @zroubalik in #2099 - Improve metric name creation to be unique using scaler index inside the scaler by @JorTurFer in #2161
- Provide support for configuring authentication through TriggerAuthentication for Stan scaler by @Ritikaa96 in #2167
- MySQL Scaler: don't expose connection string in
metricName
by @zroubalik in #2171 - chore: Provide configuration for automatically closing inactive issues by @tomkerkhove in #2189
- chore: Change
feature
as allowed label for stale issues, instead offeature-request
by @tomkerkhove in #2193 - docs: Add step in release process for next release by @tomkerkhove in #2205
- Fix error message if IdleReplicaCount is equal to MinReplicaCount by @Deichindianer in #2212
- e2e: run Solace and Selenium Grid tests by @zroubalik in #2216
- Update CI to run build/unit tests on arm64 by @zroubalik in #2213
- Propagate contexts down scaler call stacks by @arschles in #2202
- Drop support to
ValueMetricType
using cpu_memory_scaler by @JorTurFer in #2218 - Add Cassandra scaler and tests by @nilayasiktoprak in #2211
- fix: add context to Cassandra Scaler functions by @zroubalik in #2221
- Improve Redis support by @jerbob92 in #2181
- Fix Cassandra e2e test by @zroubalik in #2238
- Fix Cassandra e2e tests part 2 by @zroubalik in #2239
- ScaledJob: introduce
rolloutStrategy
by @etamarw in #2164 - Fix sentinel streams e2e test by @jerbob92 in #2245
- e2e: extend deployment timeouts by @zroubalik in #2246
- Add GCP identity authentication when using Pubsub Scaler by @jmalvarezf-lmes in #2225
- e2e: extending Redis timeouts by @zroubalik in #2250
- Properly propagate context by @zroubalik in #2249
- Improve AWS Cloudwatch Scaler metric exporting logic by @fivesheep in #2243
- Add github action to run e2e command "on-demand" by @JorTurFer in #2241
- Add triggering condition to failure reaction for on-demand command by @JorTurFer in #2257
- Split the workflow to trigger e2e test in 2 different jobs by @JorTurFer in #2258
- Fix: extend Cassandra e2e test timeouts by @nilayasiktoprak in #2253
- update aws related scalers to reuse the aws clients by @fivesheep in #2255
- Set concurrency for pr-e2e action by @ahmelsayed in #2261
- Reverting #2261 by @zroubalik in #2265
- Add ScalersCache to reuse scalers unless they need changing by @ahmelsayed in #2187
- Propagating contexts to all remaining scalers by @arschles in #2267
- Validate values length for prometheus scaler by @sosoftmandruszak in #2264
- Cleanup metric names inside scalers by @JorTurFer in #2260
- bump go deps by @zroubalik in #2281
- Use a different cluster for pr e2e runs by @ahmelsayed in #2283
beta.kubernetes.io/os
nodeSelector is deprecated by @zroubalik in #2280- Add
unsafeSsl
parameter in Selenium Grid scaler by @JorTurFer in #2285 - docs: Provide emphasize on preparing our Helm chart by @tomkerkhove in #2288
- Add execution url in the pr-e2e triggering comment and fix problem related with not starting with by @JorTurFer in #2306
- chore(deps): update github actions by @renovate in #2298
- GCP Pub/Sub Scaler: add oldest unacked message age metric by @Friedrich42 in #2266
- Cache metric names provided by KEDA Metrics Server by @zroubalik in #2279
- improve (azure-pipelines): log url on error by @endersonmenezes in #2297
- RabbitMQ: use int64 for
pageSize
to avoid conversion problems by @zroubalik in #2319 - Influx: Update client generation to fix issues by @JorTurFer in #2320
- GCP Pub/Sub Scaler: add logic to accept subscription IDs with projectID by @jmalvarezf-lmes in #2269
- Add Elasticsearch Scaler based on search template by @orphaner in #2311
- Allow setting
MaxConcurrentReconciles
for reconcilers by @zroubalik in #2272 - chore: Use @kedacore/keda-maintainers for code ownership by @tomkerkhove in #2326
- docs: Introduce continous container scanning with Snyk in release process by @tomkerkhove in #2325
- Bump axios from 0.21.1 to 0.21.2 in /tests by @dependabot in #2327
- fix: Remove org prefix for code owners by @tomkerkhove in #2330
- bump to Go 1.17.3 by @zroubalik in #2329
- Changelog chores by @zroubalik in #2333
- fix: Use verbose code ownership by @tomkerkhove in #2335
- Changelog: fix typo by @zroubalik in #2337
- bump dependencies by @zroubalik in #2331
- chore: use @kedacore/keda-core-contributors for code ownership by @tomkerkhove in #2344
- Handle no metrics found for AWS Cloudwatch by @allupaku in #2345
- fix: Validate TLS certificate check being disabled by @JorTurFer in #2341
- Prepare 2.5.0 release by @JorTurFer in #2346
- Use GH Action to extract the tag by @JorTurFer in #2349
- Revert GH action change and fix makefile by @JorTurFer in #2350