Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add activation feature for CPU/Memory scaler #6174

Closed
wants to merge 0 commits into from

Conversation

kunwooy
Copy link
Contributor

@kunwooy kunwooy commented Sep 18, 2024

Currently, the cpu & memory scaler lacks the activation feature because it delegates the scaling responsibilities to the built-in Kubernetes HPA controller. As a result, even if the scale target is currently scaled-out by the cpu/memory metric being above the threshold value, if some other Keda scalers which use External Metrics are used in conjunction with the cpu/memory scaler, it will be deactivated (and thus scaled to zero) when all other scalers using External Metrics are deactivated.

Hence, my proposal is to introduce a way to check the activation of the cpu/memory scaler. Since the scaling behavior will be handled by the HPA controller, cpu/memory scaler only needs to feed in the activation value to the scaled object controller in its GetMetricsAndActivity() method. Moreover to enable such feature, I introduce activationValue field in cpu/memory trigger's metadata.

Checklist

Fixes #6057

Relates to #

@JorTurFer
Copy link
Member

Hello
I see the use case that you are exposing, but personally I'd not check the HPA because it can have delays or missing values, if you want to do something like this, you should query directly to the metrics server IMHO.
WDYT @zroubalik @wozniakjan ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants