-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Autoscaling selenium grid on kubernetes with video recording #1689
Autoscaling selenium grid on kubernetes with video recording #1689
Conversation
Autoscale selenium browser nodes running in kubernetes based on the request pending in session queue using KEDA. It also includes ability to automatically record videos using ffmpeg and capture network, browser logs. The recorded videos and logs can be uploaded to S3 which can be controlled using enviromental variables.
Thank you for submitting the pull request regarding issue #1688 Please note it may take us some time to find someone who can review the changes. |
Added VIDEO_LOCATION env varible to specify location to save video recordings Updated documentation
Sure thanks @jamesmortensen for the swift response. Hope to see this getting merged. Also there is a similar issue in the selenium project SeleniumHQ/selenium#9845 on the same topic |
If env variables used by video recorder script is not set, the script error out which was fixed. Enhanced prestop script to check if any video is currently being uploaded to s3 before exiting.
@prashanth-volvocars Thank you for this work, my team is looking for an auto scaling solution and this PR would be great to have. Personal opinion below - please wait for reply from contributors before making any changes Maybe we can have two PRs addressing the two separate parts - Autoscaling and Video Capture. |
@mhnaeem Thanks for jumping in. It does seems like we have two separate PR's here, and I think it would be easier to evaluate them if we could see them as separate PR's. @prashanth-volvocars what do you think? Here's my feedback for the video recording portion of the PR: Regarding the changes in NodeBase, I don't see any major issues with installing the AWS CLI. We do already install components that not everyone uses. For instance, for those who don't use VNC or noVNC, those components, including xvfb and fluxbox, are installed in the container images and end up doing nothing. Do we know how much extra space it takes to install the AWS CLI? If it's not trivial, then perhaps there are other ideas? Regarding adding other cloud providers, I don't think we need to be concerned about that right now, I think we could merge with what we have. At the same time, we could make some space for it with a few abstract changes. For example, What do you both think? |
Hello @jamesmortensen Yeah sure we can have them as two separate PR's. For the video upload to cloud provider. We can change it as per your suggestion to use start-uploader.sh and inside it call a scipt specific to a cloud provider. I will make these changes when i find some time and i will update the PR. |
Sounds great. :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I apologize for the delay in a proper review. In general, yes, it'd be nice to have to separate PRs. Basically because this one is adding ffmpeg
to the Node images, and that is a huge change how we could handle video recording.
I prefer to have a PR that only focuses on the Keda integration, and when we are there, we can discuss the video recording approach.
Closing this in favour of #1714 |
Description
Autoscale selenium browser nodes running in kubernetes based on the request pending in session queue using KEDA. It also includes ability to automatically record videos using ffmpeg and capture network, browser logs.
The recorded videos and logs are stored under <session_id> name and can be uploaded directly to S3.
Motivation and Context
Auto scaling selenium grid was a problem that was pending to be solved for long. So i took it up when there was a requirement at current my work place. KEDA seemed to the best candidate for the Job and i wrote a new scalar for Selenium Grid a year ago. I would like to have this enabled by default in our charts so everyone could use it.
Types of changes
Checklist