v2.20.2
Added 1
- Introduce a dedicated `HPAActive` condition on `ScaledObject` mirroring the HPA's own `ScalingActive` status, so transient HPA metric gaps no longer flip the `Ready` condition to `False`
Changed 1
- Share HTTP transports across scalers to reuse connection pools and avoid re-dial storms at high ScaledObject counts
Fixed 11
- Fix concurrent map writes panic in the shared root CA `CertPool`
- Fix nil pointer dereference in AWS Secret Manager `TriggerAuthentication` when `awsSecretManager.credentials` is omitted and no `awsSecretManager.podIdentity` is set
- Fix nil pointer dereference in `customScalingStrategy.GetEffectiveMaxScale` when `customScalingQueueLengthDeduction` is omitted; the optional field is now treated as zero deduction instead of panicking
- Fix nil pointer dereference in `GetCurrentReplicas` when a Deployment/StatefulSet/ReplicaSet is returned from the informer cache with an undefaulted `spec.replicas`; a nil value is now treated as the Kubernetes default of 1 instead of panicking
- Fix `ScaledJob` CRD validation to include "default" as a valid value for `scalingStrategy.strategy`
- Guard `GetCurrentReplicas` against nil `Status.ScaleTargetGVKR` to prevent operator panics under the cache race condition
- Restore core `""` API group in events RBAC so that client-go's event broadcaster can write legacy events
- Restore gRPC reconnect backoff in the metrics service client; an unset `Backoff` in `WithConnectParams` disabled backoff and caused a zero-delay reconnect loop that flooded logs when keda-operator was unreachable
- Treat negative external metric values as zero to prevent incorrect HPA scaling
- Fix `globPattern` in Azure Blob Storage Scaler never matching when written in path-style with a leading `/`, since blob names never have one
- Disconnect the MongoDB Scaler client when the initial `Ping` fails so the background topology-monitoring connections opened by `mongo.Connect` are not leaked
Release KEDA v2.20.2 :rocket:
⚠️⚠️⚠️⚠️ ⚠️ Please read upgrade notes if you are upgrading from version < 2.20.0: https://github.com/kedacore/keda/releases/tag/v2.20.0 ⚠️⚠️⚠️⚠️⚠️
Improvements
- General: Introduce a dedicated
HPAActivecondition onScaledObjectmirroring the HPA's ownScalingActivestatus, so transient HPA metric gaps no longer flip theReadycondition toFalse(#7914)
Fixes
- General: Fix concurrent map writes panic in the shared root CA
CertPool(#7910) - General: Fix nil pointer dereference in AWS Secret Manager
TriggerAuthenticationwhenawsSecretManager.credentialsis omitted and noawsSecretManager.podIdentityis set (#7927) - General: Fix nil pointer dereference in
customScalingStrategy.GetEffectiveMaxScalewhencustomScalingQueueLengthDeductionis omitted; the optional field is now treated as zero deduction instead of panicking (#7798) - General: Fix nil pointer dereference in
GetCurrentReplicaswhen a Deployment/StatefulSet/ReplicaSet is returned from the informer cache with an undefaultedspec.replicas; a nil value is now treated as the Kubernetes default of 1 instead of panicking (#7863) - General: Fix
ScaledJobCRD validation to include "default" as a valid value forscalingStrategy.strategy(#7855) - General: Guard
GetCurrentReplicasagainst nilStatus.ScaleTargetGVKRto prevent operator panics under the cache race documented in (#4389) / (#4955) - General: Restore core
""API group in events RBAC so that client-go's event broadcaster can write legacy events (#7922) - General: Restore gRPC reconnect backoff in the metrics service client; an unset
BackoffinWithConnectParamsdisabled backoff and caused a zero-delay reconnect loop that flooded logs when keda-operator was unreachable (#7856) - General: Share HTTP transports across scalers to reuse connection pools and avoid re-dial storms at high ScaledObject counts (#7789)
- General: Treat negative external metric values as zero to prevent incorrect HPA scaling (#7880)
- Azure Blob Storage Scaler: Fix
globPatternnever matching when written in path-style with a leading/, since blob names never have one (#6492) - MongoDB Scaler: Disconnect the client when the initial
Pingfails so the background topology-monitoring connections opened bymongo.Connectare not leaked (#5612)
New Contributors
- @Goutham-Annem made their first contribution in https://github.com/kedacore/keda/pull/7858
- @simplyaduck made their first contribution in https://github.com/kedacore/keda/pull/7857
- @itxaiohanglover made their first contribution in https://github.com/kedacore/keda/pull/7871
- @orfeldman-evolinq made their first contribution in https://github.com/kedacore/keda/pull/7904
- @vishnu97770 made their first contribution in https://github.com/kedacore/keda/pull/7928
- @sobol-sudo made their first contribution in https://github.com/kedacore/keda/pull/7932
Full Changelog: https://github.com/kedacore/keda/compare/v2.20.1...v2.20.2