Skip to content

Latest commit

 

History

History
487 lines (355 loc) · 29.7 KB

CHANGELOG.md

File metadata and controls

487 lines (355 loc) · 29.7 KB

Changelog

Deprecations

History

Unreleased

New

Improvements

  • Graphite Scaler: use the latest datapoint returned, not the earliest (#2365)

  • Kubernetes Workload Scaler: ignore terminated pods (#2384)

  • keda-operator Cluster Role: add list and watch access to service accounts (#2406)|(#2410)

  • TODO (#XXX)

Breaking Changes

Other

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.