jitsi / jitsi-autoscaler

Jitsi Autoscaler microservice
Apache License 2.0
30 stars 18 forks source link

Allow custom cloud provider #117

Closed maxired closed 3 years ago

maxired commented 3 years ago

First of all, I'd like to thanks @oanaianc, @raluca8x8, @aaronkvanmeerten, and everybody involved at 8x8 on this microservice, especially being open-sourced.

At http://fres.co/, we are working on adapting it to our needs. The main thing is that we do not use Oracle cloud.

Would you accept PRs implementing other cloud providers ? Or maybe a way to integrate them, without having you maintain the code?

I made an initial implementation of such a thing, by creating a custom cloud provider that one can implement in bash. I'll be happy to get initial feedback on it and see how we can work together.

aaronkvanmeerten commented 3 years ago

Yes, we'd always thought we'd at least like to get an AWS adapter implemented, and of course never found the time. I'll review this and discuss with oana and raluca over the next few days, but I like the idea at least.

maxired commented 3 years ago

At @aaronkvanmeerten thanks a lot for the initial review and discussion. As I said, I just started working on it and am only scratching the surface, so your help already proved to be helpful.

maxired commented 3 years ago

Yes, we'd always thought we'd at least like to get an AWS adapter implemented, and of course, never found the time. I'll review this and discuss with oana and raluca over the next few days, but I like the idea at least.

We are working with Digital Ocean and from my experiences so are some other projects dealing with their own Jitsi infra as it makes sense from a bandwidth cost point of view. Would you prefer me to provide a DO cloud manager or a generic one as I started to do so by calling a script ? I am asking now because the later solution would require us to define some kind of convention to return the data of getInstances

maxired commented 3 years ago

@raluca8x8 thanks for your comments. Everything makes perfect sense. I'll update the PR, and will add another for DO.

maxired commented 3 years ago

Thanks, @raluca8x8 for the great review. I have been able to implement the getInstances filtering on DO and tested it manually

Successfully retrieved 1 digitalocean instances

raluca8x8 commented 3 years ago

Thanks, @raluca8x8 for the great review. I have been able to implement the getInstances filtering on DO and tested it manually

Successfully retrieved 1 digitalocean instances

@maxired Thank you for the updates! I looked over them and they look good to me. We will do some tests on our side in the next few days and if no regression is found, we can merge the PR.

oanaianc commented 3 years ago

@maxired Thank you for your contribution! I looked over the changes and also did some manually testing. Everything looks good to me. We can merge the PR.

maxired commented 3 years ago

Thanks all for the review ! I am glad we were able to merge it.

Just a disclaimer for anyone trying to use jitsi-autoscaler on a digital ocean droplet: Don't forget to use a firewall in front of the droplet. While testing the autoscaler and the required redis instance on the same droplet, I noticed some remote access to my publicly available Redis. (the remote user was triggering redis flushall commands, which you can imagine was breaking the autoscaler behavior ;-) )

Regarding the droplet that will be used by the script, you can assign firewall rules to them using the tag feature.