Skip to content

Prepare 2.18.2#7299

Merged
JorTurFer merged 10 commits intokedacore:release/v2.18from
JorTurFer:prepare-2.18.2
Dec 8, 2025
Merged

Prepare 2.18.2#7299
JorTurFer merged 10 commits intokedacore:release/v2.18from
JorTurFer:prepare-2.18.2

Conversation

@JorTurFer
Copy link
Member

Checklist

  • Commits are signed with Developer Certificate of Origin (DCO - learn more)

Relates to #7296

@snyk-io
Copy link

snyk-io bot commented Dec 8, 2025

⚠️ Snyk checks are incomplete.

Status Scanner Critical High Medium Low Total (0)
⚠️ Open Source Security 0 0 0 0 See details

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@keda-automation keda-automation requested review from a team December 8, 2025 11:05
rickbrouwer and others added 10 commits December 8, 2025 12:05
Signed-off-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
…edacore#7241)

* fix: metricUnavailableValue parameter not working in Datadog scaler

The UseFiller flag was not being set correctly when metricUnavailableValue
was configured. This fix distinguishes between 'not configured' and
'explicitly set to 0' by checking TriggerMetadata directly.

Changes:
- Set UseFiller in validateAPIMetadata() when metricUnavailableValue exists
- Set UseFiller in validateClusterAgentMetadata() when metricUnavailableValue exists
- Remove UseFiller logic from Validate() (responsibility moved to validate functions)
- Update tests to verify UseFiller behavior with various values including 0

This allows users to explicitly set metricUnavailableValue to 0 and have
it work as a fallback value, while still erroring when not configured.

Fixes kedacore#7238

Signed-off-by: Hiroki Matsui <fenethtool@gmail.com>

* test: cover both API and ClusterAgent modes in UseFiller test

Updated TestDatadogMetadataValidateUseFiller to test both validateAPIMetadata()
and validateClusterAgentMetadata() code paths. This ensures that the UseFiller
flag is correctly set in both integration modes.

Test cases now cover:
- API mode: 5 test cases (not configured, 0, positive, negative, decimal)
- Cluster Agent mode: 5 test cases (same variations)

Signed-off-by: Hiroki Matsui <fenethtool@gmail.com>

* refactor: use pointer type for FillValue to avoid TriggerMetadata access

Changed FillValue from float64 to *float64 to distinguish between
'not configured' (nil) and 'explicitly set to any value including 0'.

This addresses reviewer feedback about avoiding direct TriggerMetadata
access and improves type safety and refactoring resistance.

Changes:
- FillValue type changed from float64 to *float64 with optional tag
- validateAPIMetadata checks nil instead of TriggerMetadata map
- validateClusterAgentMetadata checks nil instead of TriggerMetadata map
- Dereference FillValue when returning fallback value (2 locations)
- Update tests to handle pointer type with proper nil checks

Signed-off-by: Hiroki Matsui <fenethtool@gmail.com>

---------

Signed-off-by: Hiroki Matsui <fenethtool@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
When a ScaledObject has the paused annotation set before the HPA is
created, the controller would fall through and create the HPA, ignoring
the pause annotation.

The fix writes the paused status to etcd immediately before stopping
the scale loop or deleting the HPA. This prevents race conditions where
concurrent reconciles triggered by HPA deletion would not see the paused
status and perform redundant operations.

The key insight is to establish the paused state in etcd BEFORE any
operations that trigger new reconciles, ensuring subsequent reconciles
see the paused status and exit early.

This solution follows the approach suggested by @rickbrouwer.

Fixes kedacore#7231

Signed-off-by: nusmql <nusmql@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
Signed-off-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
…#7260)

* chore: renormalize line endings

Signed-off-by: James Williams <jamesleighwilliams@gmail.com>

