{"id":20426914,"url":"https://github.com/ndviet/test-scaling-grid","last_synced_at":"2025-04-12T19:10:16.867Z","repository":{"id":154480490,"uuid":"627862664","full_name":"NDViet/test-scaling-grid","owner":"NDViet","description":"Helm umbrella chart to simplify the deployment Autoscaling Selenium Grid on Kubernetes","archived":false,"fork":false,"pushed_at":"2024-12-09T12:28:16.000Z","size":1611,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-26T13:21:18.397Z","etag":null,"topics":["charts","helm","kubernetes","selenium-grid"],"latest_commit_sha":null,"homepage":"http://www.ndviet.org/test-scaling-grid/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NDViet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-14T11:15:59.000Z","updated_at":"2024-09-23T00:17:19.000Z","dependencies_parsed_at":"2023-10-23T23:23:56.792Z","dependency_job_id":"424a1eda-35da-4fb0-b361-b56eb70ca60d","html_url":"https://github.com/NDViet/test-scaling-grid","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDViet%2Ftest-scaling-grid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDViet%2Ftest-scaling-grid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDViet%2Ftest-scaling-grid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDViet%2Ftest-scaling-grid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NDViet","download_url":"https://codeload.github.com/NDViet/test-scaling-grid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618277,"owners_count":21134200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charts","helm","kubernetes","selenium-grid"],"created_at":"2024-11-15T07:18:07.898Z","updated_at":"2025-04-12T19:10:16.831Z","avatar_url":"https://github.com/NDViet.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"This umbrella chart is created to deploy my motivation for Autoscaling Selenium Grid on Kubernetes, details as below\n\n![Scalable Grid](docs/central_grid_diagram.png)\n\nMore details on my motivation are mentioned in the presentation [here](docs/Topic_Scalable-Parallel-AT_Publish.pdf).\n\n## System requires\n\n1. Maven (Tested version 3.8.6)\n2. Helm v3 (Tested version v3.11.3)\n3. Kubernetes (Tested version v1.25.5 - Runtime: Docker v20.10.24 - Provisioned by Minikube v1.26.1)\n\nNoted: At the moment, chart supports PersistenceVolume on local HostPath only. Other types of PV will be added later.\n\n## Install the chart\n\n```shell\n# Add ndviet helm repository\nhelm repo add chart-repo https://www.ndviet.org/test-scaling-grid\n\n# Update charts from ndviet repo\nhelm repo update\n\n# List all versions present in the ndviet repo\nhelm search repo chart-repo/scalable-selenium-grid --versions\n\n# Install full components as default with latest version\nhelm upgrade -i release chart-repo/scalable-selenium-grid\n\n# Download the chart latest version to local\nhelm fetch chart-repo/scalable-selenium-grid --untar\n```\n\n## Build the umbrella chart\n\n```shell\nmvn clean install\n```\nBuilt chart is located under target/helm/repo/scalable-selenium-grid-x.x.x.tgz\n\n## Change Log\n### :heavy_check_mark: 23.11.15\n**Updated**\n- Chart dependencies:\n  - selenium-grid ```(0.24.0 -\u003e 0.25.1)```\n\n### :heavy_check_mark: 23.11.11\n**Updated**\n- Chart dependencies:\n  - selenium-grid ```(0.23.0 -\u003e 0.24.0)```\n  - ingress-nginx ```(4.8.2 -\u003e 4.8.3)```\n\n***Added***\n- Default ingress path `/selenium` for Selenium Grid UI.\n- Update chart default values aligned with new changes in chart `selenium-grid` version [0.24.0](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CHANGELOG.md#heavy_check_mark-0240)\n\n**Removed**\n- Video recording container definition in `node.sidecars`. Since chart version [0.23.0](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CHANGELOG.md#heavy_check_mark-0230) supports video recoder built-in.\n\n### :heavy_check_mark: 23.10.25\n**Updated**\n- Image for video-recording `ndviet/video:ffmpeg-6.0-20231025` to test the PR [SeleniumHQ/docker-selenium #1981](../../../../SeleniumHQ/docker-selenium/pull/1981)\n- Add back ConfigMap in chart to overwrite scripts, configs in the default video-recording container (Refer to [patch-selenium-grid](patch-selenium-grid/src/main/resources/patch-selenium-grid/patch/configurations/Video))\n\n### :heavy_check_mark: 23.10.24\n**Removed**\n- Scripts, configs in video-recording are initialized when build Docker image. Refer to [source repo](../../../docker-selenium/tree/trunk/Video).\n\n**Updated**\n- Node directory `/home/seluser/Downloads` is mounted to `\u003cpv_path\u003e/data/$POD_NAME`.\n- For traceability, a session is run in which node `$POD_NAME` is logged in file `\u003cpv_path\u003e/data/$SESSION_ID.txt`.\n- New image for video-recording `ndviet/video:ffmpeg-6.0-alpine-20231024`.\n\n**Added**\n- [WebDAV](../../../test-webdav-docker) service is deployed to access and browse data and videos of distributed nodes remotely.\n  - By default, WebDAV is exposed via ingress TCP host port `8080`. Change another port via `ingress-nginx.tcp` in scalable-selenium-grid/values.yaml.\n  - Videos and node data can be browsed via WebDAV client.\n\n### :heavy_check_mark: 23.10.19\n**Updated**\n- Chart dependencies:\n  - jaeger-all-in-one ```(0.1.8 -\u003e 0.1.11)```\n  - ingress-nginx ```(4.0.6 -\u003e 4.8.2)```\n- Video image: `ndviet/video:ffmpeg-6.0-alpine-20231019`. A huge reduction in image size by changing based image from `ubuntu:20.04` to `alpine:3.13`\n\n### :heavy_check_mark: 23.10.12\n**Removed**\n- Templates to create scaledObject in module [grid-autoscaling](charts/grid-autoscaling/templates) (Fortunately, [Selenium-Grid Helm Chart](charts/selenium-grid/README.md) added autoscaling in default values.yaml from version [0.19.0](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CHANGELOG.md#heavy_check_mark-0190))\n\n**Updated**\n- Use ```node.sidecars``` to define the second container for video-recording (Refer to chart [scalable-selenium-grid/values.yaml](scalable-selenium-grid/src/main/resources/scalable-selenium-grid/values.yaml) for more details)\n- Chart dependencies:\n  - selenium-grid ```(0.15.8 -\u003e 0.22.0)```\n  - keda ```(2.10.1 -\u003e 2.12.0)```\n\n**Added**\n- Use ConfigMap to overwrite scripts, configs in the default video-recording container (Refer to [patch-selenium-grid](patch-selenium-grid/src/main/resources/patch-selenium-grid/patch/configurations/Video))\n- Video container refer to ENV ```DRAIN_AFTER_SESSION_COUNT``` to terminate the container together with browser node.\n- Video container support graceful shutdown, terminate the container after the ongoing recording are completed.\n- Video support API via port 9000 to get status\n    * GET ```/status```: return status ```true/false``` of pid \"video.sh\" is running. Can be used in startupProbe, livenessProbe to check whether container is healthy.\n    * GET ```/recording```: return status ```true/false``` of pid \"ffmpeg\" is running.\n    * POST ```/drain```: terminating with grace. Can call this API in container ```lifecycle.preStop.exec.command``` Or in part of ```selenium-grid.autoscaling.deregisterLifecycle.preStop.exec.command``` to gracefully shut down the container together with browser node.\n- Those above features need to use with image [ndviet/video:ffmpeg-4.4.3-20231012](https://hub.docker.com/r/ndviet/video)\n\n### :heavy_check_mark: 23.9.26\n**Added**\n- Umbrella chart to deploy scalable selenium grid in module [scalable-selenium-grid](scalable-selenium-grid)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndviet%2Ftest-scaling-grid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndviet%2Ftest-scaling-grid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndviet%2Ftest-scaling-grid/lists"}