keda icon indicating copy to clipboard operation
keda copied to clipboard

Add etcd scaler

Open WindNotStop opened this issue 2 years ago • 5 comments

Signed-off-by: ytz [email protected]

Hi, I'm a software engineer from Huawei Cloud. Thanks to KEDA for providing us with a flexible scaling project that can scale applications from zero. We find that when the pollingInterval parameter is set to a small value, the scaler will frequently pull metrics from the event source, which leads to an increase in the system load. So by watching the an etcd key, a passively received push mode, the scaler can activate applications with lower load usage than frequent pull mode.

Checklist

  • [x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
  • [x] Tests have been added
  • [ ] A PR is opened to update our Helm chart (repo) (if applicable, ie. when deployment manifests are modified)
  • [x] A PR is opened to update the documentation on (repo) (if applicable)
  • [ ] Changelog has been updated and is aligned with our changelog requirements

Fixes #

Relates to kedacore/keda-docs#914

WindNotStop avatar Aug 25 '22 15:08 WindNotStop

Can you please fix the DCO, and Linter problems (Static Checks).

Also could you please write e2e test for this scaler? https://github.com/kedacore/keda/tree/main/tests

Sure! But I'm going to bed. I'll do it tomorrow.

WindNotStop avatar Aug 25 '22 17:08 WindNotStop

Thank you for the contribution! Does Huawei Cloud want to be the maintainer of this scaler? (see scaler governance)

tomkerkhove avatar Aug 25 '22 18:08 tomkerkhove

Out of curiosity, what is the Run() method used for here?

v-shenoy avatar Aug 25 '22 19:08 v-shenoy

Thank you for the contribution! Does Huawei Cloud want to be the maintainer of this scaler? (see scaler governance)

We are very glad to be the maintainer of this scaler! The team we belong to is Huawei cloud Middleware, so I wonder if we can represent the whole Huawei Cloud.

WindNotStop avatar Aug 26 '22 12:08 WindNotStop

Out of curiosity, what is the Run() method used for here?

The Run() method passively receives the push event from the Etcd event source. It has the same effect as setting the pollingInterval parameter to 0, but with lower load usage.

WindNotStop avatar Aug 26 '22 12:08 WindNotStop

@WindNotStop sorry for the delay, could you please rebase this PR so we can proceed?

zroubalik avatar Nov 04 '22 14:11 zroubalik

@WindNotStop there are still some static checks & validation issues, also please rebase, we are re-introducing vendor directory.

zroubalik avatar Nov 10 '22 12:11 zroubalik

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

zroubalik avatar Nov 15 '22 10:11 zroubalik

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

zroubalik avatar Nov 29 '22 09:11 zroubalik

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

tomkerkhove avatar Dec 02 '22 08:12 tomkerkhove

@JorTurFer @zroubalik Can you re-review this PR please to see if we need to change things before our release on Thursday?

tomkerkhove avatar Dec 02 '22 08:12 tomkerkhove

@JorTurFer @zroubalik Can you re-review this PR please to see if we need to change things before our release on Thursday?

I did it, I'm waiting the changes related with using "key" from metadata for etcdKey and "key" from auth for tls key, this could work but it's confusing, the discussion in in docs PR. The rest of the PR LGTM

JorTurFer avatar Dec 02 '22 09:12 JorTurFer

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

zroubalik avatar Dec 06 '22 11:12 zroubalik

@WindNotStop e2e tests failed, could you please take a look? The link to the run is in the comment above:

https://github.com/kedacore/keda/pull/3598#issuecomment-1339212970

zroubalik avatar Dec 06 '22 15:12 zroubalik

@WindNotStop could you please rebase, so this contains the fix for the close and then we will run e2e?

zroubalik avatar Dec 07 '22 14:12 zroubalik

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

zroubalik avatar Dec 07 '22 16:12 zroubalik