* fix: nil pointer when transfer-hpa-ownership is true but hpa name not specified (kedacore#7254)

Signed-off-by: James Williams <jamesleighwilliams@gmail.com>

* update changelog

Signed-off-by: James Williams <jamesleighwilliams@gmail.com>

* revert vendor changes

Signed-off-by: James Williams <jamesleighwilliams@gmail.com>

---------

Signed-off-by: James Williams <jamesleighwilliams@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
…ted (kedacore#7291)

When paused-scale-in or paused-scale-out annotation is deleted (not set
to "false") and the corresponding selectPolicy (scaleDown.selectPolicy
or scaleUp.selectPolicy) is not explicitly set in the ScaledObject spec,
the HPA's SelectPolicy remains stuck at "Disabled" instead of being
restored.

This occurs even if other behavior fields like policies or
stabilizationWindowSeconds are defined - only an explicit selectPolicy
value triggers the update.

Root cause: DeepDerivative treats nil as "unset" and considers it a
subset of any value, so DeepDerivative(nil, Disabled) returns true,
preventing the HPA update.

Fix: Add explicit DeepEqual check for Behavior field, following the
existing pattern used for Metrics length check.

test: add e2e test for paused-scale-in annotation removal

Signed-off-by: Dima Shevchuk <dshedimon@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
* refactor: remove unused scaledObjectMetricSpecs variable

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* update CHANGELOG.md

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

---------

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
…re#7273)

* fix: handle requestScaleLoop error in ScaledObject controller

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* chore: update CHANGELOG for PR kedacore#7273

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

---------

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>
Signed-off-by: Jorge Turrado Ferrero <Jorge_turrado@hotmail.es>
Co-authored-by: Jorge Turrado Ferrero <Jorge_turrado@hotmail.es>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
* bump actions and go version

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* bump deps

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* update pkgs

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* update tools

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* .

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* fix test

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* fix lint

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* update setup-go to use go.mod version

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* add nolint to exclude pulsar issues

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* fix devenv

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* fix codeql

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* fix splunk test

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* include job in links

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* update to ubuntu-slim some runners

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>

* Update apis/keda/v1alpha1/scaledobject_webhook_test.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jorge Turrado Ferrero <Jorge_turrado@hotmail.es>

* Update .github/workflows/scorecards.yml

Co-authored-by: Jan Wozniak <wozniak.jan@gmail.com>
Signed-off-by: Jorge Turrado Ferrero <Jorge_turrado@hotmail.es>

---------

Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>
Signed-off-by: Jorge Turrado Ferrero <Jorge_turrado@hotmail.es>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jan Wozniak <wozniak.jan@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
@JorTurFer JorTurFer marked this pull request as ready for review December 8, 2025 11:05
@JorTurFer
Copy link
Member Author

JorTurFer commented Dec 8, 2025

/run-e2e
Update: You can check the progress here

@wozniakjan wozniakjan requested a review from Copilot December 8, 2025 11:22
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the 2.18.2 release of KEDA with several critical bug fixes and dependency updates.

Key changes include:

  • Fixed HPA behavior restoration when paused-scale-in/out annotations are removed
  • Fixed race condition in paused-replicas annotation handling
  • Fixed ScaledJob condition handling for trigger errors
  • Updated dependencies and Go version from 1.24.7 to 1.25.5
  • Updated GitHub Actions workflows and protobuf-generated code

Reviewed changes

Copilot reviewed 51 out of 1976 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
CHANGELOG.md Documents fixes for v2.18.2 release
go.mod Updates Go version to 1.25.5 and dependency versions
Dockerfile* Updates base images to use Go 1.25.5
pkg/scaling/executor/scale_jobs.go Adds proper handling for ScaledJob trigger errors
controllers/keda/scaledobject_controller.go Fixes race condition by setting paused status before operations
controllers/keda/hpa.go Adds DeepEqual check for HPA Behavior to detect annotation removals
apis/keda/v1alpha1/scaledobject_webhook.go Adds validation requiring HPA name for ownership transfer
pkg/scalers/datadog_scaler.go Changes FillValue from float64 to *float64 to detect explicit zero
pkg/scalers/azure_eventhub_scaler.go Updates to azeventhubs/v2 package
pkg/eventemitter/azure_event_grid_topic_handler.go Updates to new azeventgrid package
tests/* Adds comprehensive test coverage for new functionality
.github/workflows/* Updates GitHub Actions to use latest versions
pkg/scalers//.pb.go Regenerated protobuf files with newer protoc-gen-go versions

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

name: ${{ env.E2E_CHECK_NAME }}
status: in_progress
details_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
details_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}/job/${{job.check_run_id}}
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The variable 'job.check_run_id' does not exist in GitHub Actions. It should be 'github.job' or removed entirely to use just the run_id.

Copilot uses AI. Check for mistakes.
@JorTurFer
Copy link
Member Author

Failing e2e are okey. I forgot to include the commit that changes from bitnami to cloudpirates

@JorTurFer JorTurFer merged commit b7c5655 into kedacore:release/v2.18 Dec 8, 2025
30 of 34 checks passed
@JorTurFer JorTurFer deleted the prepare-2.18.2 branch December 8, 2025 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants