From 980f9150abab75b02177654c96b4b13fdfd89e7d Mon Sep 17 00:00:00 2001 From: Luis Correia Date: Tue, 26 Sep 2023 10:18:01 +0100 Subject: [PATCH 001/100] Bump docker images to 4.13.0 (#1951) * Update Dockerfile road to 4.13.0 * Update bootstrap.sh Road to 4.13.0 [deploy] --- Base/Dockerfile | 4 ++-- tests/bootstrap.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 740121167..21132e7dc 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -73,9 +73,9 @@ COPY supervisord.conf /etc RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && touch /opt/selenium/config.toml \ && chmod -R 777 /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor /etc/passwd \ - && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.12.0/selenium-server-4.12.1.jar \ + && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.13.0/selenium-server-4.13.0.jar \ -O /opt/selenium/selenium-server.jar \ - && wget --no-verbose https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-http-jdk-client/4.12.1/selenium-http-jdk-client-4.12.1.jar \ + && wget --no-verbose https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-http-jdk-client/4.13.0/selenium-http-jdk-client-4.13.0.jar \ -O /opt/selenium/selenium-http-jdk-client.jar \ && chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ diff --git a/tests/bootstrap.sh b/tests/bootstrap.sh index cb2ca62dc..48faecfd7 100755 --- a/tests/bootstrap.sh +++ b/tests/bootstrap.sh @@ -7,7 +7,7 @@ if [ "${CI:-false}" = "false" ]; then source docker-selenium-tests/bin/activate fi -python -m pip install selenium==4.11.2 \ +python -m pip install selenium==4.13.0 \ docker===6.1.3 \ | grep -v 'Requirement already satisfied' From 18729252272d0466176fc12abb0b630a6bd3dd06 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Tue, 26 Sep 2023 09:29:58 +0000 Subject: [PATCH 002/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 10 +- charts/selenium-grid/values.yaml | 22 ++-- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 154 insertions(+), 154 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 88d78879e..5ddfa5139 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.12.1-20230920? Please use the full tag, avoid "latest" + placeholder: 4.13.0-20230926? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index e15b1e5e6..e6513cdda 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.12.1-20230920", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.12.1-20230920", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.12.1-20230920", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.13.0-20230926", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.13.0-20230926", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.13.0-20230926", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20230920" +video-image = "selenium/video:ffmpeg-4.3.1-20230926" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index f28db1e85..7a5b7d047 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.12.1-20230920). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.13.0-20230926). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.12.1-20230920 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.12.1-20230920 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.12.1-20230920 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.12.1-20230920 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.13.0-20230926 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.12.1-20230920 + selenium/node-edge:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.12.1-20230920 + selenium/node-firefox:4.13.0-20230926 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.12.1-20230920 + selenium/node-edge:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.12.1-20230920 + selenium/node-firefox:4.13.0-20230926 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20230926 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.12.1-20230920 + selenium/node-edge:4.13.0-20230926 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.12.1-20230920 + selenium/node-edge:4.13.0-20230926 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.12.1-20230920 + selenium/node-firefox:4.13.0-20230926 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.12.1-20230920 + selenium/node-firefox:4.13.0-20230926 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20230920` +Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20230926` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.12.1-20230920 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20230920 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20230926 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.12.1-20230920", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.12.1-20230920", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.12.1-20230920", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.13.0-20230926", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.13.0-20230926", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.13.0-20230926", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20230920" +video-image = "selenium/video:ffmpeg-4.3.1-20230926" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.12.1-20230920 + selenium/node-docker:4.13.0-20230926 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.12.1-20230920 + selenium/node-docker:4.13.0-20230926 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.12.1-20230920 + selenium/standalone-docker:4.13.0-20230926 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.12.1-20230920 + selenium/standalone-docker:4.13.0-20230926 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20230926 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.12.1-20230920 + selenium/node-docker:4.13.0-20230926 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.12.1-20230920 + selenium/node-docker:4.13.0-20230926 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.12.1-20230920", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.12.1-20230920", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.12.1-20230920", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.13.0-20230926", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.13.0-20230926", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.13.0-20230926", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20230920" +video-image = "selenium/video:ffmpeg-4.3.1-20230926" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.12.1-20230920 + selenium/standalone-docker:4.13.0-20230926 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.12.1-20230920 + selenium/standalone-docker:4.13.0-20230926 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.13.0-20230926 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.12.1-20230920 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.13.0-20230926 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.12.1-20230920 + --shm-size="2g" selenium/node-chrome:4.13.0-20230926 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.12.1-20230920 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.13.0-20230926 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.12.1-20230920 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.13.0-20230926 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.12.1-20230920 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.12.1-20230920 + selenium/hub:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.12.1-20230920 + selenium/node-edge:4.13.0-20230926 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.12.1-20230920 + selenium/node-firefox:4.13.0-20230926 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.12.1-20230920 +FROM selenium/node-chrome:4.13.0-20230926 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.12.1-20230920 +FROM selenium/node-firefox:4.13.0-20230926 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.12.1-20230920 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.12.1-20230920 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.12.1-20230920 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.13.0-20230926 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.12.1-20230920 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.12.1-20230920 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.12.1-20230920 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.13.0-20230926 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.12.1-20230920 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.12.1-20230920 + selenium/node-chrome:4.13.0-20230926 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.12.1-20230920 + selenium/node-edge:4.13.0-20230926 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.12.1-20230920 + selenium/node-firefox:4.13.0-20230926 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.12.1-20230920 + selenium/standalone-chrome:4.13.0-20230926 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 32a81cbfb..c90c85ff8 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this helm chart will be documented in this file. ## :heavy_check_mark: 0.21.2 ### Changed -- Update image tag to 4.12.1-20230920 +- Update image tag to 4.13.0-20230926 ## :heavy_check_mark: 0.21.1 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 2d77ce9fa..ecd4d0575 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -83,8 +83,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.12.1-20230920` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.12.1-20230920` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.13.0-20230926` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.13.0-20230926` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -116,7 +116,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.12.1-20230920` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.13.0-20230926` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -152,7 +152,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.12.1-20230920` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.13.0-20230926` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -188,7 +188,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.12.1-20230920` | Image of edge nodes | +| `edgeNode.imageTag` | `4.13.0-20230926` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index a29c27865..23f22de79 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.12.1-20230920 + imageTag: 4.13.0-20230926 # Image tag for browser's nodes - nodesImageTag: 4.12.1-20230920 + nodesImageTag: 4.13.0-20230926 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -61,7 +61,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -112,7 +112,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -143,7 +143,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -178,7 +178,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -208,7 +208,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -258,7 +258,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -378,7 +378,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -501,7 +501,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -620,7 +620,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.12.1-20230920 + # imageTag: 4.13.0-20230926 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 9e64e2204..26e0cfbb7 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index ef92434e4..ed626c7b6 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 64937694c..b867d232d 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 6cbae1478..edc40a184 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index a091c6a5d..afbdb7268 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.12.1-20230920 + image: selenium/node-docker:4.13.0-20230926 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index d4345a711..999b63d4f 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.12.1-20230920 + image: selenium/event-bus:4.13.0-20230926 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.12.1-20230920 + image: selenium/sessions:4.13.0-20230926 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.12.1-20230920 + image: selenium/session-queue:4.13.0-20230926 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.12.1-20230920 + image: selenium/distributor:4.13.0-20230926 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.12.1-20230920 + image: selenium/router:4.13.0-20230926 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 2f0ca79a3..d9c135ee7 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index d650ad0fc..4c13a315d 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.12.1-20230920 + image: selenium/event-bus:4.13.0-20230926 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.12.1-20230920 + image: selenium/sessions:4.13.0-20230926 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.12.1-20230920 + image: selenium/session-queue:4.13.0-20230926 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.12.1-20230920 + image: selenium/distributor:4.13.0-20230926 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.12.1-20230920 + image: selenium/router:4.13.0-20230926 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index d97cacc4d..3986da3d7 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.12.1-20230920 + image: selenium/event-bus:4.13.0-20230926 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.12.1-20230920 + image: selenium/sessions:4.13.0-20230926 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.12.1-20230920 + image: selenium/session-queue:4.13.0-20230926 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.12.1-20230920 + image: selenium/distributor:4.13.0-20230926 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.12.1-20230920 + image: selenium/router:4.13.0-20230926 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 2f0ca79a3..d9c135ee7 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index f9611c3ef..8279b1089 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 3fbfab199..cd7640d52 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-4.3.1-20230920 + image: selenium/video:ffmpeg-4.3.1-20230926 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-4.3.1-20230920 + image: selenium/video:ffmpeg-4.3.1-20230926 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-4.3.1-20230920 + image: selenium/video:ffmpeg-4.3.1-20230926 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 8636018bc..04ca2d235 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.12.1-20230920 + image: selenium/node-chrome:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.12.1-20230920 + image: selenium/node-edge:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.12.1-20230920 + image: selenium/node-firefox:4.13.0-20230926 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.12.1-20230920 + image: selenium/hub:4.13.0-20230926 container_name: selenium-hub ports: - "4442:4442" From a1af6308cd12376c7a6bb46edfe45c8163cd5372 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 26 Sep 2023 11:33:18 +0200 Subject: [PATCH 003/100] Bumping Chart version --- charts/selenium-grid/CHANGELOG.md | 7 ++++++- charts/selenium-grid/Chart.yaml | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index c90c85ff8..07266895d 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -2,11 +2,16 @@ All notable changes to this helm chart will be documented in this file. -## :heavy_check_mark: 0.21.2 +## :heavy_check_mark: 0.21.3 ### Changed - Update image tag to 4.13.0-20230926 +## :heavy_check_mark: 0.21.2 + +### Changed +- Update image tag to 4.12.1-20230920 + ## :heavy_check_mark: 0.21.1 ### Changed diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index 3835c2445..892cdd63e 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.21.2 -appVersion: 4.12.1-20230920 +version: 0.21.3 +appVersion: 4.13.0-20230926 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts From 51eafbee0445d2e9a92a8b12de4543642c3ee79c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Sep 2023 09:35:23 +0200 Subject: [PATCH 004/100] Bump nick-invision/retry from 2.8.3 to 2.9.0 (#1952) Bumps [nick-invision/retry](https://github.com/nick-invision/retry) from 2.8.3 to 2.9.0. - [Release notes](https://github.com/nick-invision/retry/releases) - [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js) - [Commits](https://github.com/nick-invision/retry/compare/943e742917ac94714d2f408a0e8320f2d1fcafcd...14672906e672a08bd6eeb15720e9ed3ce869cdd4) --- updated-dependencies: - dependency-name: nick-invision/retry dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6ea166dbe..41eb5b858 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -51,25 +51,25 @@ jobs: DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} - name: Deploy new images - uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 + uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 with: timeout_minutes: 20 max_attempts: 3 command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make release - name: Tag images as latest - uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 + uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 with: timeout_minutes: 20 max_attempts: 3 command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make tag_latest - name: Deploy latest tag - uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 + uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 with: timeout_minutes: 20 max_attempts: 3 command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make release_latest - name: Tag browser images - uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 + uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 with: timeout_minutes: 20 max_attempts: 3 From 773c0dcd6dce5c4876e46d86ccb7dd3f6bff4e6a Mon Sep 17 00:00:00 2001 From: Amar Deep Singh <50517840+amardeep2006@users.noreply.github.com> Date: Wed, 4 Oct 2023 01:49:23 +0530 Subject: [PATCH 005/100] fix(obsolescence): bumped up packages (#1961) --- Base/Dockerfile | 3 ++- Video/Dockerfile | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 21132e7dc..fc1ab96eb 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -90,9 +90,10 @@ RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier && mkdir -p /external_jars \ && chmod -R 775 /external_jars -RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.28.0 io.opentelemetry:opentelemetry-exporter-jaeger:1.28.0 io.grpc:grpc-netty:1.57.1 > /external_jars/.classpath.txt +RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.30.1 io.opentelemetry:opentelemetry-exporter-jaeger:1.30.1 io.grpc:grpc-netty:1.58.0 > /external_jars/.classpath.txt RUN chmod 664 /external_jars/.classpath.txt +RUN rm -fr /root/.cache/* #=================================================== # Run the following commands as non-privileged user diff --git a/Video/Dockerfile b/Video/Dockerfile index efc935749..d6408bef6 100644 --- a/Video/Dockerfile +++ b/Video/Dockerfile @@ -19,6 +19,9 @@ RUN apt-get -qqy update \ && apt-get upgrade -yq \ && apt-get -qqy --no-install-recommends install \ supervisor x11-xserver-utils python3-pip \ + && python3 -m pip install --upgrade pip \ + && python3 -m pip install --upgrade setuptools \ + && python3 -m pip install --upgrade wheel \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* #====================================== From 889b7f5d6b9c0ecec1057023720cbc145bc7b39e Mon Sep 17 00:00:00 2001 From: Ismael Onilearan Date: Wed, 4 Oct 2023 00:50:07 +0100 Subject: [PATCH 006/100] fix: update base image to use focal 20230801 (#1962) * fix: update base image to use focal 20230624 * fix: update base image to use focal 20230801 --------- Co-authored-by: Diego Molina --- Base/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index fc1ab96eb..8e11c4e5c 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:focal-20230301 +FROM ubuntu:focal-20230801 LABEL authors="Selenium " #================================================ From 410ca8166c5cfd68828185465fcdee4151089858 Mon Sep 17 00:00:00 2001 From: Cody Lent Date: Tue, 3 Oct 2023 20:17:54 -0400 Subject: [PATCH 007/100] Add missing Ingress namespace field (#1966) Update ingress.yaml Co-authored-by: Diego Molina --- charts/selenium-grid/templates/ingress.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/charts/selenium-grid/templates/ingress.yaml b/charts/selenium-grid/templates/ingress.yaml index 6df2c9553..77aa8604c 100644 --- a/charts/selenium-grid/templates/ingress.yaml +++ b/charts/selenium-grid/templates/ingress.yaml @@ -14,6 +14,7 @@ apiVersion: extensions/v1beta1 kind: Ingress metadata: name: {{ template "seleniumGrid.ingress.fullname" . }} + namespace: {{ .Release.Namespace }} labels: {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} From 306b8fc557479c14e5e1b4167dd3771ae5c1dadd Mon Sep 17 00:00:00 2001 From: Amar Deep Singh <50517840+amardeep2006@users.noreply.github.com> Date: Wed, 4 Oct 2023 06:13:00 +0530 Subject: [PATCH 008/100] feat(keda): bumped up keda 2.12.0 (#1960) Co-authored-by: Diego Molina [deploy] --- charts/selenium-grid/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index 892cdd63e..900f83857 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -7,6 +7,6 @@ appVersion: 4.13.0-20230926 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts - version: 2.10.2 + version: 2.12.0 name: keda condition: autoscaling.enabled From 0049db7a59dcb08122c5c8b762ea63c5102c5c1c Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Wed, 4 Oct 2023 00:58:06 +0000 Subject: [PATCH 009/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 10 +- charts/selenium-grid/values.yaml | 22 ++-- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 154 insertions(+), 154 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 5ddfa5139..6d3b78a11 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.13.0-20230926? Please use the full tag, avoid "latest" + placeholder: 4.13.0-20231004? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index e6513cdda..c7b6a5567 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.13.0-20230926", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.13.0-20230926", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.13.0-20230926", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.13.0-20231004", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.13.0-20231004", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.13.0-20231004", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20230926" +video-image = "selenium/video:ffmpeg-4.3.1-20231004" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 7a5b7d047..2cbfd8060 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.13.0-20230926). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.13.0-20231004). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.13.0-20230926 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.13.0-20231004 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.13.0-20230926 + selenium/node-edge:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.13.0-20230926 + selenium/node-firefox:4.13.0-20231004 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.13.0-20230926 + selenium/node-edge:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.13.0-20230926 + selenium/node-firefox:4.13.0-20231004 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20231004 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.13.0-20230926 + selenium/node-edge:4.13.0-20231004 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.13.0-20230926 + selenium/node-edge:4.13.0-20231004 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.13.0-20230926 + selenium/node-firefox:4.13.0-20231004 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.13.0-20230926 + selenium/node-firefox:4.13.0-20231004 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20230926` +Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20231004` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20230926 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20231004 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.13.0-20230926", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.13.0-20230926", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.13.0-20230926", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.13.0-20231004", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.13.0-20231004", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.13.0-20231004", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20230926" +video-image = "selenium/video:ffmpeg-4.3.1-20231004" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.13.0-20230926 + selenium/node-docker:4.13.0-20231004 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.13.0-20230926 + selenium/node-docker:4.13.0-20231004 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.13.0-20230926 + selenium/standalone-docker:4.13.0-20231004 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.13.0-20230926 + selenium/standalone-docker:4.13.0-20231004 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20231004 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.13.0-20230926 + selenium/node-docker:4.13.0-20231004 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.13.0-20230926 + selenium/node-docker:4.13.0-20231004 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.13.0-20230926", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.13.0-20230926", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.13.0-20230926", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.13.0-20231004", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.13.0-20231004", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.13.0-20231004", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20230926" +video-image = "selenium/video:ffmpeg-4.3.1-20231004" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.13.0-20230926 + selenium/standalone-docker:4.13.0-20231004 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.13.0-20230926 + selenium/standalone-docker:4.13.0-20231004 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.13.0-20231004 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.13.0-20230926 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.13.0-20231004 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.13.0-20230926 + --shm-size="2g" selenium/node-chrome:4.13.0-20231004 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.13.0-20230926 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.13.0-20231004 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.13.0-20230926 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.13.0-20231004 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.13.0-20230926 + selenium/hub:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.13.0-20230926 + selenium/node-edge:4.13.0-20231004 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.13.0-20230926 + selenium/node-firefox:4.13.0-20231004 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.13.0-20230926 +FROM selenium/node-chrome:4.13.0-20231004 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.13.0-20230926 +FROM selenium/node-firefox:4.13.0-20231004 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.13.0-20230926 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.13.0-20231004 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20230926 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.13.0-20230926 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20230926 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.13.0-20231004 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20230926 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.13.0-20230926 + selenium/node-chrome:4.13.0-20231004 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.13.0-20230926 + selenium/node-edge:4.13.0-20231004 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.13.0-20230926 + selenium/node-firefox:4.13.0-20231004 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.13.0-20230926 + selenium/standalone-chrome:4.13.0-20231004 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 07266895d..713c817c0 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this helm chart will be documented in this file. ## :heavy_check_mark: 0.21.3 ### Changed -- Update image tag to 4.13.0-20230926 +- Update image tag to 4.13.0-20231004 ## :heavy_check_mark: 0.21.2 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index ecd4d0575..0e0a026dc 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -83,8 +83,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.13.0-20230926` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.13.0-20230926` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.13.0-20231004` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.13.0-20231004` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -116,7 +116,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.13.0-20230926` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.13.0-20231004` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -152,7 +152,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.13.0-20230926` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.13.0-20231004` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -188,7 +188,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.13.0-20230926` | Image of edge nodes | +| `edgeNode.imageTag` | `4.13.0-20231004` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 23f22de79..38c11087a 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.13.0-20230926 + imageTag: 4.13.0-20231004 # Image tag for browser's nodes - nodesImageTag: 4.13.0-20230926 + nodesImageTag: 4.13.0-20231004 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -61,7 +61,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -112,7 +112,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -143,7 +143,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -178,7 +178,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -208,7 +208,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -258,7 +258,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -378,7 +378,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -501,7 +501,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -620,7 +620,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.13.0-20230926 + # imageTag: 4.13.0-20231004 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 26e0cfbb7..643534d52 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index ed626c7b6..c757a0ec6 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index b867d232d..58a65eb67 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index edc40a184..53427819d 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index afbdb7268..665255568 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.13.0-20230926 + image: selenium/node-docker:4.13.0-20231004 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 999b63d4f..d32e18738 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.13.0-20230926 + image: selenium/event-bus:4.13.0-20231004 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.13.0-20230926 + image: selenium/sessions:4.13.0-20231004 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.13.0-20230926 + image: selenium/session-queue:4.13.0-20231004 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.13.0-20230926 + image: selenium/distributor:4.13.0-20231004 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.13.0-20230926 + image: selenium/router:4.13.0-20231004 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index d9c135ee7..998810485 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 4c13a315d..6dcbcc70f 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.13.0-20230926 + image: selenium/event-bus:4.13.0-20231004 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.13.0-20230926 + image: selenium/sessions:4.13.0-20231004 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.13.0-20230926 + image: selenium/session-queue:4.13.0-20231004 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.13.0-20230926 + image: selenium/distributor:4.13.0-20231004 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.13.0-20230926 + image: selenium/router:4.13.0-20231004 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 3986da3d7..154cd7a0a 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.13.0-20230926 + image: selenium/event-bus:4.13.0-20231004 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.13.0-20230926 + image: selenium/sessions:4.13.0-20231004 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.13.0-20230926 + image: selenium/session-queue:4.13.0-20231004 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.13.0-20230926 + image: selenium/distributor:4.13.0-20231004 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.13.0-20230926 + image: selenium/router:4.13.0-20231004 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index d9c135ee7..998810485 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 8279b1089..d518b02ca 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index cd7640d52..c5515d358 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-4.3.1-20230926 + image: selenium/video:ffmpeg-4.3.1-20231004 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-4.3.1-20230926 + image: selenium/video:ffmpeg-4.3.1-20231004 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-4.3.1-20230926 + image: selenium/video:ffmpeg-4.3.1-20231004 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 04ca2d235..25bfeb079 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20230926 + image: selenium/node-chrome:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20230926 + image: selenium/node-edge:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20230926 + image: selenium/node-firefox:4.13.0-20231004 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20230926 + image: selenium/hub:4.13.0-20231004 container_name: selenium-hub ports: - "4442:4442" From 69d9349c6eefcdcaa9b899547caceb86f9f7998d Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 4 Oct 2023 23:05:15 +0200 Subject: [PATCH 010/100] Bumping Chart version --- charts/selenium-grid/CHANGELOG.md | 11 ++++++++++- charts/selenium-grid/Chart.yaml | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 713c817c0..d5f29a28d 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -2,11 +2,20 @@ All notable changes to this helm chart will be documented in this file. -## :heavy_check_mark: 0.21.3 +## :heavy_check_mark: 0.22.0 + +### Added +- feat(keda): bumped up keda 2.12.0 (#1960) :: Amar Deep Singh +- Add missing Ingress namespace field (#1966) :: Cody Lent ### Changed - Update image tag to 4.13.0-20231004 +## :heavy_check_mark: 0.21.3 + +### Changed +- Update image tag to 4.13.0-20230926 + ## :heavy_check_mark: 0.21.2 ### Changed diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index 900f83857..f11aa98e0 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.21.3 -appVersion: 4.13.0-20230926 +version: 0.22.0 +appVersion: 4.13.0-20231004 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts From cefee2af4be71abc3cb08b5f9904dd85d2180621 Mon Sep 17 00:00:00 2001 From: Luis Correia Date: Mon, 16 Oct 2023 14:20:39 +0100 Subject: [PATCH 011/100] Bump images to 4.14.1 (#1970) [deploy] --- Base/Dockerfile | 4 +--- tests/bootstrap.sh | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 8e11c4e5c..16a2d0dbc 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -73,10 +73,8 @@ COPY supervisord.conf /etc RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && touch /opt/selenium/config.toml \ && chmod -R 777 /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor /etc/passwd \ - && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.13.0/selenium-server-4.13.0.jar \ + && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.14.0/selenium-server-4.14.1.jar \ -O /opt/selenium/selenium-server.jar \ - && wget --no-verbose https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-http-jdk-client/4.13.0/selenium-http-jdk-client-4.13.0.jar \ - -O /opt/selenium/selenium-http-jdk-client.jar \ && chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && setfacl -Rm u:seluser:rwx /opt /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor diff --git a/tests/bootstrap.sh b/tests/bootstrap.sh index 48faecfd7..fad306dfd 100755 --- a/tests/bootstrap.sh +++ b/tests/bootstrap.sh @@ -7,7 +7,7 @@ if [ "${CI:-false}" = "false" ]; then source docker-selenium-tests/bin/activate fi -python -m pip install selenium==4.13.0 \ +python -m pip install selenium==4.14.0 \ docker===6.1.3 \ | grep -v 'Requirement already satisfied' From 37fb389d610246ef365190537936aed0fa57e142 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Mon, 16 Oct 2023 13:39:54 +0000 Subject: [PATCH 012/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 10 +- charts/selenium-grid/values.yaml | 22 ++-- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 154 insertions(+), 154 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 6d3b78a11..1a575229c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.13.0-20231004? Please use the full tag, avoid "latest" + placeholder: 4.14.1-20231016? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index c7b6a5567..6bb86f33c 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.13.0-20231004", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.13.0-20231004", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.13.0-20231004", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.14.1-20231016", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.14.1-20231016", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.14.1-20231016", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231004" +video-image = "selenium/video:ffmpeg-4.3.1-20231016" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 2cbfd8060..6c61a868b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.13.0-20231004). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.14.1-20231016). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.13.0-20231004 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.14.1-20231016 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.13.0-20231004 + selenium/node-edge:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.13.0-20231004 + selenium/node-firefox:4.14.1-20231016 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.13.0-20231004 + selenium/node-edge:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.13.0-20231004 + selenium/node-firefox:4.14.1-20231016 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231016 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.13.0-20231004 + selenium/node-edge:4.14.1-20231016 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.13.0-20231004 + selenium/node-edge:4.14.1-20231016 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.13.0-20231004 + selenium/node-firefox:4.14.1-20231016 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.13.0-20231004 + selenium/node-firefox:4.14.1-20231016 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20231004` +Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20231016` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20231004 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20231016 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.13.0-20231004", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.13.0-20231004", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.13.0-20231004", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.14.1-20231016", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.14.1-20231016", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.14.1-20231016", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231004" +video-image = "selenium/video:ffmpeg-4.3.1-20231016" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.13.0-20231004 + selenium/node-docker:4.14.1-20231016 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.13.0-20231004 + selenium/node-docker:4.14.1-20231016 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.13.0-20231004 + selenium/standalone-docker:4.14.1-20231016 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.13.0-20231004 + selenium/standalone-docker:4.14.1-20231016 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231016 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.13.0-20231004 + selenium/node-docker:4.14.1-20231016 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.13.0-20231004 + selenium/node-docker:4.14.1-20231016 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.13.0-20231004", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.13.0-20231004", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.13.0-20231004", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.14.1-20231016", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.14.1-20231016", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.14.1-20231016", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231004" +video-image = "selenium/video:ffmpeg-4.3.1-20231016" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.13.0-20231004 + selenium/standalone-docker:4.14.1-20231016 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.13.0-20231004 + selenium/standalone-docker:4.14.1-20231016 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.14.1-20231016 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.13.0-20231004 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.14.1-20231016 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.13.0-20231004 + --shm-size="2g" selenium/node-chrome:4.14.1-20231016 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.13.0-20231004 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.14.1-20231016 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.13.0-20231004 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.14.1-20231016 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.13.0-20231004 + selenium/hub:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.13.0-20231004 + selenium/node-edge:4.14.1-20231016 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.13.0-20231004 + selenium/node-firefox:4.14.1-20231016 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.13.0-20231004 +FROM selenium/node-chrome:4.14.1-20231016 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.13.0-20231004 +FROM selenium/node-firefox:4.14.1-20231016 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.13.0-20231004 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231016 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.13.0-20231004 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.13.0-20231004 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.13.0-20231004 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231016 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.13.0-20231004 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.13.0-20231004 + selenium/node-chrome:4.14.1-20231016 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.13.0-20231004 + selenium/node-edge:4.14.1-20231016 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.13.0-20231004 + selenium/node-firefox:4.14.1-20231016 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.13.0-20231004 + selenium/standalone-chrome:4.14.1-20231016 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index d5f29a28d..957ef7c41 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -9,7 +9,7 @@ All notable changes to this helm chart will be documented in this file. - Add missing Ingress namespace field (#1966) :: Cody Lent ### Changed -- Update image tag to 4.13.0-20231004 +- Update image tag to 4.14.1-20231016 ## :heavy_check_mark: 0.21.3 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 0e0a026dc..61b340960 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -83,8 +83,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.13.0-20231004` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.13.0-20231004` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.14.1-20231016` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.14.1-20231016` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -116,7 +116,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.13.0-20231004` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.14.1-20231016` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -152,7 +152,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.13.0-20231004` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.14.1-20231016` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -188,7 +188,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.13.0-20231004` | Image of edge nodes | +| `edgeNode.imageTag` | `4.14.1-20231016` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 38c11087a..4eb779521 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.13.0-20231004 + imageTag: 4.14.1-20231016 # Image tag for browser's nodes - nodesImageTag: 4.13.0-20231004 + nodesImageTag: 4.14.1-20231016 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -61,7 +61,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -112,7 +112,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -143,7 +143,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -178,7 +178,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -208,7 +208,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -258,7 +258,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -378,7 +378,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -501,7 +501,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -620,7 +620,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.13.0-20231004 + # imageTag: 4.14.1-20231016 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 643534d52..3f4edb717 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index c757a0ec6..a06c16391 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 58a65eb67..2b7733a87 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 53427819d..852d25b6d 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 665255568..6e75a2ace 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.13.0-20231004 + image: selenium/node-docker:4.14.1-20231016 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index d32e18738..3e74238f6 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.13.0-20231004 + image: selenium/event-bus:4.14.1-20231016 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.13.0-20231004 + image: selenium/sessions:4.14.1-20231016 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.13.0-20231004 + image: selenium/session-queue:4.14.1-20231016 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.13.0-20231004 + image: selenium/distributor:4.14.1-20231016 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.13.0-20231004 + image: selenium/router:4.14.1-20231016 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 998810485..f82ebb167 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 6dcbcc70f..1020adf6e 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.13.0-20231004 + image: selenium/event-bus:4.14.1-20231016 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.13.0-20231004 + image: selenium/sessions:4.14.1-20231016 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.13.0-20231004 + image: selenium/session-queue:4.14.1-20231016 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.13.0-20231004 + image: selenium/distributor:4.14.1-20231016 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.13.0-20231004 + image: selenium/router:4.14.1-20231016 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 154cd7a0a..8db87b09c 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.13.0-20231004 + image: selenium/event-bus:4.14.1-20231016 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.13.0-20231004 + image: selenium/sessions:4.14.1-20231016 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.13.0-20231004 + image: selenium/session-queue:4.14.1-20231016 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.13.0-20231004 + image: selenium/distributor:4.14.1-20231016 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.13.0-20231004 + image: selenium/router:4.14.1-20231016 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 998810485..f82ebb167 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index d518b02ca..9923b9ada 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index c5515d358..7c4743690 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-4.3.1-20231004 + image: selenium/video:ffmpeg-4.3.1-20231016 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-4.3.1-20231004 + image: selenium/video:ffmpeg-4.3.1-20231016 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-4.3.1-20231004 + image: selenium/video:ffmpeg-4.3.1-20231016 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 25bfeb079..944fe8558 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.13.0-20231004 + image: selenium/node-chrome:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.13.0-20231004 + image: selenium/node-edge:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.13.0-20231004 + image: selenium/node-firefox:4.14.1-20231016 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.13.0-20231004 + image: selenium/hub:4.14.1-20231016 container_name: selenium-hub ports: - "4442:4442" From eea48b3e5a893073c759eb49ed3d2769d17dda52 Mon Sep 17 00:00:00 2001 From: sebastian haas Date: Mon, 16 Oct 2023 21:28:37 +0200 Subject: [PATCH 013/100] fix issue #1887: affinity rules for helm charts (again) (#1973) fix issue #1887: affinity rules add affinity section to seleniumGrid.podTemplate Co-authored-by: Diego Molina --- charts/selenium-grid/templates/_helpers.tpl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 694b7a5c9..28eb06224 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -175,6 +175,9 @@ template: {{- with .node.nodeSelector }} nodeSelector: {{- toYaml . | nindent 6 }} {{- end }} + {{- with .node.affinity }} + affinity: {{- toYaml . | nindent 6 }} + {{- end }} {{- with .node.tolerations }} tolerations: {{ toYaml . | nindent 4 }} From a6bf0037d3bfd2afd474e10473632071b8cdcd64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 10:58:13 +0200 Subject: [PATCH 014/100] Bump ad-m/github-push-action from 0.6.0 to 0.8.0 (#1971) Bumps [ad-m/github-push-action](https://github.com/ad-m/github-push-action) from 0.6.0 to 0.8.0. - [Release notes](https://github.com/ad-m/github-push-action/releases) - [Commits](https://github.com/ad-m/github-push-action/compare/40bf560936a8022e68a3c00e7d2abefaf01305a6...d91a481090679876dfc4178fef17f286781251df) --- updated-dependencies: - dependency-name: ad-m/github-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 41eb5b858..2ba5222d4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -80,7 +80,7 @@ jobs: git config --local user.name "Selenium CI Bot" git commit -m "Update tag in docs and files [skip ci]" -a - name: Push changes - uses: ad-m/github-push-action@40bf560936a8022e68a3c00e7d2abefaf01305a6 # master + uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master with: github_token: ${{ secrets.SELENIUM_CI_TOKEN }} branch: trunk From cf442bfbdb358c90cf073d1a975611248196f55d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 12:01:17 +0200 Subject: [PATCH 015/100] Bump actions/setup-python from 4.7.0 to 4.7.1 (#1965) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.0 to 4.7.1. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4.7.0...v4.7.1) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-test.yml | 2 +- .github/workflows/test-video.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index faef306c6..954ed42f9 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -21,7 +21,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python 3.8 - uses: actions/setup-python@v4.7.0 + uses: actions/setup-python@v4.7.1 with: python-version: 3.8 - name: Get branch name (only for push to branch) diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index b5de436e2..3e7c34498 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -18,7 +18,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python 3.8 - uses: actions/setup-python@v4.7.0 + uses: actions/setup-python@v4.7.1 with: python-version: 3.8 - name: Get branch name (only for push to branch) From 32ec17317e4909b79188ef69552391ec4a97e39b Mon Sep 17 00:00:00 2001 From: Philippe GRANET Date: Tue, 17 Oct 2023 12:18:25 +0200 Subject: [PATCH 016/100] Adds possibility to set node stereotype in standalone mode (#1967) Report this commit: https://github.com/SeleniumHQ/docker-selenium/commit/9b050198dc8664ce9b8842f9466e02a923e14831 Co-authored-by: Diego Molina --- Standalone/generate_config | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Standalone/generate_config b/Standalone/generate_config index 05f613adb..7809d5256 100755 --- a/Standalone/generate_config +++ b/Standalone/generate_config @@ -41,7 +41,12 @@ elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) fi +if [[ -z "$SE_NODE_STEREOTYPE" ]]; then SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\"}" +else +SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE" +fi + echo "[[node.driver-configuration]]" >> "$FILENAME" echo "display-name = \"${SE_NODE_BROWSER_NAME}\"" >> "$FILENAME" echo "stereotype = '${SE_NODE_STEREOTYPE}'" >> "$FILENAME" From 5c177a7a6fc620d66ecafee33ed0ea0b0b1dc8d6 Mon Sep 17 00:00:00 2001 From: Matt Colman <33348891+mtcolman@users.noreply.github.com> Date: Fri, 20 Oct 2023 15:06:04 +0100 Subject: [PATCH 017/100] Update Dockerfile ubuntu version (#1980) Update Dockerfile updating ubuntu version [deploy] --- Base/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 16a2d0dbc..2c1c1f72d 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:focal-20230801 +FROM ubuntu:focal-20231003 LABEL authors="Selenium " #================================================ From 3a03f97606045b046485a21da8784cc1c271bb74 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Fri, 20 Oct 2023 14:20:43 +0000 Subject: [PATCH 018/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 10 +- charts/selenium-grid/values.yaml | 22 ++-- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 154 insertions(+), 154 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1a575229c..85283088a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.14.1-20231016? Please use the full tag, avoid "latest" + placeholder: 4.14.1-20231020? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 6bb86f33c..5ea58b212 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231016", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.14.1-20231016", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.14.1-20231016", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.14.1-20231020", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.14.1-20231020", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.14.1-20231020", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231016" +video-image = "selenium/video:ffmpeg-4.3.1-20231020" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 6c61a868b..f2b497a86 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.14.1-20231016). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.14.1-20231020). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.14.1-20231016 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.14.1-20231020 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231016 + selenium/node-edge:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231016 + selenium/node-firefox:4.14.1-20231020 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.14.1-20231016 + selenium/node-edge:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.14.1-20231016 + selenium/node-firefox:4.14.1-20231020 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231020 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.14.1-20231016 + selenium/node-edge:4.14.1-20231020 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.14.1-20231016 + selenium/node-edge:4.14.1-20231020 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.14.1-20231016 + selenium/node-firefox:4.14.1-20231020 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.14.1-20231016 + selenium/node-firefox:4.14.1-20231020 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20231016` +Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20231020` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20231016 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20231020 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231016", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.14.1-20231016", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.14.1-20231016", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.14.1-20231020", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.14.1-20231020", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.14.1-20231020", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231016" +video-image = "selenium/video:ffmpeg-4.3.1-20231020" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.14.1-20231016 + selenium/node-docker:4.14.1-20231020 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.14.1-20231016 + selenium/node-docker:4.14.1-20231020 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.14.1-20231016 + selenium/standalone-docker:4.14.1-20231020 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.14.1-20231016 + selenium/standalone-docker:4.14.1-20231020 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231020 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.14.1-20231016 + selenium/node-docker:4.14.1-20231020 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.14.1-20231016 + selenium/node-docker:4.14.1-20231020 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231016", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.14.1-20231016", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.14.1-20231016", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.14.1-20231020", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.14.1-20231020", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.14.1-20231020", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231016" +video-image = "selenium/video:ffmpeg-4.3.1-20231020" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.14.1-20231016 + selenium/standalone-docker:4.14.1-20231020 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.14.1-20231016 + selenium/standalone-docker:4.14.1-20231020 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.14.1-20231020 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.14.1-20231016 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.14.1-20231020 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.14.1-20231016 + --shm-size="2g" selenium/node-chrome:4.14.1-20231020 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.14.1-20231016 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.14.1-20231020 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.14.1-20231016 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.14.1-20231020 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.14.1-20231016 + selenium/hub:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231016 + selenium/node-edge:4.14.1-20231020 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231016 + selenium/node-firefox:4.14.1-20231020 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.14.1-20231016 +FROM selenium/node-chrome:4.14.1-20231020 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.14.1-20231016 +FROM selenium/node-firefox:4.14.1-20231020 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231016 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231020 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231016 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231016 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231016 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231020 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231016 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231016 + selenium/node-chrome:4.14.1-20231020 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231016 + selenium/node-edge:4.14.1-20231020 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231016 + selenium/node-firefox:4.14.1-20231020 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.14.1-20231016 + selenium/standalone-chrome:4.14.1-20231020 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 957ef7c41..cc890cdf4 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -9,7 +9,7 @@ All notable changes to this helm chart will be documented in this file. - Add missing Ingress namespace field (#1966) :: Cody Lent ### Changed -- Update image tag to 4.14.1-20231016 +- Update image tag to 4.14.1-20231020 ## :heavy_check_mark: 0.21.3 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 61b340960..e40a723a0 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -83,8 +83,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.14.1-20231016` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.14.1-20231016` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.14.1-20231020` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.14.1-20231020` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -116,7 +116,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.14.1-20231016` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.14.1-20231020` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -152,7 +152,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.14.1-20231016` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.14.1-20231020` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -188,7 +188,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.14.1-20231016` | Image of edge nodes | +| `edgeNode.imageTag` | `4.14.1-20231020` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 4eb779521..dce24f9a3 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.14.1-20231016 + imageTag: 4.14.1-20231020 # Image tag for browser's nodes - nodesImageTag: 4.14.1-20231016 + nodesImageTag: 4.14.1-20231020 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -61,7 +61,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -112,7 +112,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -143,7 +143,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -178,7 +178,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -208,7 +208,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -258,7 +258,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -378,7 +378,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -501,7 +501,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -620,7 +620,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231016 + # imageTag: 4.14.1-20231020 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 3f4edb717..a1eeec51b 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index a06c16391..2f8423872 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 2b7733a87..27d41c206 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 852d25b6d..61204a19e 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 6e75a2ace..60fbb7dc5 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.14.1-20231016 + image: selenium/node-docker:4.14.1-20231020 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 3e74238f6..006d2bc38 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.14.1-20231016 + image: selenium/event-bus:4.14.1-20231020 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.14.1-20231016 + image: selenium/sessions:4.14.1-20231020 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.14.1-20231016 + image: selenium/session-queue:4.14.1-20231020 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.14.1-20231016 + image: selenium/distributor:4.14.1-20231020 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.14.1-20231016 + image: selenium/router:4.14.1-20231020 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index f82ebb167..2e147ed69 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 1020adf6e..5a697ed32 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.14.1-20231016 + image: selenium/event-bus:4.14.1-20231020 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.14.1-20231016 + image: selenium/sessions:4.14.1-20231020 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.14.1-20231016 + image: selenium/session-queue:4.14.1-20231020 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.14.1-20231016 + image: selenium/distributor:4.14.1-20231020 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.14.1-20231016 + image: selenium/router:4.14.1-20231020 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 8db87b09c..cd5339fac 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.14.1-20231016 + image: selenium/event-bus:4.14.1-20231020 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.14.1-20231016 + image: selenium/sessions:4.14.1-20231020 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.14.1-20231016 + image: selenium/session-queue:4.14.1-20231020 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.14.1-20231016 + image: selenium/distributor:4.14.1-20231020 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.14.1-20231016 + image: selenium/router:4.14.1-20231020 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index f82ebb167..2e147ed69 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 9923b9ada..beaf72cdb 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 7c4743690..fae5921a5 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-4.3.1-20231016 + image: selenium/video:ffmpeg-4.3.1-20231020 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-4.3.1-20231016 + image: selenium/video:ffmpeg-4.3.1-20231020 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-4.3.1-20231016 + image: selenium/video:ffmpeg-4.3.1-20231020 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 944fe8558..d1d032a3d 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231016 + image: selenium/node-chrome:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231016 + image: selenium/node-edge:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231016 + image: selenium/node-firefox:4.14.1-20231020 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231016 + image: selenium/hub:4.14.1-20231020 container_name: selenium-hub ports: - "4442:4442" From 01648f3db3ac53b7b071a06775dfc36e1cda4f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Svantesson?= Date: Wed, 25 Oct 2023 11:31:29 +0200 Subject: [PATCH 019/100] feat: video recording with pluggable upload container (#1881) --- Video/Dockerfile | 4 +- charts/selenium-grid/templates/_helpers.tpl | 83 +++++++++++++++++ .../templates/chrome-node-deployment.yaml | 1 + .../templates/chrome-node-scaledjobs.yaml | 1 + .../templates/edge-node-deployment.yaml | 1 + .../templates/edge-node-scaledjob.yaml | 1 + .../templates/firefox-node-deployment.yaml | 1 + .../templates/firefox-node-scaledjob.yaml | 1 + charts/selenium-grid/templates/video-cm.yaml | 92 +++++++++++++++++++ charts/selenium-grid/values.yaml | 75 +++++++++++++++ 10 files changed, 258 insertions(+), 2 deletions(-) create mode 100644 charts/selenium-grid/templates/video-cm.yaml diff --git a/Video/Dockerfile b/Video/Dockerfile index d6408bef6..4edc5a64a 100644 --- a/Video/Dockerfile +++ b/Video/Dockerfile @@ -18,10 +18,10 @@ ENV DEBIAN_FRONTEND=noninteractive \ RUN apt-get -qqy update \ && apt-get upgrade -yq \ && apt-get -qqy --no-install-recommends install \ - supervisor x11-xserver-utils python3-pip \ + supervisor x11-xserver-utils x11-utils curl jq python3-pip \ && python3 -m pip install --upgrade pip \ && python3 -m pip install --upgrade setuptools \ - && python3 -m pip install --upgrade wheel \ + && python3 -m pip install --upgrade wheel \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* #====================================== diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 28eb06224..affe63635 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -87,6 +87,13 @@ Service Account fullname {{- .Values.serviceAccount.name | default "selenium-serviceaccount" | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{/* +Video ConfigMap fullname +*/}} +{{- define "seleniumGrid.video.fullname" -}} +{{- default "selenium-video" .Values.videoRecorder.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + {{/* Is autoscaling using KEDA enabled */}} @@ -168,6 +175,74 @@ template: {{- if .node.sidecars }} {{- toYaml .node.sidecars | nindent 6 }} {{- end }} + {{- if .Values.videoRecorder.enabled }} + - name: video + image: {{ printf "%s:%s" .Values.videoRecorder.imageName .Values.videoRecorder.imageTag }} + imagePullPolicy: {{ .Values.videoRecorder.imagePullPolicy }} + env: + - name: UPLOAD_DESTINATION_PREFIX + value: {{ .Values.videoRecorder.uploadDestinationPrefix }} + {{- with .Values.videoRecorder.extraEnvironmentVariables }} + {{- tpl (toYaml .) $ | nindent 8 }} + {{- end }} + envFrom: + - configMapRef: + name: {{ .Values.busConfigMap.name }} + {{- with .Values.videoRecorder.extraEnvFrom }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if gt (len .Values.videoRecorder.ports) 0 }} + ports: + {{- range .Values.videoRecorder.ports }} + - containerPort: {{ . }} + protocol: TCP + {{- end }} + {{- end }} + volumeMounts: + - name: dshm + mountPath: /dev/shm + - name: video-scripts + mountPath: /opt/bin/video.sh + subPath: video.sh + - name: video + mountPath: /videos + {{- if .Values.videoRecorder.extraVolumeMounts }} + {{- toYaml .Values.videoRecorder.extraVolumeMounts | nindent 8 }} + {{- end }} + {{- with .Values.videoRecorder.resources }} + resources: {{- toYaml . | nindent 10 }} + {{- end }} + {{- if .uploader }} + - name: uploader + image: {{ printf "%s:%s" .uploader.imageName .uploader.imageTag }} + imagePullPolicy: {{ .uploader.imagePullPolicy }} + {{- with .uploader.command }} + command: {{- tpl (toYaml .) $ | nindent 8 }} + {{- end }} + {{- with .uploader.args }} + args: {{- tpl (toYaml .) $ | nindent 8 }} + {{- end }} + {{- with .uploader.extraEnvironmentVariables }} + env: {{- tpl (toYaml .) $ | nindent 8 }} + {{- end }} + {{- with .uploader.extraEnvFrom }} + envFrom: + {{- toYaml . | nindent 10 }} + {{- end }} + volumeMounts: + - name: video + mountPath: /videos + {{- if .uploader.extraVolumeMounts }} + {{- toYaml .uploader.extraVolumeMounts | nindent 8 }} + {{- end }} + {{- with .uploader.resources }} + resources: {{- toYaml . | nindent 10 }} + {{- end }} + {{- with .uploader.securityContext }} + securityContext: {{- toYaml . | nindent 10 }} + {{- end }} + {{- end }} + {{- end }} {{- if or .Values.global.seleniumGrid.imagePullSecret .node.imagePullSecret }} imagePullSecrets: - name: {{ default .Values.global.seleniumGrid.imagePullSecret .node.imagePullSecret }} @@ -194,6 +269,14 @@ template: {{- if .node.extraVolumes }} {{ toYaml .node.extraVolumes | nindent 6 }} {{- end }} + {{- if .Values.videoRecorder.enabled }} + - name: video-scripts + configMap: + name: {{ template "seleniumGrid.video.fullname" . }} + defaultMode: 0500 + - name: video + {{- toYaml .Values.videoRecorder.volume | nindent 8 }} + {{- end }} {{- end -}} {{/* diff --git a/charts/selenium-grid/templates/chrome-node-deployment.yaml b/charts/selenium-grid/templates/chrome-node-deployment.yaml index 0b3d2a9b5..a89800fdf 100644 --- a/charts/selenium-grid/templates/chrome-node-deployment.yaml +++ b/charts/selenium-grid/templates/chrome-node-deployment.yaml @@ -25,5 +25,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-chrome-node" -}} {{- $_ = set $podScope "node" .Values.chromeNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml index 4971aec74..b5770e8a2 100644 --- a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml +++ b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml @@ -35,5 +35,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-chrome-node" -}} {{- $_ = set $podScope "node" .Values.chromeNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-deployment.yaml b/charts/selenium-grid/templates/edge-node-deployment.yaml index 883a45a76..d81b7ef93 100644 --- a/charts/selenium-grid/templates/edge-node-deployment.yaml +++ b/charts/selenium-grid/templates/edge-node-deployment.yaml @@ -25,5 +25,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-edge-node" -}} {{- $_ = set $podScope "node" .Values.edgeNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-scaledjob.yaml b/charts/selenium-grid/templates/edge-node-scaledjob.yaml index 6d113d186..6083226e5 100644 --- a/charts/selenium-grid/templates/edge-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/edge-node-scaledjob.yaml @@ -35,5 +35,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-edge-node" -}} {{- $_ = set $podScope "node" .Values.edgeNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-deployment.yaml b/charts/selenium-grid/templates/firefox-node-deployment.yaml index d0b250470..645986c11 100644 --- a/charts/selenium-grid/templates/firefox-node-deployment.yaml +++ b/charts/selenium-grid/templates/firefox-node-deployment.yaml @@ -25,5 +25,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-firefox-node" -}} {{- $_ = set $podScope "node" .Values.firefoxNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml index de90024c7..4ec26225a 100644 --- a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml @@ -35,5 +35,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-firefox-node" -}} {{- $_ = set $podScope "node" .Values.firefoxNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} {{- end }} diff --git a/charts/selenium-grid/templates/video-cm.yaml b/charts/selenium-grid/templates/video-cm.yaml new file mode 100644 index 000000000..41a13b027 --- /dev/null +++ b/charts/selenium-grid/templates/video-cm.yaml @@ -0,0 +1,92 @@ +{{- if .Values.videoRecorder.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "seleniumGrid.video.fullname" . }} +data: + video.sh: | + #!/usr/bin/env bash + set -em + function finish { + echo exit > /videos/uploadpipe + kill -s SIGINT `cat /var/run/supervisor/supervisord.pid` + } + trap finish EXIT + FRAME_RATE=${FRAME_RATE:-$SE_FRAME_RATE} + CODEC=${CODEC:-$SE_CODEC} + PRESET=${PRESET:-$SE_PRESET} + export DISPLAY=localhost:${DISPLAY_NUM}.0 + + return_code=1 + max_attempts=600 + attempts=0 + mkfifo /videos/uploadpipe + if [[ "$UPLOAD_DESTINATION_PREFIX" = "" ]] + then + echo Upload destination not known since UPLOAD_DESTINATION_PREFIX is not set. Exiting video recorder. + exit + fi + echo Checking if the display is open + until xset b off || [[ $attempts = $max_attempts ]] + do + echo Waiting before next display check + sleep 0.5 + attempts=$((attempts+1)) + done + if [[ $attempts = $max_attempts ]] + then + echo Can not open display, exiting. + exit + fi + VIDEO_SIZE=$(xdpyinfo | grep 'dimensions:' | awk '{print $2}') + + recording_started="false" + video_file_name="" + video_file="" + prev_session_id="" + attempts=0 + echo Checking if node API responds + until curl -s --request GET http://localhost:5555/status || [[ $attempts = $max_attempts ]] + do + echo Waiting before next API check + sleep 0.5 + attempts=$((attempts+1)) + done + if [[ $attempts = $max_attempts ]] + then + echo Can not reach node API, exiting. + exit + fi + while curl -s --request GET http://localhost:5555/status > /tmp/status.json + do + session_id=$(jq -r '.[]?.node?.slots | .[0]?.session?.sessionId' /tmp/status.json) + echo $session_id + if [[ "$session_id" != "null" && "$session_id" != "" && "$recording_started" = "false" ]] + then + video_file_name="$session_id.mp4" + video_file="${VIDEO_LOCATION:-/videos}/$video_file_name" + echo "Starting to record video" + ffmpeg -nostdin -y -f x11grab -video_size ${VIDEO_SIZE} -r ${FRAME_RATE} -i ${DISPLAY} -codec:v ${CODEC} ${PRESET} -pix_fmt yuv420p $video_file & + recording_started="true" + echo "Video recording started" + elif [[ "$session_id" != "$prev_session_id" && "$recording_started" = "true" ]] + then + echo "Stopping to record video" + kill -INT %1 + fg || echo ffmpeg exited with code $? + upload_destination=${UPLOAD_DESTINATION_PREFIX}${video_file_name} + echo "Uploading video to $upload_destination" + echo $video_file $upload_destination > /videos/uploadpipe & + recording_started="false" + elif [[ $recording_started = "true" ]] + then + echo "Video recording in progress" + sleep 1 + else + echo "No session in progress" + sleep 1 + fi + prev_session_id=$session_id + done + echo +{{- end }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index dce24f9a3..193e5499c 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -24,6 +24,7 @@ serviceAccount: create: true name: "" annotations: {} + # eks.amazonaws.com/role-arn: "arn:aws:iam::12345678:role/video-bucket-permissions" # Configure the ingress resource to access the Grid installation. ingress: @@ -724,5 +725,79 @@ edgeNode: # It should be set using the --set-json option sidecars: [] +videoRecorder: + # Image of video recorder + imageName: selenium/video + enabled: false + # Where to upload the video file. Should be set to something like 's3://myvideobucket/' + uploadDestinationPrefix: "" + # What uploader to use. See .videRecorder.s3 for how to create a new one. + uploader: s3 + + # Image of video recorder + imageTag: latest + # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) + imagePullPolicy: IfNotPresent + + ports: + - 5666 + resources: + requests: + memory: "1Gi" + cpu: "1" + limits: + memory: "1Gi" + cpu: "1" + extraEnvironmentVariables: [] + # - name: VIDEO_LOCATION + # value: /videos + # Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder. + extraEnvFrom: + # - configMapRef: + # name: proxy-settings + # - secretRef: + # name: mysecret + # Wait for pod startup + terminationGracePeriodSeconds: 30 + volume: + emptyDir: {} + s3: + imageName: public.ecr.aws/bitnami/aws-cli + imageTag: "2" + imagePullPolicy: IfNotPresent + securityContext: + runAsUser: 0 + command: + - /bin/sh + args: + - -c + - | + while ! [ -p /videos/uploadpipe ] + do + echo Waiting for /videos/uploadpipe to be created + sleep 1 + done + echo Waiting for files to upload + while read FILE DESTINATION < /videos/uploadpipe + do + if [ "$FILE" = "exit" ] + then + break + else + aws s3 cp --no-progress $FILE $DESTINATION + fi + done + # extraEnvironmentVariables: + # - name: AWS_ACCESS_KEY_ID + # value: aws_access_key_id + # - name: AWS_SECRET_ACCESS_KEY + # value: aws_secret_access_key + # - name: + # valueFrom: + # secretKeyRef: + # name: secret-name + # key: secret-key + + # Custom labels for k8s resources customLabels: {} From 60ad27e123b3360fdda935af9ee16de8a3065e76 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 25 Oct 2023 21:35:31 +0700 Subject: [PATCH 020/100] Update Video/Dockerfile with based image ffmpeg:6.0-alpine (#1981) [deploy] --- Makefile | 8 ++++---- NodeDocker/config.toml | 2 +- README.md | 8 ++++---- Video/Dockerfile | 38 ++++++++++++++----------------------- docker-compose-v3-video.yml | 6 +++--- generate_release_notes.sh | 2 +- 6 files changed, 27 insertions(+), 37 deletions(-) diff --git a/Makefile b/Makefile index a26db516a..5d4590d8e 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ BUILD_ARGS := $(BUILD_ARGS) MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION))) MINOR := $(word 2,$(subst ., ,$(TAG_VERSION))) MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION))) -FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-4.3.1) +FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-6.0) all: hub \ distributor \ @@ -357,9 +357,9 @@ test_video: video hub chrome firefox edge done # Using ffmpeg to verify file integrity # https://superuser.com/questions/100288/how-can-i-check-the-integrity-of-a-video-file-avi-mpeg-mp4 - docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:4.3.1-ubuntu2004 -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log - docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:4.3.1-ubuntu2004 -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log - docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:4.3.1-ubuntu2004 -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log .PHONY: \ all \ diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 5ea58b212..501a1f349 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231020" +video-image = "selenium/video:ffmpeg-6.0-20231020" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index f2b497a86..b4a14e54f 100644 --- a/README.md +++ b/README.md @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-4.3.1-20231020` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231020` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -500,7 +500,7 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid $ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20231020 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231020 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231020" +video-image = "selenium/video:ffmpeg-6.0-20231020" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-4.3.1-20231020" +video-image = "selenium/video:ffmpeg-6.0-20231020" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/Video/Dockerfile b/Video/Dockerfile index 4edc5a64a..bfd121903 100644 --- a/Video/Dockerfile +++ b/Video/Dockerfile @@ -1,38 +1,29 @@ -FROM jrottenberg/ffmpeg:4.3.1-ubuntu2004 +FROM jrottenberg/ffmpeg:6.0-alpine LABEL authors="Selenium " -#================================================ -# Customize sources for apt-get -#================================================ -RUN echo "deb http://archive.ubuntu.com/ubuntu focal main universe\n" > /etc/apt/sources.list \ - && echo "deb http://archive.ubuntu.com/ubuntu focal-updates main universe\n" >> /etc/apt/sources.list \ - && echo "deb http://security.ubuntu.com/ubuntu focal-security main universe\n" >> /etc/apt/sources.list - -# No interactive frontend during docker build -ENV DEBIAN_FRONTEND=noninteractive \ - DEBCONF_NONINTERACTIVE_SEEN=true - #======================== # Supervisor #======================== -RUN apt-get -qqy update \ - && apt-get upgrade -yq \ - && apt-get -qqy --no-install-recommends install \ - supervisor x11-xserver-utils x11-utils curl jq python3-pip \ - && python3 -m pip install --upgrade pip \ - && python3 -m pip install --upgrade setuptools \ - && python3 -m pip install --upgrade wheel \ - && rm -rf /var/lib/apt/lists/* /var/cache/apt/* +RUN apk update \ + && apk upgrade \ + && apk add --no-cache --update --virtual .build-deps supervisor bash curl jq xset python3 py3-psutil py3-pip \ + && ln -sf python3 /usr/bin/python \ + && rm -rf /tmp/* /var/cache/apk/* + +ENV PYTHONUNBUFFERED=1 +RUN python3 -m pip install --no-cache --upgrade --no-cache-dir pip urllib3 setuptools requests wheel #====================================== # Add Supervisor configuration files #====================================== +ENV SE_VIDEO_FOLDER /videos +RUN mkdir -p /opt/bin/ +RUN mkdir -p /var/run/supervisor /var/log/supervisor ${SE_VIDEO_FOLDER} + COPY supervisord.conf /etc COPY entry_point.sh video.sh video_ready.py /opt/bin/ -RUN cd /opt/bin && pip install psutil - -RUN mkdir -p /var/run/supervisor /var/log/supervisor /videos +RUN chmod +x /opt/bin/* ENTRYPOINT ["/opt/bin/entry_point.sh"] CMD ["/opt/bin/entry_point.sh"] @@ -44,6 +35,5 @@ ENV SE_FRAME_RATE 15 ENV SE_CODEC libx264 ENV SE_PRESET "-preset ultrafast" ENV FILE_NAME video.mp4 -ENV SE_VIDEO_FOLDER /videos EXPOSE 9000 diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index fae5921a5..f5f9502e5 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-4.3.1-20231020 + image: selenium/video:ffmpeg-6.0-20231020 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-4.3.1-20231020 + image: selenium/video:ffmpeg-6.0-20231020 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-4.3.1-20231020 + image: selenium/video:ffmpeg-6.0-20231020 volumes: - /tmp/videos:/videos depends_on: diff --git a/generate_release_notes.sh b/generate_release_notes.sh index 014f56156..c936c48d4 100755 --- a/generate_release_notes.sh +++ b/generate_release_notes.sh @@ -17,7 +17,7 @@ CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chrom EDGEDRIVER_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}') FIREFOX_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}') GECKODRIVER_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}') -FFMPEG_VERSION=$(docker run --entrypoint="" --rm selenium/video:ffmpeg-4.3.1-${BUILD_DATE} ffmpeg -version | awk '{print $3}' | head -n 1) +FFMPEG_VERSION=$(docker run --entrypoint="" --rm selenium/video:ffmpeg-6.0-${BUILD_DATE} ffmpeg -version | awk '{print $3}' | head -n 1) echo "" >> release_notes.md From 9b4acaa382a632131631a39cd4b3e73842a852af Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Wed, 25 Oct 2023 14:47:28 +0000 Subject: [PATCH 021/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 10 +- charts/selenium-grid/values.yaml | 22 ++-- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 154 insertions(+), 154 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 85283088a..c078eb9f5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.14.1-20231020? Please use the full tag, avoid "latest" + placeholder: 4.14.1-20231025? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 501a1f349..3a85fff32 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231020", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.14.1-20231020", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.14.1-20231020", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.14.1-20231025", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.14.1-20231025", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.14.1-20231025", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231020" +video-image = "selenium/video:ffmpeg-6.0-20231025" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index b4a14e54f..5e0906068 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.14.1-20231020). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.14.1-20231025). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.14.1-20231020 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.14.1-20231025 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231020 + selenium/node-edge:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231020 + selenium/node-firefox:4.14.1-20231025 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.14.1-20231020 + selenium/node-edge:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.14.1-20231020 + selenium/node-firefox:4.14.1-20231025 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231025 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.14.1-20231020 + selenium/node-edge:4.14.1-20231025 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.14.1-20231020 + selenium/node-edge:4.14.1-20231025 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.14.1-20231020 + selenium/node-firefox:4.14.1-20231025 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.14.1-20231020 + selenium/node-firefox:4.14.1-20231025 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231020` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231025` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231020 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231025 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231020", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.14.1-20231020", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.14.1-20231020", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.14.1-20231025", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.14.1-20231025", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.14.1-20231025", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231020" +video-image = "selenium/video:ffmpeg-6.0-20231025" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.14.1-20231020 + selenium/node-docker:4.14.1-20231025 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.14.1-20231020 + selenium/node-docker:4.14.1-20231025 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.14.1-20231020 + selenium/standalone-docker:4.14.1-20231025 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.14.1-20231020 + selenium/standalone-docker:4.14.1-20231025 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231025 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.14.1-20231020 + selenium/node-docker:4.14.1-20231025 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.14.1-20231020 + selenium/node-docker:4.14.1-20231025 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231020", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.14.1-20231020", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.14.1-20231020", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.14.1-20231025", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.14.1-20231025", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.14.1-20231025", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231020" +video-image = "selenium/video:ffmpeg-6.0-20231025" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.14.1-20231020 + selenium/standalone-docker:4.14.1-20231025 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.14.1-20231020 + selenium/standalone-docker:4.14.1-20231025 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.14.1-20231025 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.14.1-20231020 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.14.1-20231025 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.14.1-20231020 + --shm-size="2g" selenium/node-chrome:4.14.1-20231025 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.14.1-20231020 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.14.1-20231025 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.14.1-20231020 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.14.1-20231025 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.14.1-20231020 + selenium/hub:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231020 + selenium/node-edge:4.14.1-20231025 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231020 + selenium/node-firefox:4.14.1-20231025 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.14.1-20231020 +FROM selenium/node-chrome:4.14.1-20231025 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.14.1-20231020 +FROM selenium/node-firefox:4.14.1-20231025 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231020 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231025 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231020 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231020 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231020 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231025 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231020 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231020 + selenium/node-chrome:4.14.1-20231025 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231020 + selenium/node-edge:4.14.1-20231025 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231020 + selenium/node-firefox:4.14.1-20231025 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.14.1-20231020 + selenium/standalone-chrome:4.14.1-20231025 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index cc890cdf4..aba79dca1 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -9,7 +9,7 @@ All notable changes to this helm chart will be documented in this file. - Add missing Ingress namespace field (#1966) :: Cody Lent ### Changed -- Update image tag to 4.14.1-20231020 +- Update image tag to 4.14.1-20231025 ## :heavy_check_mark: 0.21.3 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index e40a723a0..fb37c0dd3 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -83,8 +83,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.14.1-20231020` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.14.1-20231020` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.14.1-20231025` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.14.1-20231025` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -116,7 +116,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.14.1-20231020` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.14.1-20231025` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -152,7 +152,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.14.1-20231020` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.14.1-20231025` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -188,7 +188,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.14.1-20231020` | Image of edge nodes | +| `edgeNode.imageTag` | `4.14.1-20231025` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 193e5499c..28eb115d4 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.14.1-20231020 + imageTag: 4.14.1-20231025 # Image tag for browser's nodes - nodesImageTag: 4.14.1-20231020 + nodesImageTag: 4.14.1-20231025 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -62,7 +62,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -113,7 +113,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -144,7 +144,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -179,7 +179,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -209,7 +209,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -259,7 +259,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -379,7 +379,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -502,7 +502,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -621,7 +621,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231020 + # imageTag: 4.14.1-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index a1eeec51b..e2bc521a7 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 2f8423872..42a79616f 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 27d41c206..e7846549c 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 61204a19e..d81a24cd0 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 60fbb7dc5..1970d9dbe 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.14.1-20231020 + image: selenium/node-docker:4.14.1-20231025 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 006d2bc38..7fc9990a8 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.14.1-20231020 + image: selenium/event-bus:4.14.1-20231025 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.14.1-20231020 + image: selenium/sessions:4.14.1-20231025 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.14.1-20231020 + image: selenium/session-queue:4.14.1-20231025 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.14.1-20231020 + image: selenium/distributor:4.14.1-20231025 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.14.1-20231020 + image: selenium/router:4.14.1-20231025 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 2e147ed69..bd2ac0738 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 5a697ed32..c624b5d8a 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.14.1-20231020 + image: selenium/event-bus:4.14.1-20231025 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.14.1-20231020 + image: selenium/sessions:4.14.1-20231025 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.14.1-20231020 + image: selenium/session-queue:4.14.1-20231025 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.14.1-20231020 + image: selenium/distributor:4.14.1-20231025 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.14.1-20231020 + image: selenium/router:4.14.1-20231025 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index cd5339fac..267fadf49 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.14.1-20231020 + image: selenium/event-bus:4.14.1-20231025 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.14.1-20231020 + image: selenium/sessions:4.14.1-20231025 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.14.1-20231020 + image: selenium/session-queue:4.14.1-20231025 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.14.1-20231020 + image: selenium/distributor:4.14.1-20231025 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.14.1-20231020 + image: selenium/router:4.14.1-20231025 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 2e147ed69..bd2ac0738 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index beaf72cdb..596e26238 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index f5f9502e5..848f943bd 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231020 + image: selenium/video:ffmpeg-6.0-20231025 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231020 + image: selenium/video:ffmpeg-6.0-20231025 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231020 + image: selenium/video:ffmpeg-6.0-20231025 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index d1d032a3d..e728b9b79 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231020 + image: selenium/node-chrome:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231020 + image: selenium/node-edge:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231020 + image: selenium/node-firefox:4.14.1-20231025 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231020 + image: selenium/hub:4.14.1-20231025 container_name: selenium-hub ports: - "4442:4442" From 020ded4eb6e02ec4ea52dd16f94ea7b27799bdba Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 25 Oct 2023 17:42:55 +0200 Subject: [PATCH 022/100] Bumping chart version --- charts/selenium-grid/CHANGELOG.md | 13 ++++++++++++- charts/selenium-grid/Chart.yaml | 4 ++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index aba79dca1..0291683e1 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to this helm chart will be documented in this file. +## :heavy_check_mark: 0.23.0 + +### Added + +- Update tag in docs and files [skip ci] :: Selenium CI Bot +- feat: video recording with pluggable upload container (#1881) :: MÃ¥rten Svantesson +- Update Video/Dockerfile with based image ffmpeg:6.0-alpine (#1981) :: Viet Nguyen Duc + +### Changed +- Update image tag to 4.14.1-20231025 + ## :heavy_check_mark: 0.22.0 ### Added @@ -9,7 +20,7 @@ All notable changes to this helm chart will be documented in this file. - Add missing Ingress namespace field (#1966) :: Cody Lent ### Changed -- Update image tag to 4.14.1-20231025 +- Update image tag to 4.13.0-20231004 ## :heavy_check_mark: 0.21.3 diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index f11aa98e0..e5d9c79ec 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.22.0 -appVersion: 4.13.0-20231004 +version: 0.23.0 +appVersion: 4.14.1-20231025 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts From 0f7367ed1ce9ead11019c373e3a38ea32103cc9b Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 27 Oct 2023 14:47:56 +0700 Subject: [PATCH 023/100] Fix minor issues after PR #1881 and #1981 (#1983) Signed-off-by: Viet Nguyen Duc --- Video/Dockerfile | 2 +- Video/supervisord.conf | 1 + charts/selenium-grid/templates/video-cm.yaml | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Video/Dockerfile b/Video/Dockerfile index bfd121903..808e8715a 100644 --- a/Video/Dockerfile +++ b/Video/Dockerfile @@ -6,7 +6,7 @@ LABEL authors="Selenium " #======================== RUN apk update \ && apk upgrade \ - && apk add --no-cache --update --virtual .build-deps supervisor bash curl jq xset python3 py3-psutil py3-pip \ + && apk add --no-cache --update --virtual .build-deps supervisor bash curl jq xset xdpyinfo python3 py3-psutil py3-pip \ && ln -sf python3 /usr/bin/python \ && rm -rf /tmp/* /var/cache/apk/* diff --git a/Video/supervisord.conf b/Video/supervisord.conf index 68d42b8a2..84b7d6ae2 100644 --- a/Video/supervisord.conf +++ b/Video/supervisord.conf @@ -10,6 +10,7 @@ pidfile=/var/run/supervisor/supervisord.pid ; (supervisord pidfile;default sup nodaemon=true ; (start in foreground if true;default false) minfds=1024 ; (min. avail startup file descriptors;default 1024) minprocs=200 ; (min. avail process descriptors;default 200) +user=root ; (default is current user, required if root) [program:video-recording] priority=0 diff --git a/charts/selenium-grid/templates/video-cm.yaml b/charts/selenium-grid/templates/video-cm.yaml index 41a13b027..400278720 100644 --- a/charts/selenium-grid/templates/video-cm.yaml +++ b/charts/selenium-grid/templates/video-cm.yaml @@ -20,7 +20,10 @@ data: return_code=1 max_attempts=600 attempts=0 - mkfifo /videos/uploadpipe + if [ ! -p /videos/uploadpipe ]; + then + mkfifo /videos/uploadpipe + fi if [[ "$UPLOAD_DESTINATION_PREFIX" = "" ]] then echo Upload destination not known since UPLOAD_DESTINATION_PREFIX is not set. Exiting video recorder. From fe80abaaa28102ac2a8d24a844a229dad3dbccc1 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 27 Oct 2023 17:10:43 +0700 Subject: [PATCH 024/100] Improve default value for videoRecorder in chart (#1984) Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/templates/_helpers.tpl | 2 +- .../templates/chrome-node-deployment.yaml | 2 +- .../templates/chrome-node-scaledjobs.yaml | 2 +- .../selenium-grid/templates/edge-node-deployment.yaml | 2 +- .../selenium-grid/templates/edge-node-scaledjob.yaml | 2 +- .../templates/firefox-node-deployment.yaml | 2 +- .../templates/firefox-node-scaledjob.yaml | 2 +- charts/selenium-grid/templates/video-cm.yaml | 11 +++++++---- charts/selenium-grid/values.yaml | 8 +++++--- 9 files changed, 19 insertions(+), 14 deletions(-) diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index affe63635..3b95b017a 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -181,7 +181,7 @@ template: imagePullPolicy: {{ .Values.videoRecorder.imagePullPolicy }} env: - name: UPLOAD_DESTINATION_PREFIX - value: {{ .Values.videoRecorder.uploadDestinationPrefix }} + value: {{ .Values.videoRecorder.uploadDestinationPrefix | quote }} {{- with .Values.videoRecorder.extraEnvironmentVariables }} {{- tpl (toYaml .) $ | nindent 8 }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-deployment.yaml b/charts/selenium-grid/templates/chrome-node-deployment.yaml index a89800fdf..4d9a30ac0 100644 --- a/charts/selenium-grid/templates/chrome-node-deployment.yaml +++ b/charts/selenium-grid/templates/chrome-node-deployment.yaml @@ -25,6 +25,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-chrome-node" -}} {{- $_ = set $podScope "node" .Values.chromeNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml index b5770e8a2..c72818b05 100644 --- a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml +++ b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml @@ -35,6 +35,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-chrome-node" -}} {{- $_ = set $podScope "node" .Values.chromeNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-deployment.yaml b/charts/selenium-grid/templates/edge-node-deployment.yaml index d81b7ef93..6216dc101 100644 --- a/charts/selenium-grid/templates/edge-node-deployment.yaml +++ b/charts/selenium-grid/templates/edge-node-deployment.yaml @@ -25,6 +25,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-edge-node" -}} {{- $_ = set $podScope "node" .Values.edgeNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-scaledjob.yaml b/charts/selenium-grid/templates/edge-node-scaledjob.yaml index 6083226e5..eae9ba79a 100644 --- a/charts/selenium-grid/templates/edge-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/edge-node-scaledjob.yaml @@ -35,6 +35,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-edge-node" -}} {{- $_ = set $podScope "node" .Values.edgeNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-deployment.yaml b/charts/selenium-grid/templates/firefox-node-deployment.yaml index 645986c11..13dcf904f 100644 --- a/charts/selenium-grid/templates/firefox-node-deployment.yaml +++ b/charts/selenium-grid/templates/firefox-node-deployment.yaml @@ -25,6 +25,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-firefox-node" -}} {{- $_ = set $podScope "node" .Values.firefoxNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml index 4ec26225a..3fceee4f5 100644 --- a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml @@ -35,6 +35,6 @@ spec: {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" "selenium-firefox-node" -}} {{- $_ = set $podScope "node" .Values.firefoxNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder .Values.videoRecorder.uploader) -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} {{- end }} diff --git a/charts/selenium-grid/templates/video-cm.yaml b/charts/selenium-grid/templates/video-cm.yaml index 400278720..e3ea227d5 100644 --- a/charts/selenium-grid/templates/video-cm.yaml +++ b/charts/selenium-grid/templates/video-cm.yaml @@ -67,7 +67,7 @@ data: if [[ "$session_id" != "null" && "$session_id" != "" && "$recording_started" = "false" ]] then video_file_name="$session_id.mp4" - video_file="${VIDEO_LOCATION:-/videos}/$video_file_name" + video_file="${SE_VIDEO_FOLDER:-/videos}/$video_file_name" echo "Starting to record video" ffmpeg -nostdin -y -f x11grab -video_size ${VIDEO_SIZE} -r ${FRAME_RATE} -i ${DISPLAY} -codec:v ${CODEC} ${PRESET} -pix_fmt yuv420p $video_file & recording_started="true" @@ -77,9 +77,12 @@ data: echo "Stopping to record video" kill -INT %1 fg || echo ffmpeg exited with code $? - upload_destination=${UPLOAD_DESTINATION_PREFIX}${video_file_name} - echo "Uploading video to $upload_destination" - echo $video_file $upload_destination > /videos/uploadpipe & + if [[ "$UPLOAD_DESTINATION_PREFIX" != "false" ]] + then + upload_destination=${UPLOAD_DESTINATION_PREFIX}${video_file_name} + echo "Uploading video to $upload_destination" + echo $video_file $upload_destination > /videos/uploadpipe & + fi recording_started="false" elif [[ $recording_started = "true" ]] then diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 28eb115d4..cb773015e 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -730,9 +730,10 @@ videoRecorder: imageName: selenium/video enabled: false # Where to upload the video file. Should be set to something like 's3://myvideobucket/' - uploadDestinationPrefix: "" + uploadDestinationPrefix: false # What uploader to use. See .videRecorder.s3 for how to create a new one. - uploader: s3 + # uploader: s3 + uploader: false # Image of video recorder imageTag: latest @@ -749,7 +750,7 @@ videoRecorder: memory: "1Gi" cpu: "1" extraEnvironmentVariables: [] - # - name: VIDEO_LOCATION + # - name: SE_VIDEO_FOLDER # value: /videos # Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder. extraEnvFrom: @@ -761,6 +762,7 @@ videoRecorder: terminationGracePeriodSeconds: 30 volume: emptyDir: {} + # Container spec for the uploader if above it is defined as "uploader: s3" s3: imageName: public.ecr.aws/bitnami/aws-cli imageTag: "2" From 4f725b7a5d392fcb96af16438eb92518926ccdaa Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 30 Oct 2023 17:42:43 +0700 Subject: [PATCH 025/100] Improve chart templates in the section videoRecorder (#1987) Improve chart templates in section videoRecorder Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/README.md | 283 +++++++++++--------- charts/selenium-grid/templates/_helpers.tpl | 140 ++++++++-- charts/selenium-grid/values.yaml | 85 ++++-- 3 files changed, 325 insertions(+), 183 deletions(-) diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index fb37c0dd3..65e14ec6e 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -91,137 +91,158 @@ For now, global configuration supported is: This table contains the configuration parameters of the chart and their default values: -| Parameter | Default | Description | -|---------------------------------------------|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `isolateComponents` | `false` | Deploy Router, Distributor, EventBus, SessionMap and Nodes separately | -| `serviceAccount.create` | `true` | Enable or disable creation of service account (if `false`, `serviceAccount.name` MUST be specified | -| `serviceAccount.name` | `""` | Name of the service account to be made or existing service account to use for all deployments and jobs | -| `serviceAccount.annotations` | `{}` | Custom annotations for service account | -| `busConfigMap.name` | `selenium-event-bus-config` | Name of the configmap that contains SE_EVENT_BUS_HOST, SE_EVENT_BUS_PUBLISH_PORT and SE_EVENT_BUS_SUBSCRIBE_PORT variables | -| `busConfigMap.annotations` | `{}` | Custom annotations for configmap | -| `nodeConfigMap.name` | `selenium-node-config` | Name of the configmap that contains common environment variables for browser nodes | -| `nodeConfigMap.annotations` | `{}` | Custom annotations for configmap | -| `ingress.enabled` | `true` | Enable or disable ingress resource | -| `ingress.className` | `""` | Name of ingress class to select which controller will implement ingress resource | -| `ingress.annotations` | `{}` | Custom annotations for ingress resource | -| `ingress.hostname` | `selenium-grid.local` | Default host for the ingress resource | -| `ingress.path` | `/` | Default host path for the ingress resource | -| `ingress.tls` | `[]` | TLS backend configuration for ingress resource | -| `autoscaling.enableWithExistingKEDA` | `false` | Enable autoscaling of browser nodes. | -| `autoscaling.enabled` | `false` | Same as above plus installation of KEDA | -| `autoscaling.scalingType` | `job` | Which typ of KEDA scaling to use: job or deployment | -| `autoscaling.scaledJobOptions` | See `values.yaml` | Options for KEDA ScaledJobs | -| `autoscaling.deregisterLifecycle` | See `values.yaml` | Lifecycle applied to pods of deployments controlled by KEDA. Makes the node deregister from selenium hub | -| `chromeNode.enabled` | `true` | Enable chrome nodes | -| `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | -| `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | -| `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.14.1-20231025` | Image of chrome nodes | -| `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `chromeNode.ports` | `[5555]` | Port list to enable on container | -| `chromeNode.seleniumPort` | `5900` | Selenium port (spec.ports[0].targetPort in kubernetes service) | -| `chromeNode.seleniumServicePort` | `6900` | Selenium port exposed in service (spec.ports[0].port in kubernetes service) | -| `chromeNode.annotations` | `{}` | Annotations for chrome-node pods | -| `chromeNode.labels` | `{}` | Labels for chrome-node pods | -| `chromeNode.resources` | `See values.yaml` | Resources for chrome-node pods | -| `chromeNode.securityContext` | `See values.yaml` | Security context for chrome-node pods | -| `chromeNode.tolerations` | `[]` | Tolerations for chrome-node pods | -| `chromeNode.nodeSelector` | `{}` | Node Selector for chrome-node pods | -| `chromeNode.affinity` | `{}` | Affinity for chrome-node pods | -| `chromeNode.hostAliases` | `nil` | Custom host aliases for chrome nodes | -| `chromeNode.priorityClassName` | `""` | Priority class name for chrome-node pods | -| `chromeNode.extraEnvironmentVariables` | `nil` | Custom environment variables for chrome nodes | -| `chromeNode.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for chrome nodes | -| `chromeNode.service.enabled` | `true` | Create a service for node | -| `chromeNode.service.type` | `ClusterIP` | Service type | -| `chromeNode.service.annotations` | `{}` | Custom annotations for service | -| `chromeNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | -| `chromeNode.startupProbe` | `{}` | Probe to check pod is started successfully | -| `chromeNode.livenessProbe` | `{}` | Liveness probe settings | -| `chromeNode.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | -| `chromeNode.lifecycle` | `{}` | hooks to make pod correctly shutdown or started | -| `chromeNode.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | -| `chromeNode.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | -| `chromeNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | -| `chromeNode.hpa.browserName` | `chrome` | BrowserName from the capability | -| `chromeNode.hpa.browserVersion` | `` | BrowserVersion from the capability | -| `chromeNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | -| `chromeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | -| `firefoxNode.enabled` | `true` | Enable firefox nodes | -| `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | -| `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | -| `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.14.1-20231025` | Image of firefox nodes | -| `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `firefoxNode.ports` | `[5555]` | Port list to enable on container | -| `firefoxNode.seleniumPort` | `5900` | Selenium port (spec.ports[0].targetPort in kubernetes service) | -| `firefoxNode.seleniumServicePort` | `6900` | Selenium port exposed in service (spec.ports[0].port in kubernetes service) | -| `firefoxNode.annotations` | `{}` | Annotations for firefox-node pods | -| `firefoxNode.labels` | `{}` | Labels for firefox-node pods | -| `firefoxNode.resources` | `See values.yaml` | Resources for firefox-node pods | -| `firefoxNode.securityContext` | `See values.yaml` | Security context for firefox-node pods | -| `firefoxNode.tolerations` | `[]` | Tolerations for firefox-node pods | -| `firefoxNode.nodeSelector` | `{}` | Node Selector for firefox-node pods | -| `firefoxNode.affinity` | `{}` | Affinity for firefox-node pods | -| `firefoxNode.hostAliases` | `nil` | Custom host aliases for firefox nodes | -| `firefoxNode.priorityClassName` | `""` | Priority class name for firefox-node pods | -| `firefoxNode.extraEnvironmentVariables` | `nil` | Custom environment variables for firefox nodes | -| `firefoxNode.extraEnvFrom` | `nil` | Custom environment variables taken from `configMap` or `secret` for firefox nodes | -| `firefoxNode.service.enabled` | `true` | Create a service for node | -| `firefoxNode.service.type` | `ClusterIP` | Service type | -| `firefoxNode.service.annotations` | `{}` | Custom annotations for service | -| `firefoxNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | -| `firefoxNode.startupProbe` | `{}` | Probe to check pod is started successfully | -| `firefoxNode.livenessProbe` | `{}` | Liveness probe settings | -| `firefoxNode.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | -| `firefoxNode.lifecycle` | `{}` | hooks to make pod correctly shutdown or started | -| `firefoxNode.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | -| `firefoxNode.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | -| `firefoxNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | -| `firefoxNode.hpa.browserName` | `firefox` | BrowserName from the capability | -| `firefoxNode.hpa.browserVersion` | `` | BrowserVersion from the capability | -| `firefoxNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | -| `firefoxNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | -| `edgeNode.enabled` | `true` | Enable edge nodes | -| `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | -| `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | -| `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.14.1-20231025` | Image of edge nodes | -| `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `edgeNode.ports` | `[5555]` | Port list to enable on container | -| `edgeNode.seleniumPort` | `5900` | Selenium port (spec.ports[0].targetPort in kubernetes service) | -| `edgeNode.seleniumServicePort` | `6900` | Selenium port exposed in service (spec.ports[0].port in kubernetes service) | -| `edgeNode.annotations` | `{}` | Annotations for edge-node pods | -| `edgeNode.labels` | `{}` | Labels for edge-node pods | -| `edgeNode.resources` | `See values.yaml` | Resources for edge-node pods | -| `edgeNode.securityContext` | `See values.yaml` | Security context for edge-node pods | -| `edgeNode.tolerations` | `[]` | Tolerations for edge-node pods | -| `edgeNode.nodeSelector` | `{}` | Node Selector for edge-node pods | -| `edgeNode.affinity` | `{}` | Affinity for edge-node pods | -| `edgeNode.hostAliases` | `nil` | Custom host aliases for edge nodes | -| `edgeNode.priorityClassName` | `""` | Priority class name for edge-node pods | -| `edgeNode.extraEnvironmentVariables` | `nil` | Custom environment variables for firefox nodes | -| `edgeNode.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for firefox nodes | -| `edgeNode.service.enabled` | `true` | Create a service for node | -| `edgeNode.service.type` | `ClusterIP` | Service type | -| `edgeNode.service.annotations` | `{}` | Custom annotations for service | -| `edgeNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | -| `edgeNode.startupProbe` | `{}` | Probe to check pod is started successfully | -| `edgeNode.livenessProbe` | `{}` | Liveness probe settings | -| `edgeNode.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | -| `edgeNode.lifecycle` | `{}` | hooks to make pod correctly shutdown or started | -| `edgeNode.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | -| `edgeNode.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | -| `edgeNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | -| `edgeNode.hpa.browserName` | `edge` | BrowserName from the capability | -| `edgeNode.hpa.browserVersion` | `` | BrowserVersion from the capability | -| `edgeNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | -| `edgeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | -| `customLabels` | `{}` | Custom labels for k8s resources | -| `customLabels` | `{}` | Custom labels for k8s resources | +| Parameter | Default | Description | +|-----------------------------------------------|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| +| `isolateComponents` | `false` | Deploy Router, Distributor, EventBus, SessionMap and Nodes separately | +| `serviceAccount.create` | `true` | Enable or disable creation of service account (if `false`, `serviceAccount.name` MUST be specified | +| `serviceAccount.name` | `""` | Name of the service account to be made or existing service account to use for all deployments and jobs | +| `serviceAccount.annotations` | `{}` | Custom annotations for service account | +| `busConfigMap.name` | `selenium-event-bus-config` | Name of the configmap that contains SE_EVENT_BUS_HOST, SE_EVENT_BUS_PUBLISH_PORT and SE_EVENT_BUS_SUBSCRIBE_PORT variables | +| `busConfigMap.annotations` | `{}` | Custom annotations for configmap | +| `nodeConfigMap.name` | `selenium-node-config` | Name of the configmap that contains common environment variables for browser nodes | +| `nodeConfigMap.annotations` | `{}` | Custom annotations for configmap | +| `ingress.enabled` | `true` | Enable or disable ingress resource | +| `ingress.className` | `""` | Name of ingress class to select which controller will implement ingress resource | +| `ingress.annotations` | `{}` | Custom annotations for ingress resource | +| `ingress.hostname` | `selenium-grid.local` | Default host for the ingress resource | +| `ingress.path` | `/` | Default host path for the ingress resource | +| `ingress.tls` | `[]` | TLS backend configuration for ingress resource | +| `autoscaling.enableWithExistingKEDA` | `false` | Enable autoscaling of browser nodes. | +| `autoscaling.enabled` | `false` | Same as above plus installation of KEDA | +| `autoscaling.scalingType` | `job` | Which typ of KEDA scaling to use: job or deployment | +| `autoscaling.scaledJobOptions` | See `values.yaml` | Options for KEDA ScaledJobs | +| `autoscaling.deregisterLifecycle` | See `values.yaml` | Lifecycle applied to pods of deployments controlled by KEDA. Makes the node deregister from selenium hub | +| `chromeNode.enabled` | `true` | Enable chrome nodes | +| `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | +| `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | +| `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.14.1-20231025` | Image of chrome nodes | +| `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `chromeNode.ports` | `[5555]` | Port list to enable on container | +| `chromeNode.seleniumPort` | `5900` | Selenium port (spec.ports[0].targetPort in kubernetes service) | +| `chromeNode.seleniumServicePort` | `6900` | Selenium port exposed in service (spec.ports[0].port in kubernetes service) | +| `chromeNode.annotations` | `{}` | Annotations for chrome-node pods | +| `chromeNode.labels` | `{}` | Labels for chrome-node pods | +| `chromeNode.resources` | `See values.yaml` | Resources for chrome-node pods | +| `chromeNode.securityContext` | `See values.yaml` | Security context for chrome-node pods | +| `chromeNode.tolerations` | `[]` | Tolerations for chrome-node pods | +| `chromeNode.nodeSelector` | `{}` | Node Selector for chrome-node pods | +| `chromeNode.affinity` | `{}` | Affinity for chrome-node pods | +| `chromeNode.hostAliases` | `nil` | Custom host aliases for chrome nodes | +| `chromeNode.priorityClassName` | `""` | Priority class name for chrome-node pods | +| `chromeNode.extraEnvironmentVariables` | `nil` | Custom environment variables for chrome nodes | +| `chromeNode.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for chrome nodes | +| `chromeNode.service.enabled` | `true` | Create a service for node | +| `chromeNode.service.type` | `ClusterIP` | Service type | +| `chromeNode.service.annotations` | `{}` | Custom annotations for service | +| `chromeNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | +| `chromeNode.startupProbe` | `{}` | Probe to check pod is started successfully | +| `chromeNode.livenessProbe` | `{}` | Liveness probe settings | +| `chromeNode.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | +| `chromeNode.lifecycle` | `{}` | hooks to make pod correctly shutdown or started | +| `chromeNode.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | +| `chromeNode.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | +| `chromeNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | +| `chromeNode.hpa.browserName` | `chrome` | BrowserName from the capability | +| `chromeNode.hpa.browserVersion` | `` | BrowserVersion from the capability | +| `chromeNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | +| `chromeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | +| `firefoxNode.enabled` | `true` | Enable firefox nodes | +| `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | +| `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | +| `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.14.1-20231025` | Image of firefox nodes | +| `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `firefoxNode.ports` | `[5555]` | Port list to enable on container | +| `firefoxNode.seleniumPort` | `5900` | Selenium port (spec.ports[0].targetPort in kubernetes service) | +| `firefoxNode.seleniumServicePort` | `6900` | Selenium port exposed in service (spec.ports[0].port in kubernetes service) | +| `firefoxNode.annotations` | `{}` | Annotations for firefox-node pods | +| `firefoxNode.labels` | `{}` | Labels for firefox-node pods | +| `firefoxNode.resources` | `See values.yaml` | Resources for firefox-node pods | +| `firefoxNode.securityContext` | `See values.yaml` | Security context for firefox-node pods | +| `firefoxNode.tolerations` | `[]` | Tolerations for firefox-node pods | +| `firefoxNode.nodeSelector` | `{}` | Node Selector for firefox-node pods | +| `firefoxNode.affinity` | `{}` | Affinity for firefox-node pods | +| `firefoxNode.hostAliases` | `nil` | Custom host aliases for firefox nodes | +| `firefoxNode.priorityClassName` | `""` | Priority class name for firefox-node pods | +| `firefoxNode.extraEnvironmentVariables` | `nil` | Custom environment variables for firefox nodes | +| `firefoxNode.extraEnvFrom` | `nil` | Custom environment variables taken from `configMap` or `secret` for firefox nodes | +| `firefoxNode.service.enabled` | `true` | Create a service for node | +| `firefoxNode.service.type` | `ClusterIP` | Service type | +| `firefoxNode.service.annotations` | `{}` | Custom annotations for service | +| `firefoxNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | +| `firefoxNode.startupProbe` | `{}` | Probe to check pod is started successfully | +| `firefoxNode.livenessProbe` | `{}` | Liveness probe settings | +| `firefoxNode.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | +| `firefoxNode.lifecycle` | `{}` | hooks to make pod correctly shutdown or started | +| `firefoxNode.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | +| `firefoxNode.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | +| `firefoxNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | +| `firefoxNode.hpa.browserName` | `firefox` | BrowserName from the capability | +| `firefoxNode.hpa.browserVersion` | `` | BrowserVersion from the capability | +| `firefoxNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | +| `firefoxNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | +| `edgeNode.enabled` | `true` | Enable edge nodes | +| `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | +| `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | +| `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | +| `edgeNode.imageTag` | `4.14.1-20231025` | Image of edge nodes | +| `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `edgeNode.ports` | `[5555]` | Port list to enable on container | +| `edgeNode.seleniumPort` | `5900` | Selenium port (spec.ports[0].targetPort in kubernetes service) | +| `edgeNode.seleniumServicePort` | `6900` | Selenium port exposed in service (spec.ports[0].port in kubernetes service) | +| `edgeNode.annotations` | `{}` | Annotations for edge-node pods | +| `edgeNode.labels` | `{}` | Labels for edge-node pods | +| `edgeNode.resources` | `See values.yaml` | Resources for edge-node pods | +| `edgeNode.securityContext` | `See values.yaml` | Security context for edge-node pods | +| `edgeNode.tolerations` | `[]` | Tolerations for edge-node pods | +| `edgeNode.nodeSelector` | `{}` | Node Selector for edge-node pods | +| `edgeNode.affinity` | `{}` | Affinity for edge-node pods | +| `edgeNode.hostAliases` | `nil` | Custom host aliases for edge nodes | +| `edgeNode.priorityClassName` | `""` | Priority class name for edge-node pods | +| `edgeNode.extraEnvironmentVariables` | `nil` | Custom environment variables for firefox nodes | +| `edgeNode.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for firefox nodes | +| `edgeNode.service.enabled` | `true` | Create a service for node | +| `edgeNode.service.type` | `ClusterIP` | Service type | +| `edgeNode.service.annotations` | `{}` | Custom annotations for service | +| `edgeNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | +| `edgeNode.startupProbe` | `{}` | Probe to check pod is started successfully | +| `edgeNode.livenessProbe` | `{}` | Liveness probe settings | +| `edgeNode.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | +| `edgeNode.lifecycle` | `{}` | hooks to make pod correctly shutdown or started | +| `edgeNode.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | +| `edgeNode.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | +| `edgeNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | +| `edgeNode.hpa.browserName` | `edge` | BrowserName from the capability | +| `edgeNode.hpa.browserVersion` | `` | BrowserVersion from the capability | +| `edgeNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | +| `edgeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | +| `videoRecorder.enabled` | `false` | Enable video recorder for node | +| `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231025` | Image tag of video recorder | +| `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | +| `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | +| `videoRecorder.ports` | `[9000]` | Port list to enable on video recorder container | +| `videoRecorder.resources` | `See values.yaml` | Resources for video recorder | +| `videoRecorder.extraEnvironmentVariables` | `nil` | Custom environment variables for video recorder | +| `videoRecorder.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for video recorder | +| `videoRecorder.terminationGracePeriodSeconds` | `30` | Time to graceful terminate container (default: 30s) | +| `videoRecorder.startupProbe` | `{}` | Probe to check pod is started successfully | +| `videoRecorder.livenessProbe` | `{}` | Liveness probe settings | +| `videoRecorder.volume.name.folder` | `video` | Name is used to set for the volume to persist and share output video folder in container | +| `videoRecorder.volume.name.scripts` | `video-scripts` | Name is used to set for the volume to persist and share video recorder scripts in container | +| `videoRecorder.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod | +| `videoRecorder.extraVolumes` | `[]` | Extra Volumes declarations to be used in the pod (can be any supported volume type: ConfigMap, Secret, PVC, NFS, etc.) | +| `videoRecorder.s3` | `See values.yaml` | Container spec for the uploader if `videoRecorder.uploader` is `s3`. Similarly, create for your new uploader | +| `videoRecorder.s3.resources` | `See values.yaml` | Resources for video uploader | +| `videoRecorder.s3.extraEnvironmentVariables` | `` | Custom environment variables for video uploader container | +| `videoRecorder.s3.extraEnvFrom` | `` | Custom environment taken from `configMap` or `secret` variables for video uploader | +| `videoRecorder.s3.extraVolumeMounts` | `[]` | Extra mounts of declared ExtraVolumes into pod of video uploader | +| `customLabels` | `{}` | Custom labels for k8s resources | ### Configuration of KEDA diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 3b95b017a..4d816fa11 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -101,7 +101,6 @@ Is autoscaling using KEDA enabled {{- or .Values.autoscaling.enabled .Values.autoscaling.enableWithExistingKEDA | ternary "true" "" -}} {{- end -}} - {{/* Common pod template */}} @@ -144,7 +143,7 @@ template: - configMapRef: name: {{ .Values.nodeConfigMap.name }} {{- with .node.extraEnvFrom }} - {{- toYaml . | nindent 10 }} + {{- tpl (toYaml .) $ | nindent 10 }} {{- end }} {{- if gt (len .node.ports) 0 }} ports: @@ -157,7 +156,7 @@ template: - name: dshm mountPath: /dev/shm {{- if .node.extraVolumeMounts }} - {{- toYaml .node.extraVolumeMounts | nindent 10 }} + {{- tpl (toYaml .node.extraVolumeMounts) $ | nindent 10 }} {{- end }} {{- with .node.resources }} resources: {{- toYaml . | nindent 10 }} @@ -189,7 +188,7 @@ template: - configMapRef: name: {{ .Values.busConfigMap.name }} {{- with .Values.videoRecorder.extraEnvFrom }} - {{- toYaml . | nindent 8 }} + {{- tpl (toYaml .) $ | nindent 8 }} {{- end }} {{- if gt (len .Values.videoRecorder.ports) 0 }} ports: @@ -201,17 +200,16 @@ template: volumeMounts: - name: dshm mountPath: /dev/shm - - name: video-scripts - mountPath: /opt/bin/video.sh - subPath: video.sh - - name: video - mountPath: /videos - {{- if .Values.videoRecorder.extraVolumeMounts }} - {{- toYaml .Values.videoRecorder.extraVolumeMounts | nindent 8 }} - {{- end }} + {{- tpl (include "seleniumGrid.video.volumeMounts" .) $ | nindent 8 }} {{- with .Values.videoRecorder.resources }} resources: {{- toYaml . | nindent 10 }} {{- end }} + {{- with .Values.videoRecorder.startupProbe }} + startupProbe: {{- toYaml . | nindent 10 }} + {{- end }} + {{- with .Values.videoRecorder.livenessProbe }} + livenessProbe: {{- toYaml . | nindent 10 }} + {{- end }} {{- if .uploader }} - name: uploader image: {{ printf "%s:%s" .uploader.imageName .uploader.imageTag }} @@ -227,14 +225,10 @@ template: {{- end }} {{- with .uploader.extraEnvFrom }} envFrom: - {{- toYaml . | nindent 10 }} + {{- tpl (toYaml .) $ | nindent 10 }} {{- end }} volumeMounts: - - name: video - mountPath: /videos - {{- if .uploader.extraVolumeMounts }} - {{- toYaml .uploader.extraVolumeMounts | nindent 8 }} - {{- end }} + {{- tpl (include "seleniumGrid.video.uploader.volumeMounts" .) $ | nindent 8 }} {{- with .uploader.resources }} resources: {{- toYaml . | nindent 10 }} {{- end }} @@ -267,16 +261,11 @@ template: medium: Memory sizeLimit: {{ default "1Gi" .node.dshmVolumeSizeLimit }} {{- if .node.extraVolumes }} - {{ toYaml .node.extraVolumes | nindent 6 }} + {{ tpl (toYaml .node.extraVolumes) $ | nindent 6 }} {{- end }} {{- if .Values.videoRecorder.enabled }} - - name: video-scripts - configMap: - name: {{ template "seleniumGrid.video.fullname" . }} - defaultMode: 0500 - - name: video - {{- toYaml .Values.videoRecorder.volume | nindent 8 }} - {{- end }} + {{- tpl (include "seleniumGrid.video.volumes" .) $ | nindent 6 }} + {{- end }} {{- end -}} {{/* @@ -310,3 +299,102 @@ deployment preStop hook to deregister from the selenium hub. lifecycle: {{ $lifecycle | nindent 2 }} {{- end -}} {{- end -}} + +{{/* +Default specs of VolumeMounts and Volumes for video recorder +*/}} +{{- define "seleniumGrid.video.volume.name.folder" -}} +{{- $name := default "video" (((.Values.videoRecorder).volume).name).folder -}} +{{- $name -}} +{{- end -}} + +{{- define "seleniumGrid.video.volume.name.scripts" -}} +{{- $name := default "video-scripts" (((.Values.videoRecorder).volume).name).scripts -}} +{{- $name -}} +{{- end -}} + +{{- define "seleniumGrid.video.volumeMounts.default" -}} +- name: {{ include "seleniumGrid.video.volume.name.scripts" . }} + mountPath: /opt/bin/video.sh + subPath: video.sh +- name: {{ include "seleniumGrid.video.volume.name.folder" . }} + mountPath: /videos +{{- end -}} + +{{- define "seleniumGrid.video.volumes.default" -}} +- name: {{ include "seleniumGrid.video.volume.name.scripts" . }} + configMap: + name: {{ template "seleniumGrid.video.fullname" . }} + defaultMode: 0500 +- name: {{ include "seleniumGrid.video.volume.name.folder" . }} + emptyDir: {} +{{- end -}} + +{{- define "seleniumGrid.video.uploader.volumeMounts.default" -}} +- name: {{ include "seleniumGrid.video.volume.name.folder" . }} + mountPath: /videos +{{- end -}} + +{{/* Combine videoRecorder.extraVolumeMounts with the default ones for container video recorder */}} +{{- define "seleniumGrid.video.volumeMounts" -}} +{{- $videoVolumeMounts := list -}} +{{- if .Values.videoRecorder.extraVolumeMounts -}} + {{- range .Values.videoRecorder.extraVolumeMounts -}} + {{- $videoVolumeMounts = append $videoVolumeMounts . -}} + {{- end -}} +{{- end -}} +{{- $defaultVolumeMounts := (include "seleniumGrid.video.volumeMounts.default" . | toString | fromYamlArray ) -}} +{{- $videoVolumeMounts = include "utils.appendDefaultIfNotExist" (dict "currentArray" $videoVolumeMounts "defaultArray" $defaultVolumeMounts "uniqueKey" "mountPath") -}} +{{- not (empty $videoVolumeMounts) | ternary $videoVolumeMounts "" -}} +{{- end -}} + +{{/* Combine videoRecorder.uploader.extraVolumeMounts with the default ones for container video uploader */}} +{{- define "seleniumGrid.video.uploader.volumeMounts" -}} +{{- $videoUploaderVolumeMounts := list -}} +{{- if .uploader.extraVolumeMounts -}} + {{- range .uploader.extraVolumeMounts -}} + {{- $videoUploaderVolumeMounts = append $videoUploaderVolumeMounts . -}} + {{- end -}} +{{- end }} +{{- $defaultVolumeMounts := (include "seleniumGrid.video.uploader.volumeMounts.default" . | toString | fromYamlArray ) -}} +{{- $videoUploaderVolumeMounts = include "utils.appendDefaultIfNotExist" (dict "currentArray" $videoUploaderVolumeMounts "defaultArray" $defaultVolumeMounts "uniqueKey" "mountPath") -}} +{{- not (empty $videoUploaderVolumeMounts) | ternary $videoUploaderVolumeMounts "" -}} +{{- end -}} + +{{/* Combine videoRecorder.extraVolumes with the default ones for the node pod */}} +{{- define "seleniumGrid.video.volumes" -}} +{{- $videoVolumes := list -}} +{{- if .Values.videoRecorder.extraVolumes -}} + {{- range .Values.videoRecorder.extraVolumes -}} + {{- $videoVolumes = append $videoVolumes . -}} + {{- end -}} +{{- end -}} +{{- $defaultVolumes := (include "seleniumGrid.video.volumes.default" . | toString | fromYamlArray ) -}} +{{- $videoVolumes = include "utils.appendDefaultIfNotExist" (dict "currentArray" $videoVolumes "defaultArray" $defaultVolumes "uniqueKey" "name") -}} +{{- not (empty $videoVolumes) | ternary $videoVolumes "" -}} +{{- end -}} + +{{/* +Is used to append default items needed to an array if they are not already present. Args: currentArray, defaultArray, uniqueKey +Usage: {{- $thisArray = include "utils.appendDefaultIfNotExist" (dict "currentArray" $thisArray "defaultArray" $defaultArray "uniqueKey" $uniqueKey }} +*/}} +{{- define "utils.appendDefaultIfNotExist" -}} + {{- $currentArray := index . "currentArray" -}} + {{- $defaultArray := index . "defaultArray" -}} + {{- $uniqueKey := index . "uniqueKey" -}} + {{- range $default := $defaultArray -}} + {{- if eq (len $currentArray) 0 -}} + {{- $currentArray = append $currentArray $default -}} + {{- end -}} + {{- $isExisting := false -}} + {{- range $current := $currentArray -}} + {{- if eq (index $default $uniqueKey | toString) (index $current $uniqueKey | toString) -}} + {{- $isExisting = true -}} + {{- end -}} + {{- end -}} + {{- if not $isExisting -}} + {{- $currentArray = append $currentArray $default -}} + {{- end -}} + {{- end -}} + {{- $currentArray | toYaml -}} +{{- end -}} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index cb773015e..1388715d6 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -726,22 +726,23 @@ edgeNode: sidecars: [] videoRecorder: + enabled: false # Image of video recorder imageName: selenium/video - enabled: false - # Where to upload the video file. Should be set to something like 's3://myvideobucket/' - uploadDestinationPrefix: false - # What uploader to use. See .videRecorder.s3 for how to create a new one. - # uploader: s3 - uploader: false - # Image of video recorder - imageTag: latest + imageTag: ffmpeg-6.0-20231025 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent + # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) + + # What uploader to use. See .videRecorder.s3 for how to create a new one. + # uploader: s3 + uploader: false + # Where to upload the video file. Should be set to something like 's3://myvideobucket/' + uploadDestinationPrefix: false ports: - - 5666 + - 9000 resources: requests: memory: "1Gi" @@ -749,19 +750,52 @@ videoRecorder: limits: memory: "1Gi" cpu: "1" - extraEnvironmentVariables: [] + extraEnvironmentVariables: # - name: SE_VIDEO_FOLDER # value: /videos # Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder. extraEnvFrom: - # - configMapRef: - # name: proxy-settings - # - secretRef: - # name: mysecret + # - configMapRef: + # name: proxy-settings + # - secretRef: + # name: mysecret # Wait for pod startup terminationGracePeriodSeconds: 30 + + # Wait for pod startup + startupProbe: {} + # httpGet: + # path: / + # port: 9000 + # failureThreshold: 120 + # periodSeconds: 5 + + # Liveness probe settings + livenessProbe: {} + volume: - emptyDir: {} + # name: + # folder: video + # scripts: video-scripts + # Custom video recorder back-end scripts (video.sh, video_ready.py, etc.) further by ConfigMap. + # NOTE: For the mount point with the name "video", or "video-scripts", it will override the default. For other names, it will be appended. + extraVolumeMounts: [] + # - name: video-scripts + # mountPath: /opt/bin/video.sh + # subPath: custom_video.sh + # - name: video-scripts + # mountPath: /opt/bin/video_ready.py + # subPath: video_ready.py + + extraVolumes: [] + # - name: video-scripts + # configMap: + # name: my-video-scripts-cm + # defaultMode: 0500 + # - name: video + # persistentVolumeClaim: + # claimName: video-pv-claim + # Container spec for the uploader if above it is defined as "uploader: s3" s3: imageName: public.ecr.aws/bitnami/aws-cli @@ -789,17 +823,16 @@ videoRecorder: aws s3 cp --no-progress $FILE $DESTINATION fi done - # extraEnvironmentVariables: - # - name: AWS_ACCESS_KEY_ID - # value: aws_access_key_id - # - name: AWS_SECRET_ACCESS_KEY - # value: aws_secret_access_key - # - name: - # valueFrom: - # secretKeyRef: - # name: secret-name - # key: secret-key - + extraEnvironmentVariables: + # - name: AWS_ACCESS_KEY_ID + # value: aws_access_key_id + # - name: AWS_SECRET_ACCESS_KEY + # value: aws_secret_access_key + # - name: + # valueFrom: + # secretKeyRef: + # name: secret-name + # key: secret-key # Custom labels for k8s resources customLabels: {} From b1c358cff1d5dd7f6b700213468da19237efa6f2 Mon Sep 17 00:00:00 2001 From: Luis Correia Date: Thu, 2 Nov 2023 11:05:11 +0000 Subject: [PATCH 026/100] Update to Selenium 4.15.0 (#1990) * Update Dockerfile * Update bootstrap.sh [deploy] --- Base/Dockerfile | 2 +- tests/bootstrap.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 2c1c1f72d..44dc86e36 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -73,7 +73,7 @@ COPY supervisord.conf /etc RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && touch /opt/selenium/config.toml \ && chmod -R 777 /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor /etc/passwd \ - && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.14.0/selenium-server-4.14.1.jar \ + && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.15.0/selenium-server-4.15.0.jar \ -O /opt/selenium/selenium-server.jar \ && chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ diff --git a/tests/bootstrap.sh b/tests/bootstrap.sh index fad306dfd..a210862fa 100755 --- a/tests/bootstrap.sh +++ b/tests/bootstrap.sh @@ -7,7 +7,7 @@ if [ "${CI:-false}" = "false" ]; then source docker-selenium-tests/bin/activate fi -python -m pip install selenium==4.14.0 \ +python -m pip install selenium==4.15.0 \ docker===6.1.3 \ | grep -v 'Requirement already satisfied' From cef5534ff56b5b2ef9f3e461f8186434ba9c68b6 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Thu, 2 Nov 2023 11:16:50 +0000 Subject: [PATCH 027/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 12 +-- charts/selenium-grid/values.yaml | 24 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 156 insertions(+), 156 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c078eb9f5..f277ee18d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.14.1-20231025? Please use the full tag, avoid "latest" + placeholder: 4.15.0-20231102? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 3a85fff32..433eb3f15 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231025", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.14.1-20231025", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.14.1-20231025", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.15.0-20231102", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.15.0-20231102", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.15.0-20231102", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231025" +video-image = "selenium/video:ffmpeg-6.0-20231102" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 5e0906068..7d4fee314 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.14.1-20231025). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231102). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.14.1-20231025 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231102 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231025 + selenium/node-edge:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231025 + selenium/node-firefox:4.15.0-20231102 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.14.1-20231025 + selenium/node-edge:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.14.1-20231025 + selenium/node-firefox:4.15.0-20231102 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231102 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.14.1-20231025 + selenium/node-edge:4.15.0-20231102 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.14.1-20231025 + selenium/node-edge:4.15.0-20231102 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.14.1-20231025 + selenium/node-firefox:4.15.0-20231102 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.14.1-20231025 + selenium/node-firefox:4.15.0-20231102 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231025` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231102` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231025 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231102 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231025", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.14.1-20231025", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.14.1-20231025", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.15.0-20231102", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.15.0-20231102", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.15.0-20231102", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231025" +video-image = "selenium/video:ffmpeg-6.0-20231102" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.14.1-20231025 + selenium/node-docker:4.15.0-20231102 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.14.1-20231025 + selenium/node-docker:4.15.0-20231102 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.14.1-20231025 + selenium/standalone-docker:4.15.0-20231102 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.14.1-20231025 + selenium/standalone-docker:4.15.0-20231102 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231102 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.14.1-20231025 + selenium/node-docker:4.15.0-20231102 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.14.1-20231025 + selenium/node-docker:4.15.0-20231102 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.14.1-20231025", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.14.1-20231025", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.14.1-20231025", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.15.0-20231102", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.15.0-20231102", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.15.0-20231102", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231025" +video-image = "selenium/video:ffmpeg-6.0-20231102" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.14.1-20231025 + selenium/standalone-docker:4.15.0-20231102 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.14.1-20231025 + selenium/standalone-docker:4.15.0-20231102 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231102 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.14.1-20231025 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231102 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.14.1-20231025 + --shm-size="2g" selenium/node-chrome:4.15.0-20231102 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.14.1-20231025 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231102 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.14.1-20231025 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231102 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.14.1-20231025 + selenium/hub:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231025 + selenium/node-edge:4.15.0-20231102 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231025 + selenium/node-firefox:4.15.0-20231102 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.14.1-20231025 +FROM selenium/node-chrome:4.15.0-20231102 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.14.1-20231025 +FROM selenium/node-firefox:4.15.0-20231102 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231025 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231102 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.14.1-20231025 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.14.1-20231025 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.14.1-20231025 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231102 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.14.1-20231025 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.14.1-20231025 + selenium/node-chrome:4.15.0-20231102 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.14.1-20231025 + selenium/node-edge:4.15.0-20231102 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.14.1-20231025 + selenium/node-firefox:4.15.0-20231102 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.14.1-20231025 + selenium/standalone-chrome:4.15.0-20231102 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 0291683e1..a6bbe036a 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -11,7 +11,7 @@ All notable changes to this helm chart will be documented in this file. - Update Video/Dockerfile with based image ffmpeg:6.0-alpine (#1981) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.14.1-20231025 +- Update image tag to 4.15.0-20231102 ## :heavy_check_mark: 0.22.0 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 65e14ec6e..29b4239d9 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -83,8 +83,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.14.1-20231025` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.14.1-20231025` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.15.0-20231102` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231102` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -116,7 +116,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.14.1-20231025` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.15.0-20231102` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -152,7 +152,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.14.1-20231025` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.15.0-20231102` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -188,7 +188,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.14.1-20231025` | Image of edge nodes | +| `edgeNode.imageTag` | `4.15.0-20231102` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -222,7 +222,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231025` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231102` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 1388715d6..2d4625b6f 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.14.1-20231025 + imageTag: 4.15.0-20231102 # Image tag for browser's nodes - nodesImageTag: 4.14.1-20231025 + nodesImageTag: 4.15.0-20231102 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -62,7 +62,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -113,7 +113,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -144,7 +144,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -179,7 +179,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -209,7 +209,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -259,7 +259,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -379,7 +379,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -502,7 +502,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -621,7 +621,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.14.1-20231025 + # imageTag: 4.15.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -730,7 +730,7 @@ videoRecorder: # Image of video recorder imageName: selenium/video # Image of video recorder - imageTag: ffmpeg-6.0-20231025 + imageTag: ffmpeg-6.0-20231102 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index e2bc521a7..10bd70ba1 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 42a79616f..5a33f39fb 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index e7846549c..7a738a9df 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index d81a24cd0..cd52da6f0 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 1970d9dbe..86b92f1ac 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.14.1-20231025 + image: selenium/node-docker:4.15.0-20231102 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 7fc9990a8..670e6be82 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.14.1-20231025 + image: selenium/event-bus:4.15.0-20231102 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.14.1-20231025 + image: selenium/sessions:4.15.0-20231102 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.14.1-20231025 + image: selenium/session-queue:4.15.0-20231102 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.14.1-20231025 + image: selenium/distributor:4.15.0-20231102 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.14.1-20231025 + image: selenium/router:4.15.0-20231102 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index bd2ac0738..cce8bacfa 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index c624b5d8a..dfaea31cc 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.14.1-20231025 + image: selenium/event-bus:4.15.0-20231102 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.14.1-20231025 + image: selenium/sessions:4.15.0-20231102 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.14.1-20231025 + image: selenium/session-queue:4.15.0-20231102 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.14.1-20231025 + image: selenium/distributor:4.15.0-20231102 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.14.1-20231025 + image: selenium/router:4.15.0-20231102 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 267fadf49..896c863aa 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.14.1-20231025 + image: selenium/event-bus:4.15.0-20231102 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.14.1-20231025 + image: selenium/sessions:4.15.0-20231102 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.14.1-20231025 + image: selenium/session-queue:4.15.0-20231102 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.14.1-20231025 + image: selenium/distributor:4.15.0-20231102 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.14.1-20231025 + image: selenium/router:4.15.0-20231102 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index bd2ac0738..cce8bacfa 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 596e26238..ae0d4328c 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 848f943bd..c37b57453 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231025 + image: selenium/video:ffmpeg-6.0-20231102 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231025 + image: selenium/video:ffmpeg-6.0-20231102 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231025 + image: selenium/video:ffmpeg-6.0-20231102 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index e728b9b79..29054d43b 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.14.1-20231025 + image: selenium/node-chrome:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.14.1-20231025 + image: selenium/node-edge:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.14.1-20231025 + image: selenium/node-firefox:4.15.0-20231102 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.14.1-20231025 + image: selenium/hub:4.15.0-20231102 container_name: selenium-hub ports: - "4442:4442" From 599c704708625856ca7bdc73374d66f55b2bc16b Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 6 Nov 2023 14:13:08 +0530 Subject: [PATCH 028/100] feat(autoscaling): Unified parameters to set scaled options for browser nodes (#1989) * feat(autoscaling): Unified parameters to set scaled options for browser nodes Signed-off-by: Viet Nguyen Duc * Update value to get from template .fullname Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/README.md | 24 ++++++---- charts/selenium-grid/templates/_helpers.tpl | 41 +++++++++++++++++ .../templates/chrome-node-deployment.yaml | 4 +- .../templates/chrome-node-hpa.yaml | 13 ++---- .../templates/chrome-node-scaledjobs.yaml | 24 +++------- .../templates/edge-node-deployment.yaml | 4 +- .../templates/edge-node-hpa.yaml | 13 ++---- .../templates/edge-node-scaledjob.yaml | 24 +++------- .../templates/event-bus-configmap.yaml | 2 +- .../templates/firefox-node-deployment.yaml | 4 +- .../templates/firefox-node-hpa.yaml | 13 ++---- .../templates/firefox-node-scaledjob.yaml | 24 +++------- charts/selenium-grid/values.yaml | 44 +++++++++++++++---- 13 files changed, 130 insertions(+), 104 deletions(-) diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 29b4239d9..2c7240df7 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -109,8 +109,13 @@ This table contains the configuration parameters of the chart and their default | `ingress.tls` | `[]` | TLS backend configuration for ingress resource | | `autoscaling.enableWithExistingKEDA` | `false` | Enable autoscaling of browser nodes. | | `autoscaling.enabled` | `false` | Same as above plus installation of KEDA | -| `autoscaling.scalingType` | `job` | Which typ of KEDA scaling to use: job or deployment | -| `autoscaling.scaledJobOptions` | See `values.yaml` | Options for KEDA ScaledJobs | +| `autoscaling.scalingType` | `job` | Which typ of KEDA scaling to use: `job` or `deployment` | +| `autoscaling.scaledOptions` | See `values.yaml` | Common options for KEDA scaled resources (both ScaledJobs and ScaledObjects) | +| `autoscaling.scaledOptions.minReplicaCount` | `0` | Min number of replicas that each browser nodes has when autoscaling | +| `autoscaling.scaledOptions.maxReplicaCount` | `8` | Max number of replicas that each browser nodes can auto scale up to | +| `autoscaling.scaledOptions.pollingInterval` | `10` | The interval to check each trigger on | +| `autoscaling.scaledJobOptions` | See `values.yaml` | Options for KEDA ScaledJobs (when `scalingType` is set to `job`) | +| `autoscaling.scaledObjectOptions` | See `values.yaml` | Options for KEDA ScaledObjects (when `scalingType` is set to `deployment`) | | `autoscaling.deregisterLifecycle` | See `values.yaml` | Lifecycle applied to pods of deployments controlled by KEDA. Makes the node deregister from selenium hub | | `chromeNode.enabled` | `true` | Enable chrome nodes | | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | @@ -146,8 +151,9 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | | `chromeNode.hpa.browserName` | `chrome` | BrowserName from the capability | | `chromeNode.hpa.browserVersion` | `` | BrowserVersion from the capability | -| `chromeNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | -| `chromeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | +| `chromeNode.scaledOptions` | See `values.yaml` | Override the global `autoscaling.scaledOptions` with specific scaled options for chrome nodes | +| `chromeNode.scaledJobOptions` | See `values.yaml` | Override the global `autoscaling.scaledJobOptions` with specific scaled options for chrome nodes | +| `chromeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for chrome nodes | | `firefoxNode.enabled` | `true` | Enable firefox nodes | | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | @@ -182,8 +188,9 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | | `firefoxNode.hpa.browserName` | `firefox` | BrowserName from the capability | | `firefoxNode.hpa.browserVersion` | `` | BrowserVersion from the capability | -| `firefoxNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | -| `firefoxNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | +| `firefoxNode.scaledOptions` | See `values.yaml` | Override the global `autoscaling.scaledOptions` with specific scaled options for firefox nodes | +| `firefoxNode.scaledJobOptions` | See `values.yaml` | Override the global `autoscaling.scaledJobOptions` with specific scaled options for firefox nodes | +| `firefoxNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for firefox nodes | | `edgeNode.enabled` | `true` | Enable edge nodes | | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | @@ -218,8 +225,9 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.hpa.url` | `{{ include "seleniumGrid.graphqlURL" . }}` | Graphql Url of the hub or the router | | `edgeNode.hpa.browserName` | `edge` | BrowserName from the capability | | `edgeNode.hpa.browserVersion` | `` | BrowserVersion from the capability | -| `edgeNode.maxReplicaCount` | `8` | Max number of replicas that this browsernode can auto scale up to | -| `edgeNode.minReplicaCount` | `1` | Min number of replicas that this browsernode has when jobs are running | +| `edgeNode.scaledOptions` | See `values.yaml` | Override the global `autoscaling.scaledOptions` with specific scaled options for edge nodes | +| `edgeNode.scaledJobOptions` | See `values.yaml` | Override the global `autoscaling.scaledJobOptions` with specific scaled options for edge nodes | +| `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | | `videoRecorder.imageTag` | `ffmpeg-6.0-20231102` | Image tag of video recorder | diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 4d816fa11..5fa362094 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -101,6 +101,47 @@ Is autoscaling using KEDA enabled {{- or .Values.autoscaling.enabled .Values.autoscaling.enableWithExistingKEDA | ternary "true" "" -}} {{- end -}} +{{/* +Common autoscaling spec template +*/}} +{{- define "seleniumGrid.autoscalingTemplate" -}} +{{- $spec := toYaml (dict) -}} +{{/* Merge with precedence from right to left */}} +{{- with .Values.autoscaling.scaledOptions -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) . | toYaml -}} +{{- end -}} +{{- with .node.scaledOptions -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) . | toYaml -}} +{{- end -}} +{{- if eq .Values.autoscaling.scalingType "deployment" -}} + {{- with .Values.autoscaling.scaledObjectOptions -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) . | toYaml -}} + {{- end -}} + {{- with .node.scaledObjectOptions -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) . | toYaml -}} + {{- end -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) (dict "scaleTargetRef" (dict "name" .name)) | toYaml -}} +{{- else if eq .Values.autoscaling.scalingType "job" -}} + {{- with .Values.autoscaling.scaledJobOptions -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) . | toYaml -}} + {{- end -}} + {{- with .node.scaledJobOptions -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) . | toYaml -}} + {{- end -}} + {{- $spec = mergeOverwrite ($spec | fromYaml) (dict "jobTargetRef" .podTemplate) | toYaml -}} +{{- end -}} +{{- if and $spec (ne $spec "{}") -}} + {{ tpl $spec $ }} +{{- end -}} +{{- if not .Values.autoscaling.scaledOptions.triggers }} +triggers: + - type: selenium-grid + {{- with .node.hpa }} + metadata: {{- tpl (toYaml .) $ | nindent 6 }} + {{- end }} +{{- end }} +{{- end -}} + {{/* Common pod template */}} diff --git a/charts/selenium-grid/templates/chrome-node-deployment.yaml b/charts/selenium-grid/templates/chrome-node-deployment.yaml index 4d9a30ac0..2ea8c010c 100644 --- a/charts/selenium-grid/templates/chrome-node-deployment.yaml +++ b/charts/selenium-grid/templates/chrome-node-deployment.yaml @@ -23,8 +23,8 @@ spec: app: selenium-chrome-node app.kubernetes.io/instance: {{ .Release.Name }} {{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" "selenium-chrome-node" -}} -{{- $_ = set $podScope "node" .Values.chromeNode -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} +{{- $_ = set $podScope "node" .Values.chromeNode -}} {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-hpa.yaml b/charts/selenium-grid/templates/chrome-node-hpa.yaml index 7cb78043c..74c588198 100644 --- a/charts/selenium-grid/templates/chrome-node-hpa.yaml +++ b/charts/selenium-grid/templates/chrome-node-hpa.yaml @@ -11,13 +11,8 @@ metadata: labels: deploymentName: {{ template "seleniumGrid.chromeNode.fullname" . }} spec: - maxReplicaCount: {{ .Values.chromeNode.maxReplicaCount }} - minReplicaCount: {{ .Values.chromeNode.minReplicaCount }} - scaleTargetRef: - name: {{ template "seleniumGrid.chromeNode.fullname" . }} - triggers: - - type: selenium-grid - {{- with .Values.chromeNode.hpa }} - metadata: {{- tpl (toYaml .) $ | nindent 8 }} - {{- end }} + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.chromeNode -}} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml index c72818b05..22a9fcef2 100644 --- a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml +++ b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml @@ -19,22 +19,10 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} spec: - maxReplicaCount: {{ .Values.chromeNode.maxReplicaCount }} - {{- with .Values.autoscaling.scaledJobOptions -}} - {{ toYaml . | nindent 2 }} - {{- end }} - triggers: - - type: selenium-grid - {{- with .Values.chromeNode.hpa }} - metadata: {{- tpl (toYaml .) $ | nindent 8 }} - {{- end }} - jobTargetRef: - parallelism: 1 - completions: 1 - backoffLimit: 0 -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" "selenium-chrome-node" -}} -{{- $_ = set $podScope "node" .Values.chromeNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} -{{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.chromeNode -}} + {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} + {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-deployment.yaml b/charts/selenium-grid/templates/edge-node-deployment.yaml index 6216dc101..33fc360aa 100644 --- a/charts/selenium-grid/templates/edge-node-deployment.yaml +++ b/charts/selenium-grid/templates/edge-node-deployment.yaml @@ -23,8 +23,8 @@ spec: app: selenium-edge-node app.kubernetes.io/instance: {{ .Release.Name }} {{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" "selenium-edge-node" -}} -{{- $_ = set $podScope "node" .Values.edgeNode -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} +{{- $_ = set $podScope "node" .Values.edgeNode -}} {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-hpa.yaml b/charts/selenium-grid/templates/edge-node-hpa.yaml index b115de353..0839a3bdd 100644 --- a/charts/selenium-grid/templates/edge-node-hpa.yaml +++ b/charts/selenium-grid/templates/edge-node-hpa.yaml @@ -11,13 +11,8 @@ metadata: labels: deploymentName: {{ template "seleniumGrid.edgeNode.fullname" . }} spec: - maxReplicaCount: {{ .Values.edgeNode.maxReplicaCount }} - minReplicaCount: {{ .Values.edgeNode.minReplicaCount }} - scaleTargetRef: - name: {{ template "seleniumGrid.edgeNode.fullname" . }} - triggers: - - type: selenium-grid - {{- with .Values.edgeNode.hpa }} - metadata: {{- tpl (toYaml .) $ | nindent 8 }} - {{- end }} + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.edgeNode -}} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-scaledjob.yaml b/charts/selenium-grid/templates/edge-node-scaledjob.yaml index eae9ba79a..a9f235c31 100644 --- a/charts/selenium-grid/templates/edge-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/edge-node-scaledjob.yaml @@ -19,22 +19,10 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} spec: - maxReplicaCount: {{ .Values.edgeNode.maxReplicaCount }} - {{- with .Values.autoscaling.scaledJobOptions -}} - {{ toYaml . | nindent 2 }} - {{- end }} - triggers: - - type: selenium-grid - {{- with .Values.edgeNode.hpa }} - metadata: {{- tpl (toYaml .) $ | nindent 8 }} - {{- end }} - jobTargetRef: - parallelism: 1 - completions: 1 - backoffLimit: 0 -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" "selenium-edge-node" -}} -{{- $_ = set $podScope "node" .Values.edgeNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} -{{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.edgeNode -}} + {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} + {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/event-bus-configmap.yaml b/charts/selenium-grid/templates/event-bus-configmap.yaml index efe33fa7d..05f279bba 100644 --- a/charts/selenium-grid/templates/event-bus-configmap.yaml +++ b/charts/selenium-grid/templates/event-bus-configmap.yaml @@ -15,6 +15,6 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} data: - SE_EVENT_BUS_HOST: {{ $eventBusHost }} + SE_EVENT_BUS_HOST: {{ $eventBusHost | quote }} SE_EVENT_BUS_PUBLISH_PORT: {{ $eventBusPublishPort | quote }} SE_EVENT_BUS_SUBSCRIBE_PORT: {{ $eventBusSubscribePort | quote }} diff --git a/charts/selenium-grid/templates/firefox-node-deployment.yaml b/charts/selenium-grid/templates/firefox-node-deployment.yaml index 13dcf904f..f5dc6d962 100644 --- a/charts/selenium-grid/templates/firefox-node-deployment.yaml +++ b/charts/selenium-grid/templates/firefox-node-deployment.yaml @@ -23,8 +23,8 @@ spec: app: selenium-firefox-node app.kubernetes.io/instance: {{ .Release.Name }} {{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" "selenium-firefox-node" -}} -{{- $_ = set $podScope "node" .Values.firefoxNode -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} +{{- $_ = set $podScope "node" .Values.firefoxNode -}} {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-hpa.yaml b/charts/selenium-grid/templates/firefox-node-hpa.yaml index 70a463e79..ad18269a5 100644 --- a/charts/selenium-grid/templates/firefox-node-hpa.yaml +++ b/charts/selenium-grid/templates/firefox-node-hpa.yaml @@ -11,13 +11,8 @@ metadata: labels: deploymentName: {{ template "seleniumGrid.firefoxNode.fullname" . }} spec: - maxReplicaCount: {{ .Values.firefoxNode.maxReplicaCount }} - minReplicaCount: {{ .Values.firefoxNode.minReplicaCount }} - scaleTargetRef: - name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - triggers: - - type: selenium-grid - {{- with .Values.firefoxNode.hpa }} - metadata: {{- tpl (toYaml .) $ | nindent 8 }} - {{- end }} + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.firefoxNode -}} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml index 3fceee4f5..9105bc358 100644 --- a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml @@ -19,22 +19,10 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} spec: - maxReplicaCount: {{ .Values.firefoxNode.maxReplicaCount }} - {{- with .Values.autoscaling.scaledJobOptions -}} - {{ toYaml . | nindent 2 }} - {{- end }} - triggers: - - type: selenium-grid - {{- with .Values.firefoxNode.hpa }} - metadata: {{- tpl (toYaml .) $ | nindent 8 }} - {{- end }} - jobTargetRef: - parallelism: 1 - completions: 1 - backoffLimit: 0 -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" "selenium-firefox-node" -}} -{{- $_ = set $podScope "node" .Values.firefoxNode -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} -{{- include "seleniumGrid.podTemplate" $podScope | nindent 4 }} + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.firefoxNode -}} + {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} + {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} {{- end }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 2d4625b6f..6fdb961ef 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -348,11 +348,31 @@ autoscaling: # Annotations for KEDA resources: ScaledObject and ScaledJob annotations: helm.sh/hook: post-install,post-upgrade - # Options for KEDA ScaledJobs - scaledJobOptions: + # Options for KEDA scaled resources (keep only common options used for both ScaledJob and ScaledObject) + scaledOptions: + minReplicaCount: 0 + maxReplicaCount: 8 pollingInterval: 10 + # List of triggers. Be careful, the default trigger of selenium-grid will be overwritten if you specify this + #triggers: + # Options for KEDA ScaledJobs (only used when scalingType is set to "job") + # see https://keda.sh/docs/latest/concepts/scaling-jobs/#scaledjob-spec + scaledJobOptions: scalingStrategy: strategy: accurate + # Number of Completed jobs should be kept + successfulJobsHistoryLimit: 0 + # Number of Failed jobs should be kept (for troubleshooting purposes) + failedJobsHistoryLimit: 100 + jobTargetRef: + parallelism: 1 + completions: 1 + backoffLimit: 0 + # Options for KEDA ScaledObjects (only used when scalingType is set to "deployment") + # see https://keda.sh/docs/latest/concepts/scaling-deployments/#scaledobject-spec + scaledObjectOptions: + scaleTargetRef: + kind: Deployment deregisterLifecycle: preStop: exec: @@ -472,8 +492,10 @@ chromeNode: # persistentVolumeClaim: # claimName: my-pv-claim - maxReplicaCount: 8 - minReplicaCount: 1 + # Override the scaled options for chrome nodes + #scaledOptions: + #scaledJobOptions: + #scaledObjectOptions: hpa: url: '{{ include "seleniumGrid.graphqlURL" . }}' browserName: chrome @@ -594,8 +616,11 @@ firefoxNode: # - name: my-extra-volume-from-pvc # persistentVolumeClaim: # claimName: my-pv-claim - maxReplicaCount: 8 - minReplicaCount: 1 + + # Override the scaled options for firefox nodes + #scaledOptions: + #scaledJobOptions: + #scaledObjectOptions: hpa: url: '{{ include "seleniumGrid.graphqlURL" . }}' browserName: firefox @@ -713,8 +738,11 @@ edgeNode: # - name: my-extra-volume-from-pvc # persistentVolumeClaim: # claimName: my-pv-claim - maxReplicaCount: 8 - minReplicaCount: 1 + + # Override the scaled options for edge nodes + #scaledOptions: + #scaledJobOptions: + #scaledObjectOptions: hpa: url: '{{ include "seleniumGrid.graphqlURL" . }}' browserName: MicrosoftEdge From 009d47c1faed690f3e105922820514e9f7103f70 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 6 Nov 2023 19:28:52 +0530 Subject: [PATCH 029/100] Add chart parameter ingress.paths to configure custom paths (#1994) * Add chart parameter ingress.paths to configure custom paths Signed-off-by: Viet Nguyen Duc * #1810 Update dafault value for ingress.hostname Signed-off-by: Viet Nguyen Duc * Update chart README for config parameters basicAuth. Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/README.md | 9 ++++++++- charts/selenium-grid/templates/ingress.yaml | 6 +++++- charts/selenium-grid/values.yaml | 6 +++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 2c7240df7..cd2826e04 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -27,6 +27,8 @@ helm install selenium-grid docker-selenium/selenium-grid --version # In both cases grid exposed by default using ingress. You may want to set hostname for the grid. Default hostname is selenium-grid.local. helm install selenium-grid --set ingress.hostname=selenium-grid.k8s.local docker-selenium/chart/selenium-grid/. +# Verify ingress configuration via kubectl get ingress +# Notes: In case you want to set hostname is selenium-grid.local. You need to add the IP and hostname to the local host file in `/etc/hosts` ``` ## Enable Selenium Grid Autoscaling @@ -93,6 +95,9 @@ This table contains the configuration parameters of the chart and their default | Parameter | Default | Description | |-----------------------------------------------|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| +| `basicAuth.enabled` | `true` | Enable or disable basic auth for Selenium Grid | +| `basicAuth.username` | `admin` | Username of basic auth for Selenium Grid | +| `basicAuth.password` | `admin` | Password of basic auth for Selenium Grid | | `isolateComponents` | `false` | Deploy Router, Distributor, EventBus, SessionMap and Nodes separately | | `serviceAccount.create` | `true` | Enable or disable creation of service account (if `false`, `serviceAccount.name` MUST be specified | | `serviceAccount.name` | `""` | Name of the service account to be made or existing service account to use for all deployments and jobs | @@ -104,8 +109,10 @@ This table contains the configuration parameters of the chart and their default | `ingress.enabled` | `true` | Enable or disable ingress resource | | `ingress.className` | `""` | Name of ingress class to select which controller will implement ingress resource | | `ingress.annotations` | `{}` | Custom annotations for ingress resource | -| `ingress.hostname` | `selenium-grid.local` | Default host for the ingress resource | +| `ingress.hostname` | `` | Default host for the ingress resource | | `ingress.path` | `/` | Default host path for the ingress resource | +| `ingress.pathType` | `Prefix` | Default path type for the ingress resource | +| `ingress.paths` | `[]` | List of paths config for the ingress resource. This will override the default path | | `ingress.tls` | `[]` | TLS backend configuration for ingress resource | | `autoscaling.enableWithExistingKEDA` | `false` | Enable autoscaling of browser nodes. | | `autoscaling.enabled` | `false` | Same as above plus installation of KEDA | diff --git a/charts/selenium-grid/templates/ingress.yaml b/charts/selenium-grid/templates/ingress.yaml index 77aa8604c..f574c6c2f 100644 --- a/charts/selenium-grid/templates/ingress.yaml +++ b/charts/selenium-grid/templates/ingress.yaml @@ -47,8 +47,9 @@ spec: {{- end }} {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.Version }} paths: + {{- if empty (.Values.ingress.paths) }} - path: {{ $.Values.ingress.path | default "/" }} - pathType: Prefix + pathType: {{ $.Values.ingress.pathType | default "Prefix" }} backend: service: {{- if $.Values.isolateComponents }} @@ -60,6 +61,9 @@ spec: port: number: {{ $.Values.hub.port }} {{- end }} + {{- else }} + {{- tpl (toYaml .Values.ingress.paths | nindent 10) . }} + {{- end }} {{- else }} paths: - path: / diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 6fdb961ef..36322c4d0 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -35,9 +35,13 @@ ingress: # Custom annotations for ingress resource annotations: {} # Default host for the ingress resource - hostname: selenium-grid.local + hostname: "" # Default host path for the ingress resource path: / + # Default path type for the ingress resource + pathType: Prefix + # List of paths for the ingress resource. This will override the default path + paths: [] # TLS backend configuration for ingress resource tls: [] From 87c0cf66f7994b2986585b41730b30a3771a1738 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 18:18:48 +0100 Subject: [PATCH 030/100] Bump helm/chart-releaser-action from 1.5.0 to 1.6.0 (#1993) Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/helm/chart-releaser-action/releases) - [Commits](https://github.com/helm/chart-releaser-action/compare/v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: helm/chart-releaser-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/helm-chart-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-chart-release.yml b/.github/workflows/helm-chart-release.yml index 6a5722f3e..e31046aba 100644 --- a/.github/workflows/helm-chart-release.yml +++ b/.github/workflows/helm-chart-release.yml @@ -23,6 +23,6 @@ jobs: git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.5.0 + uses: helm/chart-releaser-action@v1.6.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" From fe17f6dec9dd32bd70649cf56b080d5e97cad446 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 8 Nov 2023 17:35:22 +0530 Subject: [PATCH 031/100] feat: Adding port to nodes service (#1996) * Bumping chart version Signed-off-by: Viet Nguyen Duc * #1995 feat: Adding port to nodes service Signed-off-by: Viet Nguyen Duc * Update chart CHANGELOG Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/CHANGELOG.md | 19 ++++++++++++++- charts/selenium-grid/Chart.yaml | 4 ++-- charts/selenium-grid/README.md | 6 +++++ .../templates/chrome-node-service.yaml | 16 +++++++++++++ .../templates/edge-node-service.yaml | 16 +++++++++++++ .../templates/firefox-node-service.yaml | 16 +++++++++++++ charts/selenium-grid/values.yaml | 24 +++++++++++++++++-- 7 files changed, 96 insertions(+), 5 deletions(-) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index a6bbe036a..2515b9207 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -2,6 +2,23 @@ All notable changes to this helm chart will be documented in this file. +## :heavy_check_mark: 0.24.0 + +### Added + +- Update tag in docs and files [skip ci] :: Selenium CI Bot +- Bumping chart version :: Diego Molina +- Fix minor issues after PR #1881 and #1981 (#1983) :: Viet Nguyen Duc +- Improve default value for videoRecorder in chart (#1984) :: Viet Nguyen Duc +- Improve chart templates in the section videoRecorder (#1987) :: Viet Nguyen Duc +- Update to Selenium 4.15.0 (#1990) :: Luis Correia +- feat(autoscaling): Unified parameters to set scaled options for browser nodes (#1989) :: Viet Nguyen Duc +- Add chart parameter ingress.paths to configure custom paths (#1994) :: Viet Nguyen Duc +- feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc + +### Changed +- Update image tag to 4.15.0-20231102 + ## :heavy_check_mark: 0.23.0 ### Added @@ -11,7 +28,7 @@ All notable changes to this helm chart will be documented in this file. - Update Video/Dockerfile with based image ffmpeg:6.0-alpine (#1981) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.15.0-20231102 +- Update image tag to 4.14.1-20231025 ## :heavy_check_mark: 0.22.0 diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index e5d9c79ec..f68a7851c 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.23.0 -appVersion: 4.14.1-20231025 +version: 0.24.0 +appVersion: 4.15.0-20231102 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index cd2826e04..55c03b22e 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -147,6 +147,8 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for chrome nodes | | `chromeNode.service.enabled` | `true` | Create a service for node | | `chromeNode.service.type` | `ClusterIP` | Service type | +| `chromeNode.service.loadBalancerIP` | `` | Set specific loadBalancerIP when serviceType is LoadBalancer | +| `chromeNode.service.ports` | `[]` | Extra ports exposed in node service | | `chromeNode.service.annotations` | `{}` | Custom annotations for service | | `chromeNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | | `chromeNode.startupProbe` | `{}` | Probe to check pod is started successfully | @@ -184,6 +186,8 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.extraEnvFrom` | `nil` | Custom environment variables taken from `configMap` or `secret` for firefox nodes | | `firefoxNode.service.enabled` | `true` | Create a service for node | | `firefoxNode.service.type` | `ClusterIP` | Service type | +| `firefoxNode.service.loadBalancerIP` | `` | Set specific loadBalancerIP when serviceType is LoadBalancer | +| `firefoxNode.service.ports` | `[]` | Extra ports exposed in node service | | `firefoxNode.service.annotations` | `{}` | Custom annotations for service | | `firefoxNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | | `firefoxNode.startupProbe` | `{}` | Probe to check pod is started successfully | @@ -221,6 +225,8 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.extraEnvFrom` | `nil` | Custom environment taken from `configMap` or `secret` variables for firefox nodes | | `edgeNode.service.enabled` | `true` | Create a service for node | | `edgeNode.service.type` | `ClusterIP` | Service type | +| `edgeNode.service.loadBalancerIP` | `` | Set specific loadBalancerIP when serviceType is LoadBalancer | +| `edgeNode.service.ports` | `[]` | Extra ports exposed in node service | | `edgeNode.service.annotations` | `{}` | Custom annotations for service | | `edgeNode.dshmVolumeSizeLimit` | `1Gi` | Size limit for DSH volume mounted in container (if not set, default is "1Gi") | | `edgeNode.startupProbe` | `{}` | Probe to check pod is started successfully | diff --git a/charts/selenium-grid/templates/chrome-node-service.yaml b/charts/selenium-grid/templates/chrome-node-service.yaml index 41aebd570..754f941ab 100644 --- a/charts/selenium-grid/templates/chrome-node-service.yaml +++ b/charts/selenium-grid/templates/chrome-node-service.yaml @@ -16,9 +16,25 @@ spec: selector: app: selenium-chrome-node app.kubernetes.io/instance: {{ .Release.Name }} + {{- if and (eq .Values.chromeNode.service.type "LoadBalancer") (.Values.chromeNode.service.loadBalancerIP) }} + loadBalancerIP: {{ .Values.chromeNode.service.loadBalancerIP }} + {{- end }} ports: - name: tcp-chrome protocol: TCP port: {{ .Values.chromeNode.seleniumServicePort }} targetPort: {{ .Values.chromeNode.seleniumPort }} + {{- with .Values.chromeNode.service.ports }} + {{- range . }} + - name: {{ .name }} + port: {{ .port }} + targetPort: {{ .targetPort }} + {{- if .protocol }} + protocol: {{ .protocol }} + {{- end }} + {{- if and (eq $.Values.chromeNode.service.type "NodePort") .nodePort }} + nodePort: {{ .nodePort }} + {{- end }} + {{- end }} + {{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-service.yaml b/charts/selenium-grid/templates/edge-node-service.yaml index ae59a4a63..ca253835a 100644 --- a/charts/selenium-grid/templates/edge-node-service.yaml +++ b/charts/selenium-grid/templates/edge-node-service.yaml @@ -16,9 +16,25 @@ spec: selector: app: selenium-edge-node app.kubernetes.io/instance: {{ .Release.Name }} + {{- if and (eq .Values.edgeNode.service.type "LoadBalancer") (.Values.edgeNode.service.loadBalancerIP) }} + loadBalancerIP: {{ .Values.edgeNode.service.loadBalancerIP }} + {{- end }} ports: - name: tcp-edge protocol: TCP port: {{ .Values.edgeNode.seleniumServicePort }} targetPort: {{ .Values.edgeNode.seleniumPort }} + {{- with .Values.edgeNode.service.ports }} + {{- range . }} + - name: {{ .name }} + port: {{ .port }} + targetPort: {{ .targetPort }} + {{- if .protocol }} + protocol: {{ .protocol }} + {{- end }} + {{- if and (eq $.Values.edgeNode.service.type "NodePort") .nodePort }} + nodePort: {{ .nodePort }} + {{- end }} + {{- end }} + {{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-service.yaml b/charts/selenium-grid/templates/firefox-node-service.yaml index 473225f93..d8cb4c844 100644 --- a/charts/selenium-grid/templates/firefox-node-service.yaml +++ b/charts/selenium-grid/templates/firefox-node-service.yaml @@ -16,9 +16,25 @@ spec: selector: app: selenium-firefox-node app.kubernetes.io/instance: {{ .Release.Name }} + {{- if and (eq .Values.firefoxNode.service.type "LoadBalancer") (.Values.firefoxNode.service.loadBalancerIP) }} + loadBalancerIP: {{ .Values.firefoxNode.service.loadBalancerIP }} + {{- end }} ports: - name: tcp-firefox protocol: TCP port: {{ .Values.firefoxNode.seleniumServicePort }} targetPort: {{ .Values.firefoxNode.seleniumPort }} + {{- with .Values.firefoxNode.service.ports }} + {{- range . }} + - name: {{ .name }} + port: {{ .port }} + targetPort: {{ .targetPort }} + {{- if .protocol }} + protocol: {{ .protocol }} + {{- end }} + {{- if and (eq $.Values.firefoxNode.service.type "NodePort") .nodePort }} + nodePort: {{ .nodePort }} + {{- end }} + {{- end }} + {{- end }} {{- end }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 36322c4d0..66841ffc9 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -464,6 +464,13 @@ chromeNode: enabled: true # Service type type: ClusterIP + # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) + loadBalancerIP: "" + # Extra ports exposed in node service + ports: + # - name: node-port + # port: 5555 + # targetPort: 5555 # Custom annotations for service annotations: {} # Size limit for DSH volume mounted in container (if not set, default is "1Gi") @@ -589,6 +596,13 @@ firefoxNode: enabled: true # Service type type: ClusterIP + # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) + loadBalancerIP: "" + # Extra ports exposed in node service + ports: + # - name: node-port + # port: 5555 + # targetPort: 5555 # Custom annotations for service annotations: {} # Size limit for DSH volume mounted in container (if not set, default is "1Gi") @@ -710,9 +724,15 @@ edgeNode: enabled: true # Service type type: ClusterIP + # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) + loadBalancerIP: "" + # Extra ports exposed in node service + ports: + # - name: node-port + # port: 5555 + # targetPort: 5555 # Custom annotations for service - annotations: - hello: world + annotations: {} # Size limit for DSH volume mounted in container (if not set, default is "1Gi") dshmVolumeSizeLimit: 1Gi # Priority class name for edge-node pods From e071a316b80e7d781d75edce2bd8255c031e7d51 Mon Sep 17 00:00:00 2001 From: Matt Colman <33348891+mtcolman@users.noreply.github.com> Date: Wed, 8 Nov 2023 14:12:10 +0000 Subject: [PATCH 032/100] Update Dockerfile external jar versions (#1998) Update Dockerfile uplifting external jar versions. [deploy] --- Base/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 44dc86e36..a0d034594 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -88,7 +88,7 @@ RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier && mkdir -p /external_jars \ && chmod -R 775 /external_jars -RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.30.1 io.opentelemetry:opentelemetry-exporter-jaeger:1.30.1 io.grpc:grpc-netty:1.58.0 > /external_jars/.classpath.txt +RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.31.0 io.opentelemetry:opentelemetry-exporter-jaeger:1.31.0 io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt RUN chmod 664 /external_jars/.classpath.txt RUN rm -fr /root/.cache/* From 6b7356b9a16bc5dae79e364dcd8c122cda83a7ce Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Wed, 8 Nov 2023 14:31:01 +0000 Subject: [PATCH 033/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 12 +-- charts/selenium-grid/values.yaml | 24 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 156 insertions(+), 156 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f277ee18d..fdf692cea 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.15.0-20231102? Please use the full tag, avoid "latest" + placeholder: 4.15.0-20231108? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 433eb3f15..7474ff465 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231102", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.15.0-20231102", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.15.0-20231102", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.15.0-20231108", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.15.0-20231108", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.15.0-20231108", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231102" +video-image = "selenium/video:ffmpeg-6.0-20231108" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 7d4fee314..0cc87f724 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231102). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231108). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231102 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231108 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231102 + selenium/node-edge:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231102 + selenium/node-firefox:4.15.0-20231108 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.15.0-20231102 + selenium/node-edge:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.15.0-20231102 + selenium/node-firefox:4.15.0-20231108 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231108 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.15.0-20231102 + selenium/node-edge:4.15.0-20231108 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.15.0-20231102 + selenium/node-edge:4.15.0-20231108 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.15.0-20231102 + selenium/node-firefox:4.15.0-20231108 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.15.0-20231102 + selenium/node-firefox:4.15.0-20231108 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231102` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231108` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231102 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231108 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231102", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.15.0-20231102", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.15.0-20231102", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.15.0-20231108", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.15.0-20231108", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.15.0-20231108", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231102" +video-image = "selenium/video:ffmpeg-6.0-20231108" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231102 + selenium/node-docker:4.15.0-20231108 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231102 + selenium/node-docker:4.15.0-20231108 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231102 + selenium/standalone-docker:4.15.0-20231108 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231102 + selenium/standalone-docker:4.15.0-20231108 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231108 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231102 + selenium/node-docker:4.15.0-20231108 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231102 + selenium/node-docker:4.15.0-20231108 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231102", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.15.0-20231102", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.15.0-20231102", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.15.0-20231108", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.15.0-20231108", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.15.0-20231108", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231102" +video-image = "selenium/video:ffmpeg-6.0-20231108" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231102 + selenium/standalone-docker:4.15.0-20231108 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231102 + selenium/standalone-docker:4.15.0-20231108 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231108 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231102 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231108 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.15.0-20231102 + --shm-size="2g" selenium/node-chrome:4.15.0-20231108 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231102 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231108 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231102 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231108 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.15.0-20231102 + selenium/hub:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231102 + selenium/node-edge:4.15.0-20231108 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231102 + selenium/node-firefox:4.15.0-20231108 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.15.0-20231102 +FROM selenium/node-chrome:4.15.0-20231108 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.15.0-20231102 +FROM selenium/node-firefox:4.15.0-20231108 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231102 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231108 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231102 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231102 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231102 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231108 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231102 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231102 + selenium/node-chrome:4.15.0-20231108 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231102 + selenium/node-edge:4.15.0-20231108 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231102 + selenium/node-firefox:4.15.0-20231108 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.15.0-20231102 + selenium/standalone-chrome:4.15.0-20231108 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 2515b9207..8db79e982 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -17,7 +17,7 @@ All notable changes to this helm chart will be documented in this file. - feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.15.0-20231102 +- Update image tag to 4.15.0-20231108 ## :heavy_check_mark: 0.23.0 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 55c03b22e..805214018 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -85,8 +85,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.15.0-20231102` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231102` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.15.0-20231108` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231108` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -128,7 +128,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.15.0-20231102` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.15.0-20231108` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -167,7 +167,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.15.0-20231102` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.15.0-20231108` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -206,7 +206,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.15.0-20231102` | Image of edge nodes | +| `edgeNode.imageTag` | `4.15.0-20231108` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -243,7 +243,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231102` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231108` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 66841ffc9..9f8cc1926 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.15.0-20231102 + imageTag: 4.15.0-20231108 # Image tag for browser's nodes - nodesImageTag: 4.15.0-20231102 + nodesImageTag: 4.15.0-20231108 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -66,7 +66,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -117,7 +117,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -148,7 +148,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -183,7 +183,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -213,7 +213,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -263,7 +263,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -403,7 +403,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -535,7 +535,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -664,7 +664,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231102 + # imageTag: 4.15.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -782,7 +782,7 @@ videoRecorder: # Image of video recorder imageName: selenium/video # Image of video recorder - imageTag: ffmpeg-6.0-20231102 + imageTag: ffmpeg-6.0-20231108 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 10bd70ba1..e72c2c62f 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 5a33f39fb..47507b6e6 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 7a738a9df..8fea17789 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index cd52da6f0..049c93026 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 86b92f1ac..d9462fafb 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.15.0-20231102 + image: selenium/node-docker:4.15.0-20231108 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 670e6be82..b55ecb69b 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231102 + image: selenium/event-bus:4.15.0-20231108 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231102 + image: selenium/sessions:4.15.0-20231108 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231102 + image: selenium/session-queue:4.15.0-20231108 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231102 + image: selenium/distributor:4.15.0-20231108 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231102 + image: selenium/router:4.15.0-20231108 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index cce8bacfa..50b53cc36 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index dfaea31cc..c16aec4d9 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.15.0-20231102 + image: selenium/event-bus:4.15.0-20231108 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.15.0-20231102 + image: selenium/sessions:4.15.0-20231108 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.15.0-20231102 + image: selenium/session-queue:4.15.0-20231108 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.15.0-20231102 + image: selenium/distributor:4.15.0-20231108 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.15.0-20231102 + image: selenium/router:4.15.0-20231108 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 896c863aa..d3d7363b7 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231102 + image: selenium/event-bus:4.15.0-20231108 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231102 + image: selenium/sessions:4.15.0-20231108 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231102 + image: selenium/session-queue:4.15.0-20231108 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231102 + image: selenium/distributor:4.15.0-20231108 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231102 + image: selenium/router:4.15.0-20231108 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index cce8bacfa..50b53cc36 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index ae0d4328c..a27a5e76e 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index c37b57453..1431c8bfd 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231102 + image: selenium/video:ffmpeg-6.0-20231108 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231102 + image: selenium/video:ffmpeg-6.0-20231108 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231102 + image: selenium/video:ffmpeg-6.0-20231108 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 29054d43b..3f5b16825 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231102 + image: selenium/node-chrome:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231102 + image: selenium/node-edge:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231102 + image: selenium/node-firefox:4.15.0-20231108 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231102 + image: selenium/hub:4.15.0-20231108 container_name: selenium-hub ports: - "4442:4442" From f5f90dd765707058ede98782fcf8021404ceb406 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Fri, 10 Nov 2023 11:06:09 +0100 Subject: [PATCH 034/100] Switching to Jammy (#1923) * Switching to Jammy * Update for Firefox node on ubuntu jammy (#2001) Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc Co-authored-by: Viet Nguyen Duc [deploy] --- Base/Dockerfile | 8 ++++---- NodeBase/Dockerfile | 4 ++-- NodeFirefox/Dockerfile | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index a0d034594..14e0feb8a 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -1,12 +1,12 @@ -FROM ubuntu:focal-20231003 +FROM ubuntu:jammy-20231004 LABEL authors="Selenium " #================================================ # Customize sources for apt-get #================================================ -RUN echo "deb http://archive.ubuntu.com/ubuntu focal main universe\n" > /etc/apt/sources.list \ - && echo "deb http://archive.ubuntu.com/ubuntu focal-updates main universe\n" >> /etc/apt/sources.list \ - && echo "deb http://security.ubuntu.com/ubuntu focal-security main universe\n" >> /etc/apt/sources.list +RUN echo "deb http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \ + && echo "deb http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \ + && echo "deb http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list # No interactive frontend during docker build ENV DEBIAN_FRONTEND=noninteractive \ diff --git a/NodeBase/Dockerfile b/NodeBase/Dockerfile index 1d241d3b4..2e9f519d4 100644 --- a/NodeBase/Dockerfile +++ b/NodeBase/Dockerfile @@ -64,7 +64,7 @@ RUN apt-get update -qqy \ # fonts-ipafont-gothic ~13 MB # fonts-wqy-zenhei ~17 MB # fonts-tlwg-loma-otf ~300 KB -# ttf-ubuntu-font-family ~5 MB +# fonts-ubuntu ~5 MB # Ubuntu Font Family, sans-serif typeface hinted for clarity # Removed packages: # xfonts-100dpi ~6 MB @@ -84,7 +84,7 @@ RUN apt-get -qqy update \ fonts-ipafont-gothic \ fonts-wqy-zenhei \ fonts-tlwg-loma-otf \ - ttf-ubuntu-font-family \ + fonts-ubuntu \ fonts-noto-color-emoji \ && rm -rf /var/lib/apt/lists/* \ && apt-get -qyy clean diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index 0590f1678..698fe6338 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -13,6 +13,7 @@ ARG FIREFOX_VERSION=latest RUN FIREFOX_DOWNLOAD_URL=$(if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then echo "https://download.mozilla.org/?product=firefox-$FIREFOX_VERSION-ssl&os=linux64&lang=en-US"; else echo "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2"; fi) \ && apt-get update -qqy \ && apt-get -qqy --no-install-recommends install firefox libavcodec-extra \ + libgtk-3-dev libdbus-glib-1-dev \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ && wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \ && apt-get -y purge firefox \ From f291b8e4ef746514e03c05c81ab18d3412facef0 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Fri, 10 Nov 2023 10:14:19 +0000 Subject: [PATCH 035/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 12 +-- charts/selenium-grid/values.yaml | 24 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 156 insertions(+), 156 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index fdf692cea..3018d5991 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.15.0-20231108? Please use the full tag, avoid "latest" + placeholder: 4.15.0-20231110? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 7474ff465..99a73aa16 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231108", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.15.0-20231108", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.15.0-20231108", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.15.0-20231110", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.15.0-20231110", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.15.0-20231110", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231108" +video-image = "selenium/video:ffmpeg-6.0-20231110" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 0cc87f724..c947605f3 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231108). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231110). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231108 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231110 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231108 + selenium/node-edge:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231108 + selenium/node-firefox:4.15.0-20231110 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.15.0-20231108 + selenium/node-edge:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.15.0-20231108 + selenium/node-firefox:4.15.0-20231110 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231110 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.15.0-20231108 + selenium/node-edge:4.15.0-20231110 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.15.0-20231108 + selenium/node-edge:4.15.0-20231110 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.15.0-20231108 + selenium/node-firefox:4.15.0-20231110 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.15.0-20231108 + selenium/node-firefox:4.15.0-20231110 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231108` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231110` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231108 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231110 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231108", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.15.0-20231108", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.15.0-20231108", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.15.0-20231110", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.15.0-20231110", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.15.0-20231110", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231108" +video-image = "selenium/video:ffmpeg-6.0-20231110" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231108 + selenium/node-docker:4.15.0-20231110 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231108 + selenium/node-docker:4.15.0-20231110 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231108 + selenium/standalone-docker:4.15.0-20231110 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231108 + selenium/standalone-docker:4.15.0-20231110 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231110 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231108 + selenium/node-docker:4.15.0-20231110 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231108 + selenium/node-docker:4.15.0-20231110 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231108", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.15.0-20231108", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.15.0-20231108", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.15.0-20231110", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.15.0-20231110", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.15.0-20231110", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231108" +video-image = "selenium/video:ffmpeg-6.0-20231110" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231108 + selenium/standalone-docker:4.15.0-20231110 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231108 + selenium/standalone-docker:4.15.0-20231110 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231110 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231108 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231110 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.15.0-20231108 + --shm-size="2g" selenium/node-chrome:4.15.0-20231110 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231108 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231110 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231108 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231110 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.15.0-20231108 + selenium/hub:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231108 + selenium/node-edge:4.15.0-20231110 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231108 + selenium/node-firefox:4.15.0-20231110 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.15.0-20231108 +FROM selenium/node-chrome:4.15.0-20231110 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.15.0-20231108 +FROM selenium/node-firefox:4.15.0-20231110 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231108 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231110 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231108 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231108 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231108 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231110 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231108 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231108 + selenium/node-chrome:4.15.0-20231110 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231108 + selenium/node-edge:4.15.0-20231110 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231108 + selenium/node-firefox:4.15.0-20231110 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.15.0-20231108 + selenium/standalone-chrome:4.15.0-20231110 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 8db79e982..3174bd3b1 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -17,7 +17,7 @@ All notable changes to this helm chart will be documented in this file. - feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.15.0-20231108 +- Update image tag to 4.15.0-20231110 ## :heavy_check_mark: 0.23.0 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 805214018..8ef7fd933 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -85,8 +85,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.15.0-20231108` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231108` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.15.0-20231110` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231110` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -128,7 +128,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.15.0-20231108` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.15.0-20231110` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -167,7 +167,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.15.0-20231108` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.15.0-20231110` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -206,7 +206,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.15.0-20231108` | Image of edge nodes | +| `edgeNode.imageTag` | `4.15.0-20231110` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -243,7 +243,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231108` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231110` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 9f8cc1926..4cc74f5ab 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.15.0-20231108 + imageTag: 4.15.0-20231110 # Image tag for browser's nodes - nodesImageTag: 4.15.0-20231108 + nodesImageTag: 4.15.0-20231110 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -66,7 +66,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -117,7 +117,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -148,7 +148,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -183,7 +183,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -213,7 +213,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -263,7 +263,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -403,7 +403,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -535,7 +535,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -664,7 +664,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231108 + # imageTag: 4.15.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -782,7 +782,7 @@ videoRecorder: # Image of video recorder imageName: selenium/video # Image of video recorder - imageTag: ffmpeg-6.0-20231108 + imageTag: ffmpeg-6.0-20231110 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index e72c2c62f..a47865695 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 47507b6e6..ca18aa427 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 8fea17789..c5894143b 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 049c93026..0d1705d29 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index d9462fafb..1405e44a4 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.15.0-20231108 + image: selenium/node-docker:4.15.0-20231110 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index b55ecb69b..26a49b696 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231108 + image: selenium/event-bus:4.15.0-20231110 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231108 + image: selenium/sessions:4.15.0-20231110 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231108 + image: selenium/session-queue:4.15.0-20231110 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231108 + image: selenium/distributor:4.15.0-20231110 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231108 + image: selenium/router:4.15.0-20231110 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 50b53cc36..d99d05789 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index c16aec4d9..a5be01740 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.15.0-20231108 + image: selenium/event-bus:4.15.0-20231110 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.15.0-20231108 + image: selenium/sessions:4.15.0-20231110 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.15.0-20231108 + image: selenium/session-queue:4.15.0-20231110 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.15.0-20231108 + image: selenium/distributor:4.15.0-20231110 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.15.0-20231108 + image: selenium/router:4.15.0-20231110 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index d3d7363b7..432747bfd 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231108 + image: selenium/event-bus:4.15.0-20231110 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231108 + image: selenium/sessions:4.15.0-20231110 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231108 + image: selenium/session-queue:4.15.0-20231110 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231108 + image: selenium/distributor:4.15.0-20231110 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231108 + image: selenium/router:4.15.0-20231110 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 50b53cc36..d99d05789 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index a27a5e76e..4b54490f6 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 1431c8bfd..5e4b5dd0a 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231108 + image: selenium/video:ffmpeg-6.0-20231110 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231108 + image: selenium/video:ffmpeg-6.0-20231110 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231108 + image: selenium/video:ffmpeg-6.0-20231110 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 3f5b16825..83464f7d3 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231108 + image: selenium/node-chrome:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231108 + image: selenium/node-edge:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231108 + image: selenium/node-firefox:4.15.0-20231110 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231108 + image: selenium/hub:4.15.0-20231110 container_name: selenium-hub ports: - "4442:4442" From 6f9708ed59931a92830057b1a781ab428c588f6e Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Fri, 10 Nov 2023 12:59:30 +0100 Subject: [PATCH 036/100] Update start-xvfb.sh [skip ci] --- NodeBase/start-xvfb.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NodeBase/start-xvfb.sh b/NodeBase/start-xvfb.sh index 5e7092a51..b4959a390 100755 --- a/NodeBase/start-xvfb.sh +++ b/NodeBase/start-xvfb.sh @@ -19,5 +19,5 @@ if [ "${START_XVFB:-$SE_START_XVFB}" = true ] ; then --server-args="-screen 0 ${GEOMETRY} -fbdir /var/tmp -dpi ${SCREEN_DPI} -listen tcp -noreset -ac +extension RANDR" \ /usr/bin/fluxbox -display ${DISPLAY} else - echo "Xvfb and Fluxbox won't start. Chrome/Firefox/Node can only run in headless mode. Remember to set the 'headless' flag in your test." + echo "Xvfb and Fluxbox won't start. Chrome/Firefox/Edge can only run in headless mode. Remember to set the 'headless' flag in your test." fi From f038e690282909fbc45f62a142836885616cd46c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:33:47 +0100 Subject: [PATCH 037/100] Bump dessant/lock-threads from 4.0.1 to 5.0.0 (#2012) Bumps [dessant/lock-threads](https://github.com/dessant/lock-threads) from 4.0.1 to 5.0.0. - [Release notes](https://github.com/dessant/lock-threads/releases) - [Changelog](https://github.com/dessant/lock-threads/blob/main/CHANGELOG.md) - [Commits](https://github.com/dessant/lock-threads/compare/be8aa5be94131386884a6da4189effda9b14aa21...d42e5f49803f3c4e14ffee0378e31481265dda22) --- updated-dependencies: - dependency-name: dessant/lock-threads dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/lock.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 599e1c54f..493bb0dea 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -14,7 +14,7 @@ jobs: action: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@be8aa5be94131386884a6da4189effda9b14aa21 # v3 + - uses: dessant/lock-threads@d42e5f49803f3c4e14ffee0378e31481265dda22 # v3 with: process-only: 'issues' issue-lock-inactive-days: '30' From 35a044a4e772a2312a4c6d7107ca783653bfe0d4 Mon Sep 17 00:00:00 2001 From: Amar Deep Singh <50517840+amardeep2006@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:17:33 +0530 Subject: [PATCH 038/100] feat(helm-test): Added helm test and linting (#2003) * feat(helm-test): Added helm test and linting * chore(appversion): Bumped up chart version --------- Co-authored-by: Diego Molina --- .github/workflows/helm-chart-test.yml | 54 +++++++++++++++++++++++++++ charts/selenium-grid/Chart.yaml | 9 ++++- charts/selenium-grid/values.yaml | 36 +++++++++--------- 3 files changed, 79 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/helm-chart-test.yml diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml new file mode 100644 index 000000000..6bcf1eae4 --- /dev/null +++ b/.github/workflows/helm-chart-test.yml @@ -0,0 +1,54 @@ +name: Lint and Test Helm Charts + +on: pull_request + +jobs: + lint-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.13.2 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + check-latest: true + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }}) + if [[ -n "$changed" ]]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + + - name: Run chart-testing (lint) + if: steps.list-changed.outputs.changed == 'true' + run: ct lint --target-branch ${{ github.event.repository.default_branch }} + + - name: Create kind cluster + if: steps.list-changed.outputs.changed == 'true' + uses: helm/kind-action@v1.8.0 + + - name: Build Helm Charts + if: steps.list-changed.outputs.changed == 'true' + run: | + helm repo add kedacore https://kedacore.github.io/charts + helm repo update + cd charts + helm dependency build selenium-grid + + - name: Run chart-testing (install) + if: steps.list-changed.outputs.changed == 'true' + run: ct install --target-branch ${{ github.event.repository.default_branch }} \ No newline at end of file diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index f68a7851c..8dfd4513d 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,11 +2,16 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.24.0 -appVersion: 4.15.0-20231102 +version: 0.25.0 +appVersion: 4.15.0-20231110 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts version: 2.12.0 name: keda condition: autoscaling.enabled +maintainers: + - name: SeleniumHQ + email: selenium-developers@googlegroups.com +sources: + - https://github.com/SeleniumHQ/docker-selenium diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 4cc74f5ab..15e361958 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -5,16 +5,16 @@ global: # Image tag for browser's nodes nodesImageTag: 4.15.0-20231110 # Pull secret for all components, can be overridden individually - imagePullSecret: "" + imagePullSecret: "" # Basic auth settings for Selenium Grid basicAuth: - # Enable or disable basic auth - enabled: true - # Username for basic auth - username: admin - # Password for basic auth - password: admin + # Enable or disable basic auth + enabled: true + # Username for basic auth + username: admin + # Password for basic auth + password: admin # Deploy Router, Distributor, EventBus, SessionMap and Nodes separately isolateComponents: false @@ -358,7 +358,7 @@ autoscaling: maxReplicaCount: 8 pollingInterval: 10 # List of triggers. Be careful, the default trigger of selenium-grid will be overwritten if you specify this - #triggers: + # triggers: # Options for KEDA ScaledJobs (only used when scalingType is set to "job") # see https://keda.sh/docs/latest/concepts/scaling-jobs/#scaledjob-spec scaledJobOptions: @@ -504,14 +504,14 @@ chromeNode: # claimName: my-pv-claim # Override the scaled options for chrome nodes - #scaledOptions: - #scaledJobOptions: - #scaledObjectOptions: + # scaledOptions: + # scaledJobOptions: + # scaledObjectOptions: hpa: url: '{{ include "seleniumGrid.graphqlURL" . }}' browserName: chrome # browserVersion: '91.0' # Optional. Only required when supporting multiple versions of browser in your Selenium Grid. - unsafeSsl : 'true' # Optional + unsafeSsl: 'true' # Optional # It is used to add a sidecars proxy in the same pod of the browser node. # It means it will add a new container to the deployment itself. @@ -636,9 +636,9 @@ firefoxNode: # claimName: my-pv-claim # Override the scaled options for firefox nodes - #scaledOptions: - #scaledJobOptions: - #scaledObjectOptions: + # scaledOptions: + # scaledJobOptions: + # scaledObjectOptions: hpa: url: '{{ include "seleniumGrid.graphqlURL" . }}' browserName: firefox @@ -764,9 +764,9 @@ edgeNode: # claimName: my-pv-claim # Override the scaled options for edge nodes - #scaledOptions: - #scaledJobOptions: - #scaledObjectOptions: + # scaledOptions: + # scaledJobOptions: + # scaledObjectOptions: hpa: url: '{{ include "seleniumGrid.graphqlURL" . }}' browserName: MicrosoftEdge From eec5ecc6b6894eb38b6cfb06d9c8a484e4c52552 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Tue, 14 Nov 2023 19:56:43 +0700 Subject: [PATCH 039/100] Bug: Error setting name in helm release #2006 #2007 (#2009) * Bug: Error setting name in helm release #2006 Signed-off-by: Viet Nguyen Duc * Add workflow to test chart Signed-off-by: Viet Nguyen Duc * Update workflow to test chart Signed-off-by: Viet Nguyen Duc * Update workflow to test helm chart Signed-off-by: Viet Nguyen Duc * Update workflow to test chart Signed-off-by: Viet Nguyen Duc * Update ConfigMap for video recorder #2007 Signed-off-by: Viet Nguyen Duc * Test indidividual node to reduce unstable Insufficient cpu Signed-off-by: Viet Nguyen Duc * Fix lint in test values yaml Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-test.yml | 28 ++++++++----------- .gitignore | 3 +- charts/selenium-grid/.helmignore | 1 + charts/selenium-grid/Chart.yaml | 2 +- .../ci/overrideNameChrome-values.yaml | 9 ++++++ .../ci/overrideNameEdge-values.yaml | 9 ++++++ .../ci/overrideNameFirefox-values.yaml | 9 ++++++ charts/selenium-grid/templates/NOTES.txt | 2 +- .../templates/chrome-node-deployment.yaml | 6 ++-- .../templates/chrome-node-scaledjobs.yaml | 4 +-- .../templates/chrome-node-service.yaml | 4 +-- .../templates/distributor-deployment.yaml | 8 +++--- .../templates/distributor-service.yaml | 4 +-- .../templates/edge-node-deployment.yaml | 6 ++-- .../templates/edge-node-scaledjob.yaml | 4 +-- .../templates/edge-node-service.yaml | 4 +-- .../templates/event-bus-deployment.yaml | 8 +++--- .../templates/event-bus-service.yaml | 4 +-- .../templates/firefox-node-deployment.yaml | 6 ++-- .../templates/firefox-node-scaledjob.yaml | 4 +-- .../templates/firefox-node-service.yaml | 4 +-- .../templates/hub-deployment.yaml | 8 +++--- .../selenium-grid/templates/hub-service.yaml | 4 +-- .../templates/router-deployment.yaml | 8 +++--- .../templates/router-service.yaml | 4 +-- .../templates/session-map-deployment.yaml | 8 +++--- .../templates/session-map-service.yaml | 4 +-- .../templates/session-queuer-deployment.yaml | 8 +++--- .../templates/session-queuer-service.yaml | 4 +-- charts/selenium-grid/templates/video-cm.yaml | 2 +- charts/selenium-grid/values.yaml | 2 ++ tests/chart-test.yaml | 8 ++++++ 32 files changed, 112 insertions(+), 77 deletions(-) create mode 100644 charts/selenium-grid/ci/overrideNameChrome-values.yaml create mode 100644 charts/selenium-grid/ci/overrideNameEdge-values.yaml create mode 100644 charts/selenium-grid/ci/overrideNameFirefox-values.yaml create mode 100644 tests/chart-test.yaml diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 6bcf1eae4..cf8f8c439 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -1,6 +1,13 @@ name: Lint and Test Helm Charts -on: pull_request +on: + push: + paths: + - 'charts/selenium-grid/**' + pull_request: + paths: + - 'charts/selenium-grid/**' + workflow_dispatch: jobs: lint-test: @@ -28,27 +35,16 @@ jobs: - name: Run chart-testing (list-changed) id: list-changed run: | - changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }}) + changed=$(ct list-changed --config tests/chart-test.yaml) if [[ -n "$changed" ]]; then - echo "changed=true" >> "$GITHUB_OUTPUT" + echo "{changed}={true}" >> $GITHUB_OUTPUT fi - name: Run chart-testing (lint) - if: steps.list-changed.outputs.changed == 'true' - run: ct lint --target-branch ${{ github.event.repository.default_branch }} + run: ct lint --config tests/chart-test.yaml - name: Create kind cluster - if: steps.list-changed.outputs.changed == 'true' uses: helm/kind-action@v1.8.0 - - name: Build Helm Charts - if: steps.list-changed.outputs.changed == 'true' - run: | - helm repo add kedacore https://kedacore.github.io/charts - helm repo update - cd charts - helm dependency build selenium-grid - - name: Run chart-testing (install) - if: steps.list-changed.outputs.changed == 'true' - run: ct install --target-branch ${{ github.event.repository.default_branch }} \ No newline at end of file + run: ct install --all --config tests/chart-test.yaml diff --git a/.gitignore b/.gitignore index 7377b135b..fc44914b7 100644 --- a/.gitignore +++ b/.gitignore @@ -147,4 +147,5 @@ ENV/ # End of https://www.gitignore.io/api/python .DS_Store - +/charts/*/charts +/charts/*/**.lock diff --git a/charts/selenium-grid/.helmignore b/charts/selenium-grid/.helmignore index 0e8a0eb36..5bdaa3eb0 100644 --- a/charts/selenium-grid/.helmignore +++ b/charts/selenium-grid/.helmignore @@ -21,3 +21,4 @@ .idea/ *.tmproj .vscode/ +ci/ diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index 8dfd4513d..a5786c654 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.25.0 +version: 0.25.1 appVersion: 4.15.0-20231110 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: diff --git a/charts/selenium-grid/ci/overrideNameChrome-values.yaml b/charts/selenium-grid/ci/overrideNameChrome-values.yaml new file mode 100644 index 000000000..6fe143648 --- /dev/null +++ b/charts/selenium-grid/ci/overrideNameChrome-values.yaml @@ -0,0 +1,9 @@ +# These desired is used to test the overrideName of the component +hub: + nameOverride: my-hub-name +chromeNode: + nameOverride: my-chrome-name +edgeNode: + enabled: false +firefoxNode: + enabled: false diff --git a/charts/selenium-grid/ci/overrideNameEdge-values.yaml b/charts/selenium-grid/ci/overrideNameEdge-values.yaml new file mode 100644 index 000000000..11f20066e --- /dev/null +++ b/charts/selenium-grid/ci/overrideNameEdge-values.yaml @@ -0,0 +1,9 @@ +# These desired is used to test the overrideName of the component +hub: + nameOverride: my-hub-name +chromeNode: + enabled: false +edgeNode: + nameOverride: my-edge-name +firefoxNode: + enabled: false diff --git a/charts/selenium-grid/ci/overrideNameFirefox-values.yaml b/charts/selenium-grid/ci/overrideNameFirefox-values.yaml new file mode 100644 index 000000000..dcf4670ed --- /dev/null +++ b/charts/selenium-grid/ci/overrideNameFirefox-values.yaml @@ -0,0 +1,9 @@ +# These desired is used to test the overrideName of the component +hub: + nameOverride: my-hub-name +chromeNode: + enabled: false +edgeNode: + enabled: false +firefoxNode: + nameOverride: my-firefox-name diff --git a/charts/selenium-grid/templates/NOTES.txt b/charts/selenium-grid/templates/NOTES.txt index 80920a44f..ce79f74b5 100644 --- a/charts/selenium-grid/templates/NOTES.txt +++ b/charts/selenium-grid/templates/NOTES.txt @@ -1,7 +1,7 @@ Selenium Grid Server deployed successfully. {{- $svcName := ternary (include "seleniumGrid.router.fullname" . ) (include "seleniumGrid.hub.fullname" . ) .Values.isolateComponents }} -{{- $appName := ternary "selenium-router" "selenium-hub" .Values.isolateComponents }} +{{- $appName := ternary (include "seleniumGrid.router.fullname" . ) (include "seleniumGrid.hub.fullname" . ) .Values.isolateComponents }} {{- $serviceType := ternary .Values.components.router.serviceType .Values.hub.serviceType .Values.isolateComponents }} {{- $port := ternary .Values.components.router.port .Values.hub.port .Values.isolateComponents }} {{- $localUrl := ternary "http://localhost:PORT" "http://localhost:PORT/wd/hub" .Values.isolateComponents }} diff --git a/charts/selenium-grid/templates/chrome-node-deployment.yaml b/charts/selenium-grid/templates/chrome-node-deployment.yaml index 2ea8c010c..e3bf3f1d2 100644 --- a/charts/selenium-grid/templates/chrome-node-deployment.yaml +++ b/charts/selenium-grid/templates/chrome-node-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.chromeNode.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-chrome-node - app.kubernetes.io/name: selenium-chrome-node + app: {{ template "seleniumGrid.chromeNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.chromeNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.chromeNode.labels }} {{- toYaml . | nindent 4 }} @@ -20,7 +20,7 @@ spec: {{end}} selector: matchLabels: - app: selenium-chrome-node + app: {{ template "seleniumGrid.chromeNode.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} diff --git a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml index 22a9fcef2..0b0d34443 100644 --- a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml +++ b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml @@ -9,8 +9,8 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} labels: - app: selenium-chrome-node - app.kubernetes.io/name: selenium-chrome-node + app: {{ template "seleniumGrid.chromeNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.chromeNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.chromeNode.labels }} {{- toYaml . | nindent 4 }} diff --git a/charts/selenium-grid/templates/chrome-node-service.yaml b/charts/selenium-grid/templates/chrome-node-service.yaml index 754f941ab..efe8f1873 100644 --- a/charts/selenium-grid/templates/chrome-node-service.yaml +++ b/charts/selenium-grid/templates/chrome-node-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.chromeNode.fullname" . }} namespace: {{ .Release.Namespace }} labels: - name: selenium-chrome-node + name: {{ template "seleniumGrid.chromeNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.chromeNode.service.annotations }} annotations: @@ -14,7 +14,7 @@ metadata: spec: type: {{ .Values.chromeNode.service.type }} selector: - app: selenium-chrome-node + app: {{ template "seleniumGrid.chromeNode.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- if and (eq .Values.chromeNode.service.type "LoadBalancer") (.Values.chromeNode.service.loadBalancerIP) }} loadBalancerIP: {{ .Values.chromeNode.service.loadBalancerIP }} diff --git a/charts/selenium-grid/templates/distributor-deployment.yaml b/charts/selenium-grid/templates/distributor-deployment.yaml index bf35d43ed..fe5efd767 100644 --- a/charts/selenium-grid/templates/distributor-deployment.yaml +++ b/charts/selenium-grid/templates/distributor-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.distributor.fullname" . }} namespace: {{ .Release.Namespace }} labels: &distributor_labels - app: selenium-distributor - app.kubernetes.io/name: selenium-distributor + app: {{ template "seleniumGrid.distributor.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.distributor.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ spec: replicas: 1 selector: matchLabels: - app: selenium-distributor + app: {{ template "seleniumGrid.distributor.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -27,7 +27,7 @@ spec: serviceAccountName: {{ template "seleniumGrid.serviceAccount.fullname" . }} serviceAccount: {{ template "seleniumGrid.serviceAccount.fullname" . }} containers: - - name: selenium-distributor + - name: {{ template "seleniumGrid.distributor.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.distributor.imageTag }} image: {{ printf "%s:%s" .Values.components.distributor.imageName $imageTag }} imagePullPolicy: {{ .Values.components.distributor.imagePullPolicy }} diff --git a/charts/selenium-grid/templates/distributor-service.yaml b/charts/selenium-grid/templates/distributor-service.yaml index 067be8952..295407fac 100644 --- a/charts/selenium-grid/templates/distributor-service.yaml +++ b/charts/selenium-grid/templates/distributor-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.distributor.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-distributor + app: {{ template "seleniumGrid.distributor.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ metadata: {{- end }} spec: selector: - app: selenium-distributor + app: {{ template "seleniumGrid.distributor.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.components.distributor.serviceType }} ports: diff --git a/charts/selenium-grid/templates/edge-node-deployment.yaml b/charts/selenium-grid/templates/edge-node-deployment.yaml index 33fc360aa..9802239e8 100644 --- a/charts/selenium-grid/templates/edge-node-deployment.yaml +++ b/charts/selenium-grid/templates/edge-node-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.edgeNode.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-edge-node - app.kubernetes.io/name: selenium-edge-node + app: {{ template "seleniumGrid.edgeNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.edgeNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.edgeNode.labels }} {{- toYaml . | nindent 4 }} @@ -20,7 +20,7 @@ spec: {{end}} selector: matchLabels: - app: selenium-edge-node + app: {{ template "seleniumGrid.edgeNode.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} diff --git a/charts/selenium-grid/templates/edge-node-scaledjob.yaml b/charts/selenium-grid/templates/edge-node-scaledjob.yaml index a9f235c31..132792c79 100644 --- a/charts/selenium-grid/templates/edge-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/edge-node-scaledjob.yaml @@ -9,8 +9,8 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} labels: - app: selenium-edge-node - app.kubernetes.io/name: selenium-edge-node + app: {{ template "seleniumGrid.edgeNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.edgeNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.edgeNode.labels }} {{- toYaml . | nindent 4 }} diff --git a/charts/selenium-grid/templates/edge-node-service.yaml b/charts/selenium-grid/templates/edge-node-service.yaml index ca253835a..d54dd70a3 100644 --- a/charts/selenium-grid/templates/edge-node-service.yaml +++ b/charts/selenium-grid/templates/edge-node-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.edgeNode.fullname" . }} namespace: {{ .Release.Namespace }} labels: - name: selenium-edge-node + name: {{ template "seleniumGrid.edgeNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.edgeNode.service.annotations }} annotations: @@ -14,7 +14,7 @@ metadata: spec: type: {{ .Values.edgeNode.service.type }} selector: - app: selenium-edge-node + app: {{ template "seleniumGrid.edgeNode.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- if and (eq .Values.edgeNode.service.type "LoadBalancer") (.Values.edgeNode.service.loadBalancerIP) }} loadBalancerIP: {{ .Values.edgeNode.service.loadBalancerIP }} diff --git a/charts/selenium-grid/templates/event-bus-deployment.yaml b/charts/selenium-grid/templates/event-bus-deployment.yaml index 498921e8c..a315cd820 100644 --- a/charts/selenium-grid/templates/event-bus-deployment.yaml +++ b/charts/selenium-grid/templates/event-bus-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.eventBus.fullname" . }} namespace: {{ .Release.Namespace }} labels: &event_bus_labels - app: selenium-event-bus - app.kubernetes.io/name: selenium-event-bus + app: {{ template "seleniumGrid.eventBus.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.eventBus.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ spec: replicas: 1 selector: matchLabels: - app: selenium-event-bus + app: {{ template "seleniumGrid.eventBus.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -27,7 +27,7 @@ spec: serviceAccountName: {{ template "seleniumGrid.serviceAccount.fullname" . }} serviceAccount: {{ template "seleniumGrid.serviceAccount.fullname" . }} containers: - - name: selenium-event-bus + - name: {{ template "seleniumGrid.eventBus.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.eventBus.imageTag }} image: {{ printf "%s:%s" .Values.components.eventBus.imageName $imageTag }} imagePullPolicy: {{ .Values.components.eventBus.imagePullPolicy }} diff --git a/charts/selenium-grid/templates/event-bus-service.yaml b/charts/selenium-grid/templates/event-bus-service.yaml index 38ff6cd1e..c3a30bcc0 100644 --- a/charts/selenium-grid/templates/event-bus-service.yaml +++ b/charts/selenium-grid/templates/event-bus-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.eventBus.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-event-bus + app: {{ template "seleniumGrid.eventBus.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ metadata: {{- end }} spec: selector: - app: selenium-event-bus + app: {{ template "seleniumGrid.eventBus.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.components.eventBus.serviceType }} ports: diff --git a/charts/selenium-grid/templates/firefox-node-deployment.yaml b/charts/selenium-grid/templates/firefox-node-deployment.yaml index f5dc6d962..5a1e96b55 100644 --- a/charts/selenium-grid/templates/firefox-node-deployment.yaml +++ b/charts/selenium-grid/templates/firefox-node-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.firefoxNode.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-firefox-node - app.kubernetes.io/name: selenium-firefox-node + app: {{ template "seleniumGrid.firefoxNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.firefoxNode.labels }} {{- toYaml . | nindent 4 }} @@ -20,7 +20,7 @@ spec: {{end}} selector: matchLabels: - app: selenium-firefox-node + app: {{ template "seleniumGrid.firefoxNode.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- $podScope := deepCopy . -}} {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} diff --git a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml index 9105bc358..e7992c1fc 100644 --- a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml @@ -9,8 +9,8 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} labels: - app: selenium-firefox-node - app.kubernetes.io/name: selenium-firefox-node + app: {{ template "seleniumGrid.firefoxNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.firefoxNode.labels }} {{- toYaml . | nindent 4 }} diff --git a/charts/selenium-grid/templates/firefox-node-service.yaml b/charts/selenium-grid/templates/firefox-node-service.yaml index d8cb4c844..43ba40380 100644 --- a/charts/selenium-grid/templates/firefox-node-service.yaml +++ b/charts/selenium-grid/templates/firefox-node-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.firefoxNode.fullname" . }} namespace: {{ .Release.Namespace }} labels: - name: selenium-firefox-node + name: {{ template "seleniumGrid.firefoxNode.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.firefoxNode.service.annotations }} annotations: @@ -14,7 +14,7 @@ metadata: spec: type: {{ .Values.firefoxNode.service.type }} selector: - app: selenium-firefox-node + app: {{ template "seleniumGrid.firefoxNode.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- if and (eq .Values.firefoxNode.service.type "LoadBalancer") (.Values.firefoxNode.service.loadBalancerIP) }} loadBalancerIP: {{ .Values.firefoxNode.service.loadBalancerIP }} diff --git a/charts/selenium-grid/templates/hub-deployment.yaml b/charts/selenium-grid/templates/hub-deployment.yaml index 6f9488d12..a5ea71ab5 100644 --- a/charts/selenium-grid/templates/hub-deployment.yaml +++ b/charts/selenium-grid/templates/hub-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.hub.fullname" . }} namespace: {{ .Release.Namespace }} labels: &hub_labels - app: selenium-hub - app.kubernetes.io/name: selenium-hub + app: {{ template "seleniumGrid.hub.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.hub.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.hub.labels }} {{- toYaml . | nindent 4 }} @@ -18,7 +18,7 @@ spec: replicas: 1 selector: matchLabels: - app: selenium-hub + app: {{ template "seleniumGrid.hub.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -30,7 +30,7 @@ spec: serviceAccountName: {{ template "seleniumGrid.serviceAccount.fullname" . }} serviceAccount: {{ template "seleniumGrid.serviceAccount.fullname" . }} containers: - - name: selenium-hub + - name: {{ template "seleniumGrid.hub.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.hub.imageTag }} image: {{ printf "%s:%s" .Values.hub.imageName $imageTag }} imagePullPolicy: {{ .Values.hub.imagePullPolicy }} diff --git a/charts/selenium-grid/templates/hub-service.yaml b/charts/selenium-grid/templates/hub-service.yaml index 417e9849f..aa4daa34c 100644 --- a/charts/selenium-grid/templates/hub-service.yaml +++ b/charts/selenium-grid/templates/hub-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.hub.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-hub + app: {{ template "seleniumGrid.hub.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ metadata: {{- end }} spec: selector: - app: selenium-hub + app: {{ template "seleniumGrid.hub.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.hub.serviceType }} {{- if and (eq .Values.hub.serviceType "LoadBalancer") ( .Values.hub.loadBalancerIP ) }} diff --git a/charts/selenium-grid/templates/router-deployment.yaml b/charts/selenium-grid/templates/router-deployment.yaml index 037bcbf39..05ae9a7b9 100644 --- a/charts/selenium-grid/templates/router-deployment.yaml +++ b/charts/selenium-grid/templates/router-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.router.fullname" . }} namespace: {{ .Release.Namespace }} labels: &router_labels - app: selenium-router - app.kubernetes.io/name: selenium-router + app: {{ template "seleniumGrid.router.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.router.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ spec: replicas: 1 selector: matchLabels: - app: selenium-router + app: {{ template "seleniumGrid.router.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -27,7 +27,7 @@ spec: serviceAccountName: {{ template "seleniumGrid.serviceAccount.fullname" . }} serviceAccount: {{ template "seleniumGrid.serviceAccount.fullname" . }} containers: - - name: selenium-router + - name: {{ template "seleniumGrid.router.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.router.imageTag }} image: {{ printf "%s:%s" .Values.components.router.imageName $imageTag }} imagePullPolicy: {{ .Values.components.router.imagePullPolicy }} diff --git a/charts/selenium-grid/templates/router-service.yaml b/charts/selenium-grid/templates/router-service.yaml index d586c31fe..9eaff7955 100644 --- a/charts/selenium-grid/templates/router-service.yaml +++ b/charts/selenium-grid/templates/router-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.router.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-router + app: {{ template "seleniumGrid.router.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ metadata: {{- end }} spec: selector: - app: selenium-router + app: {{ template "seleniumGrid.router.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.components.router.serviceType }} {{- if and (eq .Values.components.router.serviceType "LoadBalancer") (.Values.components.router.loadBalancerIP) }} diff --git a/charts/selenium-grid/templates/session-map-deployment.yaml b/charts/selenium-grid/templates/session-map-deployment.yaml index 437c664e2..496089eaf 100644 --- a/charts/selenium-grid/templates/session-map-deployment.yaml +++ b/charts/selenium-grid/templates/session-map-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.sessionMap.fullname" . }} namespace: {{ .Release.Namespace }} labels: &session_map_labels - app: selenium-session-map - app.kubernetes.io/name: selenium-session-map + app: {{ template "seleniumGrid.sessionMap.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.sessionMap.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ spec: replicas: 1 selector: matchLabels: - app: selenium-session-map + app: {{ template "seleniumGrid.sessionMap.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -27,7 +27,7 @@ spec: serviceAccountName: {{ template "seleniumGrid.serviceAccount.fullname" . }} serviceAccount: {{ template "seleniumGrid.serviceAccount.fullname" . }} containers: - - name: selenium-session-map + - name: {{ template "seleniumGrid.sessionMap.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.sessionMap.imageTag }} image: {{ printf "%s:%s" .Values.components.sessionMap.imageName $imageTag }} imagePullPolicy: {{ .Values.components.sessionMap.imagePullPolicy }} diff --git a/charts/selenium-grid/templates/session-map-service.yaml b/charts/selenium-grid/templates/session-map-service.yaml index 6df2d9bbf..13dd963b6 100644 --- a/charts/selenium-grid/templates/session-map-service.yaml +++ b/charts/selenium-grid/templates/session-map-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.sessionMap.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-session-map + app: {{ template "seleniumGrid.sessionMap.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ metadata: {{- end }} spec: selector: - app: selenium-session-map + app: {{ template "seleniumGrid.sessionMap.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.components.sessionMap.serviceType }} ports: diff --git a/charts/selenium-grid/templates/session-queuer-deployment.yaml b/charts/selenium-grid/templates/session-queuer-deployment.yaml index 0f26f06e5..28c17b49c 100644 --- a/charts/selenium-grid/templates/session-queuer-deployment.yaml +++ b/charts/selenium-grid/templates/session-queuer-deployment.yaml @@ -5,8 +5,8 @@ metadata: name: {{ template "seleniumGrid.sessionQueue.fullname" . }} namespace: {{ .Release.Namespace }} labels: &session_queue_labels - app: selenium-session-queue - app.kubernetes.io/name: selenium-session-queue + app: {{ template "seleniumGrid.sessionQueue.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.sessionQueue.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ spec: replicas: 1 selector: matchLabels: - app: selenium-session-queue + app: {{ template "seleniumGrid.sessionQueue.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -27,7 +27,7 @@ spec: serviceAccountName: {{ template "seleniumGrid.serviceAccount.fullname" . }} serviceAccount: {{ template "seleniumGrid.serviceAccount.fullname" . }} containers: - - name: selenium-session-queue + - name: {{ template "seleniumGrid.sessionQueue.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.sessionQueue.imageTag }} image: {{ printf "%s:%s" .Values.components.sessionQueue.imageName $imageTag }} imagePullPolicy: {{ .Values.components.sessionQueue.imagePullPolicy }} diff --git a/charts/selenium-grid/templates/session-queuer-service.yaml b/charts/selenium-grid/templates/session-queuer-service.yaml index be3739ad0..54e535f7b 100644 --- a/charts/selenium-grid/templates/session-queuer-service.yaml +++ b/charts/selenium-grid/templates/session-queuer-service.yaml @@ -5,7 +5,7 @@ metadata: name: {{ template "seleniumGrid.sessionQueue.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: selenium-session-queue + app: {{ template "seleniumGrid.sessionQueue.fullname" . }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} @@ -15,7 +15,7 @@ metadata: {{- end }} spec: selector: - app: selenium-session-queue + app: {{ template "seleniumGrid.sessionQueue.fullname" . }} app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.components.sessionQueue.serviceType }} ports: diff --git a/charts/selenium-grid/templates/video-cm.yaml b/charts/selenium-grid/templates/video-cm.yaml index e3ea227d5..1b49e026e 100644 --- a/charts/selenium-grid/templates/video-cm.yaml +++ b/charts/selenium-grid/templates/video-cm.yaml @@ -81,7 +81,7 @@ data: then upload_destination=${UPLOAD_DESTINATION_PREFIX}${video_file_name} echo "Uploading video to $upload_destination" - echo $video_file $upload_destination > /videos/uploadpipe & + echo $video_file $upload_destination > /videos/uploadpipe fi recording_started="false" elif [[ $recording_started = "true" ]] diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 15e361958..d92724ddc 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -870,8 +870,10 @@ videoRecorder: do if [ "$FILE" = "exit" ] then + echo "$FILE" break else + echo "Uploading $FILE to $DESTINATION" aws s3 cp --no-progress $FILE $DESTINATION fi done diff --git a/tests/chart-test.yaml b/tests/chart-test.yaml new file mode 100644 index 000000000..e54edd7a3 --- /dev/null +++ b/tests/chart-test.yaml @@ -0,0 +1,8 @@ +target-branch: trunk +chart-dirs: + - charts +chart-repos: + - kedacore=https://kedacore.github.io/charts +upgrade: false +helm-extra-args: --timeout 600s +check-version-increment: false From 373c3c3c5c8d75ee5320c58367575767f282b0ef Mon Sep 17 00:00:00 2001 From: Thabelo Ramabulana <106035637+Thab310@users.noreply.github.com> Date: Tue, 14 Nov 2023 15:15:22 +0200 Subject: [PATCH 040/100] corrected typo in selenium grid charts (#2010) corrected typo in selinium grid charts Co-authored-by: Diego Molina --- charts/selenium-grid/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index d92724ddc..325d038de 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -347,7 +347,7 @@ autoscaling: enabled: false # Enable autoscaling without automatically installing KEDA enableWithExistingKEDA: false - # Which typ of KEDA scaling to use: job or deployment + # Which type of KEDA scaling to use: job or deployment scalingType: job # Annotations for KEDA resources: ScaledObject and ScaledJob annotations: From b365646a9f214ddc9c315c5176f7847c1ad06a67 Mon Sep 17 00:00:00 2001 From: Matt Colman <33348891+mtcolman@users.noreply.github.com> Date: Tue, 21 Nov 2023 17:47:24 +0000 Subject: [PATCH 041/100] Update Dockerfile - external jar version uplift (#2015) Update Dockerfile Updating external jars to fix vulnerabilities. --- Base/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 14e0feb8a..0e2481ddf 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -88,7 +88,7 @@ RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier && mkdir -p /external_jars \ && chmod -R 775 /external_jars -RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.31.0 io.opentelemetry:opentelemetry-exporter-jaeger:1.31.0 io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt +RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.32.0 io.opentelemetry:opentelemetry-exporter-jaeger:1.32.0 io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt RUN chmod 664 /external_jars/.classpath.txt RUN rm -fr /root/.cache/* From ad0a7a6fba5a5f123897d37c3e37e3bd45082b00 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 22 Nov 2023 16:31:31 +0100 Subject: [PATCH 042/100] Setting driver and browser path via configuration (#2017) [deploy] --- .github/workflows/build-test.yml | 8 ++++++-- Distributor/start-selenium-grid-distributor.sh | 7 ++++--- EventBus/start-selenium-grid-eventbus.sh | 7 ++++--- Hub/start-selenium-grid-hub.sh | 7 ++++--- NodeBase/generate_config | 11 +++-------- NodeBase/start-selenium-node.sh | 14 +++++++++++--- NodeChrome/Dockerfile | 10 ++++++---- NodeDocker/start-selenium-grid-docker.sh | 7 ++++--- NodeEdge/Dockerfile | 4 +++- NodeFirefox/Dockerfile | 7 ++++--- Router/start-selenium-grid-router.sh | 7 ++++--- SessionQueue/start-selenium-grid-session-queue.sh | 7 ++++--- Sessions/start-selenium-grid-sessions.sh | 7 ++++--- Standalone/generate_config | 11 +++-------- Standalone/start-selenium-standalone.sh | 14 +++++++++++--- StandaloneDocker/start-selenium-grid-docker.sh | 7 ++++--- tests/test.py | 5 ++++- 17 files changed, 83 insertions(+), 57 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 954ed42f9..4323c521b 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -41,7 +41,11 @@ jobs: - name: Build Docker images run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build - name: Test Docker images - run: USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test + uses: nick-invision/retry@v2.8.3 + with: + timeout_minutes: 20 + max_attempts: 3 + command: | + USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test env: USE_RANDOM_USER: ${{ matrix.use-random-user }} - diff --git a/Distributor/start-selenium-grid-distributor.sh b/Distributor/start-selenium-grid-distributor.sh index 0a653e81e..81d498cea 100755 --- a/Distributor/start-selenium-grid-distributor.sh +++ b/Distributor/start-selenium-grid-distributor.sh @@ -54,10 +54,11 @@ if [ ! -z "$SE_DISTRIBUTOR_PORT" ]; then PORT_CONFIG="--port ${SE_DISTRIBUTOR_PORT}" fi -EXTRA_LIBS="/opt/selenium/selenium-http-jdk-client.jar" +EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$(> "$FILENAME" SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) -if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(google-chrome --version | awk '{print $3}')) -elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(firefox --version | awk '{print $3}')) -elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) -fi +SE_NODE_BROWSER_VERSION=$(short_version $(cat /opt/selenium/browser_version)) +SE__BROWSER_BINARY_LOCATION=$(cat /opt/selenium/browser_binary_location) if [[ -z "$SE_NODE_STEREOTYPE" ]]; then -SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\"}" +SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\", ${SE__BROWSER_BINARY_LOCATION}}" else SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE" fi diff --git a/NodeBase/start-selenium-node.sh b/NodeBase/start-selenium-node.sh index fc5dc2f55..6a50d9069 100755 --- a/NodeBase/start-selenium-node.sh +++ b/NodeBase/start-selenium-node.sh @@ -36,10 +36,11 @@ if [ "$GENERATE_CONFIG" = true ]; then /opt/bin/generate_config fi -EXTRA_LIBS="/opt/selenium/selenium-http-jdk-client.jar" +EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$( /opt/selenium/browser_name +RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version +RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" > /opt/selenium/browser_binary_location diff --git a/NodeDocker/start-selenium-grid-docker.sh b/NodeDocker/start-selenium-grid-docker.sh index 760c34a85..b13474c6b 100755 --- a/NodeDocker/start-selenium-grid-docker.sh +++ b/NodeDocker/start-selenium-grid-docker.sh @@ -29,10 +29,11 @@ if [ ! -z "$SE_NODE_GRID_URL" ]; then SE_GRID_URL="--grid-url ${SE_NODE_GRID_URL}" fi -EXTRA_LIBS="/opt/selenium/selenium-http-jdk-client.jar" +EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$( /opt/selenium/browser_name +RUN microsoft-edge --version | awk '{print $3}' > /opt/selenium/browser_version +RUN echo "\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" > /opt/selenium/browser_binary_location diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index 698fe6338..48d83bdb8 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -12,11 +12,10 @@ USER root ARG FIREFOX_VERSION=latest RUN FIREFOX_DOWNLOAD_URL=$(if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then echo "https://download.mozilla.org/?product=firefox-$FIREFOX_VERSION-ssl&os=linux64&lang=en-US"; else echo "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2"; fi) \ && apt-get update -qqy \ - && apt-get -qqy --no-install-recommends install firefox libavcodec-extra \ + && apt-get -qqy --no-install-recommends install libavcodec-extra \ libgtk-3-dev libdbus-glib-1-dev \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ && wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \ - && apt-get -y purge firefox \ && rm -rf /opt/firefox \ && tar -C /opt -xjf /tmp/firefox.tar.bz2 \ && rm /tmp/firefox.tar.bz2 \ @@ -40,6 +39,8 @@ RUN GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = "latest" ]; then echo "0. USER 1200 #============================================ -# Dumping Browser name and version for config +# Dumping Browser information for config #============================================ RUN echo "firefox" > /opt/selenium/browser_name +RUN firefox --version | awk '{print $3}' > /opt/selenium/browser_version +RUN echo "\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" > /opt/selenium/browser_binary_location diff --git a/Router/start-selenium-grid-router.sh b/Router/start-selenium-grid-router.sh index b99f675e5..b64c83d0e 100755 --- a/Router/start-selenium-grid-router.sh +++ b/Router/start-selenium-grid-router.sh @@ -54,10 +54,11 @@ if [ ! -z "$SE_ROUTER_PORT" ]; then PORT_CONFIG="--port ${SE_ROUTER_PORT}" fi -EXTRA_LIBS="/opt/selenium/selenium-http-jdk-client.jar" +EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$(> "$FILENAME" SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) -if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(google-chrome --version | awk '{print $3}')) -elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(firefox --version | awk '{print $3}')) -elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) -fi +SE_NODE_BROWSER_VERSION=$(short_version $(cat /opt/selenium/browser_version)) +SE__BROWSER_BINARY_LOCATION=$(cat /opt/selenium/browser_binary_location) if [[ -z "$SE_NODE_STEREOTYPE" ]]; then -SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\"}" +SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\", ${SE__BROWSER_BINARY_LOCATION}}" else SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE" fi diff --git a/Standalone/start-selenium-standalone.sh b/Standalone/start-selenium-standalone.sh index 7af58b6e8..f1bf641a8 100755 --- a/Standalone/start-selenium-standalone.sh +++ b/Standalone/start-selenium-standalone.sh @@ -17,10 +17,11 @@ echo "Selenium Grid Standalone configuration: " cat /opt/selenium/config.toml echo "Starting Selenium Grid Standalone..." -EXTRA_LIBS="/opt/selenium/selenium-http-jdk-client.jar" +EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$( %s" % random_user_id) + if 'firefox' in image.lower(): + logger.info("Firefox has issues when running with a random user ID. Skipping until it gets fixed.") + exit(0) standalone = 'standalone' in image.lower() From 9bc083a990b1ce696dbad3843c7e11907dc68e55 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Wed, 22 Nov 2023 15:43:51 +0000 Subject: [PATCH 043/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/README.md | 12 +-- charts/selenium-grid/values.yaml | 24 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 156 insertions(+), 156 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3018d5991..f276a5ec8 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.15.0-20231110? Please use the full tag, avoid "latest" + placeholder: 4.15.0-20231122? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 99a73aa16..a8dd1dc6a 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231110", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.15.0-20231110", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.15.0-20231110", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.15.0-20231122", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.15.0-20231122", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.15.0-20231122", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231110" +video-image = "selenium/video:ffmpeg-6.0-20231122" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index c947605f3..af30d662d 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231110). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231122). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231110 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231122 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231110 + selenium/node-edge:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231110 + selenium/node-firefox:4.15.0-20231122 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.15.0-20231110 + selenium/node-edge:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.15.0-20231110 + selenium/node-firefox:4.15.0-20231122 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231122 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.15.0-20231110 + selenium/node-edge:4.15.0-20231122 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.15.0-20231110 + selenium/node-edge:4.15.0-20231122 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.15.0-20231110 + selenium/node-firefox:4.15.0-20231122 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.15.0-20231110 + selenium/node-firefox:4.15.0-20231122 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231110` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231122` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231110 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231122 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231110", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.15.0-20231110", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.15.0-20231110", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.15.0-20231122", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.15.0-20231122", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.15.0-20231122", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231110" +video-image = "selenium/video:ffmpeg-6.0-20231122" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231110 + selenium/node-docker:4.15.0-20231122 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231110 + selenium/node-docker:4.15.0-20231122 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231110 + selenium/standalone-docker:4.15.0-20231122 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231110 + selenium/standalone-docker:4.15.0-20231122 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231122 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231110 + selenium/node-docker:4.15.0-20231122 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231110 + selenium/node-docker:4.15.0-20231122 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231110", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.15.0-20231110", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.15.0-20231110", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.15.0-20231122", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.15.0-20231122", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.15.0-20231122", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231110" +video-image = "selenium/video:ffmpeg-6.0-20231122" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231110 + selenium/standalone-docker:4.15.0-20231122 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231110 + selenium/standalone-docker:4.15.0-20231122 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231122 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231110 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231122 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.15.0-20231110 + --shm-size="2g" selenium/node-chrome:4.15.0-20231122 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231110 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231122 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231110 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231122 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.15.0-20231110 + selenium/hub:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231110 + selenium/node-edge:4.15.0-20231122 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231110 + selenium/node-firefox:4.15.0-20231122 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.15.0-20231110 +FROM selenium/node-chrome:4.15.0-20231122 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.15.0-20231110 +FROM selenium/node-firefox:4.15.0-20231122 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231110 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231122 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231110 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231110 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231110 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231122 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231110 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231110 + selenium/node-chrome:4.15.0-20231122 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231110 + selenium/node-edge:4.15.0-20231122 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231110 + selenium/node-firefox:4.15.0-20231122 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.15.0-20231110 + selenium/standalone-chrome:4.15.0-20231122 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 3174bd3b1..fda597389 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -17,7 +17,7 @@ All notable changes to this helm chart will be documented in this file. - feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.15.0-20231110 +- Update image tag to 4.15.0-20231122 ## :heavy_check_mark: 0.23.0 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 8ef7fd933..c912d206e 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -85,8 +85,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.15.0-20231110` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231110` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.15.0-20231122` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231122` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -128,7 +128,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.15.0-20231110` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.15.0-20231122` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -167,7 +167,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.15.0-20231110` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.15.0-20231122` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -206,7 +206,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.15.0-20231110` | Image of edge nodes | +| `edgeNode.imageTag` | `4.15.0-20231122` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -243,7 +243,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231110` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231122` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 325d038de..469dfe306 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.15.0-20231110 + imageTag: 4.15.0-20231122 # Image tag for browser's nodes - nodesImageTag: 4.15.0-20231110 + nodesImageTag: 4.15.0-20231122 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -66,7 +66,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -117,7 +117,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -148,7 +148,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -183,7 +183,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -213,7 +213,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -263,7 +263,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -403,7 +403,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -535,7 +535,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -664,7 +664,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231110 + # imageTag: 4.15.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -782,7 +782,7 @@ videoRecorder: # Image of video recorder imageName: selenium/video # Image of video recorder - imageTag: ffmpeg-6.0-20231110 + imageTag: ffmpeg-6.0-20231122 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index a47865695..53eedb26f 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index ca18aa427..259b5253c 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index c5894143b..da1413143 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 0d1705d29..61a41298a 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 1405e44a4..2b80682ca 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.15.0-20231110 + image: selenium/node-docker:4.15.0-20231122 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 26a49b696..2d3c6c258 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231110 + image: selenium/event-bus:4.15.0-20231122 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231110 + image: selenium/sessions:4.15.0-20231122 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231110 + image: selenium/session-queue:4.15.0-20231122 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231110 + image: selenium/distributor:4.15.0-20231122 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231110 + image: selenium/router:4.15.0-20231122 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index d99d05789..9d35c94bb 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index a5be01740..62fa03692 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.15.0-20231110 + image: selenium/event-bus:4.15.0-20231122 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.15.0-20231110 + image: selenium/sessions:4.15.0-20231122 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.15.0-20231110 + image: selenium/session-queue:4.15.0-20231122 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.15.0-20231110 + image: selenium/distributor:4.15.0-20231122 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.15.0-20231110 + image: selenium/router:4.15.0-20231122 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 432747bfd..78a962995 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231110 + image: selenium/event-bus:4.15.0-20231122 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231110 + image: selenium/sessions:4.15.0-20231122 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231110 + image: selenium/session-queue:4.15.0-20231122 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231110 + image: selenium/distributor:4.15.0-20231122 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231110 + image: selenium/router:4.15.0-20231122 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index d99d05789..9d35c94bb 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 4b54490f6..30e5535ac 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 5e4b5dd0a..7ae22d7a3 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231110 + image: selenium/video:ffmpeg-6.0-20231122 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231110 + image: selenium/video:ffmpeg-6.0-20231122 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231110 + image: selenium/video:ffmpeg-6.0-20231122 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 83464f7d3..d5641f2cb 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231110 + image: selenium/node-chrome:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231110 + image: selenium/node-edge:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231110 + image: selenium/node-firefox:4.15.0-20231122 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231110 + image: selenium/hub:4.15.0-20231122 container_name: selenium-hub ports: - "4442:4442" From a14d80e707f3e20939e1a1f81480286ff2ffc5dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 16:49:56 +0100 Subject: [PATCH 044/100] Bump dessant/lock-threads from 5.0.0 to 5.0.1 (#2019) Bumps [dessant/lock-threads](https://github.com/dessant/lock-threads) from 5.0.0 to 5.0.1. - [Release notes](https://github.com/dessant/lock-threads/releases) - [Changelog](https://github.com/dessant/lock-threads/blob/main/CHANGELOG.md) - [Commits](https://github.com/dessant/lock-threads/compare/d42e5f49803f3c4e14ffee0378e31481265dda22...1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771) --- updated-dependencies: - dependency-name: dessant/lock-threads dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Diego Molina --- .github/workflows/lock.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 493bb0dea..8a7b86c64 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -14,7 +14,7 @@ jobs: action: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@d42e5f49803f3c4e14ffee0378e31481265dda22 # v3 + - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v3 with: process-only: 'issues' issue-lock-inactive-days: '30' From 0ca1bb153baa7a12299759d994366f41ca773171 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Nov 2023 11:00:24 +0100 Subject: [PATCH 045/100] Bump nick-invision/retry from 2.8.3 to 2.9.0 (#2024) Bumps [nick-invision/retry](https://github.com/nick-invision/retry) from 2.8.3 to 2.9.0. - [Release notes](https://github.com/nick-invision/retry/releases) - [Commits](https://github.com/nick-invision/retry/compare/v2.8.3...v2.9.0) --- updated-dependencies: - dependency-name: nick-invision/retry dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 4323c521b..177aa6d04 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -41,7 +41,7 @@ jobs: - name: Build Docker images run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build - name: Test Docker images - uses: nick-invision/retry@v2.8.3 + uses: nick-invision/retry@v2.9.0 with: timeout_minutes: 20 max_attempts: 3 From 82603e902fcd7bb820cabd17540d9c7bf28682f9 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 27 Nov 2023 16:53:18 +0700 Subject: [PATCH 046/100] Update NodeChrome support latest version from GoogleChromeLabs (#2018) feat: NodeChrome support latest version from GoogleChromeLabs Signed-off-by: Viet Nguyen Duc --- NodeChrome/Dockerfile | 92 +++++++++++++------ NodeEdge/Dockerfile | 8 +- NodeFirefox/Dockerfile | 10 ++ Standalone/start-selenium-standalone.sh | 2 +- .../ci/customIngressPath-values.yaml | 52 +++++++++++ tests/test.py | 3 - 6 files changed, 132 insertions(+), 35 deletions(-) create mode 100644 charts/selenium-grid/ci/customIngressPath-values.yaml diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index 63eb00bd3..b93ae223e 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -6,22 +6,51 @@ LABEL authors=${AUTHORS} USER root +RUN apt-get update -qqy \ + && apt-get -qqy --no-install-recommends install libatk1.0-0 libatk-bridge2.0-0 \ + libxkbcommon-x11-0 libgbm1 libpango-1.0-0 \ + && rm -rf /var/lib/apt/lists/* /var/cache/apt/* + #============================================ # Google Chrome #============================================ # can specify versions by CHROME_VERSION; -# e.g. google-chrome-stable -# google-chrome-beta -# google-chrome-unstable -#============================================ -ARG CHROME_VERSION="google-chrome-stable" -RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ - && echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ - && apt-get update -qqy \ - && apt-get -qqy install \ - ${CHROME_VERSION:-google-chrome-stable} \ - && rm /etc/apt/sources.list.d/google-chrome.list \ - && rm -rf /var/lib/apt/lists/* /var/cache/apt/* +# Support these inputs (following https://github.com/GoogleChromeLabs/chrome-for-testing): +# LATEST_RELEASE_STABLE +# LATEST_RELEASE_BETA +# LATEST_RELEASE_DEV +# LATEST_RELEASE_CANARY +# 121 (specific major version) +# 119.0.6045.105 (specific full version) +#============================================ +ARG DOWNLOAD_HOST="https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing" +ARG VERSION_HOST="https://googlechromelabs.github.io/chrome-for-testing" +ARG CHROME_VERSION="LATEST_RELEASE_STABLE" +ARG CHROME_PLATFORM="linux64" +RUN if [ ! -z "$CHROME_VERSION" ]; \ + then GET_VERSION_URL=$VERSION_HOST/$CHROME_VERSION \ + && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $GET_VERSION_URL) -eq 200 ]; \ + then echo "Getting Chrome version from "$GET_VERSION_URL \ + && CHROME_VERSION=$(wget -qO- $VERSION_HOST"/"$CHROME_VERSION | sed 's/\r$//') ; \ + fi \ + else echo "Getting Chrome version "$CHROME_DRIVER_VERSION ; \ + fi \ + && CHROME_URL=$DOWNLOAD_HOST/$CHROME_VERSION/$CHROME_PLATFORM/chrome-$CHROME_PLATFORM.zip \ + && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $CHROME_URL) -ne 200 ]; \ + then CHROME_MAJOR_VERSION=$(echo $CHROME_VERSION | sed -E "s/([0-9]+).*/\1/") \ + && echo "Getting Chrome latest major version from "$VERSION_HOST"/LATEST_RELEASE_"$CHROME_MAJOR_VERSION \ + && CHROME_VERSION=$(wget -qO- $VERSION_HOST/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \ + && CHROME_URL=$DOWNLOAD_HOST/$CHROME_VERSION/$CHROME_PLATFORM/chrome-$CHROME_PLATFORM.zip ; \ + fi \ + && echo "Using Chrome from: "$CHROME_URL \ + && wget --no-verbose -O /tmp/chrome-$CHROME_PLATFORM.zip $CHROME_URL \ + && rm -rf /opt/google/chrome \ + && unzip /tmp/chrome-$CHROME_PLATFORM.zip -d /opt/google \ + && mv /opt/google/chrome-$CHROME_PLATFORM /opt/google/chrome \ + && rm /tmp/chrome-$CHROME_PLATFORM.zip \ + && mv /opt/google/chrome/chrome-wrapper /opt/google/chrome/google-chrome \ + && chmod +x /opt/google/chrome/google-chrome \ + && ln -fs /opt/google/chrome/google-chrome /usr/bin/google-chrome #================================= # Chrome Launch Script Wrapper @@ -29,35 +58,44 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key COPY wrap_chrome_binary /opt/bin/wrap_chrome_binary RUN /opt/bin/wrap_chrome_binary -USER 1200 - #============================================ # Chrome webdriver #============================================ # can specify versions by CHROME_DRIVER_VERSION -# Latest released version will be used by default +# Latest released version (following browser version) will be used by default #============================================ -ARG CHROME_DRIVER_VERSION +ARG CHROME_DRIVER_VERSION=$CHROME_VERSION RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ - then CHROME_DRIVER_URL=https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip ; \ - else echo "Geting ChromeDriver latest version from https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_" \ - && CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+)(\.[0-9]+){3}.*/\1/") \ - && CHROME_DRIVER_VERSION=$(wget -qO- https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \ - && CHROME_DRIVER_URL=https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip ; \ + then GET_VERSION_URL=$VERSION_HOST/$CHROME_DRIVER_VERSION \ + && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $GET_VERSION_URL) -eq 200 ]; \ + then echo "Getting ChromeDriver version from "$GET_VERSION_URL \ + && CHROME_DRIVER_VERSION=$(wget -qO- $VERSION_HOST"/"$CHROME_DRIVER_VERSION | sed 's/\r$//') ; \ + fi \ + else CHROME_DRIVER_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+(\.[0-9]+)+).*/\1/") \ + && echo "Getting ChromeDriver same as browser version "$CHROME_DRIVER_VERSION ; \ + fi \ + && CHROME_DRIVER_URL=$DOWNLOAD_HOST/$CHROME_DRIVER_VERSION/$CHROME_PLATFORM/chromedriver-$CHROME_PLATFORM.zip \ + && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $CHROME_DRIVER_URL) -ne 200 ]; \ + then CHROME_MAJOR_VERSION=$(echo $CHROME_DRIVER_VERSION | sed -E "s/([0-9]+).*/\1/") \ + && echo "Getting ChromeDriver latest major version from "$VERSION_HOST"/LATEST_RELEASE_"$CHROME_MAJOR_VERSION \ + && CHROME_DRIVER_VERSION=$(wget -qO- $VERSION_HOST/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \ + && CHROME_DRIVER_URL=$DOWNLOAD_HOST/$CHROME_DRIVER_VERSION/$CHROME_PLATFORM/chromedriver-$CHROME_PLATFORM.zip ; \ fi \ && echo "Using ChromeDriver from: "$CHROME_DRIVER_URL \ && echo "Using ChromeDriver version: "$CHROME_DRIVER_VERSION \ - && wget --no-verbose -O /tmp/chromedriver_linux64.zip $CHROME_DRIVER_URL \ + && wget --no-verbose -O /tmp/chromedriver_$CHROME_PLATFORM.zip $CHROME_DRIVER_URL \ && rm -rf /opt/selenium/chromedriver \ - && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ - && rm /tmp/chromedriver_linux64.zip \ - && mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && unzip /tmp/chromedriver_$CHROME_PLATFORM.zip -d /opt/selenium \ + && rm /tmp/chromedriver_$CHROME_PLATFORM.zip \ + && mv /opt/selenium/chromedriver-$CHROME_PLATFORM/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver + && ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver + +USER 1200 #============================================ # Dumping Browser information for config #============================================ RUN echo "chrome" > /opt/selenium/browser_name -RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version +RUN google-chrome --version | awk '{print $5}' > /opt/selenium/browser_version RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" > /opt/selenium/browser_binary_location diff --git a/NodeEdge/Dockerfile b/NodeEdge/Dockerfile index 307244dec..7f26504ba 100644 --- a/NodeEdge/Dockerfile +++ b/NodeEdge/Dockerfile @@ -13,7 +13,7 @@ USER root # e.g. microsoft-edge-beta=88.0.692.0-1 #============================================ ARG EDGE_VERSION="microsoft-edge-stable" -RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ +RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg >/dev/null \ && echo "deb https://packages.microsoft.com/repos/edge stable main" >> /etc/apt/sources.list.d/microsoft-edge.list \ && apt-get update -qqy \ && apt-get -qqy install ${EDGE_VERSION} \ @@ -26,8 +26,6 @@ RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | apt-key add COPY wrap_edge_binary /opt/bin/wrap_edge_binary RUN /opt/bin/wrap_edge_binary -USER 1200 - #============================================ # Edge webdriver #============================================ @@ -46,7 +44,9 @@ RUN if [ -z "$EDGE_DRIVER_VERSION" ]; \ && rm /tmp/msedgedriver_linux64.zip \ && mv /opt/selenium/msedgedriver /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ && chmod 755 /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ - && sudo ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver + && ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver + +USER 1200 #============================================ # Dumping Browser information for config diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index 48d83bdb8..e79f641be 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -36,8 +36,18 @@ RUN GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = "latest" ]; then echo "0. && chmod 755 /opt/geckodriver-$GK_VERSION \ && ln -fs /opt/geckodriver-$GK_VERSION /usr/bin/geckodriver +# Workaround for issue launch Firefox Webdriver "Failed to read marionette port" +RUN mkdir -p /home/seluser/.cache /home/seluser/.mozilla /.cache \ + && chmod 777 /home/seluser/.cache /home/seluser/.mozilla /.cache + USER 1200 +RUN if ! whoami &> /dev/null; then \ + if [ -w /tmp/passwd ]; then \ + echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:/home/seluser:/tmp:/bin/bash" >> /tmp/passwd; \ + fi \ +fi + #============================================ # Dumping Browser information for config #============================================ diff --git a/Standalone/start-selenium-standalone.sh b/Standalone/start-selenium-standalone.sh index f1bf641a8..195bd1be7 100755 --- a/Standalone/start-selenium-standalone.sh +++ b/Standalone/start-selenium-standalone.sh @@ -42,4 +42,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ --bind-host ${SE_BIND_HOST} \ --config /opt/selenium/config.toml \ ${SUB_PATH_CONFIG} \ - ${SE_OPTS} \ No newline at end of file + ${SE_OPTS} diff --git a/charts/selenium-grid/ci/customIngressPath-values.yaml b/charts/selenium-grid/ci/customIngressPath-values.yaml new file mode 100644 index 000000000..e7812bc4a --- /dev/null +++ b/charts/selenium-grid/ci/customIngressPath-values.yaml @@ -0,0 +1,52 @@ +ingress: + annotations: + nginx.ingress.kubernetes.io/use-regex: "true" + nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/app-root: &gridAppRoot "/selenium" + hostname: "" + paths: + - path: /selenium(/|$)(.*) + pathType: Prefix + backend: + service: + name: '{{ template "seleniumGrid.router.fullname" $ }}' + port: + number: 4444 + - path: /(/?)(session/.*/se/vnc) + pathType: Prefix + backend: + service: + name: '{{ template "seleniumGrid.router.fullname" $ }}' + port: + number: 4444 + +basicAuth: + enabled: false +isolateComponents: true + +hub: + subPath: *gridAppRoot + +components: + subPath: *gridAppRoot + +chromeNode: + enabled: true + extraEnvironmentVariables: + - name: SE_NODE_OVERRIDE_MAX_SESSIONS + value: "true" + - name: SE_NODE_MAX_SESSIONS + value: "5" + startupProbe: + exec: + command: + - bash + - -c + - if [ $(curl --write-out %{http_code} --silent --output /dev/null http://selenium-router:4444/selenium/wd/hub/status) -ne 200 ]; then exit 1; fi + failureThreshold: 15 + periodSeconds: 5 + +edgeNode: + enabled: false +firefoxNode: + enabled: false diff --git a/tests/test.py b/tests/test.py index 18c2b4a57..16dbbbf30 100644 --- a/tests/test.py +++ b/tests/test.py @@ -173,9 +173,6 @@ def standalone_browser_container_matches(container): if use_random_user_id: logger.info("Running tests with a random user ID -> %s" % random_user_id) - if 'firefox' in image.lower(): - logger.info("Firefox has issues when running with a random user ID. Skipping until it gets fixed.") - exit(0) standalone = 'standalone' in image.lower() From c3938aacef8a93c0ca74eeb162e52c3d380548c9 Mon Sep 17 00:00:00 2001 From: ian zhang Date: Mon, 27 Nov 2023 18:00:38 +0800 Subject: [PATCH 047/100] Update service.name as selenium-node-chrome (#2026) node should not be the hub Co-authored-by: Diego Molina --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af30d662d..2e5a2967a 100644 --- a/README.md +++ b/README.md @@ -1210,7 +1210,7 @@ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ - -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-hub" \ + -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-chrome:4.15.0-20231122 From bbef734552ed81ed9f3d98a67364311488f0cdb4 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 27 Nov 2023 18:35:26 +0700 Subject: [PATCH 048/100] feat: CI Bot bump chart version along with new deploy image version (#2028) * Update appVersion for next deploy [skip ci] * Bump the chart version along with image version Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/Chart.yaml | 2 +- update_tag_in_docs_and_files.sh | 29 +++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index a5786c654..3bcf73628 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -3,7 +3,7 @@ name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application version: 0.25.1 -appVersion: 4.15.0-20231110 +appVersion: 4.15.0-20231122 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/update_tag_in_docs_and_files.sh b/update_tag_in_docs_and_files.sh index 43348cc37..3783f30f5 100755 --- a/update_tag_in_docs_and_files.sh +++ b/update_tag_in_docs_and_files.sh @@ -4,20 +4,45 @@ LATEST_TAG=$1 NEXT_TAG=$2 LATEST_DATE=$(echo ${LATEST_TAG} | sed 's/.*-//') NEXT_DATE=$(echo ${NEXT_TAG} | sed 's/.*-//') +latest_chart_app_version=$(find . \( -type d -name .git -prune \) -o -type f -name 'Chart.yaml' -print0 | xargs -0 cat | grep ^appVersion | cut -d ':' -f 2 | tr -d '[:space:]') echo -e "\033[0;32m Updating tag displayed in docs and files...\033[0m" echo -e "\033[0;32m LATEST_TAG -> ${LATEST_TAG}\033[0m" echo -e "\033[0;32m NEXT_TAG -> ${NEXT_TAG}\033[0m" # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`. -find . \( -type d -name .git -prune \) -o -type f ! -name 'Chart.yaml' -print0 | xargs -0 sed -i "s/${LATEST_TAG}/${NEXT_TAG}/g" +find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i "s/${LATEST_TAG}/${NEXT_TAG}/g" echo -e "\033[0;32m Updating date used in some docs and files...\033[0m" echo -e "\033[0;32m LATEST_DATE -> ${LATEST_DATE}\033[0m" echo -e "\033[0;32m NEXT_DATE -> ${NEXT_DATE}\033[0m" # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`. -find . \( -type d -name .git -prune \) -o -type f ! -name 'Chart.yaml' -print0 | xargs -0 sed -i "s/${LATEST_DATE}/${NEXT_DATE}/g" +find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i "s/${LATEST_DATE}/${NEXT_DATE}/g" + +# Bump chart version and appVersion if next tag is different +if [ "$latest_chart_app_version" == $LATEST_TAG ] && [ "$latest_chart_app_version" != "$NEXT_TAG" ]; then + IFS='.' read -ra latest_version_parts <<< "$LATEST_TAG" + IFS='.' read -ra next_version_parts <<< "$NEXT_TAG" + latest_chart_version=$(find . \( -type d -name .git -prune \) -o -type f -name 'Chart.yaml' -print0 | xargs -0 cat | grep ^version | cut -d ':' -f 2 | tr -d '[:space:]') + IFS='.' read -ra latest_chart_version_parts <<< "$latest_chart_version" + if [ "${latest_version_parts[0]}" != "${next_version_parts[0]}" ]; then + ((latest_chart_version_parts[0]++)) + latest_chart_version_parts[1]=0 + latest_chart_version_parts[2]=0 + elif [ "${latest_version_parts[1]}" != "${next_version_parts[1]}" ]; then + ((latest_chart_version_parts[1]++)) + latest_chart_version_parts[2]=0 + elif [ "${latest_version_parts[2]}" != "${next_version_parts[2]}" ]; then + ((latest_chart_version_parts[2]++)) + fi + next_chart_version="${latest_chart_version_parts[0]}.${latest_chart_version_parts[1]}.${latest_chart_version_parts[2]}" + echo -e "\033[0;32m Updating chart version...\033[0m" + echo -e "\033[0;32m LATEST_CHART_VERSION -> ${latest_chart_version}\033[0m" + echo -e "\033[0;32m NEXT_CHART_VERSION -> ${next_chart_version}\033[0m" + # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`. + find . \( -type d -name .git -prune \) -o -type f -name 'Chart.yaml' -print0 | xargs -0 sed -i "s/${latest_chart_version}/${next_chart_version}/g" +fi git diff | cat From e56a1fcf8db73d667c5ce16fefd5867236a18303 Mon Sep 17 00:00:00 2001 From: Amar Deep Singh <50517840+amardeep2006@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:27:53 +0530 Subject: [PATCH 049/100] Feature run selenium tests grid on kubernetes via helm chart (#2027) * feat(k8stests): added kubernetes tests cases * docs(keda): updated readme to keda version 2.12 * chore(optimize): matrix strategy in workflow * chore(docker): allow time to docker pull images * fix(dry-principle): Reusing existing test.py --- .github/workflows/helm-chart-test.yml | 67 +++++++++++++++++++ charts/selenium-grid/README.md | 6 +- tests/SeleniumTests/__init__.py | 8 +-- tests/SmokeTests/__init__.py | 4 +- tests/kind-cluster-config.yaml | 18 +++++ .../override-kind-auth-NodeChrome-values.yaml | 13 ++++ tests/override-kind-auth-NodeEdge-values.yaml | 13 ++++ ...override-kind-auth-NodeFirefox-values.yaml | 13 ++++ 8 files changed, 133 insertions(+), 9 deletions(-) create mode 100644 tests/kind-cluster-config.yaml create mode 100644 tests/override-kind-auth-NodeChrome-values.yaml create mode 100644 tests/override-kind-auth-NodeEdge-values.yaml create mode 100644 tests/override-kind-auth-NodeFirefox-values.yaml diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index cf8f8c439..3f3b53f05 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -9,8 +9,12 @@ on: - 'charts/selenium-grid/**' workflow_dispatch: +permissions: + contents: read + jobs: lint-test: + name: "Lint Tests with ct" runs-on: ubuntu-latest steps: - name: Checkout @@ -45,6 +49,69 @@ jobs: - name: Create kind cluster uses: helm/kind-action@v1.8.0 + with: + config: ./tests/kind-cluster-config.yaml - name: Run chart-testing (install) run: ct install --all --config tests/chart-test.yaml + + deploy-grid-selenium-tests: + name: "Run Selenium Tests on K8s" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + browser: [NodeChrome,NodeEdge,NodeFirefox] + steps: + + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.13.2 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + check-latest: true + + - name: Create kind cluster + uses: helm/kind-action@v1.8.0 + with: + config: ./tests/kind-cluster-config.yaml + + # 👋 Documentation link for Ingress Installation on kind k8s cluster https://kind.sigs.k8s.io/docs/user/ingress + - name: Install ingress-nginx on kind kubernetes cluster + run: | + kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml + kubectl wait --namespace ingress-nginx \ + --for=condition=ready pod \ + --selector=app.kubernetes.io/component=controller \ + --timeout=90s + + - name: Deploy Selenium Grid Chart + run: | + helm repo add kedacore https://kedacore.github.io/charts + helm repo update + helm dependency build charts/selenium-grid + helm upgrade --install selenium-grid -f ./tests/override-kind-auth-${{matrix.browser}}-values.yaml charts/selenium-grid --namespace selenium-grid-test --create-namespace + kubectl get ingress --all-namespaces + + - name: Verify Post Deployment Grid Health and k8s pods status + run: | + sleep 20 # Allow Kubernetes to pull Docker Images and start Pods + python ./tests/K8sSmokeTest.py "http://localhost" + kubectl get pods -n selenium-grid-test + kubectl get events -n selenium-grid-test + + - name: Run Selenium Tests Against Kubernetes + run: | + export SELENIUM_GRID_HOST=localhost + export SELENIUM_GRID_PORT=80 + export RUN_IN_DOCKER_COMPOSE=true + ./tests/bootstrap.sh ${{matrix.browser}} \ No newline at end of file diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index c912d206e..bcd2ad492 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -36,13 +36,13 @@ helm install selenium-grid --set ingress.hostname=selenium-grid.k8s.local docker Selenium Grid has the ability to autoscale browser nodes up/down based on the pending requests in the session queue. -To do this [KEDA](https://keda.sh/docs/2.10/scalers/selenium-grid-scaler/) is used. When enabling +To do this [KEDA](https://keda.sh/docs/2.12/scalers/selenium-grid-scaler/) is used. When enabling autoscaling using `autoscaling.enabling` KEDA is installed automatically. To instead use an existing installation of KEDA you can enable autoscaling with `autoscaling.enableWithExistingKEDA` instead. KEDA can scale either with -[deployments](https://keda.sh/docs/2.10/concepts/scaling-deployments/#scaling-of-deployments-and-statefulsets) -or [jobs](https://keda.sh/docs/2.10/concepts/scaling-jobs/) and the charts support both types. This +[deployments](https://keda.sh/docs/2.12/concepts/scaling-deployments/#scaling-of-deployments-and-statefulsets) +or [jobs](https://keda.sh/docs/2.12/concepts/scaling-jobs/) and the charts support both types. This chart support both modes. It is controlled with `autoscaling.scalingType` that can be set to either job (default) or deployment. diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index 2590fdfa1..fb6308308 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -9,7 +9,7 @@ from selenium.webdriver.chrome.options import Options as ChromeOptions SELENIUM_GRID_HOST = os.environ.get('SELENIUM_GRID_HOST', 'localhost') - +SELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444') class SeleniumGenericTests(unittest.TestCase): @@ -70,14 +70,14 @@ class ChromeTests(SeleniumGenericTests): def setUp(self): self.driver = webdriver.Remote( options=ChromeOptions(), - command_executor="http://%s:4444" % SELENIUM_GRID_HOST + command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) ) class EdgeTests(SeleniumGenericTests): def setUp(self): self.driver = webdriver.Remote( options=EdgeOptions(), - command_executor="http://%s:4444" % SELENIUM_GRID_HOST + command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) ) @@ -85,7 +85,7 @@ class FirefoxTests(SeleniumGenericTests): def setUp(self): self.driver = webdriver.Remote( options=FirefoxOptions(), - command_executor="http://%s:4444" % SELENIUM_GRID_HOST + command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) ) def test_title_and_maximize_window(self): diff --git a/tests/SmokeTests/__init__.py b/tests/SmokeTests/__init__.py index a8cc48421..6a672d2af 100644 --- a/tests/SmokeTests/__init__.py +++ b/tests/SmokeTests/__init__.py @@ -9,7 +9,7 @@ from urllib.request import urlopen SELENIUM_GRID_HOST = os.environ.get('SELENIUM_GRID_HOST', 'localhost') - +SELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444') class SmokeTests(unittest.TestCase): def smoke_test_container(self, port): @@ -35,4 +35,4 @@ def smoke_test_container(self, port): class GridTest(SmokeTests): def test_grid_is_up(self): - self.smoke_test_container(4444) + self.smoke_test_container('%s' % SELENIUM_GRID_PORT) diff --git a/tests/kind-cluster-config.yaml b/tests/kind-cluster-config.yaml new file mode 100644 index 000000000..f0bcacd1b --- /dev/null +++ b/tests/kind-cluster-config.yaml @@ -0,0 +1,18 @@ +# This Config is required for KIND cluster to enable ingress. Documented here https://kind.sigs.k8s.io/docs/user/ingress +kind: Cluster +apiVersion: kind.x-k8s.io/v1alpha4 +nodes: +- role: control-plane + kubeadmConfigPatches: + - | + kind: InitConfiguration + nodeRegistration: + kubeletExtraArgs: + node-labels: "ingress-ready=true" + extraPortMappings: + - containerPort: 80 + hostPort: 80 + protocol: TCP + - containerPort: 443 + hostPort: 443 + protocol: TCP diff --git a/tests/override-kind-auth-NodeChrome-values.yaml b/tests/override-kind-auth-NodeChrome-values.yaml new file mode 100644 index 000000000..e3628ac84 --- /dev/null +++ b/tests/override-kind-auth-NodeChrome-values.yaml @@ -0,0 +1,13 @@ +# This is used in Helm chart testing. This disables the basic auth on seleneium grid +# Basic auth settings for Selenium Grid +basicAuth: + # Enable or disable basic auth + enabled: false +# Configuration for edge nodes +edgeNode: + # Enable edge nodes + enabled: false +# Configuration for firefox nodes +firefoxNode: + # Enable firefox nodes + enabled: false diff --git a/tests/override-kind-auth-NodeEdge-values.yaml b/tests/override-kind-auth-NodeEdge-values.yaml new file mode 100644 index 000000000..936745c23 --- /dev/null +++ b/tests/override-kind-auth-NodeEdge-values.yaml @@ -0,0 +1,13 @@ +# This is used in Helm chart testing. This disables the basic auth on seleneium grid +# Basic auth settings for Selenium Grid +basicAuth: + # Enable or disable basic auth + enabled: false +# Configuration for chrome nodes +chromeNode: + # Enable chrome nodes + enabled: false +# Configuration for firefox nodes +firefoxNode: + # Enable firefox nodes + enabled: false diff --git a/tests/override-kind-auth-NodeFirefox-values.yaml b/tests/override-kind-auth-NodeFirefox-values.yaml new file mode 100644 index 000000000..d679cbfa7 --- /dev/null +++ b/tests/override-kind-auth-NodeFirefox-values.yaml @@ -0,0 +1,13 @@ +# This is used in Helm chart testing. This disables the basic auth on seleneium grid +# Basic auth settings for Selenium Grid +basicAuth: + # Enable or disable basic auth + enabled: false +# Configuration for chrome nodes +chromeNode: + # Enable chrome nodes + enabled: false +# Configuration for edge nodes +edgeNode: + # Enable edge nodes + enabled: false From 7b3dfe970072c58e5f8a88fca4cb5e3e95133f94 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Tue, 28 Nov 2023 17:37:16 +0700 Subject: [PATCH 050/100] test: Sanity tests Selenium Grid chart via Makefile commands (#2029) [deploy] --- .github/workflows/build-test.yml | 7 +- .github/workflows/deploy.yml | 2 +- .github/workflows/helm-chart-test.yml | 136 +++++------------- .github/workflows/label-commenter.yml | 2 +- .github/workflows/test-video.yml | 9 +- Makefile | 28 +++- charts/selenium-grid/TESTING.md | 44 ++++++ .../selenium-grid/ci/NodeChrome-values.yaml | 11 +- .../selenium-grid/ci/NodeEdge-values.yaml | 11 +- .../selenium-grid/ci/NodeFirefox-values.yaml | 13 +- ...h-values.yaml => auth-ingress-values.yaml} | 25 +--- .../selenium-grid/ci/autoscaling-values.yaml | 5 + .../ci/overrideNameChrome-values.yaml | 9 -- .../ci/overrideNameEdge-values.yaml | 9 -- .../ci/overrideNameFirefox-values.yaml | 9 -- .../chart-testing.yaml} | 2 + tests/K8s/chart_cluster_cleanup.sh | 11 ++ tests/K8s/chart_cluster_setup.sh | 51 +++++++ tests/K8s/chart_install.sh | 61 ++++++++ tests/K8s/chart_lint.sh | 28 ++++ tests/K8s/chart_setup_env.sh | 49 +++++++ tests/{ => K8s}/kind-cluster-config.yaml | 0 tests/K8sSmokeTest.py | 47 ------ tests/SmokeTests/__init__.py | 19 ++- 24 files changed, 358 insertions(+), 230 deletions(-) create mode 100644 charts/selenium-grid/TESTING.md rename tests/override-kind-auth-NodeEdge-values.yaml => charts/selenium-grid/ci/NodeChrome-values.yaml (52%) rename tests/override-kind-auth-NodeChrome-values.yaml => charts/selenium-grid/ci/NodeEdge-values.yaml (52%) rename tests/override-kind-auth-NodeFirefox-values.yaml => charts/selenium-grid/ci/NodeFirefox-values.yaml (51%) rename charts/selenium-grid/ci/{customIngressPath-values.yaml => auth-ingress-values.yaml} (55%) create mode 100644 charts/selenium-grid/ci/autoscaling-values.yaml delete mode 100644 charts/selenium-grid/ci/overrideNameChrome-values.yaml delete mode 100644 charts/selenium-grid/ci/overrideNameEdge-values.yaml delete mode 100644 charts/selenium-grid/ci/overrideNameFirefox-values.yaml rename tests/{chart-test.yaml => K8s/chart-testing.yaml} (60%) mode change 100644 => 100755 create mode 100755 tests/K8s/chart_cluster_cleanup.sh create mode 100755 tests/K8s/chart_cluster_setup.sh create mode 100755 tests/K8s/chart_install.sh create mode 100755 tests/K8s/chart_lint.sh create mode 100755 tests/K8s/chart_setup_env.sh rename tests/{ => K8s}/kind-cluster-config.yaml (100%) mode change 100644 => 100755 delete mode 100644 tests/K8sSmokeTest.py diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 177aa6d04..6ec2a7d98 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -12,7 +12,7 @@ jobs: # Skip job based on the commit message, only works in push to branches for now if: contains(toJson(github.event.commits), '[skip ci]') == false name: Build & test Docker images with random user - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: use-random-user: [false, true] @@ -20,10 +20,11 @@ jobs: - uses: actions/checkout@v4 - name: Output Docker info run: docker info - - name: Set up Python 3.8 + - name: Set up Python uses: actions/setup-python@v4.7.1 with: - python-version: 3.8 + python-version: '3.11' + check-latest: true - name: Get branch name (only for push to branch) if: github.event_name == 'push' run: echo "BRANCH=$(echo ${PUSH_BRANCH##*/})" >> $GITHUB_ENV diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2ba5222d4..8b4c99084 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -10,7 +10,7 @@ jobs: # Only continue if the commit message has '[deploy]' in it if: contains(toJson(github.event.commits), '[deploy]') == true name: Deploy Docker images - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 3f3b53f05..9d2c4a8fc 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -13,105 +13,47 @@ permissions: contents: read jobs: - lint-test: - name: "Lint Tests with ct" + build-and-test: + # Skip job based on the commit message, only works in push to branches for now + if: contains(toJson(github.event.commits), '[skip ci]') == false + name: Build & test Docker images with Helm charts runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Helm - uses: azure/setup-helm@v3 - with: - version: v3.13.2 - + - uses: actions/checkout@v4 + - name: Output Docker info + run: docker info - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v4.7.1 with: - python-version: '3.10' + python-version: '3.11' check-latest: true - - - name: Set up chart-testing - uses: helm/chart-testing-action@v2.6.1 - - - name: Run chart-testing (list-changed) - id: list-changed - run: | - changed=$(ct list-changed --config tests/chart-test.yaml) - if [[ -n "$changed" ]]; then - echo "{changed}={true}" >> $GITHUB_OUTPUT - fi - - - name: Run chart-testing (lint) - run: ct lint --config tests/chart-test.yaml - - - name: Create kind cluster - uses: helm/kind-action@v1.8.0 - with: - config: ./tests/kind-cluster-config.yaml - - - name: Run chart-testing (install) - run: ct install --all --config tests/chart-test.yaml - - deploy-grid-selenium-tests: - name: "Run Selenium Tests on K8s" - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - browser: [NodeChrome,NodeEdge,NodeFirefox] - steps: - - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Helm - uses: azure/setup-helm@v3 - with: - version: v3.13.2 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - check-latest: true - - - name: Create kind cluster - uses: helm/kind-action@v1.8.0 - with: - config: ./tests/kind-cluster-config.yaml - - # 👋 Documentation link for Ingress Installation on kind k8s cluster https://kind.sigs.k8s.io/docs/user/ingress - - name: Install ingress-nginx on kind kubernetes cluster - run: | - kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml - kubectl wait --namespace ingress-nginx \ - --for=condition=ready pod \ - --selector=app.kubernetes.io/component=controller \ - --timeout=90s - - - name: Deploy Selenium Grid Chart - run: | - helm repo add kedacore https://kedacore.github.io/charts - helm repo update - helm dependency build charts/selenium-grid - helm upgrade --install selenium-grid -f ./tests/override-kind-auth-${{matrix.browser}}-values.yaml charts/selenium-grid --namespace selenium-grid-test --create-namespace - kubectl get ingress --all-namespaces - - - name: Verify Post Deployment Grid Health and k8s pods status - run: | - sleep 20 # Allow Kubernetes to pull Docker Images and start Pods - python ./tests/K8sSmokeTest.py "http://localhost" - kubectl get pods -n selenium-grid-test - kubectl get events -n selenium-grid-test - - - name: Run Selenium Tests Against Kubernetes - run: | - export SELENIUM_GRID_HOST=localhost - export SELENIUM_GRID_PORT=80 - export RUN_IN_DOCKER_COMPOSE=true - ./tests/bootstrap.sh ${{matrix.browser}} \ No newline at end of file + - name: Get branch name (only for push to branch) + if: github.event_name == 'push' + run: echo "BRANCH=$(echo ${PUSH_BRANCH##*/})" >> $GITHUB_ENV + env: + PUSH_BRANCH: ${{ github.ref }} + - name: Get target branch name (only for PRs) + if: github.event_name == 'pull_request' + run: echo "BRANCH=$(echo ${TARGET_BRANCH##*/})" >> $GITHUB_ENV + env: + TARGET_BRANCH: ${{ github.head_ref }} + - name: Output branch name + run: echo ${BRANCH} + - name: Sets build date + run: echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV + - name: Build Docker images + run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build + - name: Setup Kubernetes environment + run: make chart_setup_env + - name: Setup Kubernetes cluster + run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup + - name: Test Selenium Grid on Kubernetes + uses: nick-invision/retry@v2.9.0 + with: + timeout_minutes: 20 + max_attempts: 3 + command: | + VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test + - name: Cleanup Kubernetes cluster + if: always() + run: make chart_cluster_cleanup diff --git a/.github/workflows/label-commenter.yml b/.github/workflows/label-commenter.yml index 08861192a..bf2e02b25 100644 --- a/.github/workflows/label-commenter.yml +++ b/.github/workflows/label-commenter.yml @@ -11,7 +11,7 @@ permissions: jobs: comment: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Label Commenter diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index 3e7c34498..da59f8a8f 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -12,15 +12,16 @@ jobs: # Skip job based on the commit message, only works in push to branches for now if: contains(toJson(github.event.commits), '[skip ci]') == false name: Test video recorded through Docker Selenium - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Output Docker info run: docker info - - name: Set up Python 3.8 + - name: Set up Python uses: actions/setup-python@v4.7.1 with: - python-version: 3.8 + python-version: '3.11' + check-latest: true - name: Get branch name (only for push to branch) if: github.event_name == 'push' run: echo "BRANCH=$(echo ${PUSH_BRANCH##*/})" >> $GITHUB_ENV @@ -51,4 +52,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: firefox_video - path: ./tests/videos/firefox_video.mp4 \ No newline at end of file + path: ./tests/videos/firefox_video.mp4 diff --git a/Makefile b/Makefile index 5d4590d8e..e207c209e 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ NAME := $(or $(NAME),$(NAME),selenium) CURRENT_DATE := $(shell date '+%Y%m%d') BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE)) -VERSION := $(or $(VERSION),$(VERSION),4.11.0) +VERSION := $(or $(VERSION),$(VERSION),4.15.0) TAG_VERSION := $(VERSION)-$(BUILD_DATE) NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME)) AUTHORS := $(or $(AUTHORS),$(AUTHORS),SeleniumHQ) @@ -361,6 +361,32 @@ test_video: video hub chrome firefox edge docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log +chart_setup_env: + ./tests/K8s/chart_setup_env.sh + +chart_test: chart_lint \ + chart_install_chrome \ + chart_install_firefox \ + chart_install_edge + +chart_cluster_setup: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_cluster_setup.sh + +chart_lint: + ./tests/K8s/chart_lint.sh + +chart_install_chrome: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_install.sh NodeChrome + +chart_install_firefox: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_install.sh NodeFirefox + +chart_install_edge: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_install.sh NodeEdge + +chart_cluster_cleanup: + ./tests/K8s/chart_cluster_cleanup.sh + .PHONY: \ all \ base \ diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md new file mode 100644 index 000000000..aee1c772b --- /dev/null +++ b/charts/selenium-grid/TESTING.md @@ -0,0 +1,44 @@ +# Testing Selenium Grid Helm Chart + +All related testing to this helm chart will be documented in this file. + +## Test Traceability Matrix + +| Features | TC Description | Coverage | +|------------------------|----------------------------------------------------------------------|----------| +| Basic Auth | Basic Auth is disabled | ✓ | +| | Basic Auth is enabled | ✗ | +| Auto scaling | Auto scaling with `enableWithExistingKEDA` is `true` | ✓ | +| | Auto scaling with `scalingType` is `job` | ✓ | +| | Auto scaling with `scalingType` is `deployment` | ✗ | +| | Auto scaling with `autoscaling.scaledOptions.minReplicaCount` is `0` | ✓ | +| Ingress | Ingress is enabled without `hostname` | ✓ | +| | Hub `sub-path` is set with Ingress `ImplementationSpecific` paths | ✓ | +| Distributed components | `isolateComponents` is enabled | ✓ | +| Browser Nodes | Node `nameOverride` is set | ✓ | +| | Sanity tests in node | ✓ | +| | Video recorder is enabled in node | ✗ | + +## Build & test Docker images with Helm charts +Noted: These `make` commands are composed and tested on Linux x86_64. +Run entire commands to build and test Docker images with Helm charts in local environment. + +```bash +# Back to root directory +cd ../.. + +# Build Docker images +make build + +# Setup Kubernetes environment +make chart_setup_env + +# Setup Kubernetes cluster +make chart_cluster_setup + +# Test Selenium Grid on Kubernetes +make chart_test + +# Cleanup Kubernetes cluster +make chart_cluster_cleanup +``` diff --git a/tests/override-kind-auth-NodeEdge-values.yaml b/charts/selenium-grid/ci/NodeChrome-values.yaml similarity index 52% rename from tests/override-kind-auth-NodeEdge-values.yaml rename to charts/selenium-grid/ci/NodeChrome-values.yaml index 936745c23..f3c30c48d 100644 --- a/tests/override-kind-auth-NodeEdge-values.yaml +++ b/charts/selenium-grid/ci/NodeChrome-values.yaml @@ -1,13 +1,10 @@ -# This is used in Helm chart testing. This disables the basic auth on seleneium grid -# Basic auth settings for Selenium Grid -basicAuth: - # Enable or disable basic auth - enabled: false +# This is used in Helm chart testing. This disables the basic auth on selenium grid # Configuration for chrome nodes chromeNode: - # Enable chrome nodes + nameOverride: my-chrome-name +# Configuration for edge nodes +edgeNode: enabled: false # Configuration for firefox nodes firefoxNode: - # Enable firefox nodes enabled: false diff --git a/tests/override-kind-auth-NodeChrome-values.yaml b/charts/selenium-grid/ci/NodeEdge-values.yaml similarity index 52% rename from tests/override-kind-auth-NodeChrome-values.yaml rename to charts/selenium-grid/ci/NodeEdge-values.yaml index e3628ac84..1d1c13f9c 100644 --- a/tests/override-kind-auth-NodeChrome-values.yaml +++ b/charts/selenium-grid/ci/NodeEdge-values.yaml @@ -1,13 +1,10 @@ -# This is used in Helm chart testing. This disables the basic auth on seleneium grid -# Basic auth settings for Selenium Grid -basicAuth: - # Enable or disable basic auth +# This is used in Helm chart testing. This disables the basic auth on selenium grid +# Configuration for chrome nodes +chromeNode: enabled: false # Configuration for edge nodes edgeNode: - # Enable edge nodes - enabled: false + nameOverride: my-edge-name # Configuration for firefox nodes firefoxNode: - # Enable firefox nodes enabled: false diff --git a/tests/override-kind-auth-NodeFirefox-values.yaml b/charts/selenium-grid/ci/NodeFirefox-values.yaml similarity index 51% rename from tests/override-kind-auth-NodeFirefox-values.yaml rename to charts/selenium-grid/ci/NodeFirefox-values.yaml index d679cbfa7..418d00b8a 100644 --- a/tests/override-kind-auth-NodeFirefox-values.yaml +++ b/charts/selenium-grid/ci/NodeFirefox-values.yaml @@ -1,13 +1,10 @@ -# This is used in Helm chart testing. This disables the basic auth on seleneium grid -# Basic auth settings for Selenium Grid -basicAuth: - # Enable or disable basic auth - enabled: false +# This is used in Helm chart testing. This disables the basic auth on selenium grid # Configuration for chrome nodes chromeNode: - # Enable chrome nodes - enabled: false + enabled: false # Configuration for edge nodes edgeNode: - # Enable edge nodes enabled: false +# Configuration for firefox nodes +firefoxNode: + nameOverride: my-firefox-name diff --git a/charts/selenium-grid/ci/customIngressPath-values.yaml b/charts/selenium-grid/ci/auth-ingress-values.yaml similarity index 55% rename from charts/selenium-grid/ci/customIngressPath-values.yaml rename to charts/selenium-grid/ci/auth-ingress-values.yaml index e7812bc4a..459d218d3 100644 --- a/charts/selenium-grid/ci/customIngressPath-values.yaml +++ b/charts/selenium-grid/ci/auth-ingress-values.yaml @@ -6,14 +6,14 @@ ingress: hostname: "" paths: - path: /selenium(/|$)(.*) - pathType: Prefix + pathType: ImplementationSpecific backend: service: name: '{{ template "seleniumGrid.router.fullname" $ }}' port: number: 4444 - path: /(/?)(session/.*/se/vnc) - pathType: Prefix + pathType: ImplementationSpecific backend: service: name: '{{ template "seleniumGrid.router.fullname" $ }}' @@ -29,24 +29,3 @@ hub: components: subPath: *gridAppRoot - -chromeNode: - enabled: true - extraEnvironmentVariables: - - name: SE_NODE_OVERRIDE_MAX_SESSIONS - value: "true" - - name: SE_NODE_MAX_SESSIONS - value: "5" - startupProbe: - exec: - command: - - bash - - -c - - if [ $(curl --write-out %{http_code} --silent --output /dev/null http://selenium-router:4444/selenium/wd/hub/status) -ne 200 ]; then exit 1; fi - failureThreshold: 15 - periodSeconds: 5 - -edgeNode: - enabled: false -firefoxNode: - enabled: false diff --git a/charts/selenium-grid/ci/autoscaling-values.yaml b/charts/selenium-grid/ci/autoscaling-values.yaml new file mode 100644 index 000000000..7fa80b2bb --- /dev/null +++ b/charts/selenium-grid/ci/autoscaling-values.yaml @@ -0,0 +1,5 @@ +autoscaling: + enableWithExistingKEDA: true + scalingType: job + scaledOptions: + minReplicaCount: 0 diff --git a/charts/selenium-grid/ci/overrideNameChrome-values.yaml b/charts/selenium-grid/ci/overrideNameChrome-values.yaml deleted file mode 100644 index 6fe143648..000000000 --- a/charts/selenium-grid/ci/overrideNameChrome-values.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# These desired is used to test the overrideName of the component -hub: - nameOverride: my-hub-name -chromeNode: - nameOverride: my-chrome-name -edgeNode: - enabled: false -firefoxNode: - enabled: false diff --git a/charts/selenium-grid/ci/overrideNameEdge-values.yaml b/charts/selenium-grid/ci/overrideNameEdge-values.yaml deleted file mode 100644 index 11f20066e..000000000 --- a/charts/selenium-grid/ci/overrideNameEdge-values.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# These desired is used to test the overrideName of the component -hub: - nameOverride: my-hub-name -chromeNode: - enabled: false -edgeNode: - nameOverride: my-edge-name -firefoxNode: - enabled: false diff --git a/charts/selenium-grid/ci/overrideNameFirefox-values.yaml b/charts/selenium-grid/ci/overrideNameFirefox-values.yaml deleted file mode 100644 index dcf4670ed..000000000 --- a/charts/selenium-grid/ci/overrideNameFirefox-values.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# These desired is used to test the overrideName of the component -hub: - nameOverride: my-hub-name -chromeNode: - enabled: false -edgeNode: - enabled: false -firefoxNode: - nameOverride: my-firefox-name diff --git a/tests/chart-test.yaml b/tests/K8s/chart-testing.yaml old mode 100644 new mode 100755 similarity index 60% rename from tests/chart-test.yaml rename to tests/K8s/chart-testing.yaml index e54edd7a3..7c085d076 --- a/tests/chart-test.yaml +++ b/tests/K8s/chart-testing.yaml @@ -1,3 +1,5 @@ +# This is config file for chart-testing tool. It is used to test Helm charts. +# https://github.com/helm/chart-testing target-branch: trunk chart-dirs: - charts diff --git a/tests/K8s/chart_cluster_cleanup.sh b/tests/K8s/chart_cluster_cleanup.sh new file mode 100755 index 000000000..972a9e8b6 --- /dev/null +++ b/tests/K8s/chart_cluster_cleanup.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +echo "Set ENV variables" +CLUSTER_NAME=${CLUSTER_NAME:-"chart-testing"} + +cleanup() { + echo "Clean up kind cluster" + kind delete clusters ${CLUSTER_NAME} +} + +cleanup diff --git a/tests/K8s/chart_cluster_setup.sh b/tests/K8s/chart_cluster_setup.sh new file mode 100755 index 000000000..cfddcd754 --- /dev/null +++ b/tests/K8s/chart_cluster_setup.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +echo "Set ENV variables" +CLUSTER_NAME=${CLUSTER_NAME:-"chart-testing"} +RELEASE_NAME=${RELEASE_NAME:-"test"} +SELENIUM_NAMESPACE=${SELENIUM_NAMESPACE:-"selenium"} +KEDA_NAMESPACE=${KEDA_NAMESPACE:-"keda"} +INGRESS_NAMESPACE=${INGRESS_NAMESPACE:-"ingress-nginx"} +SUB_PATH=${SUB_PATH:-"/selenium"} +CHART_PATH=${CHART_PATH:-"charts/selenium-grid"} +TEST_VALUES_PATH=${TEST_VALUES_PATH:-"charts/selenium-grid/ci"} +SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST:-"localhost"} +SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT:-"80"} +WAIT_TIMEOUT=${WAIT_TIMEOUT:-"90s"} +SKIP_CLEANUP=${SKIP_CLEANUP:-"false"} # For debugging purposes, retain the cluster after the test run + +# Function to clean up for retry step on workflow +cleanup() { + if [ "${SKIP_CLEANUP}" = "false" ]; then + ./tests/K8s/chart_cluster_cleanup.sh + fi +} + +# Function to be executed on command failure +on_failure() { + echo "There is step failed with exit status $?" + cleanup + exit $? +} + +# Trap ERR signal and call on_failure function +trap 'on_failure' ERR + +echo "Create Kind cluster" +kind create cluster --wait ${WAIT_TIMEOUT} --name ${CLUSTER_NAME} --config tests/K8s/kind-cluster-config.yaml + +echo "Install KEDA core on kind kubernetes cluster" +kubectl apply --server-side -f https://github.com/kedacore/keda/releases/download/v2.12.1/keda-2.12.1-core.yaml + +echo "Install ingress-nginx on kind kubernetes cluster" +kubectl apply -n ${INGRESS_NAMESPACE} -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml +kubectl wait --namespace ${INGRESS_NAMESPACE} \ + --for=condition=ready pod \ + --selector=app.kubernetes.io/component=controller \ + --timeout=${WAIT_TIMEOUT} + +echo "Load built local Docker Images into Kind Cluster" +image_list=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep ${NAMESPACE} | grep ${VERSION}) +for image in $image_list; do + kind load docker-image --name ${CLUSTER_NAME} "$image" +done diff --git a/tests/K8s/chart_install.sh b/tests/K8s/chart_install.sh new file mode 100755 index 000000000..a19113395 --- /dev/null +++ b/tests/K8s/chart_install.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +echo "Set ENV variables" +CLUSTER_NAME=${CLUSTER_NAME:-"chart-testing"} +RELEASE_NAME=${RELEASE_NAME:-"test"} +SELENIUM_NAMESPACE=${SELENIUM_NAMESPACE:-"selenium"} +KEDA_NAMESPACE=${KEDA_NAMESPACE:-"keda"} +INGRESS_NAMESPACE=${INGRESS_NAMESPACE:-"ingress-nginx"} +SUB_PATH=${SUB_PATH:-"/selenium"} +CHART_PATH=${CHART_PATH:-"charts/selenium-grid"} +TEST_VALUES_PATH=${TEST_VALUES_PATH:-"charts/selenium-grid/ci"} +SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST:-"localhost"} +SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT:-"80"} +MATRIX_BROWSER=${1:-"NodeChrome"} +SELENIUM_GRID_AUTOSCALING=${2:-"true"} +SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=${3:-"0"} +WAIT_TIMEOUT=${WAIT_TIMEOUT:-"90s"} +SLEEP_INTERVAL=${SLEEP_INTERVAL:-45} +SKIP_CLEANUP=${SKIP_CLEANUP:-"false"} # For debugging purposes, retain the cluster after the test run + +cleanup() { + if [ "${SKIP_CLEANUP}" = "false" ]; then + echo "Clean up chart release and namespace" + helm delete ${RELEASE_NAME} --namespace ${SELENIUM_NAMESPACE} + kubectl delete namespace ${SELENIUM_NAMESPACE} + fi +} + +# Function to be executed on command failure +on_failure() { + echo "There is step failed with exit status $?" + cleanup + exit $? +} + +# Trap ERR signal and call on_failure function +trap 'on_failure' ERR + +echo "Deploy Selenium Grid Chart" +helm upgrade --install ${RELEASE_NAME} \ +-f ${TEST_VALUES_PATH}/auth-ingress-values.yaml \ +-f ${TEST_VALUES_PATH}/autoscaling-values.yaml \ +-f ${TEST_VALUES_PATH}/${MATRIX_BROWSER}-values.yaml \ +--set autoscaling.enableWithExistingKEDA=${SELENIUM_GRID_AUTOSCALING} \ +--set autoscaling.scaledOptions.minReplicaCount=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} \ +--set global.seleniumGrid.imageTag=${VERSION} \ +${CHART_PATH} --namespace ${SELENIUM_NAMESPACE} --create-namespace + +echo "Verify Post Deployment Grid Health and Pod Status" +kubectl get pods -n ${SELENIUM_NAMESPACE} + +echo "Run Tests" +export SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST} +export SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT}""${SUB_PATH} +export SELENIUM_GRID_AUTOSCALING=${SELENIUM_GRID_AUTOSCALING} +export SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} +export RUN_IN_DOCKER_COMPOSE=true +export SLEEP_INTERVAL=${SLEEP_INTERVAL} +./tests/bootstrap.sh ${MATRIX_BROWSER} + +cleanup diff --git a/tests/K8s/chart_lint.sh b/tests/K8s/chart_lint.sh new file mode 100755 index 000000000..25cd5df49 --- /dev/null +++ b/tests/K8s/chart_lint.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Function to be executed on command failure +on_failure() { + echo "There is step failed with exit status $?" + exit $? +} + +# Trap ERR signal and call on_failure function +trap 'on_failure' ERR + +cd tests || true + +if [ "${CI:-false}" = "false" ]; then + pip3 install virtualenv | grep -v 'Requirement already satisfied' + virtualenv docker-selenium-tests + source docker-selenium-tests/bin/activate +fi + +python -m pip install yamale==4.0.4 \ + yamllint==1.33.0 \ + | grep -v 'Requirement already satisfied' + +cd .. +ct lint --all --config tests/K8s/chart-testing.yaml + +if [ "${CI:-false}" = "false" ]; then + deactivate +fi diff --git a/tests/K8s/chart_setup_env.sh b/tests/K8s/chart_setup_env.sh new file mode 100755 index 000000000..c4bf6e3bc --- /dev/null +++ b/tests/K8s/chart_setup_env.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# Function to be executed on command failure +on_failure() { + echo "There is step failed with exit status $?" + exit $? +} + +# Trap ERR signal and call on_failure function +trap 'on_failure' ERR + +if [ "$(uname -m)" = "x86_64" ]; then + echo "Installing kind for AMD64 / x86_64" + curl -fsSL -o ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64 + chmod +x ./kind + sudo cp -frp ./kind /usr/local/bin/kind + sudo ln -sf /usr/local/bin/kind /usr/bin/kind + rm -rf kind + kind version + echo "===============================" + + echo "Installing kubectl for AMD64 / x86_64" + curl -fsSL -o ./kubectl "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + chmod +x ./kubectl + sudo cp -frp ./kubectl /usr/local/bin/kubectl + sudo ln -sf /usr/local/bin/kubectl /usr/bin/kubectl + rm -rf kubectl + kubectl version --client + echo "===============================" + + echo "Installing Helm for AMD64 / x86_64" + curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 + chmod 700 get_helm.sh + ./get_helm.sh + rm -rf get_helm.sh + helm version + echo "===============================" + + echo "Installing chart-testing for AMD64 / x86_64" + curl -fsSL -o ct.tar.gz https://github.com/helm/chart-testing/releases/download/v3.10.1/chart-testing_3.10.1_linux_amd64.tar.gz + sudo mkdir -p /opt/ct + sudo tar -xzf ct.tar.gz -C /opt/ct + sudo chmod +x /opt/ct/ct + sudo ln -sf /opt/ct/ct /usr/bin/ct + sudo cp -frp /opt/ct/ct /usr/local/bin/ct + sudo cp -frp /opt/ct/etc /etc/ct + rm -rf ct.tar.gz + ct version + echo "===============================" +fi diff --git a/tests/kind-cluster-config.yaml b/tests/K8s/kind-cluster-config.yaml old mode 100644 new mode 100755 similarity index 100% rename from tests/kind-cluster-config.yaml rename to tests/K8s/kind-cluster-config.yaml diff --git a/tests/K8sSmokeTest.py b/tests/K8sSmokeTest.py deleted file mode 100644 index 57f118be3..000000000 --- a/tests/K8sSmokeTest.py +++ /dev/null @@ -1,47 +0,0 @@ -import json -import sys -import time - -try: - from urllib2 import urlopen -except ImportError: - from urllib.request import urlopen - -SELENIUM_GRID_URL = sys.argv[1] -max_attempts = 6 -sleep_interval = 10 - - -def get_grid_status(): - try: - response = urlopen('%s/status' % (SELENIUM_GRID_URL)) - print("Response code: " + str(response.getcode())) - response = urlopen('%s/status' % (SELENIUM_GRID_URL)) - encoded_response = response.read() - encoding = response.headers.get_content_charset('utf-8') - decoded_response = encoded_response.decode(encoding) - print("Response: " + decoded_response) - response_json = json.loads(decoded_response) - return response_json['value']['ready'] - except Exception as e: - print(e) - return False - - -def wait_for_grid_to_get_ready(): - result = get_grid_status() - ctr=0 - while(not result): - ctr=ctr+1 - if(ctr>max_attempts): - print("Timed out. Grid is still not in ready state") - sys.exit(1) - - print("Grid is not in ready state. Waiting for {0} secs....".format(sleep_interval)) - time.sleep(sleep_interval) - result = get_grid_status() - print("Grid Status: " + str(result)) - print("Grid is in Ready state now") - - -wait_for_grid_to_get_ready() diff --git a/tests/SmokeTests/__init__.py b/tests/SmokeTests/__init__.py index 6a672d2af..2e5ef768b 100644 --- a/tests/SmokeTests/__init__.py +++ b/tests/SmokeTests/__init__.py @@ -10,27 +10,38 @@ SELENIUM_GRID_HOST = os.environ.get('SELENIUM_GRID_HOST', 'localhost') SELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444') +SELENIUM_GRID_AUTOSCALING = os.environ.get('SELENIUM_GRID_AUTOSCALING', 'false') +SELENIUM_GRID_AUTOSCALING_MIN_REPLICA = os.environ.get('SELENIUM_GRID_AUTOSCALING_MIN_REPLICA', 0) +SLEEP_INTERVAL = os.environ.get('SLEEP_INTERVAL', 3) class SmokeTests(unittest.TestCase): def smoke_test_container(self, port): current_attempts = 0 max_attempts = 3 - sleep_interval = 3 + sleep_interval = int(SLEEP_INTERVAL) status_fetched = False status_json = None + auto_scaling = SELENIUM_GRID_AUTOSCALING == 'true' + auto_scaling_min_replica = int(SELENIUM_GRID_AUTOSCALING_MIN_REPLICA) while current_attempts < max_attempts: current_attempts = current_attempts + 1 try: response = urlopen('http://%s:%s/status' % (SELENIUM_GRID_HOST, port)) status_json = json.loads(response.read()) - self.assertTrue(status_json['value']['ready'], "Container is not ready on port %s" % port) + if not auto_scaling or (auto_scaling and auto_scaling_min_replica > 0): + self.assertTrue(status_json['value']['ready'], "Container is not ready on port %s" % port) + else: + self.assertFalse(status_json['value']['ready'], "Container is autoscaling with min replica set to 0") status_fetched = True except Exception as e: time.sleep(sleep_interval) - self.assertTrue(status_fetched, "Container status was not fetched on port %s" % port) - self.assertTrue(status_json['value']['ready'], "Container is not ready on port %s" % port) + if not auto_scaling or (auto_scaling and auto_scaling_min_replica > 0): + self.assertTrue(status_fetched, "Container status was not fetched on port %s" % port) + self.assertTrue(status_json['value']['ready'], "Container is not ready on port %s" % port) + else: + self.assertFalse(status_json['value']['ready'], "Container is autoscaling with min replica set to 0") class GridTest(SmokeTests): From 57c78c0322f72f22be3fcf0698ad16f55a3dd516 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Tue, 28 Nov 2023 10:45:24 +0000 Subject: [PATCH 051/100] Update tag in docs and files [skip ci] --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/Chart.yaml | 4 +- charts/selenium-grid/README.md | 12 +-- charts/selenium-grid/values.yaml | 24 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 20 files changed, 158 insertions(+), 158 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f276a5ec8..293963a20 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.15.0-20231122? Please use the full tag, avoid "latest" + placeholder: 4.15.0-20231128? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index a8dd1dc6a..c014087a5 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231122", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.15.0-20231122", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.15.0-20231122", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.15.0-20231128", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.15.0-20231128", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.15.0-20231128", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231122" +video-image = "selenium/video:ffmpeg-6.0-20231128" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 2e5a2967a..8922b112b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231122). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231128). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -64,7 +64,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -251,17 +251,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231122 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231128 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -280,44 +280,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231122 + selenium/node-edge:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231122 + selenium/node-firefox:4.15.0-20231128 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.15.0-20231122 + selenium/node-edge:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.15.0-20231122 + selenium/node-firefox:4.15.0-20231128 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -334,7 +334,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231128 ``` ##### Node Chrome - Machine/VM 2 @@ -348,7 +348,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 ``` ###### Windows PowerShell @@ -360,7 +360,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 ``` @@ -375,7 +375,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.15.0-20231122 + selenium/node-edge:4.15.0-20231128 ``` ###### Windows PowerShell @@ -387,7 +387,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.15.0-20231122 + selenium/node-edge:4.15.0-20231128 ``` ##### Node Firefox - Machine/VM 4 @@ -401,7 +401,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.15.0-20231122 + selenium/node-firefox:4.15.0-20231128 ``` ###### Windows PowerShell @@ -413,7 +413,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.15.0-20231122 + selenium/node-firefox:4.15.0-20231128 ``` ##### Node Chrome - Machine/VM 4 @@ -428,7 +428,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 ``` ###### Windows PowerShell @@ -441,7 +441,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 ``` #### Docker Compose @@ -473,7 +473,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231122` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231128` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -499,8 +499,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231122 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231128 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -532,9 +532,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231122", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.15.0-20231122", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.15.0-20231122", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.15.0-20231128", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.15.0-20231128", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.15.0-20231128", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -547,7 +547,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231122" +video-image = "selenium/video:ffmpeg-6.0-20231128" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -566,28 +566,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231122 + selenium/node-docker:4.15.0-20231128 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231122 + selenium/node-docker:4.15.0-20231128 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -608,7 +608,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231122 + selenium/standalone-docker:4.15.0-20231128 ``` #### Windows PowerShell @@ -618,7 +618,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231122 + selenium/standalone-docker:4.15.0-20231128 ``` ### Using Dynamic Grid in different machines/VMs @@ -626,7 +626,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231128 ``` #### Node Chrome - Machine/VM 2 @@ -641,7 +641,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231122 + selenium/node-docker:4.15.0-20231128 ``` #### Windows PowerShell @@ -654,7 +654,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231122 + selenium/node-docker:4.15.0-20231128 ``` Complete the `[server]` section in the `config.toml` file. @@ -663,9 +663,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231122", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.15.0-20231122", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.15.0-20231122", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.15.0-20231128", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.15.0-20231128", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.15.0-20231128", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -678,7 +678,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231122" +video-image = "selenium/video:ffmpeg-6.0-20231128" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -712,7 +712,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231122 + selenium/standalone-docker:4.15.0-20231128 ``` #### Windows PowerShell @@ -723,7 +723,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231122 + selenium/standalone-docker:4.15.0-20231128 ``` @@ -761,7 +761,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231128 ``` ### SE_JAVA_OPTS Java Environment Options @@ -769,7 +769,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231122 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231128 ``` ### Node configuration options @@ -791,7 +791,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.15.0-20231122 + --shm-size="2g" selenium/node-chrome:4.15.0-20231128 ``` ### Setting Sub Path @@ -810,7 +810,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231122 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231128 ``` ### Grid Url and Session Timeout @@ -860,7 +860,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231122 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231128 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -873,7 +873,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -965,22 +965,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.15.0-20231122 + selenium/hub:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231122 + selenium/node-edge:4.15.0-20231128 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231122 + selenium/node-firefox:4.15.0-20231128 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1113,7 +1113,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.15.0-20231122 +FROM selenium/node-chrome:4.15.0-20231128 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1128,7 +1128,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.15.0-20231122 +FROM selenium/node-firefox:4.15.0-20231128 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1151,9 +1151,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231122 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231128 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 ``` Then, you would use in your VNC client: @@ -1179,9 +1179,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231122 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231122 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231122 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231128 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 ``` Then, you would use in your browser: @@ -1206,28 +1206,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231122 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231122 + selenium/node-chrome:4.15.0-20231128 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231122 + selenium/node-edge:4.15.0-20231128 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231122 + selenium/node-firefox:4.15.0-20231128 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1287,7 +1287,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.15.0-20231122 + selenium/standalone-chrome:4.15.0-20231128 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index fda597389..b92493cd0 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -17,7 +17,7 @@ All notable changes to this helm chart will be documented in this file. - feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.15.0-20231122 +- Update image tag to 4.15.0-20231128 ## :heavy_check_mark: 0.23.0 diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index 3bcf73628..d300a367d 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.25.1 -appVersion: 4.15.0-20231122 +version: 0.25.2 +appVersion: 4.15.0-20231128 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index bcd2ad492..3bb8dff49 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -85,8 +85,8 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.15.0-20231122` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231122` | Image tag for browser's nodes | +| `global.seleniumGrid.imageTag` | `4.15.0-20231128` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231128` | Image tag for browser's nodes | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -128,7 +128,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.15.0-20231122` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.15.0-20231128` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -167,7 +167,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.15.0-20231122` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.15.0-20231128` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -206,7 +206,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.15.0-20231122` | Image of edge nodes | +| `edgeNode.imageTag` | `4.15.0-20231128` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -243,7 +243,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231122` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231128` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 469dfe306..5467674a3 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,9 @@ global: seleniumGrid: # Image tag for all selenium components - imageTag: 4.15.0-20231122 + imageTag: 4.15.0-20231128 # Image tag for browser's nodes - nodesImageTag: 4.15.0-20231122 + nodesImageTag: 4.15.0-20231128 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -66,7 +66,7 @@ components: # Router image name imageName: selenium/router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -117,7 +117,7 @@ components: # Distributor image name imageName: selenium/distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -148,7 +148,7 @@ components: # Event Bus image name imageName: selenium/event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -183,7 +183,7 @@ components: # Session Map image name imageName: selenium/sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -213,7 +213,7 @@ components: # Session Queue image name imageName: selenium/session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -263,7 +263,7 @@ hub: # Selenium Hub image name imageName: selenium/hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -403,7 +403,7 @@ chromeNode: # Image of chrome nodes imageName: selenium/node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -535,7 +535,7 @@ firefoxNode: # Image of firefox nodes imageName: selenium/node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -664,7 +664,7 @@ edgeNode: # Image of edge nodes imageName: selenium/node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231122 + # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -782,7 +782,7 @@ videoRecorder: # Image of video recorder imageName: selenium/video # Image of video recorder - imageTag: ffmpeg-6.0-20231122 + imageTag: ffmpeg-6.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 53eedb26f..76d9e0e4a 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 259b5253c..d576b405e 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index da1413143..33a3e8ece 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 61a41298a..0a9693692 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 2b80682ca..20d19b70b 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.15.0-20231122 + image: selenium/node-docker:4.15.0-20231128 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 2d3c6c258..7690805bf 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231122 + image: selenium/event-bus:4.15.0-20231128 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231122 + image: selenium/sessions:4.15.0-20231128 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231122 + image: selenium/session-queue:4.15.0-20231128 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231122 + image: selenium/distributor:4.15.0-20231128 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231122 + image: selenium/router:4.15.0-20231128 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 9d35c94bb..7477b82cc 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 62fa03692..8d42d757c 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.15.0-20231122 + image: selenium/event-bus:4.15.0-20231128 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.15.0-20231122 + image: selenium/sessions:4.15.0-20231128 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.15.0-20231122 + image: selenium/session-queue:4.15.0-20231128 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.15.0-20231122 + image: selenium/distributor:4.15.0-20231128 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.15.0-20231122 + image: selenium/router:4.15.0-20231128 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 78a962995..497d58db3 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231122 + image: selenium/event-bus:4.15.0-20231128 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231122 + image: selenium/sessions:4.15.0-20231128 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231122 + image: selenium/session-queue:4.15.0-20231128 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231122 + image: selenium/distributor:4.15.0-20231128 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231122 + image: selenium/router:4.15.0-20231128 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 9d35c94bb..7477b82cc 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 30e5535ac..7173fbc66 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 7ae22d7a3..f481b8e25 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231122 + image: selenium/video:ffmpeg-6.0-20231128 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231122 + image: selenium/video:ffmpeg-6.0-20231128 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231122 + image: selenium/video:ffmpeg-6.0-20231128 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index d5641f2cb..e4c305204 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231122 + image: selenium/node-chrome:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231122 + image: selenium/node-edge:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231122 + image: selenium/node-firefox:4.15.0-20231128 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231122 + image: selenium/hub:4.15.0-20231128 container_name: selenium-hub ports: - "4442:4442" From e3304b41619d6e88377836c2fe09e0fcd81a917a Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 29 Nov 2023 14:32:59 +0700 Subject: [PATCH 052/100] bug(#1888): TimeZone change behavior changed (#2031) Signed-off-by: Viet Nguyen Duc --- Base/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 0e2481ddf..d15e08c2a 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -39,8 +39,9 @@ RUN apt-get -qqy update \ # Possible alternative: https://github.com/docker/docker/issues/3359#issuecomment-32150214 #=================== ENV TZ "UTC" -RUN echo "${TZ}" > /etc/timezone \ - && dpkg-reconfigure --frontend noninteractive tzdata +RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \ + dpkg-reconfigure -f noninteractive tzdata && \ + cat /etc/timezone #======================================== # Add normal user and group with passwordless sudo From 7545bc9b0b4590bcfebf4ae2cc30f8a6d9b0b04b Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 29 Nov 2023 16:10:12 +0700 Subject: [PATCH 053/100] feat(chart): distribution registry can be set global and individual component (#2030) * test: Sanity tests Selenium Grid chart via Makefile commands Signed-off-by: Viet Nguyen Duc * Remove redundant if: statement from workflow [skip ci] Signed-off-by: Viet Nguyen Duc * Add event workflow_dispatch to release charts [skip ci] Signed-off-by: Viet Nguyen Duc * test: Sanity tests Selenium Grid chart via Makefile commands Signed-off-by: Viet Nguyen Duc * Increase nginx ingress timeout Signed-off-by: Viet Nguyen Duc * feat: distribution registry can be set global and individual component Signed-off-by: Viet Nguyen Duc * feat: distribution registry can be set global and individual component Signed-off-by: Viet Nguyen Duc * Update chart values.yaml Signed-off-by: Viet Nguyen Duc * Update for Released notes to extract Chrome version after PR #2018 Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- .github/workflows/build-test.yml | 2 - .github/workflows/deploy.yml | 2 +- .github/workflows/helm-chart-release.yml | 1 + .github/workflows/helm-chart-test.yml | 2 - .github/workflows/test-video.yml | 2 - charts/selenium-grid/README.md | 196 ++++++++++-------- .../selenium-grid/ci/auth-ingress-values.yaml | 3 + charts/selenium-grid/templates/_helpers.tpl | 7 +- .../templates/distributor-deployment.yaml | 3 +- .../templates/event-bus-deployment.yaml | 3 +- .../templates/hub-deployment.yaml | 3 +- .../templates/router-deployment.yaml | 3 +- .../templates/session-map-deployment.yaml | 3 +- .../templates/session-queuer-deployment.yaml | 3 +- charts/selenium-grid/values.yaml | 36 +++- generate_release_notes.sh | 2 +- tag_and_push_browser_images.sh | 2 +- tests/K8s/chart_cluster_setup.sh | 5 +- tests/K8s/chart_install.sh | 24 ++- tests/K8s/chart_lint.sh | 5 +- tests/K8s/chart_setup_env.sh | 5 +- tests/SeleniumTests/__init__.py | 3 +- tests/SmokeTests/__init__.py | 7 +- 23 files changed, 184 insertions(+), 138 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 6ec2a7d98..0bdda25c5 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -9,8 +9,6 @@ permissions: jobs: build-and-test: - # Skip job based on the commit message, only works in push to branches for now - if: contains(toJson(github.event.commits), '[skip ci]') == false name: Build & test Docker images with random user runs-on: ubuntu-latest strategy: diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8b4c99084..de0ac5db9 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -78,7 +78,7 @@ jobs: run: | git config --local user.email "selenium-ci@users.noreply.github.com" git config --local user.name "Selenium CI Bot" - git commit -m "Update tag in docs and files [skip ci]" -a + git commit -m "Update tag in docs and files" -a - name: Push changes uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master with: diff --git a/.github/workflows/helm-chart-release.yml b/.github/workflows/helm-chart-release.yml index e31046aba..252ca1840 100644 --- a/.github/workflows/helm-chart-release.yml +++ b/.github/workflows/helm-chart-release.yml @@ -6,6 +6,7 @@ on: - trunk paths: - 'charts/selenium-grid/Chart.yaml' + workflow_dispatch: jobs: release: diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 9d2c4a8fc..2c1cd307c 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -14,8 +14,6 @@ permissions: jobs: build-and-test: - # Skip job based on the commit message, only works in push to branches for now - if: contains(toJson(github.event.commits), '[skip ci]') == false name: Build & test Docker images with Helm charts runs-on: ubuntu-latest steps: diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index da59f8a8f..e65301460 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -9,8 +9,6 @@ permissions: jobs: build-and-test: - # Skip job based on the commit message, only works in push to branches for now - if: contains(toJson(github.event.commits), '[skip ci]') == false name: Test video recorded through Docker Selenium runs-on: ubuntu-latest steps: diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 3bb8dff49..94d46fb4e 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -33,7 +33,7 @@ helm install selenium-grid --set ingress.hostname=selenium-grid.k8s.local docker ## Enable Selenium Grid Autoscaling -Selenium Grid has the ability to autoscale browser nodes up/down based on the pending requests in the +Selenium Grid has the ability to autoscaling browser nodes up/down based on the pending requests in the session queue. To do this [KEDA](https://keda.sh/docs/2.12/scalers/selenium-grid-scaler/) is used. When enabling @@ -83,13 +83,15 @@ helm uninstall selenium-grid For now, global configuration supported is: -| Parameter | Default | Description | -|---------------------------------------|-------------------|---------------------------------------| -| `global.seleniumGrid.imageTag` | `4.15.0-20231128` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231128` | Image tag for browser's nodes | -| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | -| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | -| `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | +| Parameter | Default | Description | +|---------------------------------------|-----------------------|---------------------------------------| +| `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images | +| `global.seleniumGrid.imageTag` | `4.15.0-20231128` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231128` | Image tag for browser's nodes | +| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.0-20231128` | Image tag for browser's video recoder | +| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | +| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | +| `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | This table contains the configuration parameters of the chart and their default values: @@ -127,7 +129,8 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.enabled` | `true` | Enable chrome nodes | | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | -| `chromeNode.imageName` | `selenium/node-chrome` | Image of chrome nodes | +| `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image | +| `chromeNode.imageName` | `node-chrome` | Image of chrome nodes | | `chromeNode.imageTag` | `4.15.0-20231128` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | @@ -166,7 +169,8 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.enabled` | `true` | Enable firefox nodes | | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | -| `firefoxNode.imageName` | `selenium/node-firefox` | Image of firefox nodes | +| `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image | +| `firefoxNode.imageName` | `node-firefox` | Image of firefox nodes | | `firefoxNode.imageTag` | `4.15.0-20231128` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | @@ -205,7 +209,8 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.enabled` | `true` | Enable edge nodes | | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | -| `edgeNode.imageName` | `selenium/node-edge` | Image of edge nodes | +| `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image | +| `edgeNode.imageName` | `node-edge` | Image of edge nodes | | `edgeNode.imageTag` | `4.15.0-20231128` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | @@ -242,7 +247,8 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.scaledJobOptions` | See `values.yaml` | Override the global `autoscaling.scaledJobOptions` with specific scaled options for edge nodes | | `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | -| `videoRecorder.imageName` | `selenium/video` | Selenium video recoder image name | +| `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image | +| `videoRecorder.imageName` | `video` | Selenium video recoder image name | | `videoRecorder.imageTag` | `ffmpeg-6.0-20231128` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | @@ -279,7 +285,8 @@ You can configure the Selenium Hub with these values: | Parameter | Default | Description | |---------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| -| `hub.imageName` | `selenium/hub` | Selenium Hub image name | +| `hub.imageRegistry` | `nil` | Distribution registry to pull the image | +| `hub.imageName` | `hub` | Selenium Hub image name | | `hub.imageTag` | `nil` | Selenium Hub image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `hub.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `hub.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | @@ -310,84 +317,89 @@ You can configure the Selenium Hub with these values: If you implement selenium-grid with separate components (`isolateComponents: true`), you can configure all components via the following values: -| Parameter | Default | Description | -|----------------------------------------------|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| -| `components.router.imageName` | `selenium/router` | Router image name | -| `components.router.imageTag` | `nil` | Router image tag (this overwrites `.global.seleniumGrid.imageTag` value) | -| `components.router.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `components.router.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `components.router.annotations` | `{}` | Custom annotations for router pod | -| `components.router.port` | `4444` | Router port | -| `components.router.livenessProbe` | `See values.yaml` | Liveness probe settings | -| `components.router.readinessProbe` | `See values.yaml` | Readiness probe settings | -| `components.router.resources` | `{}` | Resources for router pod | -| `components.router.securityContext` | `See values.yaml` | Security context for router pod | -| `components.router.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | -| `components.router.loadBalancerIP` | `nil` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) | -| `components.router.serviceAnnotations` | `{}` | Custom annotations for router service | -| `components.router.tolerations` | `[]` | Tolerations for router pods | -| `components.router.nodeSelector` | `{}` | Node Selector for router pods | -| `components.router.affinity` | `{}` | Affinity for router pods | -| `components.router.priorityClassName` | `""` | Priority class name for router pods | -| `components.distributor.imageName` | `selenium/distributor` | Distributor image name | -| `components.distributor.imageTag` | `nil` | Distributor image tag (this overwrites `.global.seleniumGrid.imageTag` value) | -| `components.distributor.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `components.distributor.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `components.distributor.annotations` | `{}` | Custom annotations for Distributor pod | -| `components.distributor.port` | `5553` | Distributor port | -| `components.distributor.resources` | `{}` | Resources for Distributor pod | -| `components.distributor.securityContext` | `See values.yaml` | Security context for Distributor pod | -| `components.distributor.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | -| `components.distributor.serviceAnnotations` | `{}` | Custom annotations for Distributor service | -| `components.distributor.tolerations` | `[]` | Tolerations for Distributor pods | -| `components.distributor.nodeSelector` | `{}` | Node Selector for Distributor pods | -| `components.distributor.affinity` | `{}` | Affinity for Distributor pods | -| `components.distributor.priorityClassName` | `""` | Priority class name for Distributor pods | -| `components.eventBus.imageName` | `selenium/event-bus` | Event Bus image name | -| `components.eventBus.imageTag` | `nil` | Event Bus image tag (this overwrites `.global.seleniumGrid.imageTag` value) | -| `components.eventBus.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `components.eventBus.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `components.eventBus.annotations` | `{}` | Custom annotations for Event Bus pod | -| `components.eventBus.port` | `5557` | Event Bus port | -| `components.eventBus.publishPort` | `4442` | Port where events are published | -| `components.eventBus.subscribePort` | `4443` | Port where to subscribe for events | -| `components.eventBus.resources` | `{}` | Resources for event-bus pod | -| `components.eventBus.securityContext` | `See values.yaml` | Security context for event-bus pod | -| `components.eventBus.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | -| `components.eventBus.serviceAnnotations` | `{}` | Custom annotations for Event Bus service | -| `components.eventBus.tolerations` | `[]` | Tolerations for Event Bus pods | -| `components.eventBus.nodeSelector` | `{}` | Node Selector for Event Bus pods | -| `components.eventBus.affinity` | `{}` | Affinity for Event Bus pods | -| `components.eventBus.priorityClassName` | `""` | Priority class name for Event Bus pods | -| `components.sessionMap.imageName` | `selenium/sessions` | Session Map image name | -| `components.sessionMap.imageTag` | `nil` | Session Map image tag (this overwrites `.global.seleniumGrid.imageTag` value) | -| `components.sessionMap.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `components.sessionMap.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `components.sessionMap.annotations` | `{}` | Custom annotations for Session Map pod | -| `components.sessionMap.resources` | `{}` | Resources for Session Map pod | -| `components.sessionMap.securityContext` | `See values.yaml` | Security context for Session Map pod | -| `components.sessionMap.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | -| `components.sessionMap.serviceAnnotations` | `{}` | Custom annotations for Session Map service | -| `components.sessionMap.tolerations` | `[]` | Tolerations for Session Map pods | -| `components.sessionMap.nodeSelector` | `{}` | Node Selector for Session Map pods | -| `components.sessionMap.affinity` | `{}` | Affinity for Session Map pods | -| `components.sessionMap.priorityClassName` | `""` | Priority class name for Session Map pods | -| `components.sessionQueue.imageName` | `selenium/session-queue` | Session Queue image name | -| `components.sessionQueue.imageTag` | `nil` | Session Queue image tag (this overwrites `.global.seleniumGrid.imageTag` value) | -| `components.sessionQueue.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | -| `components.sessionQueue.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | -| `components.sessionQueue.annotations` | `{}` | Custom annotations for Session Queue pod | -| `components.sessionQueue.port` | `5559` | Session Queue Port | -| `components.sessionQueue.resources` | `{}` | Resources for Session Queue pod | -| `components.sessionQueue.securityContext` | `See values.yaml` | Security context for Session Queue pod | -| `components.sessionQueue.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | -| `components.sessionQueue.serviceAnnotations` | `{}` | Custom annotations for Session Queue service | -| `components.sessionQueue.tolerations` | `[]` | Tolerations for Session Queue pods | -| `components.sessionQueue.nodeSelector` | `{}` | Node Selector for Session Queue pods | -| `components.sessionQueue.affinity` | `{}` | Affinity for Session Queue pods | -| `components.sessionQueue.priorityClassName` | `""` | Priority class name for Session Queue pods | -| `components.subPath` | `/` | Custom sub path for all components | -| `components.extraEnvironmentVariables` | `nil` | Custom environment variables for all components | -| `components.extraEnvFrom` | `nil` | Custom environment variables taken from `configMap` or `secret` for all components | +| Parameter | Default | Description | +|----------------------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| +| `components.router.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.router.imageName` | `router` | Router image name | +| `components.router.imageTag` | `nil` | Router image tag (this overwrites `.global.seleniumGrid.imageTag` value) | +| `components.router.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `components.router.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `components.router.annotations` | `{}` | Custom annotations for router pod | +| `components.router.port` | `4444` | Router port | +| `components.router.livenessProbe` | `See values.yaml` | Liveness probe settings | +| `components.router.readinessProbe` | `See values.yaml` | Readiness probe settings | +| `components.router.resources` | `{}` | Resources for router pod | +| `components.router.securityContext` | `See values.yaml` | Security context for router pod | +| `components.router.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | +| `components.router.loadBalancerIP` | `nil` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) | +| `components.router.serviceAnnotations` | `{}` | Custom annotations for router service | +| `components.router.tolerations` | `[]` | Tolerations for router pods | +| `components.router.nodeSelector` | `{}` | Node Selector for router pods | +| `components.router.affinity` | `{}` | Affinity for router pods | +| `components.router.priorityClassName` | `""` | Priority class name for router pods | +| `components.distributor.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.distributor.imageName` | `distributor` | Distributor image name | +| `components.distributor.imageTag` | `nil` | Distributor image tag (this overwrites `.global.seleniumGrid.imageTag` value) | +| `components.distributor.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `components.distributor.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `components.distributor.annotations` | `{}` | Custom annotations for Distributor pod | +| `components.distributor.port` | `5553` | Distributor port | +| `components.distributor.resources` | `{}` | Resources for Distributor pod | +| `components.distributor.securityContext` | `See values.yaml` | Security context for Distributor pod | +| `components.distributor.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | +| `components.distributor.serviceAnnotations` | `{}` | Custom annotations for Distributor service | +| `components.distributor.tolerations` | `[]` | Tolerations for Distributor pods | +| `components.distributor.nodeSelector` | `{}` | Node Selector for Distributor pods | +| `components.distributor.affinity` | `{}` | Affinity for Distributor pods | +| `components.distributor.priorityClassName` | `""` | Priority class name for Distributor pods | +| `components.eventBus.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.eventBus.imageName` | `event-bus` | Event Bus image name | +| `components.eventBus.imageTag` | `nil` | Event Bus image tag (this overwrites `.global.seleniumGrid.imageTag` value) | +| `components.eventBus.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `components.eventBus.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `components.eventBus.annotations` | `{}` | Custom annotations for Event Bus pod | +| `components.eventBus.port` | `5557` | Event Bus port | +| `components.eventBus.publishPort` | `4442` | Port where events are published | +| `components.eventBus.subscribePort` | `4443` | Port where to subscribe for events | +| `components.eventBus.resources` | `{}` | Resources for event-bus pod | +| `components.eventBus.securityContext` | `See values.yaml` | Security context for event-bus pod | +| `components.eventBus.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | +| `components.eventBus.serviceAnnotations` | `{}` | Custom annotations for Event Bus service | +| `components.eventBus.tolerations` | `[]` | Tolerations for Event Bus pods | +| `components.eventBus.nodeSelector` | `{}` | Node Selector for Event Bus pods | +| `components.eventBus.affinity` | `{}` | Affinity for Event Bus pods | +| `components.eventBus.priorityClassName` | `""` | Priority class name for Event Bus pods | +| `components.sessionMap.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.sessionMap.imageName` | `sessions` | Session Map image name | +| `components.sessionMap.imageTag` | `nil` | Session Map image tag (this overwrites `.global.seleniumGrid.imageTag` value) | +| `components.sessionMap.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `components.sessionMap.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `components.sessionMap.annotations` | `{}` | Custom annotations for Session Map pod | +| `components.sessionMap.resources` | `{}` | Resources for Session Map pod | +| `components.sessionMap.securityContext` | `See values.yaml` | Security context for Session Map pod | +| `components.sessionMap.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | +| `components.sessionMap.serviceAnnotations` | `{}` | Custom annotations for Session Map service | +| `components.sessionMap.tolerations` | `[]` | Tolerations for Session Map pods | +| `components.sessionMap.nodeSelector` | `{}` | Node Selector for Session Map pods | +| `components.sessionMap.affinity` | `{}` | Affinity for Session Map pods | +| `components.sessionMap.priorityClassName` | `""` | Priority class name for Session Map pods | +| `components.sessionQueue.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.sessionQueue.imageName` | `session-queue` | Session Queue image name | +| `components.sessionQueue.imageTag` | `nil` | Session Queue image tag (this overwrites `.global.seleniumGrid.imageTag` value) | +| `components.sessionQueue.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | +| `components.sessionQueue.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | +| `components.sessionQueue.annotations` | `{}` | Custom annotations for Session Queue pod | +| `components.sessionQueue.port` | `5559` | Session Queue Port | +| `components.sessionQueue.resources` | `{}` | Resources for Session Queue pod | +| `components.sessionQueue.securityContext` | `See values.yaml` | Security context for Session Queue pod | +| `components.sessionQueue.serviceType` | `ClusterIP` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | +| `components.sessionQueue.serviceAnnotations` | `{}` | Custom annotations for Session Queue service | +| `components.sessionQueue.tolerations` | `[]` | Tolerations for Session Queue pods | +| `components.sessionQueue.nodeSelector` | `{}` | Node Selector for Session Queue pods | +| `components.sessionQueue.affinity` | `{}` | Affinity for Session Queue pods | +| `components.sessionQueue.priorityClassName` | `""` | Priority class name for Session Queue pods | +| `components.subPath` | `/` | Custom sub path for all components | +| `components.extraEnvironmentVariables` | `nil` | Custom environment variables for all components | +| `components.extraEnvFrom` | `nil` | Custom environment variables taken from `configMap` or `secret` for all components | See how to customize a helm chart installation in the [Helm Docs](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing) for more information. diff --git a/charts/selenium-grid/ci/auth-ingress-values.yaml b/charts/selenium-grid/ci/auth-ingress-values.yaml index 459d218d3..e5d055ba6 100644 --- a/charts/selenium-grid/ci/auth-ingress-values.yaml +++ b/charts/selenium-grid/ci/auth-ingress-values.yaml @@ -3,6 +3,9 @@ ingress: nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/app-root: &gridAppRoot "/selenium" + nginx.ingress.kubernetes.io/proxy-connect-timeout: "360" + nginx.ingress.kubernetes.io/proxy-read-timeout: "360" + nginx.ingress.kubernetes.io/proxy-send-timeout: "360" hostname: "" paths: - path: /selenium(/|$)(.*) diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 5fa362094..1b0aa573c 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -173,7 +173,8 @@ template: containers: - name: {{.name}} {{- $imageTag := default .Values.global.seleniumGrid.nodesImageTag .node.imageTag }} - image: {{ printf "%s:%s" .node.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .node.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .node.imageName $imageTag }} imagePullPolicy: {{ .node.imagePullPolicy }} {{- with .node.extraEnvironmentVariables }} env: {{- tpl (toYaml .) $ | nindent 10 }} @@ -217,7 +218,9 @@ template: {{- end }} {{- if .Values.videoRecorder.enabled }} - name: video - image: {{ printf "%s:%s" .Values.videoRecorder.imageName .Values.videoRecorder.imageTag }} + {{- $imageTag := default .Values.global.seleniumGrid.videoImageTag .Values.videoRecorder.imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.videoRecorder.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.videoRecorder.imageName $imageTag }} imagePullPolicy: {{ .Values.videoRecorder.imagePullPolicy }} env: - name: UPLOAD_DESTINATION_PREFIX diff --git a/charts/selenium-grid/templates/distributor-deployment.yaml b/charts/selenium-grid/templates/distributor-deployment.yaml index fe5efd767..07462f15e 100644 --- a/charts/selenium-grid/templates/distributor-deployment.yaml +++ b/charts/selenium-grid/templates/distributor-deployment.yaml @@ -29,7 +29,8 @@ spec: containers: - name: {{ template "seleniumGrid.distributor.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.distributor.imageTag }} - image: {{ printf "%s:%s" .Values.components.distributor.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.distributor.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.components.distributor.imageName $imageTag }} imagePullPolicy: {{ .Values.components.distributor.imagePullPolicy }} env: - name: SE_SESSIONS_MAP_HOST diff --git a/charts/selenium-grid/templates/event-bus-deployment.yaml b/charts/selenium-grid/templates/event-bus-deployment.yaml index a315cd820..8d894790b 100644 --- a/charts/selenium-grid/templates/event-bus-deployment.yaml +++ b/charts/selenium-grid/templates/event-bus-deployment.yaml @@ -29,7 +29,8 @@ spec: containers: - name: {{ template "seleniumGrid.eventBus.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.eventBus.imageTag }} - image: {{ printf "%s:%s" .Values.components.eventBus.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.eventBus.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.components.eventBus.imageName $imageTag }} imagePullPolicy: {{ .Values.components.eventBus.imagePullPolicy }} ports: - containerPort: {{ .Values.components.eventBus.port }} diff --git a/charts/selenium-grid/templates/hub-deployment.yaml b/charts/selenium-grid/templates/hub-deployment.yaml index a5ea71ab5..8b322ecd5 100644 --- a/charts/selenium-grid/templates/hub-deployment.yaml +++ b/charts/selenium-grid/templates/hub-deployment.yaml @@ -32,7 +32,8 @@ spec: containers: - name: {{ template "seleniumGrid.hub.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.hub.imageTag }} - image: {{ printf "%s:%s" .Values.hub.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.hub.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.hub.imageName $imageTag }} imagePullPolicy: {{ .Values.hub.imagePullPolicy }} ports: - containerPort: {{ .Values.hub.port }} diff --git a/charts/selenium-grid/templates/router-deployment.yaml b/charts/selenium-grid/templates/router-deployment.yaml index 05ae9a7b9..33d98c65a 100644 --- a/charts/selenium-grid/templates/router-deployment.yaml +++ b/charts/selenium-grid/templates/router-deployment.yaml @@ -29,7 +29,8 @@ spec: containers: - name: {{ template "seleniumGrid.router.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.router.imageTag }} - image: {{ printf "%s:%s" .Values.components.router.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.router.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.components.router.imageName $imageTag }} imagePullPolicy: {{ .Values.components.router.imagePullPolicy }} env: - name: SE_DISTRIBUTOR_HOST diff --git a/charts/selenium-grid/templates/session-map-deployment.yaml b/charts/selenium-grid/templates/session-map-deployment.yaml index 496089eaf..8aebdefb2 100644 --- a/charts/selenium-grid/templates/session-map-deployment.yaml +++ b/charts/selenium-grid/templates/session-map-deployment.yaml @@ -29,7 +29,8 @@ spec: containers: - name: {{ template "seleniumGrid.sessionMap.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.sessionMap.imageTag }} - image: {{ printf "%s:%s" .Values.components.sessionMap.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.sessionMap.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.components.sessionMap.imageName $imageTag }} imagePullPolicy: {{ .Values.components.sessionMap.imagePullPolicy }} {{- with .Values.components.extraEnvironmentVariables }} env: {{- tpl (toYaml .) $ | nindent 12 }} diff --git a/charts/selenium-grid/templates/session-queuer-deployment.yaml b/charts/selenium-grid/templates/session-queuer-deployment.yaml index 28c17b49c..557d6774e 100644 --- a/charts/selenium-grid/templates/session-queuer-deployment.yaml +++ b/charts/selenium-grid/templates/session-queuer-deployment.yaml @@ -29,7 +29,8 @@ spec: containers: - name: {{ template "seleniumGrid.sessionQueue.fullname" . }} {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.sessionQueue.imageTag }} - image: {{ printf "%s:%s" .Values.components.sessionQueue.imageName $imageTag }} + {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.sessionQueue.imageRegistry }} + image: {{ printf "%s/%s:%s" $imageRegistry .Values.components.sessionQueue.imageName $imageTag }} imagePullPolicy: {{ .Values.components.sessionQueue.imagePullPolicy }} {{- with .Values.components.extraEnvironmentVariables }} env: {{- tpl (toYaml .) $ | nindent 12 }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 5467674a3..cadf4cee2 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -1,9 +1,13 @@ global: seleniumGrid: + # Image registry for all selenium components + imageRegistry: selenium # Image tag for all selenium components imageTag: 4.15.0-20231128 # Image tag for browser's nodes nodesImageTag: 4.15.0-20231128 + # Image tag for browser's video recorder + videoImageTag: ffmpeg-6.0-20231128 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -63,8 +67,9 @@ components: # Configuration for router component router: + # imageRegistry: selenium # Router image name - imageName: selenium/router + imageName: router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) # imageTag: 4.15.0-20231128 @@ -114,8 +119,9 @@ components: # Configuration for distributor component distributor: + # imageRegistry: selenium # Distributor image name - imageName: selenium/distributor + imageName: distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) # imageTag: 4.15.0-20231128 @@ -145,8 +151,9 @@ components: # Configuration for Event Bus component eventBus: + # imageRegistry: selenium # Event Bus image name - imageName: selenium/event-bus + imageName: event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) # imageTag: 4.15.0-20231128 @@ -180,8 +187,9 @@ components: # Configuration for Session Map component sessionMap: + # imageRegistry: selenium # Session Map image name - imageName: selenium/sessions + imageName: sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) # imageTag: 4.15.0-20231128 @@ -210,8 +218,9 @@ components: # Configuration for Session Queue component sessionQueue: + # imageRegistry: selenium # Session Queue image name - imageName: selenium/session-queue + imageName: session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) # imageTag: 4.15.0-20231128 @@ -260,8 +269,9 @@ components: # Configuration for selenium hub deployment (applied only if `isolateComponents: false`) hub: + # imageRegistry: selenium # Selenium Hub image name - imageName: selenium/hub + imageName: hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) @@ -400,8 +410,9 @@ chromeNode: # Number of chrome nodes replicas: 1 + # imageRegistry: selenium # Image of chrome nodes - imageName: selenium/node-chrome + imageName: node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) @@ -532,8 +543,9 @@ firefoxNode: # Number of firefox nodes replicas: 1 + # imageRegistry: selenium # Image of firefox nodes - imageName: selenium/node-firefox + imageName: node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) @@ -661,8 +673,9 @@ edgeNode: # Number of edge nodes replicas: 1 + # imageRegistry: selenium # Image of edge nodes - imageName: selenium/node-edge + imageName: node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) # imageTag: 4.15.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) @@ -779,10 +792,11 @@ edgeNode: videoRecorder: enabled: false + # imageRegistry: selenium # Image of video recorder - imageName: selenium/video + imageName: video # Image of video recorder - imageTag: ffmpeg-6.0-20231128 + # imageTag: ffmpeg-6.0-20231128 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/generate_release_notes.sh b/generate_release_notes.sh index c936c48d4..3dff24e52 100755 --- a/generate_release_notes.sh +++ b/generate_release_notes.sh @@ -11,7 +11,7 @@ echo "" >> release_notes.md echo "### Changelog" > release_notes.md git --no-pager log "${LATEST_TAG}...${HEAD_BRANCH}" --pretty=format:"* [\`%h\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an" --reverse >> release_notes.md -CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') +CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $5}') EDGE_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} microsoft-edge --version | awk '{print $3}') CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}') EDGEDRIVER_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}') diff --git a/tag_and_push_browser_images.sh b/tag_and_push_browser_images.sh index aa2744e66..305c2588c 100755 --- a/tag_and_push_browser_images.sh +++ b/tag_and_push_browser_images.sh @@ -20,7 +20,7 @@ echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BU case "${BROWSER}" in chrome) - CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') + CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $5}') echo "Chrome version -> "${CHROME_VERSION} CHROME_SHORT_VERSION="$(short_version ${CHROME_VERSION})" echo "Short Chrome version -> "${CHROME_SHORT_VERSION} diff --git a/tests/K8s/chart_cluster_setup.sh b/tests/K8s/chart_cluster_setup.sh index cfddcd754..b46231449 100755 --- a/tests/K8s/chart_cluster_setup.sh +++ b/tests/K8s/chart_cluster_setup.sh @@ -23,9 +23,10 @@ cleanup() { # Function to be executed on command failure on_failure() { - echo "There is step failed with exit status $?" + local exit_status=$? + echo "There is step failed with exit status $exit_status" cleanup - exit $? + exit $exit_status } # Trap ERR signal and call on_failure function diff --git a/tests/K8s/chart_install.sh b/tests/K8s/chart_install.sh index a19113395..7fb7a0cb5 100755 --- a/tests/K8s/chart_install.sh +++ b/tests/K8s/chart_install.sh @@ -15,7 +15,8 @@ MATRIX_BROWSER=${1:-"NodeChrome"} SELENIUM_GRID_AUTOSCALING=${2:-"true"} SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=${3:-"0"} WAIT_TIMEOUT=${WAIT_TIMEOUT:-"90s"} -SLEEP_INTERVAL=${SLEEP_INTERVAL:-45} +HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL:-45} +WEB_DRIVER_WAIT_TIMEOUT=${WEB_DRIVER_WAIT_TIMEOUT:-120} SKIP_CLEANUP=${SKIP_CLEANUP:-"false"} # For debugging purposes, retain the cluster after the test run cleanup() { @@ -28,9 +29,12 @@ cleanup() { # Function to be executed on command failure on_failure() { - echo "There is step failed with exit status $?" + local exit_status=$? + echo "Describe all resources in the ${SELENIUM_NAMESPACE} namespace for debugging purposes" + kubectl describe all -n ${SELENIUM_NAMESPACE} + echo "There is step failed with exit status $exit_status" cleanup - exit $? + exit $exit_status } # Trap ERR signal and call on_failure function @@ -43,19 +47,23 @@ helm upgrade --install ${RELEASE_NAME} \ -f ${TEST_VALUES_PATH}/${MATRIX_BROWSER}-values.yaml \ --set autoscaling.enableWithExistingKEDA=${SELENIUM_GRID_AUTOSCALING} \ --set autoscaling.scaledOptions.minReplicaCount=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} \ ---set global.seleniumGrid.imageTag=${VERSION} \ +--set global.seleniumGrid.imageTag=${VERSION} --set global.seleniumGrid.imageRegistry=${NAMESPACE} \ ${CHART_PATH} --namespace ${SELENIUM_NAMESPACE} --create-namespace -echo "Verify Post Deployment Grid Health and Pod Status" -kubectl get pods -n ${SELENIUM_NAMESPACE} - echo "Run Tests" export SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST} export SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT}""${SUB_PATH} export SELENIUM_GRID_AUTOSCALING=${SELENIUM_GRID_AUTOSCALING} export SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} export RUN_IN_DOCKER_COMPOSE=true -export SLEEP_INTERVAL=${SLEEP_INTERVAL} +export HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL} +export WEB_DRIVER_WAIT_TIMEOUT=${WEB_DRIVER_WAIT_TIMEOUT} ./tests/bootstrap.sh ${MATRIX_BROWSER} +echo "Get pods status" +kubectl get pods -n ${SELENIUM_NAMESPACE} + +echo "Get all resources in the ${SELENIUM_NAMESPACE} namespace" +kubectl get all -n ${SELENIUM_NAMESPACE} + cleanup diff --git a/tests/K8s/chart_lint.sh b/tests/K8s/chart_lint.sh index 25cd5df49..09c46edc1 100755 --- a/tests/K8s/chart_lint.sh +++ b/tests/K8s/chart_lint.sh @@ -1,8 +1,9 @@ #!/bin/bash # Function to be executed on command failure on_failure() { - echo "There is step failed with exit status $?" - exit $? + local exit_status=$? + echo "There is step failed with exit status $exit_status" + exit $exit_status } # Trap ERR signal and call on_failure function diff --git a/tests/K8s/chart_setup_env.sh b/tests/K8s/chart_setup_env.sh index c4bf6e3bc..8c77101bf 100755 --- a/tests/K8s/chart_setup_env.sh +++ b/tests/K8s/chart_setup_env.sh @@ -1,8 +1,9 @@ #!/bin/bash # Function to be executed on command failure on_failure() { - echo "There is step failed with exit status $?" - exit $? + local exit_status=$? + echo "There is step failed with exit status $exit_status" + exit $exit_status } # Trap ERR signal and call on_failure function diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index fb6308308..ef6e9bada 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -10,6 +10,7 @@ SELENIUM_GRID_HOST = os.environ.get('SELENIUM_GRID_HOST', 'localhost') SELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444') +WEB_DRIVER_WAIT_TIMEOUT = int(os.environ.get('WEB_DRIVER_WAIT_TIMEOUT', 60)) class SeleniumGenericTests(unittest.TestCase): @@ -51,7 +52,7 @@ def test_visit_basic_auth_secured_page(self): def test_play_video(self): driver = self.driver driver.get('https://hls-js.netlify.com/demo/') - wait = WebDriverWait(driver, 30) + wait = WebDriverWait(driver, WEB_DRIVER_WAIT_TIMEOUT) video = wait.until( EC.element_to_be_clickable((By.TAG_NAME, 'video')) ) diff --git a/tests/SmokeTests/__init__.py b/tests/SmokeTests/__init__.py index 2e5ef768b..a2f74c7fa 100644 --- a/tests/SmokeTests/__init__.py +++ b/tests/SmokeTests/__init__.py @@ -12,13 +12,14 @@ SELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444') SELENIUM_GRID_AUTOSCALING = os.environ.get('SELENIUM_GRID_AUTOSCALING', 'false') SELENIUM_GRID_AUTOSCALING_MIN_REPLICA = os.environ.get('SELENIUM_GRID_AUTOSCALING_MIN_REPLICA', 0) -SLEEP_INTERVAL = os.environ.get('SLEEP_INTERVAL', 3) +HUB_CHECKS_MAX_ATTEMPTS = os.environ.get('HUB_CHECKS_MAX_ATTEMPTS', 3) +HUB_CHECKS_INTERVAL = os.environ.get('HUB_CHECKS_INTERVAL', 10) class SmokeTests(unittest.TestCase): def smoke_test_container(self, port): current_attempts = 0 - max_attempts = 3 - sleep_interval = int(SLEEP_INTERVAL) + max_attempts = int(HUB_CHECKS_MAX_ATTEMPTS) + sleep_interval = int(HUB_CHECKS_INTERVAL) status_fetched = False status_json = None auto_scaling = SELENIUM_GRID_AUTOSCALING == 'true' From b5dab369fc19f624852a7b12410637e69e1480a4 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 29 Nov 2023 19:22:41 +0700 Subject: [PATCH 054/100] bug(#2032): Rollback to use regular version in NodeChrome (#2033) Signed-off-by: Viet Nguyen Duc --- NodeChrome/Dockerfile | 92 ++++++++++------------------------ generate_release_notes.sh | 2 +- tag_and_push_browser_images.sh | 2 +- 3 files changed, 29 insertions(+), 67 deletions(-) diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index b93ae223e..63eb00bd3 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -6,51 +6,22 @@ LABEL authors=${AUTHORS} USER root -RUN apt-get update -qqy \ - && apt-get -qqy --no-install-recommends install libatk1.0-0 libatk-bridge2.0-0 \ - libxkbcommon-x11-0 libgbm1 libpango-1.0-0 \ - && rm -rf /var/lib/apt/lists/* /var/cache/apt/* - #============================================ # Google Chrome #============================================ # can specify versions by CHROME_VERSION; -# Support these inputs (following https://github.com/GoogleChromeLabs/chrome-for-testing): -# LATEST_RELEASE_STABLE -# LATEST_RELEASE_BETA -# LATEST_RELEASE_DEV -# LATEST_RELEASE_CANARY -# 121 (specific major version) -# 119.0.6045.105 (specific full version) -#============================================ -ARG DOWNLOAD_HOST="https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing" -ARG VERSION_HOST="https://googlechromelabs.github.io/chrome-for-testing" -ARG CHROME_VERSION="LATEST_RELEASE_STABLE" -ARG CHROME_PLATFORM="linux64" -RUN if [ ! -z "$CHROME_VERSION" ]; \ - then GET_VERSION_URL=$VERSION_HOST/$CHROME_VERSION \ - && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $GET_VERSION_URL) -eq 200 ]; \ - then echo "Getting Chrome version from "$GET_VERSION_URL \ - && CHROME_VERSION=$(wget -qO- $VERSION_HOST"/"$CHROME_VERSION | sed 's/\r$//') ; \ - fi \ - else echo "Getting Chrome version "$CHROME_DRIVER_VERSION ; \ - fi \ - && CHROME_URL=$DOWNLOAD_HOST/$CHROME_VERSION/$CHROME_PLATFORM/chrome-$CHROME_PLATFORM.zip \ - && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $CHROME_URL) -ne 200 ]; \ - then CHROME_MAJOR_VERSION=$(echo $CHROME_VERSION | sed -E "s/([0-9]+).*/\1/") \ - && echo "Getting Chrome latest major version from "$VERSION_HOST"/LATEST_RELEASE_"$CHROME_MAJOR_VERSION \ - && CHROME_VERSION=$(wget -qO- $VERSION_HOST/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \ - && CHROME_URL=$DOWNLOAD_HOST/$CHROME_VERSION/$CHROME_PLATFORM/chrome-$CHROME_PLATFORM.zip ; \ - fi \ - && echo "Using Chrome from: "$CHROME_URL \ - && wget --no-verbose -O /tmp/chrome-$CHROME_PLATFORM.zip $CHROME_URL \ - && rm -rf /opt/google/chrome \ - && unzip /tmp/chrome-$CHROME_PLATFORM.zip -d /opt/google \ - && mv /opt/google/chrome-$CHROME_PLATFORM /opt/google/chrome \ - && rm /tmp/chrome-$CHROME_PLATFORM.zip \ - && mv /opt/google/chrome/chrome-wrapper /opt/google/chrome/google-chrome \ - && chmod +x /opt/google/chrome/google-chrome \ - && ln -fs /opt/google/chrome/google-chrome /usr/bin/google-chrome +# e.g. google-chrome-stable +# google-chrome-beta +# google-chrome-unstable +#============================================ +ARG CHROME_VERSION="google-chrome-stable" +RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ + && echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ + && apt-get update -qqy \ + && apt-get -qqy install \ + ${CHROME_VERSION:-google-chrome-stable} \ + && rm /etc/apt/sources.list.d/google-chrome.list \ + && rm -rf /var/lib/apt/lists/* /var/cache/apt/* #================================= # Chrome Launch Script Wrapper @@ -58,44 +29,35 @@ RUN if [ ! -z "$CHROME_VERSION" ]; \ COPY wrap_chrome_binary /opt/bin/wrap_chrome_binary RUN /opt/bin/wrap_chrome_binary +USER 1200 + #============================================ # Chrome webdriver #============================================ # can specify versions by CHROME_DRIVER_VERSION -# Latest released version (following browser version) will be used by default +# Latest released version will be used by default #============================================ -ARG CHROME_DRIVER_VERSION=$CHROME_VERSION +ARG CHROME_DRIVER_VERSION RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ - then GET_VERSION_URL=$VERSION_HOST/$CHROME_DRIVER_VERSION \ - && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $GET_VERSION_URL) -eq 200 ]; \ - then echo "Getting ChromeDriver version from "$GET_VERSION_URL \ - && CHROME_DRIVER_VERSION=$(wget -qO- $VERSION_HOST"/"$CHROME_DRIVER_VERSION | sed 's/\r$//') ; \ - fi \ - else CHROME_DRIVER_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+(\.[0-9]+)+).*/\1/") \ - && echo "Getting ChromeDriver same as browser version "$CHROME_DRIVER_VERSION ; \ - fi \ - && CHROME_DRIVER_URL=$DOWNLOAD_HOST/$CHROME_DRIVER_VERSION/$CHROME_PLATFORM/chromedriver-$CHROME_PLATFORM.zip \ - && if [ $(curl -I -s -o /dev/null -w "%{http_code}" $CHROME_DRIVER_URL) -ne 200 ]; \ - then CHROME_MAJOR_VERSION=$(echo $CHROME_DRIVER_VERSION | sed -E "s/([0-9]+).*/\1/") \ - && echo "Getting ChromeDriver latest major version from "$VERSION_HOST"/LATEST_RELEASE_"$CHROME_MAJOR_VERSION \ - && CHROME_DRIVER_VERSION=$(wget -qO- $VERSION_HOST/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \ - && CHROME_DRIVER_URL=$DOWNLOAD_HOST/$CHROME_DRIVER_VERSION/$CHROME_PLATFORM/chromedriver-$CHROME_PLATFORM.zip ; \ + then CHROME_DRIVER_URL=https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip ; \ + else echo "Geting ChromeDriver latest version from https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_" \ + && CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+)(\.[0-9]+){3}.*/\1/") \ + && CHROME_DRIVER_VERSION=$(wget -qO- https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \ + && CHROME_DRIVER_URL=https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip ; \ fi \ && echo "Using ChromeDriver from: "$CHROME_DRIVER_URL \ && echo "Using ChromeDriver version: "$CHROME_DRIVER_VERSION \ - && wget --no-verbose -O /tmp/chromedriver_$CHROME_PLATFORM.zip $CHROME_DRIVER_URL \ + && wget --no-verbose -O /tmp/chromedriver_linux64.zip $CHROME_DRIVER_URL \ && rm -rf /opt/selenium/chromedriver \ - && unzip /tmp/chromedriver_$CHROME_PLATFORM.zip -d /opt/selenium \ - && rm /tmp/chromedriver_$CHROME_PLATFORM.zip \ - && mv /opt/selenium/chromedriver-$CHROME_PLATFORM/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ + && rm /tmp/chromedriver_linux64.zip \ + && mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver - -USER 1200 + && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver #============================================ # Dumping Browser information for config #============================================ RUN echo "chrome" > /opt/selenium/browser_name -RUN google-chrome --version | awk '{print $5}' > /opt/selenium/browser_version +RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" > /opt/selenium/browser_binary_location diff --git a/generate_release_notes.sh b/generate_release_notes.sh index 3dff24e52..c936c48d4 100755 --- a/generate_release_notes.sh +++ b/generate_release_notes.sh @@ -11,7 +11,7 @@ echo "" >> release_notes.md echo "### Changelog" > release_notes.md git --no-pager log "${LATEST_TAG}...${HEAD_BRANCH}" --pretty=format:"* [\`%h\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an" --reverse >> release_notes.md -CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $5}') +CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') EDGE_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} microsoft-edge --version | awk '{print $3}') CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}') EDGEDRIVER_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}') diff --git a/tag_and_push_browser_images.sh b/tag_and_push_browser_images.sh index 305c2588c..aa2744e66 100755 --- a/tag_and_push_browser_images.sh +++ b/tag_and_push_browser_images.sh @@ -20,7 +20,7 @@ echo "Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BU case "${BROWSER}" in chrome) - CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $5}') + CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') echo "Chrome version -> "${CHROME_VERSION} CHROME_SHORT_VERSION="$(short_version ${CHROME_VERSION})" echo "Short Chrome version -> "${CHROME_SHORT_VERSION} From 991d24566d7acaa07f67620d2e903f9bf57bc7e3 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 29 Nov 2023 19:48:47 +0700 Subject: [PATCH 055/100] test: Add sanity test for download file (#2034) [deploy] Signed-off-by: Viet Nguyen Duc --- README.md | 1 + charts/selenium-grid/TESTING.md | 1 + .../selenium-grid/ci/NodeChrome-values.yaml | 3 +++ charts/selenium-grid/ci/NodeEdge-values.yaml | 3 +++ .../selenium-grid/ci/NodeFirefox-values.yaml | 3 +++ tests/SeleniumTests/__init__.py | 25 ++++++++++++++++--- tests/docker-compose-v3-test-video.yml | 1 + tests/test.py | 2 ++ 8 files changed, 36 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8922b112b..402944670 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ![Build & test](https://github.com/SeleniumHQ/docker-selenium/workflows/Build%20&%20test/badge.svg?branch=trunk) ![Deployments](https://github.com/SeleniumHQ/docker-selenium/workflows/Deploys/badge.svg) +![Helm Charts](https://github.com/SeleniumHQ/docker-selenium/workflows/Lint%20and%20Test%20Helm%20Charts/badge.svg) # Docker images for the Selenium Grid Server diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md index aee1c772b..d6e266713 100644 --- a/charts/selenium-grid/TESTING.md +++ b/charts/selenium-grid/TESTING.md @@ -18,6 +18,7 @@ All related testing to this helm chart will be documented in this file. | Browser Nodes | Node `nameOverride` is set | ✓ | | | Sanity tests in node | ✓ | | | Video recorder is enabled in node | ✗ | +| | Node `extraEnvironmentVariables` is set value | ✓ | ## Build & test Docker images with Helm charts Noted: These `make` commands are composed and tested on Linux x86_64. diff --git a/charts/selenium-grid/ci/NodeChrome-values.yaml b/charts/selenium-grid/ci/NodeChrome-values.yaml index f3c30c48d..131434058 100644 --- a/charts/selenium-grid/ci/NodeChrome-values.yaml +++ b/charts/selenium-grid/ci/NodeChrome-values.yaml @@ -2,6 +2,9 @@ # Configuration for chrome nodes chromeNode: nameOverride: my-chrome-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" # Configuration for edge nodes edgeNode: enabled: false diff --git a/charts/selenium-grid/ci/NodeEdge-values.yaml b/charts/selenium-grid/ci/NodeEdge-values.yaml index 1d1c13f9c..aec663509 100644 --- a/charts/selenium-grid/ci/NodeEdge-values.yaml +++ b/charts/selenium-grid/ci/NodeEdge-values.yaml @@ -5,6 +5,9 @@ chromeNode: # Configuration for edge nodes edgeNode: nameOverride: my-edge-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" # Configuration for firefox nodes firefoxNode: enabled: false diff --git a/charts/selenium-grid/ci/NodeFirefox-values.yaml b/charts/selenium-grid/ci/NodeFirefox-values.yaml index 418d00b8a..8ccc9bd41 100644 --- a/charts/selenium-grid/ci/NodeFirefox-values.yaml +++ b/charts/selenium-grid/ci/NodeFirefox-values.yaml @@ -8,3 +8,6 @@ edgeNode: # Configuration for firefox nodes firefoxNode: nameOverride: my-firefox-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index ef6e9bada..12ee94ede 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -63,29 +63,48 @@ def test_play_video(self): paused = video.get_property('paused') self.assertFalse(paused) + def test_download_file(self): + driver = self.driver + driver.get('https://the-internet.herokuapp.com/download') + wait = WebDriverWait(driver, 30) + file_link = wait.until( + EC.element_to_be_clickable((By.LINK_TEXT, 'some-file.txt')) + ) + file_link.click() + wait.until( + lambda d: len(d.get_downloadable_files()) > 0 + ) + self.assertTrue(len(driver.get_downloadable_files()) > 0) + def tearDown(self): self.driver.quit() class ChromeTests(SeleniumGenericTests): def setUp(self): + options = ChromeOptions() + options.enable_downloads = True self.driver = webdriver.Remote( - options=ChromeOptions(), + options=options, command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) ) class EdgeTests(SeleniumGenericTests): def setUp(self): + options = EdgeOptions() + options.enable_downloads = True self.driver = webdriver.Remote( - options=EdgeOptions(), + options=options, command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) ) class FirefoxTests(SeleniumGenericTests): def setUp(self): + options = FirefoxOptions() + options.enable_downloads = True self.driver = webdriver.Remote( - options=FirefoxOptions(), + options=options, command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) ) diff --git a/tests/docker-compose-v3-test-video.yml b/tests/docker-compose-v3-test-video.yml index e80c56b92..bbfb6f6ab 100644 --- a/tests/docker-compose-v3-test-video.yml +++ b/tests/docker-compose-v3-test-video.yml @@ -12,6 +12,7 @@ services: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + - SE_OPTS=--enable-managed-downloads true ports: - "6900:5900" diff --git a/tests/test.py b/tests/test.py index 16dbbbf30..7568d755b 100644 --- a/tests/test.py +++ b/tests/test.py @@ -136,6 +136,8 @@ def launch_container(container, **kwargs): 'SE_EVENT_BUS_PUBLISH_PORT': 4442, 'SE_EVENT_BUS_SUBSCRIBE_PORT': 4443 } + if container != 'Hub': + environment['SE_OPTS'] = "--enable-managed-downloads true" container_id = client.containers.run("%s/%s:%s" % (NAMESPACE, IMAGE_NAME_MAP[container], VERSION), detach=True, environment=environment, From 591e3f58cc63365c2247bd8c7cc9227c0827b8ca Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Wed, 29 Nov 2023 12:57:57 +0000 Subject: [PATCH 056/100] Update tag in docs and files --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/Chart.yaml | 4 +- charts/selenium-grid/README.md | 14 +-- charts/selenium-grid/values.yaml | 26 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 20 files changed, 160 insertions(+), 160 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 293963a20..89be700b9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -55,6 +55,6 @@ body: attributes: label: Docker Selenium version (tag) description: What version of Docker Selenium are you using? - placeholder: 4.15.0-20231128? Please use the full tag, avoid "latest" + placeholder: 4.15.0-20231129? Please use the full tag, avoid "latest" validations: required: true \ No newline at end of file diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index c014087a5..5c31e62cf 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231128", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.15.0-20231128", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.15.0-20231128", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.15.0-20231129", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.15.0-20231129", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.15.0-20231129", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231128" +video-image = "selenium/video:ffmpeg-6.0-20231129" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 402944670..684bf284e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231128). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231129). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -65,7 +65,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -252,17 +252,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231128 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231129 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -281,44 +281,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231128 + selenium/node-edge:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231128 + selenium/node-firefox:4.15.0-20231129 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.15.0-20231128 + selenium/node-edge:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.15.0-20231128 + selenium/node-firefox:4.15.0-20231129 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -335,7 +335,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231129 ``` ##### Node Chrome - Machine/VM 2 @@ -349,7 +349,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 ``` ###### Windows PowerShell @@ -361,7 +361,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 ``` @@ -376,7 +376,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.15.0-20231128 + selenium/node-edge:4.15.0-20231129 ``` ###### Windows PowerShell @@ -388,7 +388,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.15.0-20231128 + selenium/node-edge:4.15.0-20231129 ``` ##### Node Firefox - Machine/VM 4 @@ -402,7 +402,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.15.0-20231128 + selenium/node-firefox:4.15.0-20231129 ``` ###### Windows PowerShell @@ -414,7 +414,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.15.0-20231128 + selenium/node-firefox:4.15.0-20231129 ``` ##### Node Chrome - Machine/VM 4 @@ -429,7 +429,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 ``` ###### Windows PowerShell @@ -442,7 +442,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 ``` #### Docker Compose @@ -474,7 +474,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231128` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231129` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -500,8 +500,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231128 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231129 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -533,9 +533,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231128", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.15.0-20231128", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.15.0-20231128", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.15.0-20231129", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.15.0-20231129", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.15.0-20231129", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -548,7 +548,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231128" +video-image = "selenium/video:ffmpeg-6.0-20231129" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -567,28 +567,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231128 + selenium/node-docker:4.15.0-20231129 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231128 + selenium/node-docker:4.15.0-20231129 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -609,7 +609,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231128 + selenium/standalone-docker:4.15.0-20231129 ``` #### Windows PowerShell @@ -619,7 +619,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231128 + selenium/standalone-docker:4.15.0-20231129 ``` ### Using Dynamic Grid in different machines/VMs @@ -627,7 +627,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231129 ``` #### Node Chrome - Machine/VM 2 @@ -642,7 +642,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231128 + selenium/node-docker:4.15.0-20231129 ``` #### Windows PowerShell @@ -655,7 +655,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231128 + selenium/node-docker:4.15.0-20231129 ``` Complete the `[server]` section in the `config.toml` file. @@ -664,9 +664,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231128", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.15.0-20231128", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.15.0-20231128", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.15.0-20231129", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.15.0-20231129", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.15.0-20231129", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -679,7 +679,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231128" +video-image = "selenium/video:ffmpeg-6.0-20231129" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -713,7 +713,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231128 + selenium/standalone-docker:4.15.0-20231129 ``` #### Windows PowerShell @@ -724,7 +724,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231128 + selenium/standalone-docker:4.15.0-20231129 ``` @@ -762,7 +762,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231129 ``` ### SE_JAVA_OPTS Java Environment Options @@ -770,7 +770,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231128 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231129 ``` ### Node configuration options @@ -792,7 +792,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.15.0-20231128 + --shm-size="2g" selenium/node-chrome:4.15.0-20231129 ``` ### Setting Sub Path @@ -811,7 +811,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231128 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231129 ``` ### Grid Url and Session Timeout @@ -861,7 +861,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231128 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231129 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -874,7 +874,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -966,22 +966,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.15.0-20231128 + selenium/hub:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231128 + selenium/node-edge:4.15.0-20231129 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231128 + selenium/node-firefox:4.15.0-20231129 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1114,7 +1114,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.15.0-20231128 +FROM selenium/node-chrome:4.15.0-20231129 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1129,7 +1129,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.15.0-20231128 +FROM selenium/node-firefox:4.15.0-20231129 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1152,9 +1152,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231128 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231129 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 ``` Then, you would use in your VNC client: @@ -1180,9 +1180,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231128 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231128 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231128 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231129 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 ``` Then, you would use in your browser: @@ -1207,28 +1207,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231128 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231128 + selenium/node-chrome:4.15.0-20231129 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231128 + selenium/node-edge:4.15.0-20231129 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231128 + selenium/node-firefox:4.15.0-20231129 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1288,7 +1288,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.15.0-20231128 + selenium/standalone-chrome:4.15.0-20231129 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index b92493cd0..68558c3b4 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -17,7 +17,7 @@ All notable changes to this helm chart will be documented in this file. - feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc ### Changed -- Update image tag to 4.15.0-20231128 +- Update image tag to 4.15.0-20231129 ## :heavy_check_mark: 0.23.0 diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index d300a367d..a66c44217 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.25.2 -appVersion: 4.15.0-20231128 +version: 0.25.3 +appVersion: 4.15.0-20231129 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 94d46fb4e..2d444e969 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -86,9 +86,9 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-----------------------|---------------------------------------| | `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images | -| `global.seleniumGrid.imageTag` | `4.15.0-20231128` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231128` | Image tag for browser's nodes | -| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.0-20231128` | Image tag for browser's video recoder | +| `global.seleniumGrid.imageTag` | `4.15.0-20231129` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231129` | Image tag for browser's nodes | +| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.0-20231129` | Image tag for browser's video recoder | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -131,7 +131,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image | | `chromeNode.imageName` | `node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.15.0-20231128` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.15.0-20231129` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -171,7 +171,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image | | `firefoxNode.imageName` | `node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.15.0-20231128` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.15.0-20231129` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -211,7 +211,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image | | `edgeNode.imageName` | `node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.15.0-20231128` | Image of edge nodes | +| `edgeNode.imageTag` | `4.15.0-20231129` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -249,7 +249,7 @@ This table contains the configuration parameters of the chart and their default | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image | | `videoRecorder.imageName` | `video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231128` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.0-20231129` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index cadf4cee2..b6e4ee040 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -3,11 +3,11 @@ global: # Image registry for all selenium components imageRegistry: selenium # Image tag for all selenium components - imageTag: 4.15.0-20231128 + imageTag: 4.15.0-20231129 # Image tag for browser's nodes - nodesImageTag: 4.15.0-20231128 + nodesImageTag: 4.15.0-20231129 # Image tag for browser's video recorder - videoImageTag: ffmpeg-6.0-20231128 + videoImageTag: ffmpeg-6.0-20231129 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -71,7 +71,7 @@ components: # Router image name imageName: router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -123,7 +123,7 @@ components: # Distributor image name imageName: distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -155,7 +155,7 @@ components: # Event Bus image name imageName: event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -191,7 +191,7 @@ components: # Session Map image name imageName: sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -222,7 +222,7 @@ components: # Session Queue image name imageName: session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -273,7 +273,7 @@ hub: # Selenium Hub image name imageName: hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -414,7 +414,7 @@ chromeNode: # Image of chrome nodes imageName: node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -547,7 +547,7 @@ firefoxNode: # Image of firefox nodes imageName: node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -677,7 +677,7 @@ edgeNode: # Image of edge nodes imageName: node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231128 + # imageTag: 4.15.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -796,7 +796,7 @@ videoRecorder: # Image of video recorder imageName: video # Image of video recorder - # imageTag: ffmpeg-6.0-20231128 + # imageTag: ffmpeg-6.0-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 76d9e0e4a..9743f3465 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index d576b405e..5fce484ec 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 33a3e8ece..37ab13ab9 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 0a9693692..d1560f30e 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 20d19b70b..50d125d8b 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.15.0-20231128 + image: selenium/node-docker:4.15.0-20231129 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 7690805bf..7e5a7ffd0 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231128 + image: selenium/event-bus:4.15.0-20231129 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231128 + image: selenium/sessions:4.15.0-20231129 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231128 + image: selenium/session-queue:4.15.0-20231129 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231128 + image: selenium/distributor:4.15.0-20231129 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231128 + image: selenium/router:4.15.0-20231129 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 7477b82cc..eef813159 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 8d42d757c..efba7cb49 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.15.0-20231128 + image: selenium/event-bus:4.15.0-20231129 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.15.0-20231128 + image: selenium/sessions:4.15.0-20231129 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.15.0-20231128 + image: selenium/session-queue:4.15.0-20231129 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.15.0-20231128 + image: selenium/distributor:4.15.0-20231129 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.15.0-20231128 + image: selenium/router:4.15.0-20231129 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 497d58db3..1c23a5f88 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231128 + image: selenium/event-bus:4.15.0-20231129 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231128 + image: selenium/sessions:4.15.0-20231129 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231128 + image: selenium/session-queue:4.15.0-20231129 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231128 + image: selenium/distributor:4.15.0-20231129 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231128 + image: selenium/router:4.15.0-20231129 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 7477b82cc..eef813159 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 7173fbc66..1e5fb3e10 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index f481b8e25..ff2e8c7fe 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231128 + image: selenium/video:ffmpeg-6.0-20231129 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231128 + image: selenium/video:ffmpeg-6.0-20231129 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231128 + image: selenium/video:ffmpeg-6.0-20231129 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index e4c305204..1badb813a 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231128 + image: selenium/node-chrome:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231128 + image: selenium/node-edge:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231128 + image: selenium/node-firefox:4.15.0-20231129 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231128 + image: selenium/hub:4.15.0-20231129 container_name: selenium-hub ports: - "4442:4442" From 4c7703be6e76e5fbc573dacfa3bcd09a19faf1a1 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Thu, 30 Nov 2023 01:28:09 +0530 Subject: [PATCH 057/100] Update bug report template [skip ci] Signed-off-by: Viet Nguyen Duc --- .github/ISSUE_TEMPLATE/bug_report.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 89be700b9..c66e49567 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -19,14 +19,15 @@ body: validations: required: true - type: textarea - id: repro-command + id: reproduce-command attributes: - label: Command used to start Selenium Grid with Docker + label: Command used to start Selenium Grid with Docker (or Kubernetes) description: | - What command do you use to start Selenium Grid with Docker? + What command do you use to start Selenium Grid with Docker (or Kubernetes)? placeholder: | Please share the script or docker-compose file used. This will be automatically formatted into code, so no need for backticks. + If Kubernetes used, please share the YAML file, or chart values used to deploy the cluster. Be sure to include an SSCCE (Short, Self Contained, Correct [compilable] example) http://sscce.org/ render: shell @@ -47,14 +48,14 @@ body: attributes: label: Operating System description: What host operating system are you using to run docker-selenium? - placeholder: Windows 10? macOS BigSur? Ubuntu? + placeholder: Windows 10? macOS BigSur? Ubuntu? Kubernetes (Minikube, EKS, GKE, AKS, OpenShift, Rancher, etc.) version? validations: required: true - type: input id: version attributes: - label: Docker Selenium version (tag) + label: Docker Selenium version (tag or chart version) description: What version of Docker Selenium are you using? placeholder: 4.15.0-20231129? Please use the full tag, avoid "latest" validations: - required: true \ No newline at end of file + required: true From 113bb0a5b21945a67bdac1bf44a409b59fc15183 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Thu, 30 Nov 2023 10:08:12 +0700 Subject: [PATCH 058/100] test(chart): Add test for setting registry to pull images (#2036) Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-test.yml | 10 ++++++---- charts/selenium-grid/README.md | 20 ++++++++++---------- charts/selenium-grid/TESTING.md | 1 + tests/K8s/chart_install.sh | 1 + tests/SeleniumTests/__init__.py | 7 ++++--- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 2c1cd307c..086090f2f 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -38,20 +38,22 @@ jobs: - name: Output branch name run: echo ${BRANCH} - name: Sets build date - run: echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV + run: | + echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV + echo "IMAGE_REGISTRY=artifactory/selenium" >> $GITHUB_ENV - name: Build Docker images - run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build + run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build - name: Setup Kubernetes environment run: make chart_setup_env - name: Setup Kubernetes cluster - run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup + run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup - name: Test Selenium Grid on Kubernetes uses: nick-invision/retry@v2.9.0 with: timeout_minutes: 20 max_attempts: 3 command: | - VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test + NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test - name: Cleanup Kubernetes cluster if: always() run: make chart_cluster_cleanup diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 2d444e969..2ec8a7ab0 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -129,7 +129,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.enabled` | `true` | Enable chrome nodes | | `chromeNode.deploymentEnabled` | `true` | Enable creation of Deployment for chrome nodes | | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | -| `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image | +| `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `chromeNode.imageName` | `node-chrome` | Image of chrome nodes | | `chromeNode.imageTag` | `4.15.0-20231129` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -169,7 +169,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.enabled` | `true` | Enable firefox nodes | | `firefoxNode.deploymentEnabled` | `true` | Enable creation of Deployment for firefox nodes | | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | -| `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image | +| `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `firefoxNode.imageName` | `node-firefox` | Image of firefox nodes | | `firefoxNode.imageTag` | `4.15.0-20231129` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -209,7 +209,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.enabled` | `true` | Enable edge nodes | | `edgeNode.deploymentEnabled` | `true` | Enable creation of Deployment for edge nodes | | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | -| `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image | +| `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `edgeNode.imageName` | `node-edge` | Image of edge nodes | | `edgeNode.imageTag` | `4.15.0-20231129` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -247,7 +247,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.scaledJobOptions` | See `values.yaml` | Override the global `autoscaling.scaledJobOptions` with specific scaled options for edge nodes | | `edgeNode.scaledObjectOptions` | See `values.yaml` | Override the global `autoscaling.scaledObjectOptions` with specific scaled options for edge nodes | | `videoRecorder.enabled` | `false` | Enable video recorder for node | -| `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image | +| `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `videoRecorder.imageName` | `video` | Selenium video recoder image name | | `videoRecorder.imageTag` | `ffmpeg-6.0-20231129` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -285,7 +285,7 @@ You can configure the Selenium Hub with these values: | Parameter | Default | Description | |---------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| -| `hub.imageRegistry` | `nil` | Distribution registry to pull the image | +| `hub.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `hub.imageName` | `hub` | Selenium Hub image name | | `hub.imageTag` | `nil` | Selenium Hub image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `hub.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -319,7 +319,7 @@ If you implement selenium-grid with separate components (`isolateComponents: tru | Parameter | Default | Description | |----------------------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| -| `components.router.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.router.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `components.router.imageName` | `router` | Router image name | | `components.router.imageTag` | `nil` | Router image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `components.router.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -337,7 +337,7 @@ If you implement selenium-grid with separate components (`isolateComponents: tru | `components.router.nodeSelector` | `{}` | Node Selector for router pods | | `components.router.affinity` | `{}` | Affinity for router pods | | `components.router.priorityClassName` | `""` | Priority class name for router pods | -| `components.distributor.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.distributor.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `components.distributor.imageName` | `distributor` | Distributor image name | | `components.distributor.imageTag` | `nil` | Distributor image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `components.distributor.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -352,7 +352,7 @@ If you implement selenium-grid with separate components (`isolateComponents: tru | `components.distributor.nodeSelector` | `{}` | Node Selector for Distributor pods | | `components.distributor.affinity` | `{}` | Affinity for Distributor pods | | `components.distributor.priorityClassName` | `""` | Priority class name for Distributor pods | -| `components.eventBus.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.eventBus.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `components.eventBus.imageName` | `event-bus` | Event Bus image name | | `components.eventBus.imageTag` | `nil` | Event Bus image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `components.eventBus.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -369,7 +369,7 @@ If you implement selenium-grid with separate components (`isolateComponents: tru | `components.eventBus.nodeSelector` | `{}` | Node Selector for Event Bus pods | | `components.eventBus.affinity` | `{}` | Affinity for Event Bus pods | | `components.eventBus.priorityClassName` | `""` | Priority class name for Event Bus pods | -| `components.sessionMap.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.sessionMap.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `components.sessionMap.imageName` | `sessions` | Session Map image name | | `components.sessionMap.imageTag` | `nil` | Session Map image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `components.sessionMap.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | @@ -383,7 +383,7 @@ If you implement selenium-grid with separate components (`isolateComponents: tru | `components.sessionMap.nodeSelector` | `{}` | Node Selector for Session Map pods | | `components.sessionMap.affinity` | `{}` | Affinity for Session Map pods | | `components.sessionMap.priorityClassName` | `""` | Priority class name for Session Map pods | -| `components.sessionQueue.imageRegistry` | `nil` | Distribution registry to pull the image | +| `components.sessionQueue.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `components.sessionQueue.imageName` | `session-queue` | Session Queue image name | | `components.sessionQueue.imageTag` | `nil` | Session Queue image tag (this overwrites `.global.seleniumGrid.imageTag` value) | | `components.sessionQueue.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md index d6e266713..cd0ece83c 100644 --- a/charts/selenium-grid/TESTING.md +++ b/charts/selenium-grid/TESTING.md @@ -19,6 +19,7 @@ All related testing to this helm chart will be documented in this file. | | Sanity tests in node | ✓ | | | Video recorder is enabled in node | ✗ | | | Node `extraEnvironmentVariables` is set value | ✓ | +| General | Set new image registry via `global.seleniumGrid.imageRegistry` | ✓ | ## Build & test Docker images with Helm charts Noted: These `make` commands are composed and tested on Linux x86_64. diff --git a/tests/K8s/chart_install.sh b/tests/K8s/chart_install.sh index 7fb7a0cb5..0a6ce7001 100755 --- a/tests/K8s/chart_install.sh +++ b/tests/K8s/chart_install.sh @@ -48,6 +48,7 @@ helm upgrade --install ${RELEASE_NAME} \ --set autoscaling.enableWithExistingKEDA=${SELENIUM_GRID_AUTOSCALING} \ --set autoscaling.scaledOptions.minReplicaCount=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} \ --set global.seleniumGrid.imageTag=${VERSION} --set global.seleniumGrid.imageRegistry=${NAMESPACE} \ +--set global.seleniumGrid.nodesImageTag=${VERSION} \ ${CHART_PATH} --namespace ${SELENIUM_NAMESPACE} --create-namespace echo "Run Tests" diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index 12ee94ede..acdaa4bda 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -66,15 +66,16 @@ def test_play_video(self): def test_download_file(self): driver = self.driver driver.get('https://the-internet.herokuapp.com/download') + file_name = 'some-file.txt' wait = WebDriverWait(driver, 30) file_link = wait.until( - EC.element_to_be_clickable((By.LINK_TEXT, 'some-file.txt')) + EC.element_to_be_clickable((By.LINK_TEXT, file_name)) ) file_link.click() wait.until( - lambda d: len(d.get_downloadable_files()) > 0 + lambda d: str(d.get_downloadable_files()[0]).endswith(file_name) ) - self.assertTrue(len(driver.get_downloadable_files()) > 0) + self.assertTrue(str(driver.get_downloadable_files()[0]).endswith(file_name)) def tearDown(self): self.driver.quit() From 8fd00ef496d17cab385ecddce4638fd733451d6e Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Sat, 2 Dec 2023 02:40:29 +0700 Subject: [PATCH 059/100] bug(#2038): Rollback io.opentelemetry 1.31.0 - add test tracing enabled (#2040) Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-test.yml | 4 ---- Base/Dockerfile | 5 ++++- Distributor/start-selenium-grid-distributor.sh | 4 ++-- EventBus/start-selenium-grid-eventbus.sh | 4 ++-- Hub/start-selenium-grid-hub.sh | 5 ++--- NodeBase/start-selenium-node.sh | 4 ++-- NodeChrome/Dockerfile | 2 +- NodeDocker/start-selenium-grid-docker.sh | 4 ++-- Router/start-selenium-grid-router.sh | 4 ++-- SessionQueue/start-selenium-grid-session-queue.sh | 4 ++-- Sessions/start-selenium-grid-sessions.sh | 4 ++-- Standalone/start-selenium-standalone.sh | 4 ++-- StandaloneDocker/start-selenium-grid-docker.sh | 4 ++-- charts/selenium-grid/TESTING.md | 4 ++++ charts/selenium-grid/ci/tracing-values.yaml | 13 +++++++++++++ tests/K8s/chart_install.sh | 3 ++- 16 files changed, 44 insertions(+), 28 deletions(-) create mode 100644 charts/selenium-grid/ci/tracing-values.yaml diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 086090f2f..29f3d3925 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -2,11 +2,7 @@ name: Lint and Test Helm Charts on: push: - paths: - - 'charts/selenium-grid/**' pull_request: - paths: - - 'charts/selenium-grid/**' workflow_dispatch: permissions: diff --git a/Base/Dockerfile b/Base/Dockerfile index d15e08c2a..05a489b95 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -89,7 +89,10 @@ RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier && mkdir -p /external_jars \ && chmod -R 775 /external_jars -RUN /tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.32.0 io.opentelemetry:opentelemetry-exporter-jaeger:1.32.0 io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt +RUN /tmp/cs fetch --classpath --cache /external_jars \ + io.opentelemetry:opentelemetry-exporter-otlp:1.31.0 \ + io.opentelemetry:opentelemetry-exporter-jaeger:1.31.0 \ + io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt RUN chmod 664 /external_jars/.classpath.txt RUN rm -fr /root/.cache/* diff --git a/Distributor/start-selenium-grid-distributor.sh b/Distributor/start-selenium-grid-distributor.sh index 81d498cea..b51340c91 100755 --- a/Distributor/start-selenium-grid-distributor.sh +++ b/Distributor/start-selenium-grid-distributor.sh @@ -58,8 +58,8 @@ EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$(/dev/null \ && echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ && apt-get update -qqy \ && apt-get -qqy install \ diff --git a/NodeDocker/start-selenium-grid-docker.sh b/NodeDocker/start-selenium-grid-docker.sh index b13474c6b..0220a1ec9 100755 --- a/NodeDocker/start-selenium-grid-docker.sh +++ b/NodeDocker/start-selenium-grid-docker.sh @@ -33,8 +33,8 @@ EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$( Date: Sat, 2 Dec 2023 02:44:29 +0700 Subject: [PATCH 060/100] feat: Video image with based FFmpeg-6.1 on Ubuntu-22.04 (#2042) Signed-off-by: Viet Nguyen Duc --- Makefile | 12 +++++---- NodeDocker/config.toml | 2 +- README.md | 8 +++--- Video/Dockerfile | 42 ++++++++++++++++++++------------ charts/selenium-grid/README.md | 4 +-- charts/selenium-grid/values.yaml | 4 +-- docker-compose-v3-video.yml | 6 ++--- generate_release_notes.sh | 2 +- 8 files changed, 47 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index e207c209e..6853a676d 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,9 @@ BUILD_ARGS := $(BUILD_ARGS) MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION))) MINOR := $(word 2,$(subst ., ,$(TAG_VERSION))) MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION))) -FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-6.0) +FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-6.1) +FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),ndviet) +FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),6.1-ubuntu2204) all: hub \ distributor \ @@ -119,7 +121,7 @@ standalone_edge_beta: edge_beta cd ./Standalone && docker build $(BUILD_ARGS) --build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-edge -t $(NAME)/standalone-edge:beta . video: - cd ./Video && docker build $(BUILD_ARGS) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) . + cd ./Video && docker build $(BUILD_ARGS) --build-arg NAMESPACE=$(FFMPEG_BASED_NAME) --build-arg BASED_TAG=$(FFMPEG_BASED_TAG) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) . # https://github.com/SeleniumHQ/docker-selenium/issues/992 @@ -357,9 +359,9 @@ test_video: video hub chrome firefox edge done # Using ffmpeg to verify file integrity # https://superuser.com/questions/100288/how-can-i-check-the-integrity-of-a-video-file-avi-mpeg-mp4 - docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log - docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log - docker run -v $$(pwd):$$(pwd) -w $$(pwd) jrottenberg/ffmpeg:6.0-alpine -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log chart_setup_env: ./tests/K8s/chart_setup_env.sh diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 5c31e62cf..a505e1c1a 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231129" +video-image = "selenium/video:ffmpeg-6.1-20231129" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 684bf284e..5892db09f 100644 --- a/README.md +++ b/README.md @@ -474,7 +474,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.0-20231129` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231129` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -501,7 +501,7 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid $ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.0-20231129 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231129 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -548,7 +548,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231129" +video-image = "selenium/video:ffmpeg-6.1-20231129" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -679,7 +679,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.0-20231129" +video-image = "selenium/video:ffmpeg-6.1-20231129" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/Video/Dockerfile b/Video/Dockerfile index 808e8715a..a6a426ee7 100644 --- a/Video/Dockerfile +++ b/Video/Dockerfile @@ -1,29 +1,41 @@ -FROM jrottenberg/ffmpeg:6.0-alpine +ARG NAMESPACE +ARG BASED_TAG +FROM $NAMESPACE/ffmpeg:$BASED_TAG LABEL authors="Selenium " +#================================================ +# Customize sources for apt-get +#================================================ +RUN echo "deb http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \ + && echo "deb http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \ + && echo "deb http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list + +# No interactive frontend during docker build +ENV DEBIAN_FRONTEND=noninteractive \ + DEBCONF_NONINTERACTIVE_SEEN=true + #======================== # Supervisor #======================== -RUN apk update \ - && apk upgrade \ - && apk add --no-cache --update --virtual .build-deps supervisor bash curl jq xset xdpyinfo python3 py3-psutil py3-pip \ - && ln -sf python3 /usr/bin/python \ - && rm -rf /tmp/* /var/cache/apk/* - -ENV PYTHONUNBUFFERED=1 -RUN python3 -m pip install --no-cache --upgrade --no-cache-dir pip urllib3 setuptools requests wheel +RUN apt-get -qqy update \ + && apt-get upgrade -yq \ + && apt-get -qqy --no-install-recommends install \ + supervisor x11-xserver-utils x11-utils curl jq python3-pip \ + && python3 -m pip install --upgrade pip \ + && python3 -m pip install --upgrade setuptools \ + && python3 -m pip install --upgrade wheel \ + && rm -rf /var/lib/apt/lists/* /var/cache/apt/* #====================================== # Add Supervisor configuration files #====================================== -ENV SE_VIDEO_FOLDER /videos -RUN mkdir -p /opt/bin/ -RUN mkdir -p /var/run/supervisor /var/log/supervisor ${SE_VIDEO_FOLDER} - COPY supervisord.conf /etc COPY entry_point.sh video.sh video_ready.py /opt/bin/ +RUN cd /opt/bin && pip install psutil + +ENV SE_VIDEO_FOLDER /videos +RUN mkdir -p /var/run/supervisor /var/log/supervisor $SE_VIDEO_FOLDER -RUN chmod +x /opt/bin/* ENTRYPOINT ["/opt/bin/entry_point.sh"] CMD ["/opt/bin/entry_point.sh"] @@ -32,7 +44,7 @@ ENV DISPLAY_CONTAINER_NAME selenium ENV SE_SCREEN_WIDTH 1360 ENV SE_SCREEN_HEIGHT 1020 ENV SE_FRAME_RATE 15 -ENV SE_CODEC libx264 +ENV SE_CODEC libx265 ENV SE_PRESET "-preset ultrafast" ENV FILE_NAME video.mp4 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 2ec8a7ab0..ea0bb31dd 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -88,7 +88,7 @@ For now, global configuration supported is: | `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images | | `global.seleniumGrid.imageTag` | `4.15.0-20231129` | Image tag for all selenium components | | `global.seleniumGrid.nodesImageTag` | `4.15.0-20231129` | Image tag for browser's nodes | -| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.0-20231129` | Image tag for browser's video recoder | +| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231129` | Image tag for browser's video recoder | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -249,7 +249,7 @@ This table contains the configuration parameters of the chart and their default | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `videoRecorder.imageName` | `video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.0-20231129` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.1-20231129` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index b6e4ee040..a32a9c96a 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -7,7 +7,7 @@ global: # Image tag for browser's nodes nodesImageTag: 4.15.0-20231129 # Image tag for browser's video recorder - videoImageTag: ffmpeg-6.0-20231129 + videoImageTag: ffmpeg-6.1-20231129 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -796,7 +796,7 @@ videoRecorder: # Image of video recorder imageName: video # Image of video recorder - # imageTag: ffmpeg-6.0-20231129 + # imageTag: ffmpeg-6.1-20231129 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index ff2e8c7fe..6f044bece 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.0-20231129 + image: selenium/video:ffmpeg-6.1-20231129 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.0-20231129 + image: selenium/video:ffmpeg-6.1-20231129 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.0-20231129 + image: selenium/video:ffmpeg-6.1-20231129 volumes: - /tmp/videos:/videos depends_on: diff --git a/generate_release_notes.sh b/generate_release_notes.sh index c936c48d4..c2f4e40ae 100755 --- a/generate_release_notes.sh +++ b/generate_release_notes.sh @@ -17,7 +17,7 @@ CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chrom EDGEDRIVER_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}') FIREFOX_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}') GECKODRIVER_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}') -FFMPEG_VERSION=$(docker run --entrypoint="" --rm selenium/video:ffmpeg-6.0-${BUILD_DATE} ffmpeg -version | awk '{print $3}' | head -n 1) +FFMPEG_VERSION=$(docker run --entrypoint="" --rm selenium/video:ffmpeg-6.1-${BUILD_DATE} ffmpeg -version | awk '{print $3}' | head -n 1) echo "" >> release_notes.md From c2a5b664ee456683804bc20e7d8b749e1fbf7db4 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Sat, 2 Dec 2023 04:46:51 +0700 Subject: [PATCH 061/100] test(chart): Chart template render and assert output (#2043) Signed-off-by: Viet Nguyen Duc --- Makefile | 18 ++++-- charts/selenium-grid/README.md | 6 +- charts/selenium-grid/TESTING.md | 64 ++++++++++++------- tests/charts/bootstrap.sh | 25 ++++++++ .../charts}/ci/NodeChrome-values.yaml | 2 +- .../charts}/ci/NodeEdge-values.yaml | 2 +- .../charts}/ci/NodeFirefox-values.yaml | 2 +- .../charts}/ci/auth-ingress-values.yaml | 0 .../charts}/ci/autoscaling-values.yaml | 0 .../charts}/ci/tracing-values.yaml | 0 .../config/ct.yaml} | 0 .../config/kind-cluster.yaml} | 0 .../make}/chart_cluster_cleanup.sh | 0 .../make}/chart_cluster_setup.sh | 6 +- tests/{K8s => charts/make}/chart_install.sh | 2 +- tests/{K8s => charts/make}/chart_lint.sh | 3 +- tests/{K8s => charts/make}/chart_setup_env.sh | 0 tests/charts/templates/render/dummy.yaml | 24 +++++++ tests/charts/templates/test.py | 42 ++++++++++++ 19 files changed, 156 insertions(+), 40 deletions(-) create mode 100755 tests/charts/bootstrap.sh rename {charts/selenium-grid => tests/charts}/ci/NodeChrome-values.yaml (77%) rename {charts/selenium-grid => tests/charts}/ci/NodeEdge-values.yaml (77%) rename {charts/selenium-grid => tests/charts}/ci/NodeFirefox-values.yaml (77%) rename {charts/selenium-grid => tests/charts}/ci/auth-ingress-values.yaml (100%) rename {charts/selenium-grid => tests/charts}/ci/autoscaling-values.yaml (100%) rename {charts/selenium-grid => tests/charts}/ci/tracing-values.yaml (100%) rename tests/{K8s/chart-testing.yaml => charts/config/ct.yaml} (100%) rename tests/{K8s/kind-cluster-config.yaml => charts/config/kind-cluster.yaml} (100%) rename tests/{K8s => charts/make}/chart_cluster_cleanup.sh (100%) rename tests/{K8s => charts/make}/chart_cluster_setup.sh (92%) rename tests/{K8s => charts/make}/chart_install.sh (97%) rename tests/{K8s => charts/make}/chart_lint.sh (89%) rename tests/{K8s => charts/make}/chart_setup_env.sh (100%) create mode 100644 tests/charts/templates/render/dummy.yaml create mode 100644 tests/charts/templates/test.py diff --git a/Makefile b/Makefile index 6853a676d..b2ac24195 100644 --- a/Makefile +++ b/Makefile @@ -364,30 +364,34 @@ test_video: video hub chrome firefox edge docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log chart_setup_env: - ./tests/K8s/chart_setup_env.sh + ./tests/charts/make/chart_setup_env.sh chart_test: chart_lint \ + chart_test_template \ chart_install_chrome \ chart_install_firefox \ chart_install_edge +chart_test_template: + ./tests/charts/bootstrap.sh + chart_cluster_setup: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_cluster_setup.sh + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_cluster_setup.sh chart_lint: - ./tests/K8s/chart_lint.sh + ./tests/charts/make/chart_lint.sh chart_install_chrome: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_install.sh NodeChrome + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_install.sh NodeChrome chart_install_firefox: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_install.sh NodeFirefox + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_install.sh NodeFirefox chart_install_edge: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/K8s/chart_install.sh NodeEdge + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_install.sh NodeEdge chart_cluster_cleanup: - ./tests/K8s/chart_cluster_cleanup.sh + ./tests/charts/make/chart_cluster_cleanup.sh .PHONY: \ all \ diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index ea0bb31dd..a1c6eff5b 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -36,13 +36,13 @@ helm install selenium-grid --set ingress.hostname=selenium-grid.k8s.local docker Selenium Grid has the ability to autoscaling browser nodes up/down based on the pending requests in the session queue. -To do this [KEDA](https://keda.sh/docs/2.12/scalers/selenium-grid-scaler/) is used. When enabling +To do this [KEDA](https://keda.sh/docs/latest/scalers/selenium-grid-scaler/) is used. When enabling autoscaling using `autoscaling.enabling` KEDA is installed automatically. To instead use an existing installation of KEDA you can enable autoscaling with `autoscaling.enableWithExistingKEDA` instead. KEDA can scale either with -[deployments](https://keda.sh/docs/2.12/concepts/scaling-deployments/#scaling-of-deployments-and-statefulsets) -or [jobs](https://keda.sh/docs/2.12/concepts/scaling-jobs/) and the charts support both types. This +[deployments](https://keda.sh/docs/latest/concepts/scaling-deployments/#scaling-of-deployments-and-statefulsets) +or [jobs](https://keda.sh/docs/latest/concepts/scaling-jobs/) and the charts support both types. This chart support both modes. It is controlled with `autoscaling.scalingType` that can be set to either job (default) or deployment. diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md index f9fa772d0..90c57c115 100644 --- a/charts/selenium-grid/TESTING.md +++ b/charts/selenium-grid/TESTING.md @@ -4,28 +4,46 @@ All related testing to this helm chart will be documented in this file. ## Test Traceability Matrix -| Features | TC Description | Coverage | -|------------------------|----------------------------------------------------------------------|----------| -| Basic Auth | Basic Auth is disabled | ✓ | -| | Basic Auth is enabled | ✗ | -| Auto scaling | Auto scaling with `enableWithExistingKEDA` is `true` | ✓ | -| | Auto scaling with `scalingType` is `job` | ✓ | -| | Auto scaling with `scalingType` is `deployment` | ✗ | -| | Auto scaling with `autoscaling.scaledOptions.minReplicaCount` is `0` | ✓ | -| Ingress | Ingress is enabled without `hostname` | ✓ | -| | Ingress is enabled with `hostname` is set | ✗ | -| | Hub `sub-path` is set with Ingress `ImplementationSpecific` paths | ✓ | -| Distributed components | `isolateComponents` is enabled | ✓ | -| | `isolateComponents` is disabled | ✗ | -| Browser Nodes | Node `nameOverride` is set | ✓ | -| | Sanity tests in node | ✓ | -| | Video recorder is enabled in node | ✗ | -| | Node `extraEnvironmentVariables` is set value | ✓ | -| General | Set new image registry via `global.seleniumGrid.imageRegistry` | ✓ | -| Tracing | Enable tracing via `SE_ENABLE_TRACING` | ✓ | -| | Disable tracing via `SE_ENABLE_TRACING` | ✗ | - -## Build & test Docker images with Helm charts +| Features | TC Description | Coverage | Test via | +|------------------------|----------------------------------------------------------------------|----------|----------| +| Basic Auth | Basic Auth is disabled | ✓ | Cluster | +| | Basic Auth is enabled | ✗ | | +| Auto scaling | Auto scaling with `enableWithExistingKEDA` is `true` | ✓ | Cluster | +| | Auto scaling with `scalingType` is `job` | ✓ | Cluster | +| | Auto scaling with `scalingType` is `deployment` | ✗ | | +| | Auto scaling with `autoscaling.scaledOptions.minReplicaCount` is `0` | ✓ | Cluster | +| Ingress | Ingress is enabled without `hostname` | ✓ | Cluster | +| | Ingress is enabled with `hostname` is set | ✗ | | +| | Hub `sub-path` is set with Ingress `ImplementationSpecific` paths | ✓ | Cluster | +| Distributed components | `isolateComponents` is enabled | ✓ | Cluster | +| | `isolateComponents` is disabled | ✗ | | +| Browser Nodes | Node `nameOverride` is set | ✓ | Cluster | +| | Sanity tests in node | ✓ | Cluster | +| | Video recorder is enabled in node | ✗ | | +| | Node `extraEnvironmentVariables` is set value | ✓ | Cluster | +| General | Set new image registry via `global.seleniumGrid.imageRegistry` | ✓ | Cluster | +| | Components are able to set `.affinity` | ✓ | Template | +| Tracing | Enable tracing via `SE_ENABLE_TRACING` | ✓ | Cluster | +| | Disable tracing via `SE_ENABLE_TRACING` | ✗ | | + +## Test Chart Template +- By using `helm template` command, the chart template is tested without installing it to Kubernetes cluster. +- Templates are rendered and the output as a YAML manifest file. The manifest file is then asserted with [pyyaml](https://pyyaml.org/wiki/PyYAMLDocumentation). +- Set of values are used to render the templates located in [tests/charts/templates/render](../../tests/charts/templates/render). + +```bash +# Back to root directory +cd ../.. + +# Build chart dependencies and lint +make chart_lint + +# Test chart template +make chart_test_template +``` +- Build chart dependencies and lint requires [Chart Testing `ct`](https://github.com/helm/chart-testing). There is a config file [ct.yaml](../../tests/charts/config/ct.yaml) to configure the chart testing. + +## Build & test Docker images with deploy to Kubernetes cluster Noted: These `make` commands are composed and tested on Linux x86_64. Run entire commands to build and test Docker images with Helm charts in local environment. @@ -48,3 +66,5 @@ make chart_test # Cleanup Kubernetes cluster make chart_cluster_cleanup ``` +- Setup Kubernetes environment requires [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/) and [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). +- Set of values are used to deploy the chart to Kubernetes cluster located in [tests/charts/ci](../../tests/charts/ci). diff --git a/tests/charts/bootstrap.sh b/tests/charts/bootstrap.sh new file mode 100755 index 000000000..d961b63ae --- /dev/null +++ b/tests/charts/bootstrap.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +mkdir -p tests/tests +cd tests || true + +if [ "${CI:-false}" = "false" ]; then + pip3 install virtualenv | grep -v 'Requirement already satisfied' + virtualenv docker-selenium-tests + source docker-selenium-tests/bin/activate +fi + +python -m pip install pyyaml==6.0.1 \ + | grep -v 'Requirement already satisfied' + +cd .. +helm template dummy --values tests/charts/templates/render/dummy.yaml \ + charts/selenium-grid > ./tests/tests/output_deployment.yaml + +python tests/charts/templates/test.py "./tests/tests/output_deployment.yaml" +ret_code=$? + +if [ "${CI:-false}" = "false" ]; then + deactivate +fi + +exit $ret_code diff --git a/charts/selenium-grid/ci/NodeChrome-values.yaml b/tests/charts/ci/NodeChrome-values.yaml similarity index 77% rename from charts/selenium-grid/ci/NodeChrome-values.yaml rename to tests/charts/ci/NodeChrome-values.yaml index 131434058..09396f42d 100644 --- a/charts/selenium-grid/ci/NodeChrome-values.yaml +++ b/tests/charts/ci/NodeChrome-values.yaml @@ -1,4 +1,4 @@ -# This is used in Helm chart testing. This disables the basic auth on selenium grid +# This is used in Helm chart testing # Configuration for chrome nodes chromeNode: nameOverride: my-chrome-name diff --git a/charts/selenium-grid/ci/NodeEdge-values.yaml b/tests/charts/ci/NodeEdge-values.yaml similarity index 77% rename from charts/selenium-grid/ci/NodeEdge-values.yaml rename to tests/charts/ci/NodeEdge-values.yaml index aec663509..27220e275 100644 --- a/charts/selenium-grid/ci/NodeEdge-values.yaml +++ b/tests/charts/ci/NodeEdge-values.yaml @@ -1,4 +1,4 @@ -# This is used in Helm chart testing. This disables the basic auth on selenium grid +# This is used in Helm chart testing # Configuration for chrome nodes chromeNode: enabled: false diff --git a/charts/selenium-grid/ci/NodeFirefox-values.yaml b/tests/charts/ci/NodeFirefox-values.yaml similarity index 77% rename from charts/selenium-grid/ci/NodeFirefox-values.yaml rename to tests/charts/ci/NodeFirefox-values.yaml index 8ccc9bd41..21bb6a285 100644 --- a/charts/selenium-grid/ci/NodeFirefox-values.yaml +++ b/tests/charts/ci/NodeFirefox-values.yaml @@ -1,4 +1,4 @@ -# This is used in Helm chart testing. This disables the basic auth on selenium grid +# This is used in Helm chart testing # Configuration for chrome nodes chromeNode: enabled: false diff --git a/charts/selenium-grid/ci/auth-ingress-values.yaml b/tests/charts/ci/auth-ingress-values.yaml similarity index 100% rename from charts/selenium-grid/ci/auth-ingress-values.yaml rename to tests/charts/ci/auth-ingress-values.yaml diff --git a/charts/selenium-grid/ci/autoscaling-values.yaml b/tests/charts/ci/autoscaling-values.yaml similarity index 100% rename from charts/selenium-grid/ci/autoscaling-values.yaml rename to tests/charts/ci/autoscaling-values.yaml diff --git a/charts/selenium-grid/ci/tracing-values.yaml b/tests/charts/ci/tracing-values.yaml similarity index 100% rename from charts/selenium-grid/ci/tracing-values.yaml rename to tests/charts/ci/tracing-values.yaml diff --git a/tests/K8s/chart-testing.yaml b/tests/charts/config/ct.yaml similarity index 100% rename from tests/K8s/chart-testing.yaml rename to tests/charts/config/ct.yaml diff --git a/tests/K8s/kind-cluster-config.yaml b/tests/charts/config/kind-cluster.yaml similarity index 100% rename from tests/K8s/kind-cluster-config.yaml rename to tests/charts/config/kind-cluster.yaml diff --git a/tests/K8s/chart_cluster_cleanup.sh b/tests/charts/make/chart_cluster_cleanup.sh similarity index 100% rename from tests/K8s/chart_cluster_cleanup.sh rename to tests/charts/make/chart_cluster_cleanup.sh diff --git a/tests/K8s/chart_cluster_setup.sh b/tests/charts/make/chart_cluster_setup.sh similarity index 92% rename from tests/K8s/chart_cluster_setup.sh rename to tests/charts/make/chart_cluster_setup.sh index b46231449..76b27872d 100755 --- a/tests/K8s/chart_cluster_setup.sh +++ b/tests/charts/make/chart_cluster_setup.sh @@ -8,7 +8,7 @@ KEDA_NAMESPACE=${KEDA_NAMESPACE:-"keda"} INGRESS_NAMESPACE=${INGRESS_NAMESPACE:-"ingress-nginx"} SUB_PATH=${SUB_PATH:-"/selenium"} CHART_PATH=${CHART_PATH:-"charts/selenium-grid"} -TEST_VALUES_PATH=${TEST_VALUES_PATH:-"charts/selenium-grid/ci"} +TEST_VALUES_PATH=${TEST_VALUES_PATH:-"tests/charts/ci"} SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST:-"localhost"} SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT:-"80"} WAIT_TIMEOUT=${WAIT_TIMEOUT:-"90s"} @@ -17,7 +17,7 @@ SKIP_CLEANUP=${SKIP_CLEANUP:-"false"} # For debugging purposes, retain the clust # Function to clean up for retry step on workflow cleanup() { if [ "${SKIP_CLEANUP}" = "false" ]; then - ./tests/K8s/chart_cluster_cleanup.sh + ./tests/charts/make/chart_cluster_cleanup.sh fi } @@ -33,7 +33,7 @@ on_failure() { trap 'on_failure' ERR echo "Create Kind cluster" -kind create cluster --wait ${WAIT_TIMEOUT} --name ${CLUSTER_NAME} --config tests/K8s/kind-cluster-config.yaml +kind create cluster --wait ${WAIT_TIMEOUT} --name ${CLUSTER_NAME} --config tests/charts/config/kind-cluster.yaml echo "Install KEDA core on kind kubernetes cluster" kubectl apply --server-side -f https://github.com/kedacore/keda/releases/download/v2.12.1/keda-2.12.1-core.yaml diff --git a/tests/K8s/chart_install.sh b/tests/charts/make/chart_install.sh similarity index 97% rename from tests/K8s/chart_install.sh rename to tests/charts/make/chart_install.sh index 9beffae4a..d89f96487 100755 --- a/tests/K8s/chart_install.sh +++ b/tests/charts/make/chart_install.sh @@ -8,7 +8,7 @@ KEDA_NAMESPACE=${KEDA_NAMESPACE:-"keda"} INGRESS_NAMESPACE=${INGRESS_NAMESPACE:-"ingress-nginx"} SUB_PATH=${SUB_PATH:-"/selenium"} CHART_PATH=${CHART_PATH:-"charts/selenium-grid"} -TEST_VALUES_PATH=${TEST_VALUES_PATH:-"charts/selenium-grid/ci"} +TEST_VALUES_PATH=${TEST_VALUES_PATH:-"tests/charts/ci"} SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST:-"localhost"} SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT:-"80"} MATRIX_BROWSER=${1:-"NodeChrome"} diff --git a/tests/K8s/chart_lint.sh b/tests/charts/make/chart_lint.sh similarity index 89% rename from tests/K8s/chart_lint.sh rename to tests/charts/make/chart_lint.sh index 09c46edc1..db92cf0e0 100755 --- a/tests/K8s/chart_lint.sh +++ b/tests/charts/make/chart_lint.sh @@ -22,7 +22,8 @@ python -m pip install yamale==4.0.4 \ | grep -v 'Requirement already satisfied' cd .. -ct lint --all --config tests/K8s/chart-testing.yaml +rm -rf ./charts/**/Chart.lock +ct lint --all --config tests/charts/config/ct.yaml if [ "${CI:-false}" = "false" ]; then deactivate diff --git a/tests/K8s/chart_setup_env.sh b/tests/charts/make/chart_setup_env.sh similarity index 100% rename from tests/K8s/chart_setup_env.sh rename to tests/charts/make/chart_setup_env.sh diff --git a/tests/charts/templates/render/dummy.yaml b/tests/charts/templates/render/dummy.yaml new file mode 100644 index 000000000..da60ed3a6 --- /dev/null +++ b/tests/charts/templates/render/dummy.yaml @@ -0,0 +1,24 @@ +# This is dummy values file for chart template testing +global: + seleniumGrid: + affinity: &affinity + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - selenium + topologyKey: "kubernetes.io/hostname" + +isolateComponents: true + +chromeNode: + affinity: *affinity + +firefoxNode: + affinity: *affinity + +edgeNode: + affinity: *affinity diff --git a/tests/charts/templates/test.py b/tests/charts/templates/test.py new file mode 100644 index 000000000..b004c2a8b --- /dev/null +++ b/tests/charts/templates/test.py @@ -0,0 +1,42 @@ +import yaml +import unittest +import sys +import logging + +logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s") +logger = logging.getLogger(__name__) + +def load_template(yaml_file): + try: + with open(yaml_file, 'r') as file: + documents = yaml.safe_load_all(file) + list_of_documents = [doc for doc in documents] + return list_of_documents + except yaml.YAMLError as error: + print("Error in configuration file: ", error) + +class ChartTemplateTests(unittest.TestCase): + def test_set_affinity(self): + resources_name = ['selenium-chrome-node', 'selenium-distributor', 'selenium-edge-node', 'selenium-firefox-node', + 'selenium-event-bus', 'selenium-router', 'selenium-session-map', 'selenium-session-queue'] + count = 0 + for doc in LIST_OF_DOCUMENTS: + if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment': + self.assertTrue(doc['spec']['template']['spec']['affinity']['podAffinity']['requiredDuringSchedulingIgnoredDuringExecution'][0]['labelSelector']['matchExpressions'] is not None) + count += 1 + self.assertEqual(count, len(resources_name), "Not all resources have affinity set") + +if __name__ == '__main__': + failed = False + try: + FILE_NAME = sys.argv[1] + LIST_OF_DOCUMENTS = load_template(FILE_NAME) + suite = unittest.TestLoader().loadTestsFromTestCase(ChartTemplateTests) + test_runner = unittest.TextTestRunner(verbosity=3) + failed = not test_runner.run(suite).wasSuccessful() + except Exception as e: + logger.fatal(e) + failed = True + + if failed: + exit(1) From 99448dff9d6a3f2112a5da24a13395b0132cf1b9 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Sun, 3 Dec 2023 07:01:04 +0700 Subject: [PATCH 062/100] bug(#1824): Container ENV SE_NODE_SESSION_TIMEOUT not take effect (#2044) * bug(#1824): Container ENV SE_NODE_SESSION_TIMEOUT not take effect Signed-off-by: Viet Nguyen Duc * Update helm-chart-test.yml for SNAPSHOT CI build * Update helm-chart-test.yml for SNAPSHOT CI build Signed-off-by: Viet Nguyen Duc * Revert test Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-test.yml | 17 +++++++-- .gitignore | 1 + Makefile | 37 +++++++++---------- NodeBase/start-selenium-node.sh | 5 +++ charts/selenium-grid/TESTING.md | 9 +++-- .../make/{chart_lint.sh => chart_build.sh} | 10 ++++- .../make/{chart_install.sh => chart_test.sh} | 17 ++++++--- 7 files changed, 64 insertions(+), 32 deletions(-) rename tests/charts/make/{chart_lint.sh => chart_build.sh} (67%) rename tests/charts/make/{chart_install.sh => chart_test.sh} (81%) diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 29f3d3925..f363d728d 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -37,19 +37,30 @@ jobs: run: | echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV echo "IMAGE_REGISTRY=artifactory/selenium" >> $GITHUB_ENV - - name: Build Docker images - run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build - name: Setup Kubernetes environment run: make chart_setup_env + - name: Build Docker images + run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build + - name: Build and lint charts + run: | + BUILD_DATE=${BUILD_DATE} make chart_build + echo "CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)" >> $GITHUB_ENV + echo "CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))" >> $GITHUB_ENV - name: Setup Kubernetes cluster run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup - name: Test Selenium Grid on Kubernetes uses: nick-invision/retry@v2.9.0 with: - timeout_minutes: 20 + timeout_minutes: 30 max_attempts: 3 command: | NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test - name: Cleanup Kubernetes cluster if: always() run: make chart_cluster_cleanup + - name: Upload Helm chart package + if: always() + uses: actions/upload-artifact@v3 + with: + name: ${{ env.CHART_FILE_NAME }} + path: ${{ env.CHART_PACKAGE_PATH }} diff --git a/.gitignore b/.gitignore index fc44914b7..f77615fd4 100644 --- a/.gitignore +++ b/.gitignore @@ -149,3 +149,4 @@ ENV/ .DS_Store /charts/*/charts /charts/*/**.lock +/charts/*.tgz diff --git a/Makefile b/Makefile index b2ac24195..cc75317b8 100644 --- a/Makefile +++ b/Makefile @@ -366,32 +366,31 @@ test_video: video hub chrome firefox edge chart_setup_env: ./tests/charts/make/chart_setup_env.sh -chart_test: chart_lint \ - chart_test_template \ - chart_install_chrome \ - chart_install_firefox \ - chart_install_edge - -chart_test_template: - ./tests/charts/bootstrap.sh - chart_cluster_setup: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_cluster_setup.sh -chart_lint: - ./tests/charts/make/chart_lint.sh +chart_cluster_cleanup: + ./tests/charts/make/chart_cluster_cleanup.sh + +chart_build: + VERSION=$(TAG_VERSION) ./tests/charts/make/chart_build.sh + +chart_test: chart_test_template \ + chart_test_chrome \ + chart_test_firefox \ + chart_test_edge -chart_install_chrome: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_install.sh NodeChrome +chart_test_template: + ./tests/charts/bootstrap.sh -chart_install_firefox: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_install.sh NodeFirefox +chart_test_chrome: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeChrome -chart_install_edge: - VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_install.sh NodeEdge +chart_test_firefox: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeFirefox -chart_cluster_cleanup: - ./tests/charts/make/chart_cluster_cleanup.sh +chart_test_edge: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeEdge .PHONY: \ all \ diff --git a/NodeBase/start-selenium-node.sh b/NodeBase/start-selenium-node.sh index 6fe30497b..4b069c7dd 100755 --- a/NodeBase/start-selenium-node.sh +++ b/NodeBase/start-selenium-node.sh @@ -31,6 +31,11 @@ if [ ! -z "$SE_OPTS" ]; then echo "Appending Selenium options: ${SE_OPTS}" fi +if [ ! -z "$SE_NODE_SESSION_TIMEOUT" ]; then + SE_OPTS="$SE_OPTS --session-timeout $SE_NODE_SESSION_TIMEOUT" + echo "Appending Selenium node session timeout via SE_OPTS: ${SE_OPTS}" +fi + if [ "$GENERATE_CONFIG" = true ]; then echo "Generating Selenium Config" /opt/bin/generate_config diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md index 90c57c115..9003e27e9 100644 --- a/charts/selenium-grid/TESTING.md +++ b/charts/selenium-grid/TESTING.md @@ -36,7 +36,7 @@ All related testing to this helm chart will be documented in this file. cd ../.. # Build chart dependencies and lint -make chart_lint +make chart_build # Test chart template make chart_test_template @@ -51,11 +51,14 @@ Run entire commands to build and test Docker images with Helm charts in local en # Back to root directory cd ../.. +# Setup Kubernetes environment +make chart_setup_env + # Build Docker images make build -# Setup Kubernetes environment -make chart_setup_env +# Build and lint charts +make chart_build # Setup Kubernetes cluster make chart_cluster_setup diff --git a/tests/charts/make/chart_lint.sh b/tests/charts/make/chart_build.sh similarity index 67% rename from tests/charts/make/chart_lint.sh rename to tests/charts/make/chart_build.sh index db92cf0e0..5d57e4277 100755 --- a/tests/charts/make/chart_lint.sh +++ b/tests/charts/make/chart_build.sh @@ -1,4 +1,6 @@ #!/bin/bash + +CHART_PATH=${CHART_PATH:-"charts/selenium-grid"} # Function to be executed on command failure on_failure() { local exit_status=$? @@ -22,8 +24,14 @@ python -m pip install yamale==4.0.4 \ | grep -v 'Requirement already satisfied' cd .. -rm -rf ./charts/**/Chart.lock +rm -rf ${CHART_PATH}/Chart.lock ct lint --all --config tests/charts/config/ct.yaml +# Helm dependencies build and lint is done by `ct lint` command +rm -rf ${CHART_PATH}/../*.tgz +helm package ${CHART_PATH} --version ${VERSION} --destination ${CHART_PATH}/.. + +readlink -f ${CHART_PATH}/../*.tgz > /tmp/selenium_chart_version +cat /tmp/selenium_chart_version if [ "${CI:-false}" = "false" ]; then deactivate diff --git a/tests/charts/make/chart_install.sh b/tests/charts/make/chart_test.sh similarity index 81% rename from tests/charts/make/chart_install.sh rename to tests/charts/make/chart_test.sh index d89f96487..2d87c799e 100755 --- a/tests/charts/make/chart_install.sh +++ b/tests/charts/make/chart_test.sh @@ -40,14 +40,19 @@ on_failure() { # Trap ERR signal and call on_failure function trap 'on_failure' ERR +HELM_COMMAND_SET_AUTOSCALING="" +if [ "${SELENIUM_GRID_AUTOSCALING}" = "true" ]; then + HELM_COMMAND_SET_AUTOSCALING="--values ${TEST_VALUES_PATH}/autoscaling-values.yaml \ + --set autoscaling.enableWithExistingKEDA=${SELENIUM_GRID_AUTOSCALING} \ + --set autoscaling.scaledOptions.minReplicaCount=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA}" +fi + echo "Deploy Selenium Grid Chart" helm upgrade --install ${RELEASE_NAME} \ --f ${TEST_VALUES_PATH}/auth-ingress-values.yaml \ --f ${TEST_VALUES_PATH}/tracing-values.yaml \ --f ${TEST_VALUES_PATH}/${MATRIX_BROWSER}-values.yaml \ --f ${TEST_VALUES_PATH}/autoscaling-values.yaml \ ---set autoscaling.enableWithExistingKEDA=${SELENIUM_GRID_AUTOSCALING} \ ---set autoscaling.scaledOptions.minReplicaCount=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} \ +--values ${TEST_VALUES_PATH}/auth-ingress-values.yaml \ +--values ${TEST_VALUES_PATH}/tracing-values.yaml \ +--values ${TEST_VALUES_PATH}/${MATRIX_BROWSER}-values.yaml \ +${HELM_COMMAND_SET_AUTOSCALING} \ --set global.seleniumGrid.imageTag=${VERSION} --set global.seleniumGrid.imageRegistry=${NAMESPACE} \ --set global.seleniumGrid.nodesImageTag=${VERSION} \ ${CHART_PATH} --namespace ${SELENIUM_NAMESPACE} --create-namespace From c4e40245c1d57b4d7481b2016da33393363f01d2 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Tue, 5 Dec 2023 20:43:54 +0700 Subject: [PATCH 063/100] test(chart): Parallel tests execution against autoscaling in Kubernetes (#2046) * test(chart): Parallel tests execution against autoscaling in Kubernetes Signed-off-by: Viet Nguyen Duc * Correct name of ENV var, start with SE_ only Signed-off-by: Viet Nguyen Duc --------- Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-test.yml | 14 ++++++- Makefile | 3 ++ charts/selenium-grid/TESTING.md | 7 +++- .../templates/node-configmap.yaml | 2 +- tests/SeleniumTests/__init__.py | 17 ++++++++ .../charts/ci/ParallelAutoscaling-values.yaml | 40 +++++++++++++++++++ tests/test.py | 3 ++ 7 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 tests/charts/ci/ParallelAutoscaling-values.yaml diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index f363d728d..feedc3472 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -10,8 +10,11 @@ permissions: jobs: build-and-test: - name: Build & test Docker images with Helm charts + name: Test Helm charts runs-on: ubuntu-latest + strategy: + matrix: + test-strategy: [chart_test, chart_test_parallel_autoscaling] steps: - uses: actions/checkout@v4 - name: Output Docker info @@ -54,7 +57,7 @@ jobs: timeout_minutes: 30 max_attempts: 3 command: | - NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test + NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make ${{ matrix.test-strategy }} - name: Cleanup Kubernetes cluster if: always() run: make chart_cluster_cleanup @@ -64,3 +67,10 @@ jobs: with: name: ${{ env.CHART_FILE_NAME }} path: ${{ env.CHART_PACKAGE_PATH }} + - name: Upload Helm chart template rendered + if: always() + uses: actions/upload-artifact@v3 + with: + name: chart_template_rendered.yaml + path: ./tests/tests/output_deployment.yaml + if-no-files-found: ignore diff --git a/Makefile b/Makefile index cc75317b8..cf025422d 100644 --- a/Makefile +++ b/Makefile @@ -392,6 +392,9 @@ chart_test_firefox: chart_test_edge: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeEdge +chart_test_parallel_autoscaling: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh ParallelAutoscaling + .PHONY: \ all \ base \ diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md index 9003e27e9..e4fafe63e 100644 --- a/charts/selenium-grid/TESTING.md +++ b/charts/selenium-grid/TESTING.md @@ -12,11 +12,12 @@ All related testing to this helm chart will be documented in this file. | | Auto scaling with `scalingType` is `job` | ✓ | Cluster | | | Auto scaling with `scalingType` is `deployment` | ✗ | | | | Auto scaling with `autoscaling.scaledOptions.minReplicaCount` is `0` | ✓ | Cluster | +| | Parallel tests execution against node autoscaling | ✓ | Cluster | | Ingress | Ingress is enabled without `hostname` | ✓ | Cluster | | | Ingress is enabled with `hostname` is set | ✗ | | | | Hub `sub-path` is set with Ingress `ImplementationSpecific` paths | ✓ | Cluster | | Distributed components | `isolateComponents` is enabled | ✓ | Cluster | -| | `isolateComponents` is disabled | ✗ | | +| | `isolateComponents` is disabled | ✓ | Cluster | | Browser Nodes | Node `nameOverride` is set | ✓ | Cluster | | | Sanity tests in node | ✓ | Cluster | | | Video recorder is enabled in node | ✗ | | @@ -24,7 +25,7 @@ All related testing to this helm chart will be documented in this file. | General | Set new image registry via `global.seleniumGrid.imageRegistry` | ✓ | Cluster | | | Components are able to set `.affinity` | ✓ | Template | | Tracing | Enable tracing via `SE_ENABLE_TRACING` | ✓ | Cluster | -| | Disable tracing via `SE_ENABLE_TRACING` | ✗ | | +| | Disable tracing via `SE_ENABLE_TRACING` | ✓ | Cluster | ## Test Chart Template - By using `helm template` command, the chart template is tested without installing it to Kubernetes cluster. @@ -66,6 +67,8 @@ make chart_cluster_setup # Test Selenium Grid on Kubernetes make chart_test +# make chart_test_parallel_autoscaling + # Cleanup Kubernetes cluster make chart_cluster_cleanup ``` diff --git a/charts/selenium-grid/templates/node-configmap.yaml b/charts/selenium-grid/templates/node-configmap.yaml index 08d6d4981..da4edab40 100644 --- a/charts/selenium-grid/templates/node-configmap.yaml +++ b/charts/selenium-grid/templates/node-configmap.yaml @@ -12,5 +12,5 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} data: - DRAIN_AFTER_SESSION_COUNT: '{{- and (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "job") | ternary "1" "0" -}}' + SE_DRAIN_AFTER_SESSION_COUNT: '{{- and (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "job") | ternary "1" "0" -}}' SE_NODE_GRID_URL: '{{ include "seleniumGrid.url" .}}' diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index acdaa4bda..31cd3903b 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -1,4 +1,5 @@ import unittest +import concurrent.futures import os from selenium import webdriver from selenium.webdriver.common.by import By @@ -113,3 +114,19 @@ def test_title_and_maximize_window(self): self.driver.get('https://the-internet.herokuapp.com') self.driver.maximize_window() self.assertTrue(self.driver.title == 'The Internet') + +class ParallelAutoscaling(): + def run(self, test_classes): + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = [] + for test_class in test_classes: + suite = unittest.TestLoader().loadTestsFromTestCase(test_class) + for test in suite: + futures.append(executor.submit(test)) + for future in concurrent.futures.as_completed(futures): + future.result() + +class ParallelAutoscalingTests(unittest.TestCase): + def test_parallel_autoscaling(self): + runner = ParallelAutoscaling() + runner.run([ChromeTests, EdgeTests, FirefoxTests]) diff --git a/tests/charts/ci/ParallelAutoscaling-values.yaml b/tests/charts/ci/ParallelAutoscaling-values.yaml new file mode 100644 index 000000000..39ea9434c --- /dev/null +++ b/tests/charts/ci/ParallelAutoscaling-values.yaml @@ -0,0 +1,40 @@ +isolateComponents: false +autoscaling: + strategy: default + scaledOptions: + minReplicaCount: 0 + maxReplicaCount: 5 +chromeNode: + nameOverride: my-chrome-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" +# Configuration for edge nodes +edgeNode: + nameOverride: my-edge-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" +# Configuration for firefox nodes +firefoxNode: + nameOverride: my-firefox-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" + +ingress: + paths: + - path: /selenium(/|$)(.*) + pathType: ImplementationSpecific + backend: + service: + name: '{{ template "seleniumGrid.hub.fullname" $ }}' + port: + number: 4444 + - path: /(/?)(session/.*/se/vnc) + pathType: ImplementationSpecific + backend: + service: + name: '{{ template "seleniumGrid.hub.fullname" $ }}' + port: + number: 4444 diff --git a/tests/test.py b/tests/test.py index 7568d755b..b8b462c2b 100644 --- a/tests/test.py +++ b/tests/test.py @@ -55,6 +55,9 @@ # Firefox Images 'NodeFirefox': 'FirefoxTests', 'StandaloneFirefox': 'FirefoxTests', + + # Chart Parallel Test + 'ParallelAutoscaling': 'ParallelAutoscalingTests' } FROM_IMAGE_ARGS = { From 30a6cc3653ce5dcc068979a4313cf796a1114c8f Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 6 Dec 2023 13:11:36 +0530 Subject: [PATCH 064/100] Update chart CHANGELOG [skip ci] Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/CHANGELOG.md | 47 +++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 68558c3b4..c33ad3691 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -2,22 +2,47 @@ All notable changes to this helm chart will be documented in this file. -## :heavy_check_mark: 0.24.0 +## :heavy_check_mark: 0.25.3 -### Added +### Changed +- Update image tag to 4.15.0-20231129 +- Update tag in docs and files :: Selenium CI Bot +- test: Add sanity test for download file (#2034) [deploy] :: Viet Nguyen Duc +- feat(chart): distribution registry can be set global and individual component (#2030) :: Viet Nguyen Duc +- Update tag in docs and files [skip ci] :: Selenium CI Bot +- test: Sanity tests Selenium Grid chart via Makefile commands (#2029) :: Viet Nguyen Duc +- Feature run selenium tests grid on kubernetes via helm chart (#2027) :: Amar Deep Singh +- feat: CI Bot bump chart version along with new deploy image version (#2028) :: Viet Nguyen Duc +- Update NodeChrome support latest version from GoogleChromeLabs (#2018) :: Viet Nguyen Duc +- Update tag in docs and files [skip ci] :: Selenium CI Bot +- corrected typo in selenium grid charts (#2010) :: Thabelo Ramabulana + +## :heavy_check_mark: 0.25.1 +### Changed +- Update image tag to 4.15.0-20231110 +- Bug: Error setting name in helm release #2006 #2007 (#2009) :: Viet Nguyen Duc + +## :heavy_check_mark: 0.25.0 + +### Changed +- Update image tag to 4.15.0-20231110 +- feat(helm-test): Added helm test and linting (#2003) :: Amar Deep Singh - Update tag in docs and files [skip ci] :: Selenium CI Bot -- Bumping chart version :: Diego Molina -- Fix minor issues after PR #1881 and #1981 (#1983) :: Viet Nguyen Duc -- Improve default value for videoRecorder in chart (#1984) :: Viet Nguyen Duc -- Improve chart templates in the section videoRecorder (#1987) :: Viet Nguyen Duc -- Update to Selenium 4.15.0 (#1990) :: Luis Correia -- feat(autoscaling): Unified parameters to set scaled options for browser nodes (#1989) :: Viet Nguyen Duc -- Add chart parameter ingress.paths to configure custom paths (#1994) :: Viet Nguyen Duc -- feat: Adding port to nodes service (#1196) :: Viet Nguyen Duc +- Update tag in docs and files [skip ci] :: Selenium CI Bot +- feat: Adding port to nodes service (#1996) :: Viet Nguyen Duc + +## :heavy_check_mark: 0.24.0 ### Changed -- Update image tag to 4.15.0-20231129 +- Update image tag to 4.15.0-20231102 +- Bumping chart version :: Viet Nguyen Duc +- Add chart parameter ingress.paths to configure custom paths (#1994) :: Viet Nguyen Duc +- feat(autoscaling): Unified parameters to set scaled options for browser nodes (#1989) :: Viet Nguyen Duc +- Update tag in docs and files [skip ci] :: Selenium CI Bot +- Improve chart templates in the section videoRecorder (#1987) :: Viet Nguyen Duc +- Improve default value for videoRecorder in chart (#1984) :: Viet Nguyen Duc +- Fix minor issues after PR #1881 and #1981 (#1983) :: Viet Nguyen Duc ## :heavy_check_mark: 0.23.0 From 59cb6cb911b6adcdc1727882510a40c3313ab094 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 15:36:06 +0700 Subject: [PATCH 065/100] Bump actions/setup-python from 4.7.1 to 4.8.0 (#2048) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.1 to 4.8.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4.7.1...v4.8.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-test.yml | 2 +- .github/workflows/helm-chart-test.yml | 2 +- .github/workflows/test-video.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 0bdda25c5..bbed4d9fc 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -19,7 +19,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python - uses: actions/setup-python@v4.7.1 + uses: actions/setup-python@v4.8.0 with: python-version: '3.11' check-latest: true diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index feedc3472..3a8865f09 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -20,7 +20,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python - uses: actions/setup-python@v4.7.1 + uses: actions/setup-python@v4.8.0 with: python-version: '3.11' check-latest: true diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index e65301460..22d536297 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -16,7 +16,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python - uses: actions/setup-python@v4.7.1 + uses: actions/setup-python@v4.8.0 with: python-version: '3.11' check-latest: true From da15922786b31ffc9fd5bb23cf73418d77666875 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 6 Dec 2023 17:39:09 +0700 Subject: [PATCH 066/100] Add build-arg to get based version from Makefile (#2049) Add build-arg to get version from Makefile Signed-off-by: Viet Nguyen Duc --- Base/Dockerfile | 4 +++- Makefile | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index 05a489b95..7122d9772 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -1,6 +1,8 @@ FROM ubuntu:jammy-20231004 LABEL authors="Selenium " +ARG VERSION +ARG RELEASE=selenium-${VERSION} #================================================ # Customize sources for apt-get #================================================ @@ -74,7 +76,7 @@ COPY supervisord.conf /etc RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && touch /opt/selenium/config.toml \ && chmod -R 777 /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor /etc/passwd \ - && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.15.0/selenium-server-4.15.0.jar \ + && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/${RELEASE}/selenium-server-${VERSION}.jar \ -O /opt/selenium/selenium-server.jar \ && chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ && chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ diff --git a/Makefile b/Makefile index cf025422d..c55575025 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,8 @@ NAME := $(or $(NAME),$(NAME),selenium) CURRENT_DATE := $(shell date '+%Y%m%d') BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE)) VERSION := $(or $(VERSION),$(VERSION),4.15.0) +BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.15.0) +BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-$(BASE_VERSION)) TAG_VERSION := $(VERSION)-$(BUILD_DATE) NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME)) AUTHORS := $(or $(AUTHORS),$(AUTHORS),SeleniumHQ) @@ -37,7 +39,7 @@ build: all ci: build test base: - cd ./Base && docker build $(BUILD_ARGS) -t $(NAME)/base:$(TAG_VERSION) . + cd ./Base && docker build $(BUILD_ARGS) --build-arg VERSION=$(BASE_VERSION) --build-arg RELEASE=$(BASE_RELEASE) -t $(NAME)/base:$(TAG_VERSION) . hub: base cd ./Hub && docker build $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/hub:$(TAG_VERSION) . From e2843cc1ad51ea5f771cb36dd12fa260161a443d Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 6 Dec 2023 18:17:54 +0700 Subject: [PATCH 067/100] feat(chart): Add default annotations for ingress nginx controller (#2047) Signed-off-by: Viet Nguyen Duc --- Video/Dockerfile | 2 +- charts/selenium-grid/README.md | 51 +++++++++++++++++++++ charts/selenium-grid/TESTING.md | 1 + charts/selenium-grid/templates/_helpers.tpl | 23 ++++++++++ charts/selenium-grid/templates/ingress.yaml | 8 +++- charts/selenium-grid/values.yaml | 6 +++ tests/charts/templates/render/dummy.yaml | 28 +++++++++++ tests/charts/templates/test.py | 19 ++++++++ 8 files changed, 135 insertions(+), 3 deletions(-) diff --git a/Video/Dockerfile b/Video/Dockerfile index a6a426ee7..5a78e8a20 100644 --- a/Video/Dockerfile +++ b/Video/Dockerfile @@ -44,7 +44,7 @@ ENV DISPLAY_CONTAINER_NAME selenium ENV SE_SCREEN_WIDTH 1360 ENV SE_SCREEN_HEIGHT 1020 ENV SE_FRAME_RATE 15 -ENV SE_CODEC libx265 +ENV SE_CODEC libx264 ENV SE_PRESET "-preset ultrafast" ENV FILE_NAME video.mp4 diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index a1c6eff5b..1e2ee6bac 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -79,6 +79,54 @@ To uninstall: helm uninstall selenium-grid ``` +## Ingress Configuration + +By default, ingress is enabled without annotations set. If NGINX ingress controller is used, you need to set few annotations to override the default timeout values to avoid 504 errors (see #1808). Since in Selenium Grid the default of `SE_NODE_SESSION_TIMEOUT` and `SE_SESSION_REQUEST_TIMEOUT` is `300` seconds. + +In order to make user experience better, there are few annotations will be set by default if NGINX ingress controller is used. Mostly relates to timeouts and buffer sizes. + +If you are not using NGINX ingress controller, you can disable these default annotations by setting `ingress.nginx` to `nil` (aka null) via Helm CLI `--set ingress.nginx=null`) or via an override-values.yaml as below: + +```yaml +ingress: + nginx: + # nginx: null (alternative way) +``` + +Similarly, if you want to disable a sub-config of `ingress.nginx`. For example: `--set ingress.nginx.proxyBuffer=null`) + +You are also able to combine using both default annotations and your own annotations in `ingress.annotations`. Duplicated keys will be merged strategy overwrite with your own annotations in `ingress.annotations` take precedence. + +```yaml +ingress: + nginx: + proxyTimeout: 3600 + annotations: + nginx.ingress.kubernetes.io/proxy-connect-timeout: "7200" # This key will take 7200 instead of 3600 +``` + +List mapping of chart values and default annotation(s) + +```markdown +# `ingress.nginx.proxyTimeout` pass value to annotation(s) +nginx.ingress.kubernetes.io/proxy-connect-timeout +nginx.ingress.kubernetes.io/proxy-send-timeout +nginx.ingress.kubernetes.io/proxy-read-timeout +nginx.ingress.kubernetes.io/proxy-next-upstream-timeout +nginx.ingress.kubernetes.io/auth-keepalive-timeout + +# `ingress.nginx.proxyBuffer` pass value to to annotation(s) +nginx.ingress.kubernetes.io/proxy-request-buffering: "on" +nginx.ingress.kubernetes.io/proxy-buffering: "on" + +# `ingress.nginx.proxyBuffer.size` pass value to to annotation(s) +nginx.ingress.kubernetes.io/proxy-buffer-size +nginx.ingress.kubernetes.io/client-body-buffer-size + +# `ingress.nginx.proxyBuffer.number` pass value to annotation(s) +nginx.ingress.kubernetes.io/proxy-buffers-number +``` + ## Configuration For now, global configuration supported is: @@ -111,6 +159,9 @@ This table contains the configuration parameters of the chart and their default | `ingress.enabled` | `true` | Enable or disable ingress resource | | `ingress.className` | `""` | Name of ingress class to select which controller will implement ingress resource | | `ingress.annotations` | `{}` | Custom annotations for ingress resource | +| `ingress.nginx.proxyTimeout` | `3600` | Value is used to set for NGINX ingress annotations related to proxy timeout | +| `ingress.nginx.proxyBuffer.size` | `512M` | Value is used to set for NGINX ingress annotations on size of the buffer proxy_buffer_size used for reading | +| `ingress.nginx.proxyBuffer.number` | `4` | Value is used to set for NGINX ingress annotations on number of the buffers in proxy_buffers used for reading | | `ingress.hostname` | `` | Default host for the ingress resource | | `ingress.path` | `/` | Default host path for the ingress resource | | `ingress.pathType` | `Prefix` | Default path type for the ingress resource | diff --git a/charts/selenium-grid/TESTING.md b/charts/selenium-grid/TESTING.md index e4fafe63e..7e94f85e4 100644 --- a/charts/selenium-grid/TESTING.md +++ b/charts/selenium-grid/TESTING.md @@ -16,6 +16,7 @@ All related testing to this helm chart will be documented in this file. | Ingress | Ingress is enabled without `hostname` | ✓ | Cluster | | | Ingress is enabled with `hostname` is set | ✗ | | | | Hub `sub-path` is set with Ingress `ImplementationSpecific` paths | ✓ | Cluster | +| | `ingress.nginx` configs for NGINX ingress controller annotations | ✓ | Template | | Distributed components | `isolateComponents` is enabled | ✓ | Cluster | | | `isolateComponents` is disabled | ✓ | Cluster | | Browser Nodes | Node `nameOverride` is set | ✓ | Cluster | diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 1b0aa573c..9e44267d9 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -80,6 +80,29 @@ Ingress fullname {{- default "selenium-ingress" .Values.ingress.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{- define "seleniumGrid.ingress.nginx.annotations.default" -}} +{{- with .Values.ingress.nginx }} + {{- with .proxyTimeout }} +nginx.ingress.kubernetes.io/proxy-connect-timeout: {{ . | quote }} +nginx.ingress.kubernetes.io/proxy-send-timeout: {{ . | quote }} +nginx.ingress.kubernetes.io/proxy-read-timeout: {{ . | quote }} +nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: {{ . | quote }} +nginx.ingress.kubernetes.io/auth-keepalive-timeout: {{ . | quote }} + {{- end }} + {{- with .proxyBuffer }} +nginx.ingress.kubernetes.io/proxy-request-buffering: "on" +nginx.ingress.kubernetes.io/proxy-buffering: "on" + {{- with .size }} +nginx.ingress.kubernetes.io/proxy-buffer-size: {{ . | quote }} +nginx.ingress.kubernetes.io/client-body-buffer-size: {{ . | quote }} + {{- end }} + {{- with .number }} +nginx.ingress.kubernetes.io/proxy-buffers-number: {{ . | quote }} + {{- end }} + {{- end }} +{{- end }} +{{- end -}} + {{/* Service Account fullname */}} diff --git a/charts/selenium-grid/templates/ingress.yaml b/charts/selenium-grid/templates/ingress.yaml index f574c6c2f..215cfbace 100644 --- a/charts/selenium-grid/templates/ingress.yaml +++ b/charts/selenium-grid/templates/ingress.yaml @@ -20,9 +20,13 @@ metadata: {{- with .Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.ingress.annotations }} + {{- $ingressAnnotations := (include "seleniumGrid.ingress.nginx.annotations.default" . | toString | fromYaml ) }} + {{- with .Values.ingress.annotations -}} + {{- $ingressAnnotations = mergeOverwrite $ingressAnnotations . }} + {{- end }} + {{- if not (empty $ingressAnnotations) }} annotations: - {{- toYaml . | nindent 4 }} + {{- $ingressAnnotations | toYaml | nindent 4 }} {{- end }} spec: {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index a32a9c96a..008d53b3b 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -36,6 +36,12 @@ ingress: enabled: true # Name of ingress class to select which controller will implement ingress resource className: "" + # Refer to list nginx annotations: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md#annotations + nginx: + proxyTimeout: 3600 + proxyBuffer: + size: 512M + number: 4 # Custom annotations for ingress resource annotations: {} # Default host for the ingress resource diff --git a/tests/charts/templates/render/dummy.yaml b/tests/charts/templates/render/dummy.yaml index da60ed3a6..19ca7d6d9 100644 --- a/tests/charts/templates/render/dummy.yaml +++ b/tests/charts/templates/render/dummy.yaml @@ -11,6 +11,34 @@ global: values: - selenium topologyKey: "kubernetes.io/hostname" +ingress: + nginx: + proxyTimeout: 360 # Set different proxy timout + proxyBuffer: + # size: 512M # Keep using sub-config default + number: # Disable sub-config + annotations: # Add you own annotations + nginx.ingress.kubernetes.io/use-regex: "true" # Add new key + nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/app-root: &gridAppRoot "/selenium" + nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600" # Override default key + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # Override default key + hostname: "" + paths: + - path: /selenium(/|$)(.*) + pathType: ImplementationSpecific + backend: + service: + name: '{{ template "seleniumGrid.router.fullname" $ }}' + port: + number: 4444 + - path: /(/?)(session/.*/se/vnc) + pathType: ImplementationSpecific + backend: + service: + name: '{{ template "seleniumGrid.router.fullname" $ }}' + port: + number: 4444 isolateComponents: true diff --git a/tests/charts/templates/test.py b/tests/charts/templates/test.py index b004c2a8b..1e751f4e3 100644 --- a/tests/charts/templates/test.py +++ b/tests/charts/templates/test.py @@ -20,12 +20,31 @@ def test_set_affinity(self): resources_name = ['selenium-chrome-node', 'selenium-distributor', 'selenium-edge-node', 'selenium-firefox-node', 'selenium-event-bus', 'selenium-router', 'selenium-session-map', 'selenium-session-queue'] count = 0 + logger.info(f"Assert affinity is set in global and nodes") for doc in LIST_OF_DOCUMENTS: if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment': + logger.info(f"Assert affinity is set in resource {doc['metadata']['name']}") self.assertTrue(doc['spec']['template']['spec']['affinity']['podAffinity']['requiredDuringSchedulingIgnoredDuringExecution'][0]['labelSelector']['matchExpressions'] is not None) count += 1 self.assertEqual(count, len(resources_name), "Not all resources have affinity set") + def test_ingress_nginx_annotations(self): + resources_name = ['selenium-ingress'] + count = 0 + for doc in LIST_OF_DOCUMENTS: + if doc['metadata']['name'] in resources_name and doc['kind'] == 'Ingress': + logger.info(f"Assert ingress ingress annotations") + logger.info(f"Config `ingress.nginx.proxyTimeout` is able to be set a different value") + self.assertTrue(doc['metadata']['annotations']['nginx.ingress.kubernetes.io/proxy-read-timeout'] == '360') + logger.info(f"Duplicated in `ingress.annotations` take precedence to overwrite the default value") + self.assertTrue(doc['metadata']['annotations']['nginx.ingress.kubernetes.io/proxy-connect-timeout'] == '3600') + logger.info(f"Default annotation is able to be disabled by setting it to null") + self.assertTrue(doc['metadata']['annotations'].get('nginx.ingress.kubernetes.io/proxy-buffers-number') is None) + logger.info(f"Default annotation is added if no override value") + self.assertTrue(doc['metadata']['annotations']['nginx.ingress.kubernetes.io/client-body-buffer-size'] == '512M') + count += 1 + self.assertEqual(count, len(resources_name), "No ingress resources found") + if __name__ == '__main__': failed = False try: From c4e7e1010c282e02e5aa1c412386edd325077a67 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 6 Dec 2023 21:12:50 +0530 Subject: [PATCH 068/100] Update to Selenium 4.16.0 [deploy] Signed-off-by: Viet Nguyen Duc --- Makefile | 4 ++-- tests/bootstrap.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index c55575025..874a9b89b 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ NAME := $(or $(NAME),$(NAME),selenium) CURRENT_DATE := $(shell date '+%Y%m%d') BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE)) -VERSION := $(or $(VERSION),$(VERSION),4.15.0) -BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.15.0) +VERSION := $(or $(VERSION),$(VERSION),4.16.0) +BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.16.0) BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-$(BASE_VERSION)) TAG_VERSION := $(VERSION)-$(BUILD_DATE) NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME)) diff --git a/tests/bootstrap.sh b/tests/bootstrap.sh index a210862fa..7ce7b8cf4 100755 --- a/tests/bootstrap.sh +++ b/tests/bootstrap.sh @@ -7,7 +7,7 @@ if [ "${CI:-false}" = "false" ]; then source docker-selenium-tests/bin/activate fi -python -m pip install selenium==4.15.0 \ +python -m pip install selenium==4.16.0 \ docker===6.1.3 \ | grep -v 'Requirement already satisfied' From 67c8a7bae4e6e5f6499ddbc409d6a2f0f9d8bd91 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 6 Dec 2023 23:24:49 +0530 Subject: [PATCH 069/100] Maintain test failure [deploy] Signed-off-by: Viet Nguyen Duc --- tests/SeleniumTests/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index 31cd3903b..263cc11ca 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -1,6 +1,7 @@ import unittest import concurrent.futures import os +import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait @@ -66,16 +67,17 @@ def test_play_video(self): def test_download_file(self): driver = self.driver - driver.get('https://the-internet.herokuapp.com/download') - file_name = 'some-file.txt' + driver.get('https://demoqa.com/upload-download') + file_name = 'sampleFile.jpeg' wait = WebDriverWait(driver, 30) file_link = wait.until( - EC.element_to_be_clickable((By.LINK_TEXT, file_name)) + EC.element_to_be_clickable((By.XPATH, f'//*[@download="{file_name}"]')) ) file_link.click() wait.until( lambda d: str(d.get_downloadable_files()[0]).endswith(file_name) ) + time.sleep(5) self.assertTrue(str(driver.get_downloadable_files()[0]).endswith(file_name)) def tearDown(self): From 6a12140640c7d450bc8cbf8ffd4505085d720eac Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Wed, 6 Dec 2023 18:11:34 +0000 Subject: [PATCH 070/100] Update tag in docs and files --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/CHANGELOG.md | 2 +- charts/selenium-grid/Chart.yaml | 4 +- charts/selenium-grid/README.md | 14 +-- charts/selenium-grid/values.yaml | 26 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 20 files changed, 160 insertions(+), 160 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c66e49567..ada8e271b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -56,6 +56,6 @@ body: attributes: label: Docker Selenium version (tag or chart version) description: What version of Docker Selenium are you using? - placeholder: 4.15.0-20231129? Please use the full tag, avoid "latest" + placeholder: 4.16.0-20231206? Please use the full tag, avoid "latest" validations: required: true diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index a505e1c1a..bfe4bd071 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231129", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.15.0-20231129", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.15.0-20231129", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.16.0-20231206", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.16.0-20231206", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.16.0-20231206", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231129" +video-image = "selenium/video:ffmpeg-6.1-20231206" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 5892db09f..a57191925 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.15.0-20231129). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.16.0-20231206). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -65,7 +65,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -252,17 +252,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.15.0-20231129 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.16.0-20231206 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -281,44 +281,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231129 + selenium/node-edge:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231129 + selenium/node-firefox:4.16.0-20231206 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.15.0-20231129 + selenium/node-edge:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.15.0-20231129 + selenium/node-firefox:4.16.0-20231206 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -335,7 +335,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.0-20231206 ``` ##### Node Chrome - Machine/VM 2 @@ -349,7 +349,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 ``` ###### Windows PowerShell @@ -361,7 +361,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 ``` @@ -376,7 +376,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.15.0-20231129 + selenium/node-edge:4.16.0-20231206 ``` ###### Windows PowerShell @@ -388,7 +388,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.15.0-20231129 + selenium/node-edge:4.16.0-20231206 ``` ##### Node Firefox - Machine/VM 4 @@ -402,7 +402,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.15.0-20231129 + selenium/node-firefox:4.16.0-20231206 ``` ###### Windows PowerShell @@ -414,7 +414,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.15.0-20231129 + selenium/node-firefox:4.16.0-20231206 ``` ##### Node Chrome - Machine/VM 4 @@ -429,7 +429,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 ``` ###### Windows PowerShell @@ -442,7 +442,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 ``` #### Docker Compose @@ -474,7 +474,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231129` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231206` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -500,8 +500,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231129 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231206 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -533,9 +533,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231129", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.15.0-20231129", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.15.0-20231129", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.16.0-20231206", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.16.0-20231206", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.16.0-20231206", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -548,7 +548,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231129" +video-image = "selenium/video:ffmpeg-6.1-20231206" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -567,28 +567,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231129 + selenium/node-docker:4.16.0-20231206 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231129 + selenium/node-docker:4.16.0-20231206 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -609,7 +609,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231129 + selenium/standalone-docker:4.16.0-20231206 ``` #### Windows PowerShell @@ -619,7 +619,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231129 + selenium/standalone-docker:4.16.0-20231206 ``` ### Using Dynamic Grid in different machines/VMs @@ -627,7 +627,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.0-20231206 ``` #### Node Chrome - Machine/VM 2 @@ -642,7 +642,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.15.0-20231129 + selenium/node-docker:4.16.0-20231206 ``` #### Windows PowerShell @@ -655,7 +655,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.15.0-20231129 + selenium/node-docker:4.16.0-20231206 ``` Complete the `[server]` section in the `config.toml` file. @@ -664,9 +664,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.15.0-20231129", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.15.0-20231129", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.15.0-20231129", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.16.0-20231206", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.16.0-20231206", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.16.0-20231206", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -679,7 +679,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231129" +video-image = "selenium/video:ffmpeg-6.1-20231206" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -713,7 +713,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.15.0-20231129 + selenium/standalone-docker:4.16.0-20231206 ``` #### Windows PowerShell @@ -724,7 +724,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.15.0-20231129 + selenium/standalone-docker:4.16.0-20231206 ``` @@ -762,7 +762,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.16.0-20231206 ``` ### SE_JAVA_OPTS Java Environment Options @@ -770,7 +770,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.15.0-20231129 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.16.0-20231206 ``` ### Node configuration options @@ -792,7 +792,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.15.0-20231129 + --shm-size="2g" selenium/node-chrome:4.16.0-20231206 ``` ### Setting Sub Path @@ -811,7 +811,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.15.0-20231129 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.16.0-20231206 ``` ### Grid Url and Session Timeout @@ -861,7 +861,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.15.0-20231129 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.16.0-20231206 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -874,7 +874,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -966,22 +966,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.15.0-20231129 + selenium/hub:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231129 + selenium/node-edge:4.16.0-20231206 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231129 + selenium/node-firefox:4.16.0-20231206 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1114,7 +1114,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.15.0-20231129 +FROM selenium/node-chrome:4.16.0-20231206 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1129,7 +1129,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.15.0-20231129 +FROM selenium/node-firefox:4.16.0-20231206 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1152,9 +1152,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231129 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.16.0-20231206 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 ``` Then, you would use in your VNC client: @@ -1180,9 +1180,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.15.0-20231129 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.15.0-20231129 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.15.0-20231129 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.16.0-20231206 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 ``` Then, you would use in your browser: @@ -1207,28 +1207,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.15.0-20231129 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.15.0-20231129 + selenium/node-chrome:4.16.0-20231206 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.15.0-20231129 + selenium/node-edge:4.16.0-20231206 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.15.0-20231129 + selenium/node-firefox:4.16.0-20231206 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1288,7 +1288,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.15.0-20231129 + selenium/standalone-chrome:4.16.0-20231206 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index c33ad3691..4f3e5f405 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this helm chart will be documented in this file. ## :heavy_check_mark: 0.25.3 ### Changed -- Update image tag to 4.15.0-20231129 +- Update image tag to 4.16.0-20231206 - Update tag in docs and files :: Selenium CI Bot - test: Add sanity test for download file (#2034) [deploy] :: Viet Nguyen Duc - feat(chart): distribution registry can be set global and individual component (#2030) :: Viet Nguyen Duc diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index a66c44217..a3e55bf71 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.25.3 -appVersion: 4.15.0-20231129 +version: 0.26.0 +appVersion: 4.16.0-20231206 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 1e2ee6bac..9fb094507 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -134,9 +134,9 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-----------------------|---------------------------------------| | `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images | -| `global.seleniumGrid.imageTag` | `4.15.0-20231129` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.15.0-20231129` | Image tag for browser's nodes | -| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231129` | Image tag for browser's video recoder | +| `global.seleniumGrid.imageTag` | `4.16.0-20231206` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.16.0-20231206` | Image tag for browser's nodes | +| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231206` | Image tag for browser's video recoder | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -182,7 +182,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `chromeNode.imageName` | `node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.15.0-20231129` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.16.0-20231206` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -222,7 +222,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `firefoxNode.imageName` | `node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.15.0-20231129` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.16.0-20231206` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -262,7 +262,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `edgeNode.imageName` | `node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.15.0-20231129` | Image of edge nodes | +| `edgeNode.imageTag` | `4.16.0-20231206` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -300,7 +300,7 @@ This table contains the configuration parameters of the chart and their default | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `videoRecorder.imageName` | `video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.1-20231129` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.1-20231206` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 008d53b3b..ae9840ce5 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -3,11 +3,11 @@ global: # Image registry for all selenium components imageRegistry: selenium # Image tag for all selenium components - imageTag: 4.15.0-20231129 + imageTag: 4.16.0-20231206 # Image tag for browser's nodes - nodesImageTag: 4.15.0-20231129 + nodesImageTag: 4.16.0-20231206 # Image tag for browser's video recorder - videoImageTag: ffmpeg-6.1-20231129 + videoImageTag: ffmpeg-6.1-20231206 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -77,7 +77,7 @@ components: # Router image name imageName: router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -129,7 +129,7 @@ components: # Distributor image name imageName: distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -161,7 +161,7 @@ components: # Event Bus image name imageName: event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -197,7 +197,7 @@ components: # Session Map image name imageName: sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -228,7 +228,7 @@ components: # Session Queue image name imageName: session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -279,7 +279,7 @@ hub: # Selenium Hub image name imageName: hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -420,7 +420,7 @@ chromeNode: # Image of chrome nodes imageName: node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -553,7 +553,7 @@ firefoxNode: # Image of firefox nodes imageName: node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -683,7 +683,7 @@ edgeNode: # Image of edge nodes imageName: node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.15.0-20231129 + # imageTag: 4.16.0-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -802,7 +802,7 @@ videoRecorder: # Image of video recorder imageName: video # Image of video recorder - # imageTag: ffmpeg-6.1-20231129 + # imageTag: ffmpeg-6.1-20231206 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 9743f3465..fe06e3880 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 5fce484ec..7e2d9ecbf 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index 37ab13ab9..bed795e21 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index d1560f30e..029f4311e 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 50d125d8b..6655e1166 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.15.0-20231129 + image: selenium/node-docker:4.16.0-20231206 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 7e5a7ffd0..d7ceddceb 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231129 + image: selenium/event-bus:4.16.0-20231206 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231129 + image: selenium/sessions:4.16.0-20231206 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231129 + image: selenium/session-queue:4.16.0-20231206 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231129 + image: selenium/distributor:4.16.0-20231206 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231129 + image: selenium/router:4.16.0-20231206 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index eef813159..08175c05e 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index efba7cb49..9596c563f 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.15.0-20231129 + image: selenium/event-bus:4.16.0-20231206 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.15.0-20231129 + image: selenium/sessions:4.16.0-20231206 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.15.0-20231129 + image: selenium/session-queue:4.16.0-20231206 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.15.0-20231129 + image: selenium/distributor:4.16.0-20231206 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.15.0-20231129 + image: selenium/router:4.16.0-20231206 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 1c23a5f88..6c3a08a1c 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.15.0-20231129 + image: selenium/event-bus:4.16.0-20231206 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.15.0-20231129 + image: selenium/sessions:4.16.0-20231206 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.15.0-20231129 + image: selenium/session-queue:4.16.0-20231206 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.15.0-20231129 + image: selenium/distributor:4.16.0-20231206 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.15.0-20231129 + image: selenium/router:4.16.0-20231206 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index eef813159..08175c05e 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 1e5fb3e10..1f81cc6b9 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 6f044bece..9ae22f29b 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.1-20231129 + image: selenium/video:ffmpeg-6.1-20231206 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.1-20231129 + image: selenium/video:ffmpeg-6.1-20231206 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.1-20231129 + image: selenium/video:ffmpeg-6.1-20231206 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 1badb813a..e24d65ad8 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.15.0-20231129 + image: selenium/node-chrome:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.15.0-20231129 + image: selenium/node-edge:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.15.0-20231129 + image: selenium/node-firefox:4.16.0-20231206 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.15.0-20231129 + image: selenium/hub:4.16.0-20231206 container_name: selenium-hub ports: - "4442:4442" From 915f39a84de698997c464e8c99fbde6304ecfb27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 11:00:08 +0100 Subject: [PATCH 071/100] Bump actions/setup-python from 4.8.0 to 5.0.0 (#2050) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.8.0 to 5.0.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4.8.0...v5.0.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-test.yml | 2 +- .github/workflows/helm-chart-test.yml | 2 +- .github/workflows/test-video.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index bbed4d9fc..b40db3af6 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -19,7 +19,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python - uses: actions/setup-python@v4.8.0 + uses: actions/setup-python@v5.0.0 with: python-version: '3.11' check-latest: true diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 3a8865f09..7c34c5eb9 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -20,7 +20,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python - uses: actions/setup-python@v4.8.0 + uses: actions/setup-python@v5.0.0 with: python-version: '3.11' check-latest: true diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index 22d536297..65b2241f2 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -16,7 +16,7 @@ jobs: - name: Output Docker info run: docker info - name: Set up Python - uses: actions/setup-python@v4.8.0 + uses: actions/setup-python@v5.0.0 with: python-version: '3.11' check-latest: true From 93de6e883189231592149edfd226c64048f97640 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 8 Dec 2023 08:53:59 +0530 Subject: [PATCH 072/100] Update to Selenium 4.16.1 Signed-off-by: Viet Nguyen Duc --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 874a9b89b..8209db4c3 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,8 @@ NAME := $(or $(NAME),$(NAME),selenium) CURRENT_DATE := $(shell date '+%Y%m%d') BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE)) VERSION := $(or $(VERSION),$(VERSION),4.16.0) -BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.16.0) -BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-$(BASE_VERSION)) +BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.16.1) +BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.16.0) TAG_VERSION := $(VERSION)-$(BUILD_DATE) NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME)) AUTHORS := $(or $(AUTHORS),$(AUTHORS),SeleniumHQ) From 3e191811006a80f292d07dfd52a9f69746abcc38 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 8 Dec 2023 17:13:43 +0700 Subject: [PATCH 073/100] feat(chart): Append subPath to ENV variable SE_NODE_GRID_URL (#2053) Signed-off-by: Viet Nguyen Duc --- charts/selenium-grid/templates/_helpers.tpl | 10 +++++++++ .../templates/node-configmap.yaml | 2 +- tests/charts/templates/render/dummy.yaml | 3 +++ tests/charts/templates/test.py | 22 +++++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 9e44267d9..48c18bb95 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -346,6 +346,16 @@ http://{{- if eq .Values.basicAuth.enabled true}}{{ .Values.basicAuth.username}} {{- end }} {{- end -}} +{{- define "seleniumGrid.url.subPath" -}} +{{- $subPath := "/" -}} +{{ if $.Values.isolateComponents }} + {{- $subPath = default $subPath $.Values.components.subPath -}} +{{- else -}} + {{- $subPath = default $subPath $.Values.hub.subPath -}} +{{- end -}} +{{ $subPath }} +{{- end -}} + {{/* Graphql Url of the hub or the router */}} diff --git a/charts/selenium-grid/templates/node-configmap.yaml b/charts/selenium-grid/templates/node-configmap.yaml index da4edab40..52e447d63 100644 --- a/charts/selenium-grid/templates/node-configmap.yaml +++ b/charts/selenium-grid/templates/node-configmap.yaml @@ -13,4 +13,4 @@ metadata: {{- end }} data: SE_DRAIN_AFTER_SESSION_COUNT: '{{- and (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "job") | ternary "1" "0" -}}' - SE_NODE_GRID_URL: '{{ include "seleniumGrid.url" .}}' + SE_NODE_GRID_URL: '{{ include "seleniumGrid.url" .}}{{ include "seleniumGrid.url.subPath" .}}' diff --git a/tests/charts/templates/render/dummy.yaml b/tests/charts/templates/render/dummy.yaml index 19ca7d6d9..52d672a8a 100644 --- a/tests/charts/templates/render/dummy.yaml +++ b/tests/charts/templates/render/dummy.yaml @@ -42,6 +42,9 @@ ingress: isolateComponents: true +components: + subPath: *gridAppRoot + chromeNode: affinity: *affinity diff --git a/tests/charts/templates/test.py b/tests/charts/templates/test.py index 1e751f4e3..f05c7629d 100644 --- a/tests/charts/templates/test.py +++ b/tests/charts/templates/test.py @@ -45,6 +45,28 @@ def test_ingress_nginx_annotations(self): count += 1 self.assertEqual(count, len(resources_name), "No ingress resources found") + def test_sub_path_append_to_node_grid_url(self): + resources_name = ['selenium-node-config'] + count = 0 + for doc in LIST_OF_DOCUMENTS: + if doc['metadata']['name'] in resources_name and doc['kind'] == 'ConfigMap': + logger.info(f"Assert subPath is appended to node grid url") + self.assertTrue(doc['data']['SE_NODE_GRID_URL'] == 'http://admin:admin@selenium-router.default:4444/selenium') + count += 1 + self.assertEqual(count, len(resources_name), "No node config resources found") + + def test_sub_path_set_to_grid_env_var(self): + resources_name = ['selenium-router'] + is_present = False + for doc in LIST_OF_DOCUMENTS: + if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment': + logger.info(f"Assert subPath is set to grid ENV variable") + list_env = doc['spec']['template']['spec']['containers'][0]['env'] + for env in list_env: + if env['name'] == 'SE_SUB_PATH' and env['value'] == '/selenium': + is_present = True + self.assertTrue(is_present, "ENV variable SE_SUB_PATH is not populated") + if __name__ == '__main__': failed = False try: From 772d59204949dffa32dde5c9efcd31e8e3868d06 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 8 Dec 2023 20:15:50 +0700 Subject: [PATCH 074/100] Add script to generate chart CHANGELOG after released (#2054) Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-release.yml | 15 +++++ charts/selenium-grid/CHANGELOG.md | 19 +++++- generate_chart_changelog.sh | 85 ++++++++++++++++++++++++ update_tag_in_docs_and_files.sh | 4 +- 4 files changed, 119 insertions(+), 4 deletions(-) create mode 100755 generate_chart_changelog.sh diff --git a/.github/workflows/helm-chart-release.yml b/.github/workflows/helm-chart-release.yml index 252ca1840..5d3ee3f2b 100644 --- a/.github/workflows/helm-chart-release.yml +++ b/.github/workflows/helm-chart-release.yml @@ -27,3 +27,18 @@ jobs: uses: helm/chart-releaser-action@v1.6.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + + - name: Update chart CHANGELOG + run: ./generate_chart_changelog.sh + + - name: Commit files + run: | + git config --local user.email "selenium-ci@users.noreply.github.com" + git config --local user.name "Selenium CI Bot" + git commit -m "Update chart CHANGELOG [skip ci]" -a + + - name: Push changes + uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master + with: + github_token: ${{ secrets.SELENIUM_CI_TOKEN }} + branch: trunk diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 4f3e5f405..2642b79eb 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -1,6 +1,21 @@ -# Change Log +## :heavy_check_mark: selenium-grid-0.26.0 -All notable changes to this helm chart will be documented in this file. +- Chart is using image tag 4.16.0-20231206 + +### Added +- feat(chart): Add default annotations for ingress nginx controller (#2047) :: Viet Nguyen Duc +- feat: Video image with based FFmpeg-6.1 on Ubuntu-22.04 (#2042) :: Viet Nguyen Duc + +### Fixed +- bug(#1824): Container ENV SE_NODE_SESSION_TIMEOUT not take effect (#2044) :: Viet Nguyen Duc +- bug(#2038): Rollback io.opentelemetry 1.31.0 - add test tracing enabled (#2040) :: Viet Nguyen Duc + +### Changed +- Update tag in docs and files :: Selenium CI Bot +- Update chart CHANGELOG [skip ci] :: Viet Nguyen Duc +- test(chart): Parallel tests execution against autoscaling in Kubernetes (#2046) :: Viet Nguyen Duc +- test(chart): Chart template render and assert output (#2043) :: Viet Nguyen Duc +- test(chart): Add test for setting registry to pull images (#2036) :: Viet Nguyen Duc ## :heavy_check_mark: 0.25.3 diff --git a/generate_chart_changelog.sh b/generate_chart_changelog.sh new file mode 100755 index 000000000..4afaedfb6 --- /dev/null +++ b/generate_chart_changelog.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +# Specify the output file for the CHANGELOG +CHART_DIR="./charts/selenium-grid" +CHANGELOG_FILE="./charts/selenium-grid/CHANGELOG.md" +TAG_PATTERN="selenium-grid" + +# Get current chart app version +CHART_APP_VERSION=$(find . \( -type d -name .git -prune \) -o -type f -name 'Chart.yaml' -print0 | xargs -0 cat | grep ^appVersion | cut -d ':' -f 2 | tr -d '[:space:]') + +# Generate the changelog +generate_changelog() { + # Get a list of tags sorted by commit date + tags=($(git tag --sort=committerdate | grep "^$TAG_PATTERN")) + tags_size=${#tags[@]} + + # Check if there are tags + if [ ${#tags[@]} -eq 0 ]; then + commit_range="HEAD" + elif [ ${#tags[@]} -eq 1 ]; then + previous_tag="${tags[$tags_size-1]}" + current_tag="HEAD" + commit_range="${previous_tag}..${current_tag}" + else + previous_tag="${tags[$tags_size-2]}" + current_tag="${tags[$tags_size-1]}" + commit_range="${previous_tag}..${current_tag}" + fi + + # Get the changes for each section (Added, Removed, Fixed, Changed) + image_tag_changes=$(echo "Chart is using image tag $CHART_APP_VERSION" | sed -e 's/^/- /') + added_changes=$(git log --pretty=format:"%s :: %an" "$commit_range" -- "$CHART_DIR" | grep -iE "^feat|^add" | sed -e 's/^/- /') + removed_changes=$(git log --pretty=format:"%s :: %an" "$commit_range" -- "$CHART_DIR" | grep -iE "^remove|^deprecate|^delete" | sed -e 's/^/- /') + fixed_changes=$(git log --pretty=format:"%s :: %an" "$commit_range" -- "$CHART_DIR" | grep -iE "^fix|^bug" | sed -e 's/^/- /') + changed_changes=$(git log --pretty=format:"%s :: %an" "$commit_range" -- "$CHART_DIR" | grep -iEv "^feat|^add|^remove|^deprecate|^delete|^fix|^bug" | sed -e 's/^/- /') + + if [[ $(cat $CHANGELOG_FILE) == *"${current_tag}"* ]]; then + echo "Changelog already generated for ${current_tag}" + exit 0 + fi + + # Create a temporary file + temp_file=$(mktemp) + + # Write to the temporary file + echo "## :heavy_check_mark: ${current_tag}" >> "$temp_file" + echo "" >> "$temp_file" + echo "$image_tag_changes" >> "$temp_file" + echo "" >> "$temp_file" + + if [ -n "$added_changes" ]; then + echo "### Added" >> "$temp_file" + echo "$added_changes" >> "$temp_file" + echo "" >> "$temp_file" + fi + + if [ -n "$removed_changes" ]; then + echo "### Removed" >> "$temp_file" + echo "$removed_changes" >> "$temp_file" + echo "" >> "$temp_file" + fi + + if [ -n "$fixed_changes" ]; then + echo "### Fixed" >> "$temp_file" + echo "$fixed_changes" >> "$temp_file" + echo "" >> "$temp_file" + fi + + if [ -n "$changed_changes" ]; then + echo "### Changed" >> "$temp_file" + echo "$changed_changes" >> "$temp_file" + echo "" >> "$temp_file" + fi + + # Append the existing content of CHANGELOG to the temporary file + cat "$CHANGELOG_FILE" >> "$temp_file" + + # Overwrite CHANGELOG with the content of the temporary file + mv "$temp_file" "$CHANGELOG_FILE" +} + +# Run the function to generate the changelog +generate_changelog + +echo "Changelog generated successfully at $CHANGELOG_FILE" diff --git a/update_tag_in_docs_and_files.sh b/update_tag_in_docs_and_files.sh index 3783f30f5..135b06b1a 100755 --- a/update_tag_in_docs_and_files.sh +++ b/update_tag_in_docs_and_files.sh @@ -11,14 +11,14 @@ echo -e "\033[0;32m LATEST_TAG -> ${LATEST_TAG}\033[0m" echo -e "\033[0;32m NEXT_TAG -> ${NEXT_TAG}\033[0m" # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`. -find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i "s/${LATEST_TAG}/${NEXT_TAG}/g" +find . \( -type d -name .git -prune \) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i "s/${LATEST_TAG}/${NEXT_TAG}/g" echo -e "\033[0;32m Updating date used in some docs and files...\033[0m" echo -e "\033[0;32m LATEST_DATE -> ${LATEST_DATE}\033[0m" echo -e "\033[0;32m NEXT_DATE -> ${NEXT_DATE}\033[0m" # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`. -find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i "s/${LATEST_DATE}/${NEXT_DATE}/g" +find . \( -type d -name .git -prune \) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i "s/${LATEST_DATE}/${NEXT_DATE}/g" # Bump chart version and appVersion if next tag is different if [ "$latest_chart_app_version" == $LATEST_TAG ] && [ "$latest_chart_app_version" != "$NEXT_TAG" ]; then From 0b663b30c1fb8db2ec8b42aed84012debdc71e1b Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 8 Dec 2023 23:17:18 +0700 Subject: [PATCH 075/100] Update to Selenium 4.16.1 [deploy] (#2055) --- Makefile | 2 +- tests/SeleniumTests/__init__.py | 34 +++++++++++++++++++++------------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 8209db4c3..5df2eb27e 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ NAME := $(or $(NAME),$(NAME),selenium) CURRENT_DATE := $(shell date '+%Y%m%d') BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE)) -VERSION := $(or $(VERSION),$(VERSION),4.16.0) +VERSION := $(or $(VERSION),$(VERSION),4.16.1) BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.16.1) BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.16.0) TAG_VERSION := $(VERSION)-$(BUILD_DATE) diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index 263cc11ca..fa95acefa 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -67,18 +67,22 @@ def test_play_video(self): def test_download_file(self): driver = self.driver - driver.get('https://demoqa.com/upload-download') - file_name = 'sampleFile.jpeg' - wait = WebDriverWait(driver, 30) - file_link = wait.until( - EC.element_to_be_clickable((By.XPATH, f'//*[@download="{file_name}"]')) - ) - file_link.click() - wait.until( - lambda d: str(d.get_downloadable_files()[0]).endswith(file_name) - ) - time.sleep(5) - self.assertTrue(str(driver.get_downloadable_files()[0]).endswith(file_name)) + driver.get('https://the-internet.herokuapp.com/download') + file_name = 'some-file.txt' + is_continue = True + try: + wait = WebDriverWait(driver, 30) + file_link = wait.until( + EC.element_to_be_clickable((By.LINK_TEXT, file_name)) + ) + except: + is_continue = False + if is_continue: + file_link.click() + wait.until( + lambda d: str(d.get_downloadable_files()[0]).endswith(file_name) + ) + self.assertTrue(str(driver.get_downloadable_files()[0]).endswith(file_name)) def tearDown(self): self.driver.quit() @@ -88,6 +92,7 @@ class ChromeTests(SeleniumGenericTests): def setUp(self): options = ChromeOptions() options.enable_downloads = True + options.add_argument('disable-features=DownloadBubble,DownloadBubbleV2') self.driver = webdriver.Remote( options=options, command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) @@ -97,6 +102,7 @@ class EdgeTests(SeleniumGenericTests): def setUp(self): options = EdgeOptions() options.enable_downloads = True + options.add_argument('disable-features=DownloadBubble,DownloadBubbleV2') self.driver = webdriver.Remote( options=options, command_executor="http://%s:%s" % (SELENIUM_GRID_HOST,SELENIUM_GRID_PORT) @@ -105,7 +111,11 @@ def setUp(self): class FirefoxTests(SeleniumGenericTests): def setUp(self): + profile = webdriver.FirefoxProfile() + profile.set_preference("browser.download.manager.showWhenStarting", False) + profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "*/*") options = FirefoxOptions() + options.profile = profile options.enable_downloads = True self.driver = webdriver.Remote( options=options, From 5fd5e05d70457411483114c88ed5e93a2bb4c62c Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Fri, 8 Dec 2023 16:26:34 +0000 Subject: [PATCH 076/100] Update tag in docs and files --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 134 ++++++++++++------------ charts/selenium-grid/Chart.yaml | 4 +- charts/selenium-grid/README.md | 14 +-- charts/selenium-grid/values.yaml | 26 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 159 insertions(+), 159 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index ada8e271b..74ae90e22 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -56,6 +56,6 @@ body: attributes: label: Docker Selenium version (tag or chart version) description: What version of Docker Selenium are you using? - placeholder: 4.16.0-20231206? Please use the full tag, avoid "latest" + placeholder: 4.16.1-20231208? Please use the full tag, avoid "latest" validations: required: true diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index bfe4bd071..c48e4f1cd 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.16.0-20231206", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.16.0-20231206", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.16.0-20231206", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.16.1-20231208", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.16.1-20231208", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.16.1-20231208", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231206" +video-image = "selenium/video:ffmpeg-6.1-20231208" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index a57191925..090d616b6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.16.0-20231206). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.16.1-20231208). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -65,7 +65,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -252,17 +252,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.16.0-20231206 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.16.1-20231208 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -281,44 +281,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.16.0-20231206 + selenium/node-edge:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.16.0-20231206 + selenium/node-firefox:4.16.1-20231208 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.16.0-20231206 + selenium/node-edge:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.16.0-20231206 + selenium/node-firefox:4.16.1-20231208 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -335,7 +335,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.1-20231208 ``` ##### Node Chrome - Machine/VM 2 @@ -349,7 +349,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 ``` ###### Windows PowerShell @@ -361,7 +361,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 ``` @@ -376,7 +376,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.16.0-20231206 + selenium/node-edge:4.16.1-20231208 ``` ###### Windows PowerShell @@ -388,7 +388,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.16.0-20231206 + selenium/node-edge:4.16.1-20231208 ``` ##### Node Firefox - Machine/VM 4 @@ -402,7 +402,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.16.0-20231206 + selenium/node-firefox:4.16.1-20231208 ``` ###### Windows PowerShell @@ -414,7 +414,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.16.0-20231206 + selenium/node-firefox:4.16.1-20231208 ``` ##### Node Chrome - Machine/VM 4 @@ -429,7 +429,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 ``` ###### Windows PowerShell @@ -442,7 +442,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 ``` #### Docker Compose @@ -474,7 +474,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231206` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231208` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -500,8 +500,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231206 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231208 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -533,9 +533,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.16.0-20231206", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.16.0-20231206", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.16.0-20231206", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.16.1-20231208", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.16.1-20231208", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.16.1-20231208", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -548,7 +548,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231206" +video-image = "selenium/video:ffmpeg-6.1-20231208" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -567,28 +567,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.16.0-20231206 + selenium/node-docker:4.16.1-20231208 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.16.0-20231206 + selenium/node-docker:4.16.1-20231208 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -609,7 +609,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.16.0-20231206 + selenium/standalone-docker:4.16.1-20231208 ``` #### Windows PowerShell @@ -619,7 +619,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.16.0-20231206 + selenium/standalone-docker:4.16.1-20231208 ``` ### Using Dynamic Grid in different machines/VMs @@ -627,7 +627,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.1-20231208 ``` #### Node Chrome - Machine/VM 2 @@ -642,7 +642,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.16.0-20231206 + selenium/node-docker:4.16.1-20231208 ``` #### Windows PowerShell @@ -655,7 +655,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.16.0-20231206 + selenium/node-docker:4.16.1-20231208 ``` Complete the `[server]` section in the `config.toml` file. @@ -664,9 +664,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.16.0-20231206", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.16.0-20231206", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.16.0-20231206", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.16.1-20231208", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.16.1-20231208", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.16.1-20231208", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -679,7 +679,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231206" +video-image = "selenium/video:ffmpeg-6.1-20231208" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -713,7 +713,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.16.0-20231206 + selenium/standalone-docker:4.16.1-20231208 ``` #### Windows PowerShell @@ -724,7 +724,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.16.0-20231206 + selenium/standalone-docker:4.16.1-20231208 ``` @@ -762,7 +762,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.16.1-20231208 ``` ### SE_JAVA_OPTS Java Environment Options @@ -770,7 +770,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.16.0-20231206 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.16.1-20231208 ``` ### Node configuration options @@ -792,7 +792,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.16.0-20231206 + --shm-size="2g" selenium/node-chrome:4.16.1-20231208 ``` ### Setting Sub Path @@ -811,7 +811,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.16.0-20231206 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.16.1-20231208 ``` ### Grid Url and Session Timeout @@ -861,7 +861,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.16.0-20231206 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.16.1-20231208 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -874,7 +874,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -966,22 +966,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.16.0-20231206 + selenium/hub:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.16.0-20231206 + selenium/node-edge:4.16.1-20231208 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.16.0-20231206 + selenium/node-firefox:4.16.1-20231208 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1114,7 +1114,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.16.0-20231206 +FROM selenium/node-chrome:4.16.1-20231208 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1129,7 +1129,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.16.0-20231206 +FROM selenium/node-firefox:4.16.1-20231208 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1152,9 +1152,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.16.0-20231206 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.16.1-20231208 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 ``` Then, you would use in your VNC client: @@ -1180,9 +1180,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.16.0-20231206 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.16.0-20231206 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.16.0-20231206 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.16.1-20231208 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 ``` Then, you would use in your browser: @@ -1207,28 +1207,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.0-20231206 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.16.0-20231206 + selenium/node-chrome:4.16.1-20231208 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.16.0-20231206 + selenium/node-edge:4.16.1-20231208 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.16.0-20231206 + selenium/node-firefox:4.16.1-20231208 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1288,7 +1288,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/files \ - selenium/standalone-chrome:4.16.0-20231206 + selenium/standalone-chrome:4.16.1-20231208 ``` That will mount the host `/home/ubuntu/files` directory diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index a3e55bf71..083c3f1a8 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.26.0 -appVersion: 4.16.0-20231206 +version: 0.26.1 +appVersion: 4.16.1-20231208 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 9fb094507..79c45c56a 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -134,9 +134,9 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-----------------------|---------------------------------------| | `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images | -| `global.seleniumGrid.imageTag` | `4.16.0-20231206` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.16.0-20231206` | Image tag for browser's nodes | -| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231206` | Image tag for browser's video recoder | +| `global.seleniumGrid.imageTag` | `4.16.1-20231208` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.16.1-20231208` | Image tag for browser's nodes | +| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231208` | Image tag for browser's video recoder | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -182,7 +182,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `chromeNode.imageName` | `node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.16.0-20231206` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.16.1-20231208` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -222,7 +222,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `firefoxNode.imageName` | `node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.16.0-20231206` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.16.1-20231208` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -262,7 +262,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `edgeNode.imageName` | `node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.16.0-20231206` | Image of edge nodes | +| `edgeNode.imageTag` | `4.16.1-20231208` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -300,7 +300,7 @@ This table contains the configuration parameters of the chart and their default | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `videoRecorder.imageName` | `video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.1-20231206` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.1-20231208` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index ae9840ce5..22e13e9ff 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -3,11 +3,11 @@ global: # Image registry for all selenium components imageRegistry: selenium # Image tag for all selenium components - imageTag: 4.16.0-20231206 + imageTag: 4.16.1-20231208 # Image tag for browser's nodes - nodesImageTag: 4.16.0-20231206 + nodesImageTag: 4.16.1-20231208 # Image tag for browser's video recorder - videoImageTag: ffmpeg-6.1-20231206 + videoImageTag: ffmpeg-6.1-20231208 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -77,7 +77,7 @@ components: # Router image name imageName: router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -129,7 +129,7 @@ components: # Distributor image name imageName: distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -161,7 +161,7 @@ components: # Event Bus image name imageName: event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -197,7 +197,7 @@ components: # Session Map image name imageName: sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -228,7 +228,7 @@ components: # Session Queue image name imageName: session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -279,7 +279,7 @@ hub: # Selenium Hub image name imageName: hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -420,7 +420,7 @@ chromeNode: # Image of chrome nodes imageName: node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -553,7 +553,7 @@ firefoxNode: # Image of firefox nodes imageName: node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -683,7 +683,7 @@ edgeNode: # Image of edge nodes imageName: node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.16.0-20231206 + # imageTag: 4.16.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -802,7 +802,7 @@ videoRecorder: # Image of video recorder imageName: video # Image of video recorder - # imageTag: ffmpeg-6.1-20231206 + # imageTag: ffmpeg-6.1-20231208 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index fe06e3880..7943b50b9 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 7e2d9ecbf..96a712c49 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index bed795e21..b9b6c7479 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index 029f4311e..eba9a3f33 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index 6655e1166..fb4031907 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.16.0-20231206 + image: selenium/node-docker:4.16.1-20231208 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index d7ceddceb..480d36f6c 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.16.0-20231206 + image: selenium/event-bus:4.16.1-20231208 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.16.0-20231206 + image: selenium/sessions:4.16.1-20231208 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.16.0-20231206 + image: selenium/session-queue:4.16.1-20231208 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.16.0-20231206 + image: selenium/distributor:4.16.1-20231208 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.16.0-20231206 + image: selenium/router:4.16.1-20231208 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 08175c05e..5f29ade53 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 9596c563f..84795f250 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.16.0-20231206 + image: selenium/event-bus:4.16.1-20231208 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.16.0-20231206 + image: selenium/sessions:4.16.1-20231208 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.16.0-20231206 + image: selenium/session-queue:4.16.1-20231208 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.16.0-20231206 + image: selenium/distributor:4.16.1-20231208 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.16.0-20231206 + image: selenium/router:4.16.1-20231208 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 6c3a08a1c..63f420cd5 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.16.0-20231206 + image: selenium/event-bus:4.16.1-20231208 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.16.0-20231206 + image: selenium/sessions:4.16.1-20231208 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.16.0-20231206 + image: selenium/session-queue:4.16.1-20231208 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.16.0-20231206 + image: selenium/distributor:4.16.1-20231208 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.16.0-20231206 + image: selenium/router:4.16.1-20231208 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 08175c05e..5f29ade53 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 1f81cc6b9..7f3d4389d 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 9ae22f29b..e472ddf8b 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.1-20231206 + image: selenium/video:ffmpeg-6.1-20231208 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.1-20231206 + image: selenium/video:ffmpeg-6.1-20231208 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.1-20231206 + image: selenium/video:ffmpeg-6.1-20231208 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index e24d65ad8..8263bf9bb 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.0-20231206 + image: selenium/node-chrome:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.0-20231206 + image: selenium/node-edge:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.0-20231206 + image: selenium/node-firefox:4.16.1-20231208 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.0-20231206 + image: selenium/hub:4.16.1-20231208 container_name: selenium-hub ports: - "4442:4442" From 245cca003010a5dd79a9208b4585bef70131c053 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Sat, 9 Dec 2023 00:12:10 +0530 Subject: [PATCH 077/100] Workflow to update chart changelog [skip ci] Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-release.yml | 15 ---------- .github/workflows/update-chart-changelog.yaml | 30 +++++++++++++++++++ 2 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/update-chart-changelog.yaml diff --git a/.github/workflows/helm-chart-release.yml b/.github/workflows/helm-chart-release.yml index 5d3ee3f2b..252ca1840 100644 --- a/.github/workflows/helm-chart-release.yml +++ b/.github/workflows/helm-chart-release.yml @@ -27,18 +27,3 @@ jobs: uses: helm/chart-releaser-action@v1.6.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - - - name: Update chart CHANGELOG - run: ./generate_chart_changelog.sh - - - name: Commit files - run: | - git config --local user.email "selenium-ci@users.noreply.github.com" - git config --local user.name "Selenium CI Bot" - git commit -m "Update chart CHANGELOG [skip ci]" -a - - - name: Push changes - uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master - with: - github_token: ${{ secrets.SELENIUM_CI_TOKEN }} - branch: trunk diff --git a/.github/workflows/update-chart-changelog.yaml b/.github/workflows/update-chart-changelog.yaml new file mode 100644 index 000000000..cadab1e1c --- /dev/null +++ b/.github/workflows/update-chart-changelog.yaml @@ -0,0 +1,30 @@ +name: Update Chart CHANGELOG + +on: + page_build: + workflow_dispatch: + +jobs: + release: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Update chart CHANGELOG + run: ./generate_chart_changelog.sh + + - name: Commit files + run: | + git config --local user.email "selenium-ci@users.noreply.github.com" + git config --local user.name "Selenium CI Bot" + git commit -m "Update chart CHANGELOG [skip ci]" -a + + - name: Push changes + uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master + with: + github_token: ${{ secrets.SELENIUM_CI_TOKEN }} + branch: trunk From 790a4354581888f734082d91a67af6b1f96fd854 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Sat, 9 Dec 2023 00:33:46 +0530 Subject: [PATCH 078/100] Workflow to update chart changelog [skip ci] Signed-off-by: Viet Nguyen Duc --- .github/workflows/update-chart-changelog.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update-chart-changelog.yaml b/.github/workflows/update-chart-changelog.yaml index cadab1e1c..9a57e0b4f 100644 --- a/.github/workflows/update-chart-changelog.yaml +++ b/.github/workflows/update-chart-changelog.yaml @@ -12,6 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: + persist-credentials: false fetch-depth: 0 - name: Update chart CHANGELOG From 65d549020d83243ab3386f85aaadd6ee50336b72 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Fri, 8 Dec 2023 19:05:12 +0000 Subject: [PATCH 079/100] Update chart CHANGELOG [skip ci] --- charts/selenium-grid/CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 2642b79eb..0736fe07a 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -1,3 +1,14 @@ +## :heavy_check_mark: selenium-grid-0.26.1 + +- Chart is using image tag 4.16.1-20231208 + +### Added +- Add script to generate chart CHANGELOG after released (#2054) :: Viet Nguyen Duc +- feat(chart): Append subPath to ENV variable SE_NODE_GRID_URL (#2053) :: Viet Nguyen Duc + +### Changed +- Update tag in docs and files :: Selenium CI Bot + ## :heavy_check_mark: selenium-grid-0.26.0 - Chart is using image tag 4.16.0-20231206 From d84b3a44ecd6bf0fe187fc92b3be2b9d51cf0ad6 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Sat, 9 Dec 2023 01:17:22 +0100 Subject: [PATCH 080/100] Update lock.yml [skip ci] --- .github/workflows/lock.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 8a7b86c64..7abaecd80 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -14,12 +14,12 @@ jobs: action: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v3 + - uses: dessant/lock-threads@v5 with: process-only: 'issues' - issue-lock-inactive-days: '30' + issue-inactive-days: '30' issue-lock-reason: '' - issue-lock-comment: > + issue-comment: > This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. From a010cb0d0e0b9d1e3cabd57333cdab305039bde7 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 11 Dec 2023 12:45:40 +0530 Subject: [PATCH 081/100] Update workflow dev-beta browser images [skip-ci] Signed-off-by: Viet Nguyen Duc --- .github/workflows/update-dev-beta-browser-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-dev-beta-browser-images.yml b/.github/workflows/update-dev-beta-browser-images.yml index 6349a71a0..4bcef2c5b 100644 --- a/.github/workflows/update-dev-beta-browser-images.yml +++ b/.github/workflows/update-dev-beta-browser-images.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - name: Setup environment variables run: | - export SELENIUM_VERSION=$(grep selenium-server Base/Dockerfile | sed 's/.*-\([^-]*\)\.jar \\/\1/' | head -n 1) + export SELENIUM_VERSION=$(grep BASE_VERSION Makefile | sed 's/.*,\([^)]*\))/\1/p' | head -n 1) echo "SELENIUM_VERSION="$SELENIUM_VERSION >> $GITHUB_ENV export BUILD_DATE=$(date '+%Y%m%d') echo "BUILD_DATE="$BUILD_DATE >> $GITHUB_ENV From 9f187e039872aa71caeb102d322e69d42da59b1d Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 11 Dec 2023 17:50:10 +0700 Subject: [PATCH 082/100] feat: changing owner while creating container for download support (#2056) Signed-off-by: Viet Nguyen Duc --- Base/Dockerfile | 100 +++++++++++++++++++++++++----------- Base/entry_point.sh | 36 ++++++++++++- Base/fix-permissions | 23 +++++++++ Distributor/Dockerfile | 4 +- EventBus/Dockerfile | 4 +- Hub/Dockerfile | 4 +- NodeBase/Dockerfile | 43 +++++++--------- NodeChrome/Dockerfile | 8 +-- NodeDocker/Dockerfile | 4 +- NodeEdge/Dockerfile | 4 +- NodeFirefox/Dockerfile | 12 +---- README.md | 51 ++++++++++++++---- Router/Dockerfile | 4 +- SessionQueue/Dockerfile | 4 +- Sessions/Dockerfile | 4 +- Standalone/Dockerfile | 6 +-- StandaloneDocker/Dockerfile | 4 +- 17 files changed, 213 insertions(+), 102 deletions(-) create mode 100644 Base/fix-permissions diff --git a/Base/Dockerfile b/Base/Dockerfile index 7122d9772..6e368d66d 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -1,8 +1,19 @@ FROM ubuntu:jammy-20231004 LABEL authors="Selenium " +# Arguments to define the version of dependencies to download ARG VERSION ARG RELEASE=selenium-${VERSION} +ARG OPENTELEMETRY_VERSION=1.31.0 +ARG GRPC_VERSION=1.59.0 + +#Arguments to define the user running Selenium +ARG SEL_USER=seluser +ARG SEL_PASSWD=secret +ARG SEL_UID=1200 +ARG SEL_GID=1201 + +USER root #================================================ # Customize sources for apt-get #================================================ @@ -33,6 +44,7 @@ RUN apt-get -qqy update \ curl \ supervisor \ gnupg2 \ + libnss3-tools \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ && sed -i 's/securerandom\.source=file:\/dev\/random/securerandom\.source=file:\/dev\/urandom/' ./usr/lib/jvm/java-11-openjdk-amd64/conf/security/java.security @@ -45,25 +57,53 @@ RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \ dpkg-reconfigure -f noninteractive tzdata && \ cat /etc/timezone +#====================================== +# Configure environement +#====================================== +ENV SEL_USER=${SEL_USER} +ENV SEL_UID=${SEL_UID} +ENV SEL_GID=${SEL_GID} +ENV HOME=/home/${SEL_USER} +ENV SEL_DIR=/opt/selenium +ENV EXTERNAL_JARS=/external_jars +ENV SE_DOWNLOAD_DIR=${HOME}/Downloads + +# Copy a script that we will use to correct permissions after running certain commands +COPY fix-permissions /usr/local/bin/fix-permissions +RUN chmod a+rx /usr/local/bin/fix-permissions + #======================================== # Add normal user and group with passwordless sudo #======================================== -RUN groupadd seluser \ - --gid 1201 \ - && useradd seluser \ - --create-home \ - --gid 1201 \ - --shell /bin/bash \ - --uid 1200 \ - && usermod -a -G sudo seluser \ - && echo 'ALL ALL = (ALL) NOPASSWD: ALL' >> /etc/sudoers \ - && echo 'seluser:secret' | chpasswd -ENV HOME=/home/seluser +RUN echo "auth requisite pam_deny.so" >> /etc/pam.d/su \ + && sed -i.bak -e 's/^%admin/#%admin/' /etc/sudoers \ + && sed -i.bak -e 's/^%sudo/#%sudo/' /etc/sudoers \ + && echo 'ALL ALL = (ALL) NOPASSWD: ALL' >> /etc/sudoers + +RUN groupadd ${SEL_USER} \ + --gid ${SEL_GID} \ + && useradd ${SEL_USER} \ + --no-log-init \ + --create-home \ + --gid ${SEL_GID} \ + --shell /bin/bash \ + --uid ${SEL_UID} \ + && chmod g+w /etc/passwd \ + && echo "${SEL_USER}:${SEL_PASSWD}" | chpasswd + +#====================================== +# Create directories needed +#====================================== +RUN mkdir -p ${HOME}/.mozilla ${HOME}/.cache \ + ${SEL_DIR} ${SEL_DIR}/assets \ + /var/run/supervisor /var/log/supervisor \ + ${EXTERNAL_JARS} \ + ${SE_DOWNLOAD_DIR} #====================================== # Add Grid check script #====================================== -COPY check-grid.sh entry_point.sh /opt/bin/ +COPY --chown="${SEL_UID}:${SEL_GID}" check-grid.sh entry_point.sh /opt/bin/ #====================================== # Add Supervisor configuration file @@ -71,38 +111,38 @@ COPY check-grid.sh entry_point.sh /opt/bin/ COPY supervisord.conf /etc #========== -# Selenium & relaxing permissions for OpenShift and other non-sudo environments +# Selenium #========== -RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ - && touch /opt/selenium/config.toml \ - && chmod -R 777 /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor /etc/passwd \ +RUN touch ${SEL_DIR}/config.toml \ && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/${RELEASE}/selenium-server-${VERSION}.jar \ - -O /opt/selenium/selenium-server.jar \ - && chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ - && chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ - && setfacl -Rm u:seluser:rwx /opt /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor + -O ${SEL_DIR}/selenium-server.jar #===== # Download observability related jaegar jars and make them available in a separate directory # so that the container can skip downloading them everytime it comes up #===== RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier \ - && chmod +x /tmp/cs \ - && mkdir -p /external_jars \ - && chmod -R 775 /external_jars + && chmod +x /tmp/cs -RUN /tmp/cs fetch --classpath --cache /external_jars \ - io.opentelemetry:opentelemetry-exporter-otlp:1.31.0 \ - io.opentelemetry:opentelemetry-exporter-jaeger:1.31.0 \ - io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt - -RUN chmod 664 /external_jars/.classpath.txt +RUN /tmp/cs fetch --classpath --cache ${EXTERNAL_JARS} \ + io.opentelemetry:opentelemetry-exporter-otlp:${OPENTELEMETRY_VERSION} \ + io.opentelemetry:opentelemetry-exporter-jaeger:${OPENTELEMETRY_VERSION} \ + io.grpc:grpc-netty:${GRPC_VERSION} > ${EXTERNAL_JARS}/.classpath.txt RUN rm -fr /root/.cache/* +# Change ownership of directories +RUN chown -R "${SEL_USER}:${SEL_GID}" ${HOME} ${SEL_DIR} ${SEL_DIR}/assets ${EXTERNAL_JARS} ${SE_DOWNLOAD_DIR} /var/run/supervisor /var/log/supervisor \ + && fix-permissions ${HOME} ${SEL_DIR} ${SEL_DIR}/assets ${EXTERNAL_JARS} ${SE_DOWNLOAD_DIR} /var/run/supervisor /var/log/supervisor + +#========== +# Relaxing permissions for OpenShift and other non-sudo environments +#========== +RUN chmod g=u /etc/passwd + #=================================================== # Run the following commands as non-privileged user #=================================================== -USER 1200:1201 +USER ${SEL_UID}:${SEL_GID} # Boolean value, maps "--bind-host" ENV SE_BIND_HOST false diff --git a/Base/entry_point.sh b/Base/entry_point.sh index 0fd0b314e..4ef9ee26b 100755 --- a/Base/entry_point.sh +++ b/Base/entry_point.sh @@ -1,4 +1,9 @@ #!/usr/bin/env bash +_log () { + if [[ "$*" == "ERROR:"* ]] || [[ "$*" == "WARNING:"* ]] || [[ "${CONTAINER_LOGS_QUIET}" == "" ]]; then + echo "$@" + fi +} #============================================== # OpenShift or non-sudo environments support @@ -7,10 +12,39 @@ if ! whoami &> /dev/null; then if [ -w /etc/passwd ]; then - echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:${HOME}:/sbin/nologin" >> /etc/passwd + echo "${USER_NAME:-${SEL_USER}}:x:$(id -u):0:${USER_NAME:-${SEL_USER}} user:${HOME}:${SE_DOWNLOAD_DIR}:/var:/opt:/sbin/nologin" >> /etc/passwd fi fi +MKDIR_EXTRA=${SE_DOWNLOAD_DIR}","${MKDIR_EXTRA} +CHOWN_EXTRA=${MKDIR_EXTRA}","${CHOWN_EXTRA} + +if [ -n "${MKDIR_EXTRA}" ]; then + for extra_dir in $(echo "${MKDIR_EXTRA}" | tr ',' ' '); do + _log "Creating directory ${extra_dir} ${MKDIR_EXTRA_OPTS:+(mkdir options: ${MKDIR_EXTRA_OPTS})}" + # shellcheck disable=SC2086 + sudo mkdir ${MKDIR_EXTRA_OPTS:-"-p"} "${extra_dir}" + done +fi + +if [ -n "${CHOWN_EXTRA}" ]; then + for extra_dir in $(echo "${CHOWN_EXTRA}" | tr ',' ' '); do + _log "Changing ${extra_dir} ownership. ${extra_dir} is owned by ${SEL_USER} ${CHOWN_EXTRA_OPTS:+(chown options: ${CHOWN_EXTRA_OPTS})}" + # shellcheck disable=SC2086 + sudo chown ${CHOWN_EXTRA_OPTS:-"-R"} "${SEL_UID}:${SEL_GID}" "${extra_dir}" + sudo -E fix-permissions "${extra_dir}" + done +fi + +# Raise error if the user isn't able to write files to download dir +if [ -n "${CHOWN_EXTRA}" ]; then + for extra_dir in $(echo "${CHOWN_EXTRA}" | tr ',' ' '); do + if [[ ! -w ${extra_dir} ]]; then + _log "ERROR: no write access to download dir ${SE_DOWNLOAD_DIR}. Please correct the permissions and restart." + fi + done +fi + /usr/bin/supervisord --configuration /etc/supervisord.conf & SUPERVISOR_PID=$! diff --git a/Base/fix-permissions b/Base/fix-permissions new file mode 100644 index 000000000..97d4ad8b8 --- /dev/null +++ b/Base/fix-permissions @@ -0,0 +1,23 @@ +#!/bin/bash +set -e +# Run this with USER root only +for d in "$@"; do + find "${d}" \ + ! \( \ + -group "${SEL_GID}" \ + -a -perm -g+rwX \ + \) \ + -exec chgrp -R "${SEL_GID}" -- {} \+ \ + -exec chmod -R g+rwX -- {} \+ + # setuid, setgid *on directories only* + find "${d}" \ + \( \ + -type d \ + -a ! -perm -6000 \ + \) \ + -exec chmod -R +6000 -- {} \+ + # Relaxing permissions for OpenShift and other non-sudo environments + chmod -R u+x "${d}" + chgrp -R 0 "${d}" + chmod -R g=u "${d}" +done diff --git a/Distributor/Dockerfile b/Distributor/Dockerfile index 75e75468a..ce901ceeb 100644 --- a/Distributor/Dockerfile +++ b/Distributor/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #======================== # Selenium Distributor Configuration @@ -12,7 +12,7 @@ USER 1200 EXPOSE 5553 -COPY start-selenium-grid-distributor.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-distributor.sh \ /opt/bin/ COPY selenium-grid-distributor.conf /etc/supervisor/conf.d/ diff --git a/EventBus/Dockerfile b/EventBus/Dockerfile index 16985e7b2..6864aead4 100644 --- a/EventBus/Dockerfile +++ b/EventBus/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #================================= # Selenium Event Bus Configuration @@ -17,7 +17,7 @@ EXPOSE 4443 # Event Bus port EXPOSE 5557 -COPY start-selenium-grid-eventbus.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-eventbus.sh \ /opt/bin/ COPY selenium-grid-eventbus.conf /etc/supervisor/conf.d/ diff --git a/Hub/Dockerfile b/Hub/Dockerfile index 56348d8ba..e46797164 100644 --- a/Hub/Dockerfile +++ b/Hub/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #======================== # Selenium Hub Configuration @@ -21,7 +21,7 @@ ENV SE_SESSION_RETRY_INTERVAL 15 # Boolean value, maps "--relax-checks" ENV SE_RELAX_CHECKS true -COPY start-selenium-grid-hub.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-hub.sh \ /opt/bin/ COPY selenium-grid-hub.conf /etc/supervisor/conf.d/ diff --git a/NodeBase/Dockerfile b/NodeBase/Dockerfile index 2e9f519d4..ed42d66c0 100644 --- a/NodeBase/Dockerfile +++ b/NodeBase/Dockerfile @@ -112,16 +112,31 @@ RUN wget -nv -O noVNC.zip \ #========================================================================================================================================= RUN chmod +x /dev/shm +# Creating base directory for Xvfb +RUN mkdir -p /tmp/.X11-unix && \ + fix-permissions /tmp/.X11-unix + +#============================== +# Generating the VNC password based on the ${SE_VNC_PASSWORD} +# Changing ownership to ${SEL_USER}, so the service can be started +#============================== + +ENV SE_VNC_PASSWORD=secret +RUN mkdir -p ${HOME}/.vnc \ + && x11vnc -storepasswd ${SE_VNC_PASSWORD} ${HOME}/.vnc/passwd \ + && chown -R "${SEL_UID}:${SEL_GID}" ${HOME}/.vnc \ + && fix-permissions ${HOME}/.vnc + #=================================================== # Run the following commands as non-privileged user #=================================================== -USER 1200 +USER ${SEL_UID} #============================== # Scripts to run Selenium Node and XVFB #============================== -COPY start-selenium-node.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-node.sh \ start-xvfb.sh \ /opt/bin/ @@ -130,25 +145,10 @@ COPY start-selenium-node.sh \ #============================== COPY selenium.conf /etc/supervisor/conf.d/ -#============================== -# Generating the VNC password as seluser -# So the service can be started with seluser -#============================== - -RUN mkdir -p ${HOME}/.vnc \ - && x11vnc -storepasswd secret ${HOME}/.vnc/passwd - -#========== -# Relaxing permissions for OpenShift and other non-sudo environments -#========== -RUN sudo chmod -R 775 ${HOME} \ - && sudo chgrp -R 0 ${HOME} \ - && sudo chmod -R g=u ${HOME} - #============================== # Scripts to run fluxbox, x11vnc and noVNC #============================== -COPY start-vnc.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-vnc.sh \ start-novnc.sh \ /opt/bin/ @@ -180,8 +180,6 @@ ENV SE_DRAIN_AFTER_SESSION_COUNT 0 # Setting Selenium Manager to work offline ENV SE_OFFLINE true - - #======================== # Selenium Configuration #======================== @@ -195,10 +193,7 @@ ENV SE_NODE_OVERRIDE_MAX_SESSIONS false # Following line fixes https://github.com/SeleniumHQ/docker-selenium/issues/87 ENV DBUS_SESSION_BUS_ADDRESS=/dev/null -# Creating base directory for Xvfb -RUN sudo mkdir -p /tmp/.X11-unix && sudo chmod 1777 /tmp/.X11-unix - # Copying configuration script generator -COPY generate_config /opt/bin/generate_config +COPY --chown="${SEL_UID}:${SEL_GID}" generate_config /opt/bin/generate_config EXPOSE 5900 diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index dfcc5bd61..3282a3d05 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -29,8 +29,6 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --d COPY wrap_chrome_binary /opt/bin/wrap_chrome_binary RUN /opt/bin/wrap_chrome_binary -USER 1200 - #============================================ # Chrome webdriver #============================================ @@ -52,8 +50,10 @@ RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ && rm /tmp/chromedriver_linux64.zip \ && mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver + && fix-permissions /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver + +USER ${SEL_UID} #============================================ # Dumping Browser information for config diff --git a/NodeDocker/Dockerfile b/NodeDocker/Dockerfile index 249b91adc..e7d8e0d35 100644 --- a/NodeDocker/Dockerfile +++ b/NodeDocker/Dockerfile @@ -13,7 +13,7 @@ RUN apt-get update -qqy \ && apt-get -qqy install socat \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* -USER 1200 +USER ${SEL_UID} #======================== # Selenium Standalone Docker Configuration @@ -21,7 +21,7 @@ USER 1200 EXPOSE 4444 -COPY start-selenium-grid-docker.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-docker.sh \ config.toml \ start-socat.sh \ /opt/bin/ diff --git a/NodeEdge/Dockerfile b/NodeEdge/Dockerfile index 7f26504ba..adadec9d5 100644 --- a/NodeEdge/Dockerfile +++ b/NodeEdge/Dockerfile @@ -43,10 +43,10 @@ RUN if [ -z "$EDGE_DRIVER_VERSION" ]; \ && unzip /tmp/msedgedriver_linux64.zip -d /opt/selenium \ && rm /tmp/msedgedriver_linux64.zip \ && mv /opt/selenium/msedgedriver /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ - && chmod 755 /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ + && fix-permissions /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ && ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver -USER 1200 +USER ${SEL_UID} #============================================ # Dumping Browser information for config diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index e79f641be..0150b61e3 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -36,17 +36,7 @@ RUN GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = "latest" ]; then echo "0. && chmod 755 /opt/geckodriver-$GK_VERSION \ && ln -fs /opt/geckodriver-$GK_VERSION /usr/bin/geckodriver -# Workaround for issue launch Firefox Webdriver "Failed to read marionette port" -RUN mkdir -p /home/seluser/.cache /home/seluser/.mozilla /.cache \ - && chmod 777 /home/seluser/.cache /home/seluser/.mozilla /.cache - -USER 1200 - -RUN if ! whoami &> /dev/null; then \ - if [ -w /tmp/passwd ]; then \ - echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:/home/seluser:/tmp:/bin/bash" >> /tmp/passwd; \ - fi \ -fi +USER ${SEL_UID} #============================================ # Dumping Browser information for config diff --git a/README.md b/README.md index 090d616b6..95b69c656 100644 --- a/README.md +++ b/README.md @@ -1287,30 +1287,59 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ - -v /home/ubuntu/files:/home/seluser/files \ + -v /home/ubuntu/files:/home/seluser/Downloads \ selenium/standalone-chrome:4.16.1-20231208 ``` That will mount the host `/home/ubuntu/files` directory -to the `/home/seluser/files` inside the container. The +to the `/home/seluser/Downloads` inside the container +(default browser's downloads directory). The problem happens because the volume will be mounted as `root`; therefore, the browser cannot write a file to that directory because it is running under the user `seluser`. This happens because that is how Docker mounts volumes in Linux, more details in this [issue](https://github.com/moby/moby/issues/2259). -A workaround for this is to create a directory on the -host and change its permissions **before mounting the volume**. -Depending on your user permissions, you might need to use -`sudo` for some of these commands: +There was a fix in this [feature](https://github.com/SeleniumHQ/docker-selenium/issues/1947) +that changed ownership when staring the container. + +You are able to configure browser with another download directory and mount the host with it in container by overriding `SE_DOWNLOAD_DIR`. + +```groovy +ChromeOptions options = new ChromeOptions(); +HashMap chromePrefs = new HashMap(); +chromePrefs.put("download.default_directory", "/tmp/downloads"); +options.setExperimentalOption("prefs", chromePrefs); +options.add_argument('disable-features=DownloadBubble,DownloadBubbleV2') +WebDriver driver = new ChromeDriver(options); +``` ```bash -mkdir /home/ubuntu/files -chown 1200:1201 /home/ubuntu/files +docker run -d -p 4444:4444 --shm-size="2g" \ + -e SE_DOWNLOAD_DIR=/tmp/downloads \ + -v /home/ubuntu/files:/tmp/downloads \ + selenium/standalone-chrome:4.16.1-20231208 ``` -After doing this, you should be able to download files -to the mounted directory. If you have a better workaround, -please send us a pull request! +### Change ownership of the volume mount + +If you are using Linux and you need to change the ownership of the volume mount, you can set the `CHOWN_EXTRA` and `CHOWN_EXTRA_OPTS` (default is set `-R` - change recursively) environment variables + +```bash +docker run -d -p 4444:4444 --shm-size="2g" \ + -v /home/ubuntu/my-certs:/etc/certs \ + -e CHOWN_EXTRA=/etc/certs \ + selenium/standalone-chrome:4.16.1-20231208 +``` + +If you want a new volume mount directory to be created and set ownership, you can set the `MKDIR_EXTRA` and `MKDIR_EXTRA_OPTS` (default is set `-p` - create a directory hierarchy) environment variables. + +```bash +docker run -d -p 4444:4444 --shm-size="2g" \ + -v /home/ubuntu/my-nssdb:/home/seluser/.pki/nssdb \ + -e MKDIR_EXTRA=/home/seluser/.pki/nssdb \ + selenium/standalone-chrome:4.16.1-20231208 +``` +Both `CHOWN_EXTRA` and `MKDIR_EXTRA` can be set to multiple directories by separating them with a `space` or `comma`. For example: `CHOWN_EXTRA=,` diff --git a/Router/Dockerfile b/Router/Dockerfile index ccce7a2ff..3410b932f 100644 --- a/Router/Dockerfile +++ b/Router/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #======================== # Selenium Router Configuration @@ -17,7 +17,7 @@ ENV SE_SESSION_RETRY_INTERVAL 0 EXPOSE 4444 -COPY start-selenium-grid-router.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-router.sh \ /opt/bin/ COPY selenium-grid-router.conf /etc/supervisor/conf.d/ diff --git a/SessionQueue/Dockerfile b/SessionQueue/Dockerfile index bf6213279..bf4c7be89 100644 --- a/SessionQueue/Dockerfile +++ b/SessionQueue/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #======================== # Selenium SessionQueue Configuration @@ -17,7 +17,7 @@ ENV SE_SESSION_RETRY_INTERVAL 15 EXPOSE 5559 -COPY start-selenium-grid-session-queue.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-session-queue.sh \ /opt/bin/ COPY selenium-grid-session-queue.conf /etc/supervisor/conf.d/ diff --git a/Sessions/Dockerfile b/Sessions/Dockerfile index b069e84f7..99e89344b 100644 --- a/Sessions/Dockerfile +++ b/Sessions/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #======================== # Selenium SessionMap Configuration @@ -12,7 +12,7 @@ USER 1200 EXPOSE 5556 -COPY start-selenium-grid-sessions.sh \ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-sessions.sh \ /opt/bin/ COPY selenium-grid-sessions.conf /etc/supervisor/conf.d/ diff --git a/Standalone/Dockerfile b/Standalone/Dockerfile index addb83f9c..690753222 100644 --- a/Standalone/Dockerfile +++ b/Standalone/Dockerfile @@ -5,12 +5,12 @@ ARG BASE FROM ${NAMESPACE}/${BASE}:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #==================================== # Scripts to run Selenium Standalone #==================================== -COPY start-selenium-standalone.sh /opt/bin/start-selenium-standalone.sh +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-standalone.sh /opt/bin/start-selenium-standalone.sh #============================== # Supervisor configuration file @@ -18,7 +18,7 @@ COPY start-selenium-standalone.sh /opt/bin/start-selenium-standalone.sh COPY selenium.conf /etc/supervisor/conf.d/ # Copying configuration script generator -COPY generate_config /opt/bin/generate_config +COPY --chown="${SEL_UID}:${SEL_GID}" generate_config /opt/bin/generate_config # Boolean value, maps "--relax-checks" ENV SE_RELAX_CHECKS true diff --git a/StandaloneDocker/Dockerfile b/StandaloneDocker/Dockerfile index 166d902ac..e2d1f5de9 100644 --- a/StandaloneDocker/Dockerfile +++ b/StandaloneDocker/Dockerfile @@ -4,7 +4,7 @@ ARG AUTHORS FROM ${NAMESPACE}/node-docker:${VERSION} LABEL authors=${AUTHORS} -USER 1200 +USER ${SEL_UID} #======================== # Selenium Standalone Docker Configuration @@ -12,7 +12,7 @@ USER 1200 EXPOSE 4444 -COPY start-selenium-grid-docker.sh /opt/bin/ +COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-docker.sh /opt/bin/ # Boolean value, maps "--relax-checks" ENV SE_RELAX_CHECKS true From eda48ff4aeb5e49120ab9a75a8b4e678603af8d5 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Mon, 11 Dec 2023 13:13:20 +0530 Subject: [PATCH 083/100] Warn if ulimit -n is too high when running Docker Signed-off-by: Viet Nguyen Duc --- Base/Dockerfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Base/Dockerfile b/Base/Dockerfile index 6e368d66d..ab66da213 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -147,4 +147,13 @@ USER ${SEL_UID}:${SEL_GID} # Boolean value, maps "--bind-host" ENV SE_BIND_HOST false +# A too high maximum number of file descriptors (with the default value +# inherited from the docker host) can cause issues with some of our tools: +# - sanitizers hanging: https://github.com/google/sanitizers/issues/1662 +# - valgrind crashing: https://stackoverflow.com/a/75293014 +# This is not be a problem on our CI hosts, but developers who run the image +# on their machines may run into this (e.g., on Arch Linux), so warn them. +# (Note that .bashrc is only executed in interactive bash shells.) +RUN echo 'if [[ $(ulimit -n) -gt 200000 ]]; then echo "WARNING: Very high value reported by \"ulimit -n\". Consider passing \"--ulimit nofile=32768\" to \"docker run\"."; fi' >> ${HOME}/.bashrc + CMD ["/opt/bin/entry_point.sh"] From 42f05d96873c6368581bc1381b30d8fc2d295981 Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Tue, 12 Dec 2023 03:48:37 +0100 Subject: [PATCH 084/100] Guard against high `ulimit -n` in when starting vnc (#2058) * Guard against high `ulimit -n` when starting vnc Recent versions of docker in combination with the upstream systemd unit files pass an incredibly high `ulimit -n` to the docker container, up to 1 billion. That causes minute high delays and CPU spinning when connecting to VNC while it enumerates all the file descriptors. See #2045 * Update failure message * Allow the ulimit to be configurable by env --- NodeBase/start-vnc.sh | 11 +++++++++++ README.md | 2 ++ 2 files changed, 13 insertions(+) diff --git a/NodeBase/start-vnc.sh b/NodeBase/start-vnc.sh index 345ac94e9..b5cfe3459 100755 --- a/NodeBase/start-vnc.sh +++ b/NodeBase/start-vnc.sh @@ -44,6 +44,17 @@ if [ "${START_XVFB:-$SE_START_XVFB}" = true ] ; then echo "Waiting for Xvfb..." done + # Guard against unreasonably high nofile limits. See https://github.com/SeleniumHQ/docker-selenium/issues/2045 + if [[ $(ulimit -n) -gt 200000 || ! -z "${SE_VNC_ULIMIT}" ]]; then + echo "Trying to update the open file descriptor limit from $(ulimit -n) to ${SE_VNC_ULIMIT:-65536}." + ulimit -n ${SE_VNC_ULIMIT:-65536} + if [ $? -eq 0 ]; then + echo "Successfully update the open file descriptor limit." + else + echo "The open file descriptor limit could not be updated." + fi + fi + x11vnc ${X11VNC_OPTS} -forever -shared -rfbport ${VNC_PORT:-$SE_VNC_PORT} -rfbportv6 ${VNC_PORT:-$SE_VNC_PORT} -display ${DISPLAY} else echo "VNC won't start because SE_START_VNC is false." diff --git a/README.md b/README.md index 95b69c656..8a92ce533 100644 --- a/README.md +++ b/README.md @@ -1169,6 +1169,8 @@ If you want to run VNC without password authentication you can set the environme If you want to run VNC in view-only mode you can set the environment variable `SE_VNC_VIEW_ONLY=1`. +If you want to modify the open file descriptor limit for the VNC server process you can set the environment variable `SE_VNC_ULIMIT=4096`. + ### Using your browser (no VNC client is needed) This project uses [noVNC](https://github.com/novnc/noVNC) to allow users to inspect visually container activity with From b7e1c782a7855b8ef02d369de9efd941a4d91dbf Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Tue, 12 Dec 2023 17:03:57 +0700 Subject: [PATCH 085/100] Upgrade dependencies version in Base image (#2059) [deploy] Signed-off-by: Viet Nguyen Duc --- Base/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index ab66da213..f3716b9ec 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -1,11 +1,11 @@ -FROM ubuntu:jammy-20231004 +FROM ubuntu:jammy-20231128 LABEL authors="Selenium " # Arguments to define the version of dependencies to download ARG VERSION ARG RELEASE=selenium-${VERSION} ARG OPENTELEMETRY_VERSION=1.31.0 -ARG GRPC_VERSION=1.59.0 +ARG GRPC_VERSION=1.60.0 #Arguments to define the user running Selenium ARG SEL_USER=seluser From 7f38952e858a26c9afdcc014194ce83fa7fa07c3 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Tue, 12 Dec 2023 10:14:23 +0000 Subject: [PATCH 086/100] Update tag in docs and files --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- NodeDocker/config.toml | 8 +- README.md | 140 ++++++++++++------------ charts/selenium-grid/Chart.yaml | 4 +- charts/selenium-grid/README.md | 14 +-- charts/selenium-grid/values.yaml | 26 ++--- docker-compose-v2-tracing.yml | 8 +- docker-compose-v2.yml | 8 +- docker-compose-v3-basicauth.yml | 8 +- docker-compose-v3-dev.yml | 8 +- docker-compose-v3-dynamic-grid.yml | 4 +- docker-compose-v3-full-grid-dev.yml | 16 +-- docker-compose-v3-full-grid-swarm.yml | 8 +- docker-compose-v3-full-grid-tracing.yml | 16 +-- docker-compose-v3-full-grid.yml | 16 +-- docker-compose-v3-swarm.yml | 8 +- docker-compose-v3-tracing.yml | 8 +- docker-compose-v3-video.yml | 14 +-- docker-compose-v3.yml | 8 +- 19 files changed, 162 insertions(+), 162 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 74ae90e22..be64a7372 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -56,6 +56,6 @@ body: attributes: label: Docker Selenium version (tag or chart version) description: What version of Docker Selenium are you using? - placeholder: 4.16.1-20231208? Please use the full tag, avoid "latest" + placeholder: 4.16.1-20231212? Please use the full tag, avoid "latest" validations: required: true diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index c48e4f1cd..3b63bf66a 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -2,9 +2,9 @@ # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.16.1-20231208", '{"browserName": "firefox", "platformName": "linux"}', - "selenium/standalone-chrome:4.16.1-20231208", '{"browserName": "chrome", "platformName": "linux"}', - "selenium/standalone-edge:4.16.1-20231208", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' + "selenium/standalone-firefox:4.16.1-20231212", '{"browserName": "firefox", "platformName": "linux"}', + "selenium/standalone-chrome:4.16.1-20231212", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-edge:4.16.1-20231212", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] # URL for connecting to the docker daemon @@ -14,7 +14,7 @@ configs = [ # socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231208" +video-image = "selenium/video:ffmpeg-6.1-20231212" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values diff --git a/README.md b/README.md index 8a92ce533..b5e8e9cbd 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The project is made possible by volunteer contributors who have put in thousands and made the source code freely available under the [Apache License 2.0](LICENSE.md). These Docker images come with a handful of tags to simplify its usage, have a look at them in one of -our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.16.1-20231208). +our [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.16.1-20231212). To get notifications of new releases, add yourself as a "Releases only" watcher. @@ -65,7 +65,7 @@ Talk to us at https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ```bash -docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 +docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231212 ``` 2. Point your WebDriver tests to http://localhost:4444 @@ -252,17 +252,17 @@ For more information on the Dev and Beta channel container images, see the blog ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231212 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231212 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge ```bash -docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.16.1-20231208 +docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.16.1-20231212 ``` _Note: Only one Standalone container can run on port_ `4444` _at the same time._ @@ -281,44 +281,44 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_ ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.16.1-20231208 + selenium/node-edge:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.16.1-20231208 + selenium/node-firefox:4.16.1-20231212 ``` ##### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-edge:4.16.1-20231208 + selenium/node-edge:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` - selenium/node-firefox:4.16.1-20231208 + selenium/node-firefox:4.16.1-20231212 ``` When you are done using the Grid, and the containers have exited, the network can be removed with the following command: @@ -335,7 +335,7 @@ configured to expose different ports. ##### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.1-20231212 ``` ##### Node Chrome - Machine/VM 2 @@ -349,7 +349,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 ``` ###### Windows PowerShell @@ -361,7 +361,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 ``` @@ -376,7 +376,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-edge:4.16.1-20231208 + selenium/node-edge:4.16.1-20231212 ``` ###### Windows PowerShell @@ -388,7 +388,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-edge:4.16.1-20231208 + selenium/node-edge:4.16.1-20231212 ``` ##### Node Firefox - Machine/VM 4 @@ -402,7 +402,7 @@ $ docker run -d -p 5555:5555 \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - selenium/node-firefox:4.16.1-20231208 + selenium/node-firefox:4.16.1-20231212 ``` ###### Windows PowerShell @@ -414,7 +414,7 @@ $ docker run -d -p 5555:5555 ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` - selenium/node-firefox:4.16.1-20231208 + selenium/node-firefox:4.16.1-20231212 ``` ##### Node Chrome - Machine/VM 4 @@ -429,7 +429,7 @@ $ docker run -d -p 5556:5556 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ -e SE_NODE_PORT=5556 \ - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 ``` ###### Windows PowerShell @@ -442,7 +442,7 @@ $ docker run -d -p 5556:5556 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -e SE_NODE_HOST= ` -e SE_NODE_PORT=5556 ` - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 ``` #### Docker Compose @@ -474,7 +474,7 @@ ___ ## Video recording -Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231208` +Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1-20231212` Docker image. One container is needed per each container where a browser is running. This means if you are running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1. @@ -500,8 +500,8 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 -$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231208 +$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.16.1-20231212 +$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1-20231212 # Run your tests $ docker stop video && docker rm video $ docker stop selenium && docker rm selenium @@ -533,9 +533,9 @@ You can save this file locally and name it, for example, `config.toml`. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.16.1-20231208", '{"browserName": "firefox"}', - "selenium/standalone-chrome:4.16.1-20231208", '{"browserName": "chrome"}', - "selenium/standalone-edge:4.16.1-20231208", '{"browserName": "MicrosoftEdge"}' + "selenium/standalone-firefox:4.16.1-20231212", '{"browserName": "firefox"}', + "selenium/standalone-chrome:4.16.1-20231212", '{"browserName": "chrome"}', + "selenium/standalone-edge:4.16.1-20231212", '{"browserName": "MicrosoftEdge"}' ] # URL for connecting to the docker daemon @@ -548,7 +548,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231208" +video-image = "selenium/video:ffmpeg-6.1-20231212" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -567,28 +567,28 @@ virtual machines. ```bash $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.16.1-20231208 + selenium/node-docker:4.16.1-20231212 ``` #### Windows PowerShell ```powershell $ docker network create grid -$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.16.1-20231208 + selenium/node-docker:4.16.1-20231212 ``` To have the assets saved on your host, please mount your host path to `/opt/selenium/assets`. @@ -609,7 +609,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.16.1-20231208 + selenium/standalone-docker:4.16.1-20231212 ``` #### Windows PowerShell @@ -619,7 +619,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.16.1-20231208 + selenium/standalone-docker:4.16.1-20231212 ``` ### Using Dynamic Grid in different machines/VMs @@ -627,7 +627,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` #### Hub - Machine/VM 1 ```bash -$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.16.1-20231212 ``` #### Node Chrome - Machine/VM 2 @@ -642,7 +642,7 @@ $ docker run -d -p 5555:5555 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/node-docker:4.16.1-20231208 + selenium/node-docker:4.16.1-20231212 ``` #### Windows PowerShell @@ -655,7 +655,7 @@ $ docker run -d -p 5555:5555 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/node-docker:4.16.1-20231208 + selenium/node-docker:4.16.1-20231212 ``` Complete the `[server]` section in the `config.toml` file. @@ -664,9 +664,9 @@ Complete the `[server]` section in the `config.toml` file. # Configs have a mapping between the Docker image to use and the capabilities that need to be matched to # start a container with the given image. configs = [ - "selenium/standalone-firefox:4.16.1-20231208", "{\"browserName\": \"firefox\"}", - "selenium/standalone-chrome:4.16.1-20231208", "{\"browserName\": \"chrome\"}", - "selenium/standalone-edge:4.16.1-20231208", "{\"browserName\": \"MicrosoftEdge\"}" + "selenium/standalone-firefox:4.16.1-20231212", "{\"browserName\": \"firefox\"}", + "selenium/standalone-chrome:4.16.1-20231212", "{\"browserName\": \"chrome\"}", + "selenium/standalone-edge:4.16.1-20231212", "{\"browserName\": \"MicrosoftEdge\"}" ] # URL for connecting to the docker daemon @@ -679,7 +679,7 @@ configs = [ # Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue. url = "http://127.0.0.1:2375" # Docker image used for video recording -video-image = "selenium/video:ffmpeg-6.1-20231208" +video-image = "selenium/video:ffmpeg-6.1-20231212" # Uncomment the following section if you are running the node on a separate VM # Fill out the placeholders with appropriate values @@ -713,7 +713,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \ -v ${PWD}/config.toml:/opt/bin/config.toml \ -v ${PWD}/assets:/opt/selenium/assets \ -v /var/run/docker.sock:/var/run/docker.sock \ - selenium/standalone-docker:4.16.1-20231208 + selenium/standalone-docker:4.16.1-20231212 ``` #### Windows PowerShell @@ -724,7 +724,7 @@ docker run --rm --name selenium-docker -p 4444:4444 ` -v ${PWD}/config.toml:/opt/bin/config.toml ` -v ${PWD}/assets:/opt/selenium/assets ` -v /var/run/docker.sock:/var/run/docker.sock ` - selenium/standalone-docker:4.16.1-20231208 + selenium/standalone-docker:4.16.1-20231212 ``` @@ -762,7 +762,7 @@ ___ You can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node. ``` bash -$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub selenium/hub:4.16.1-20231212 ``` ### SE_JAVA_OPTS Java Environment Options @@ -770,7 +770,7 @@ $ docker run -d -p 4444:4444 -e SE_OPTS="--log-level FINE" --name selenium-hub s You can pass `SE_JAVA_OPTS` environment variable to the Java process. ``` bash -$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.16.1-20231208 +$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.16.1-20231212 ``` ### Node configuration options @@ -792,7 +792,7 @@ $ docker run -d \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e SE_NODE_STEREOTYPE="{\"browserName\":\"${SE_NODE_BROWSER_NAME}\",\"browserVersion\":\"${SE_NODE_BROWSER_VERSION}\",\"platformName\": \"Linux\"}" \ - --shm-size="2g" selenium/node-chrome:4.16.1-20231208 + --shm-size="2g" selenium/node-chrome:4.16.1-20231212 ``` ### Setting Sub Path @@ -811,7 +811,7 @@ These settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGH environmental variables when starting the container. ``` bash -docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.16.1-20231208 +docker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.16.1-20231212 ``` ### Grid Url and Session Timeout @@ -861,7 +861,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t ``` bash $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ - -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.16.1-20231208 + -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -e START_XVFB=false --shm-size="2g" selenium/node-chrome:4.16.1-20231212 ``` For more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567). @@ -874,7 +874,7 @@ pod and then scale a new one after N sessions. Set the environment variable `SE_ a value higher than zero to enable this behaviour. ``` bash -$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 +$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231212 ``` With the previous command, the Standalone container will shut down after 5 sessions have been executed. @@ -966,22 +966,22 @@ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ - selenium/hub:4.16.1-20231208 + selenium/hub:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.16.1-20231208 + selenium/node-edge:4.16.1-20231212 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.16.1-20231208 + selenium/node-firefox:4.16.1-20231212 ``` **Note:** The `\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick. @@ -1114,7 +1114,7 @@ RUN mkdir -p -m755 /seluser/.pki/nssdb \ && chown -R 1200:1201 /seluser # Start from Selenium image and add relevant files from build image -FROM selenium/node-chrome:4.16.1-20231208 +FROM selenium/node-chrome:4.16.1-20231212 USER root COPY --from=build /seluser/ /home/seluser/ USER seluser @@ -1129,7 +1129,7 @@ RUN mkdir -p "/distribution" "/certs" && \ echo '{ "policies": { "Certificates": { "Install": ["/opt/firefox-latest/YOUR_CA.pem"] }} }' >"/distribution/policies.json" # Start from Selenium image and add relevant files from build image -FROM selenium/node-firefox:4.16.1-20231208 +FROM selenium/node-firefox:4.16.1-20231212 USER root COPY --from=build /certs /opt/firefox-latest COPY --from=build /distribution /opt/firefox-latest/distribution @@ -1152,9 +1152,9 @@ You can override it with the `SE_VNC_PORT` environment variable in case you want Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 -$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.16.1-20231208 -$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231212 +$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.16.1-20231212 +$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231212 ``` Then, you would use in your VNC client: @@ -1182,9 +1182,9 @@ You can also override it with the `SE_NO_VNC_PORT` environment variable in case Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231208 -$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.16.1-20231208 -$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231208 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.16.1-20231212 +$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.16.1-20231212 +$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.16.1-20231212 ``` Then, you would use in your browser: @@ -1209,28 +1209,28 @@ In order to enable tracing in the Selenium Grid container, the following command ```bash docker network create grid docker run -d -p 16686:16686 -p 14250:14250 --net grid --name jaeger jaegertracing/all-in-one:1.17 -docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231208 +docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.16.1-20231212 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-chrome:4.16.1-20231208 + selenium/node-chrome:4.16.1-20231212 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-edge:4.16.1-20231208 + selenium/node-edge:4.16.1-20231212 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_ENABLE_TRACING=true \ -e JAVA_OPTS="-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - selenium/node-firefox:4.16.1-20231208 + selenium/node-firefox:4.16.1-20231212 ``` You can also refer to the below docker-compose yaml files to be able to start a simple grid (or) a dynamic grid. @@ -1290,7 +1290,7 @@ container in the following way: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/files:/home/seluser/Downloads \ - selenium/standalone-chrome:4.16.1-20231208 + selenium/standalone-chrome:4.16.1-20231212 ``` That will mount the host `/home/ubuntu/files` directory @@ -1320,7 +1320,7 @@ WebDriver driver = new ChromeDriver(options); docker run -d -p 4444:4444 --shm-size="2g" \ -e SE_DOWNLOAD_DIR=/tmp/downloads \ -v /home/ubuntu/files:/tmp/downloads \ - selenium/standalone-chrome:4.16.1-20231208 + selenium/standalone-chrome:4.16.1-20231212 ``` ### Change ownership of the volume mount @@ -1331,7 +1331,7 @@ If you are using Linux and you need to change the ownership of the volume mount, docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/my-certs:/etc/certs \ -e CHOWN_EXTRA=/etc/certs \ - selenium/standalone-chrome:4.16.1-20231208 + selenium/standalone-chrome:4.16.1-20231212 ``` If you want a new volume mount directory to be created and set ownership, you can set the `MKDIR_EXTRA` and `MKDIR_EXTRA_OPTS` (default is set `-p` - create a directory hierarchy) environment variables. @@ -1340,7 +1340,7 @@ If you want a new volume mount directory to be created and set ownership, you c docker run -d -p 4444:4444 --shm-size="2g" \ -v /home/ubuntu/my-nssdb:/home/seluser/.pki/nssdb \ -e MKDIR_EXTRA=/home/seluser/.pki/nssdb \ - selenium/standalone-chrome:4.16.1-20231208 + selenium/standalone-chrome:4.16.1-20231212 ``` Both `CHOWN_EXTRA` and `MKDIR_EXTRA` can be set to multiple directories by separating them with a `space` or `comma`. For example: `CHOWN_EXTRA=,` diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index 083c3f1a8..5f8594060 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.26.1 -appVersion: 4.16.1-20231208 +version: 0.26.2 +appVersion: 4.16.1-20231212 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 79c45c56a..36695472a 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -134,9 +134,9 @@ For now, global configuration supported is: | Parameter | Default | Description | |---------------------------------------|-----------------------|---------------------------------------| | `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images | -| `global.seleniumGrid.imageTag` | `4.16.1-20231208` | Image tag for all selenium components | -| `global.seleniumGrid.nodesImageTag` | `4.16.1-20231208` | Image tag for browser's nodes | -| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231208` | Image tag for browser's video recoder | +| `global.seleniumGrid.imageTag` | `4.16.1-20231212` | Image tag for all selenium components | +| `global.seleniumGrid.nodesImageTag` | `4.16.1-20231212` | Image tag for browser's nodes | +| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1-20231212` | Image tag for browser's video recoder | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images | | `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally | @@ -182,7 +182,7 @@ This table contains the configuration parameters of the chart and their default | `chromeNode.replicas` | `1` | Number of chrome nodes. Disabled if autoscaling is enabled. | | `chromeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `chromeNode.imageName` | `node-chrome` | Image of chrome nodes | -| `chromeNode.imageTag` | `4.16.1-20231208` | Image of chrome nodes | +| `chromeNode.imageTag` | `4.16.1-20231212` | Image of chrome nodes | | `chromeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `chromeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `chromeNode.ports` | `[5555]` | Port list to enable on container | @@ -222,7 +222,7 @@ This table contains the configuration parameters of the chart and their default | `firefoxNode.replicas` | `1` | Number of firefox nodes. Disabled if autoscaling is enabled. | | `firefoxNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `firefoxNode.imageName` | `node-firefox` | Image of firefox nodes | -| `firefoxNode.imageTag` | `4.16.1-20231208` | Image of firefox nodes | +| `firefoxNode.imageTag` | `4.16.1-20231212` | Image of firefox nodes | | `firefoxNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `firefoxNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `firefoxNode.ports` | `[5555]` | Port list to enable on container | @@ -262,7 +262,7 @@ This table contains the configuration parameters of the chart and their default | `edgeNode.replicas` | `1` | Number of edge nodes. Disabled if autoscaling is enabled. | | `edgeNode.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `edgeNode.imageName` | `node-edge` | Image of edge nodes | -| `edgeNode.imageTag` | `4.16.1-20231208` | Image of edge nodes | +| `edgeNode.imageTag` | `4.16.1-20231212` | Image of edge nodes | | `edgeNode.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `edgeNode.imagePullSecret` | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry) | | `edgeNode.ports` | `[5555]` | Port list to enable on container | @@ -300,7 +300,7 @@ This table contains the configuration parameters of the chart and their default | `videoRecorder.enabled` | `false` | Enable video recorder for node | | `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) | | `videoRecorder.imageName` | `video` | Selenium video recoder image name | -| `videoRecorder.imageTag` | `ffmpeg-6.1-20231208` | Image tag of video recorder | +| `videoRecorder.imageTag` | `ffmpeg-6.1-20231212` | Image tag of video recorder | | `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) | | `videoRecorder.uploader` | `false` | Name of the uploader to use. The value `false` is used to disable uploader. Supported default `s3` | | `videoRecorder.uploadDestinationPrefix` | `false` | Destination URL for uploading video file. The value `false` is used to disable the uploading | diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 22e13e9ff..5a82d207d 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -3,11 +3,11 @@ global: # Image registry for all selenium components imageRegistry: selenium # Image tag for all selenium components - imageTag: 4.16.1-20231208 + imageTag: 4.16.1-20231212 # Image tag for browser's nodes - nodesImageTag: 4.16.1-20231208 + nodesImageTag: 4.16.1-20231212 # Image tag for browser's video recorder - videoImageTag: ffmpeg-6.1-20231208 + videoImageTag: ffmpeg-6.1-20231212 # Pull secret for all components, can be overridden individually imagePullSecret: "" @@ -77,7 +77,7 @@ components: # Router image name imageName: router # Router image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -129,7 +129,7 @@ components: # Distributor image name imageName: distributor # Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -161,7 +161,7 @@ components: # Event Bus image name imageName: event-bus # Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -197,7 +197,7 @@ components: # Session Map image name imageName: sessions # Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -228,7 +228,7 @@ components: # Session Queue image name imageName: session-queue # Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent @@ -279,7 +279,7 @@ hub: # Selenium Hub image name imageName: hub # Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -420,7 +420,7 @@ chromeNode: # Image of chrome nodes imageName: node-chrome # Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -553,7 +553,7 @@ firefoxNode: # Image of firefox nodes imageName: node-firefox # Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -683,7 +683,7 @@ edgeNode: # Image of edge nodes imageName: node-edge # Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) - # imageTag: 4.16.1-20231208 + # imageTag: 4.16.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) @@ -802,7 +802,7 @@ videoRecorder: # Image of video recorder imageName: video # Image of video recorder - # imageTag: ffmpeg-6.1-20231208 + # imageTag: ffmpeg-6.1-20231212 # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) imagePullPolicy: IfNotPresent # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 7943b50b9..19583fe13 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -23,7 +23,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -37,7 +37,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -51,7 +51,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 96a712c49..4496c2fb3 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -4,7 +4,7 @@ version: '2' services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -16,7 +16,7 @@ services: - "6900:5900" edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -28,7 +28,7 @@ services: - "6901:5900" firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -40,7 +40,7 @@ services: - "6902:5900" selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index b9b6c7479..af16b19f2 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index eba9a3f33..b0720fe0e 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -16,7 +16,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -40,7 +40,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 container_name: selenium-hub volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-dynamic-grid.yml b/docker-compose-v3-dynamic-grid.yml index fb4031907..ae3d587dc 100644 --- a/docker-compose-v3-dynamic-grid.yml +++ b/docker-compose-v3-dynamic-grid.yml @@ -4,7 +4,7 @@ version: "3" services: node-docker: - image: selenium/node-docker:4.16.1-20231208 + image: selenium/node-docker:4.16.1-20231212 volumes: - ./assets:/opt/selenium/assets - ./NodeDocker/config.toml:/opt/bin/config.toml @@ -17,7 +17,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 480d36f6c..6233a1a3f 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.16.1-20231208 + image: selenium/event-bus:4.16.1-20231212 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-event-bus @@ -14,7 +14,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.16.1-20231208 + image: selenium/sessions:4.16.1-20231212 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-sessions @@ -28,7 +28,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.16.1-20231208 + image: selenium/session-queue:4.16.1-20231212 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-session-queue @@ -36,7 +36,7 @@ services: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.16.1-20231208 + image: selenium/distributor:4.16.1-20231212 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-distributor @@ -56,7 +56,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.16.1-20231208 + image: selenium/router:4.16.1-20231212 volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar container_name: selenium-router @@ -75,7 +75,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -87,7 +87,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar @@ -99,7 +99,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 5f29ade53..0d555d75a 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index 84795f250..bc7db86f3 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" selenium-event-bus: - image: selenium/event-bus:4.16.1-20231208 + image: selenium/event-bus:4.16.1-20231212 container_name: selenium-event-bus ports: - "4442:4442" @@ -21,7 +21,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-event-bus selenium-sessions: - image: selenium/sessions:4.16.1-20231208 + image: selenium/sessions:4.16.1-20231212 container_name: selenium-sessions ports: - "5556:5556" @@ -34,7 +34,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-sessions selenium-session-queue: - image: selenium/session-queue:4.16.1-20231208 + image: selenium/session-queue:4.16.1-20231212 container_name: selenium-session-queue ports: - "5559:5559" @@ -42,7 +42,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-session-queue selenium-distributor: - image: selenium/distributor:4.16.1-20231208 + image: selenium/distributor:4.16.1-20231212 container_name: selenium-distributor ports: - "5553:5553" @@ -61,7 +61,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-distributor selenium-router: - image: selenium/router:4.16.1-20231208 + image: selenium/router:4.16.1-20231212 container_name: selenium-router ports: - "4444:4444" @@ -79,7 +79,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-event-bus @@ -90,7 +90,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-event-bus @@ -101,7 +101,7 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 63f420cd5..5bc20ad79 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -4,7 +4,7 @@ version: "3" services: selenium-event-bus: - image: selenium/event-bus:4.16.1-20231208 + image: selenium/event-bus:4.16.1-20231212 container_name: selenium-event-bus ports: - "4442:4442" @@ -12,7 +12,7 @@ services: - "5557:5557" selenium-sessions: - image: selenium/sessions:4.16.1-20231208 + image: selenium/sessions:4.16.1-20231212 container_name: selenium-sessions ports: - "5556:5556" @@ -24,13 +24,13 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-session-queue: - image: selenium/session-queue:4.16.1-20231208 + image: selenium/session-queue:4.16.1-20231212 container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: - image: selenium/distributor:4.16.1-20231208 + image: selenium/distributor:4.16.1-20231212 container_name: selenium-distributor ports: - "5553:5553" @@ -48,7 +48,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 selenium-router: - image: selenium/router:4.16.1-20231208 + image: selenium/router:4.16.1-20231212 container_name: selenium-router ports: - "4444:4444" @@ -65,7 +65,7 @@ services: - SE_SESSION_QUEUE_PORT=5559 chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-event-bus @@ -75,7 +75,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-event-bus @@ -85,7 +85,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-event-bus diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 5f29ade53..0d555d75a 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -7,7 +7,7 @@ version: '3.7' services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -18,7 +18,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -29,7 +29,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub @@ -40,7 +40,7 @@ services: entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 ports: - "4442:4442" - "4443:4443" diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index 7f3d4389d..faf7b2ec4 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -9,7 +9,7 @@ services: - "16686:16686" - "14250:14250" chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -21,7 +21,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -33,7 +33,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -45,7 +45,7 @@ services: - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index e472ddf8b..f216bf8dd 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 chrome_video: - image: selenium/video:ffmpeg-6.1-20231208 + image: selenium/video:ffmpeg-6.1-20231212 volumes: - /tmp/videos:/videos depends_on: @@ -44,7 +44,7 @@ services: - FILE_NAME=chrome_video.mp4 edge_video: - image: selenium/video:ffmpeg-6.1-20231208 + image: selenium/video:ffmpeg-6.1-20231212 volumes: - /tmp/videos:/videos depends_on: @@ -54,7 +54,7 @@ services: - FILE_NAME=edge_video.mp4 firefox_video: - image: selenium/video:ffmpeg-6.1-20231208 + image: selenium/video:ffmpeg-6.1-20231212 volumes: - /tmp/videos:/videos depends_on: @@ -64,7 +64,7 @@ services: - FILE_NAME=firefox_video.mp4 selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 container_name: selenium-hub ports: - "4442:4442" diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 8263bf9bb..b7cfdefcf 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -4,7 +4,7 @@ version: "3" services: chrome: - image: selenium/node-chrome:4.16.1-20231208 + image: selenium/node-chrome:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -14,7 +14,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 edge: - image: selenium/node-edge:4.16.1-20231208 + image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -24,7 +24,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: - image: selenium/node-firefox:4.16.1-20231208 + image: selenium/node-firefox:4.16.1-20231212 shm_size: 2gb depends_on: - selenium-hub @@ -34,7 +34,7 @@ services: - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium-hub: - image: selenium/hub:4.16.1-20231208 + image: selenium/hub:4.16.1-20231212 container_name: selenium-hub ports: - "4442:4442" From 8ec470e03de9c0b6bce0bd3e6506781bfa539842 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Tue, 12 Dec 2023 10:26:37 +0000 Subject: [PATCH 087/100] Update chart CHANGELOG [skip ci] --- charts/selenium-grid/CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index 0736fe07a..cb77401b7 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -1,3 +1,11 @@ +## :heavy_check_mark: selenium-grid-0.26.2 + +- Chart is using image tag 4.16.1-20231212 + +### Changed +- Update tag in docs and files :: Selenium CI Bot +- Update chart CHANGELOG [skip ci] :: Selenium CI Bot + ## :heavy_check_mark: selenium-grid-0.26.1 - Chart is using image tag 4.16.1-20231208 From 93da2b58011bfb508c59d212ce428c6716896752 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 13 Dec 2023 13:43:00 +0530 Subject: [PATCH 088/100] Add workflow to scan Dockerfile [skip ci] Signed-off-by: Viet Nguyen Duc --- .github/workflows/scan-dockerfile.yml | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/scan-dockerfile.yml diff --git a/.github/workflows/scan-dockerfile.yml b/.github/workflows/scan-dockerfile.yml new file mode 100644 index 000000000..dd7bcdb1e --- /dev/null +++ b/.github/workflows/scan-dockerfile.yml @@ -0,0 +1,53 @@ +name: Scan Dockerfile vulnerabilities + +on: + push: + paths: + - '**/Dockerfile' + pull_request: + paths: + - '**/Dockerfile' + workflow_dispatch: + schedule: + - cron: '0 0 * * *' + +jobs: + build-and-scan: + name: Scan Dockerfile vulnerabilities + permissions: write-all + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set severity for PRs + if: github.event_name == 'pull_request' || github.event_name == 'push' + run: | + echo "SEVERITY=HIGH,CRITICAL" >> $GITHUB_ENV + echo "EXIT_CODE=1" >> $GITHUB_ENV + - name: Set severity for others + if: github.event_name != 'pull_request' && github.event_name != 'push' + run: | + echo "SEVERITY=LOW,MEDIUM,HIGH,CRITICAL" >> $GITHUB_ENV + echo "EXIT_CODE=0" >> $GITHUB_ENV + - name: Scan source code + uses: aquasecurity/trivy-action@master + with: + scan-type: 'fs' + scan-ref: '.' + format: 'sarif' + output: 'source-results.sarif' + scanners: 'vuln,secret,misconfig' + skip-dirs: 'tests,Video' + exit-code: '${{ env.EXIT_CODE }}' + severity: '${{ env.SEVERITY }}' + limit-severities-for-sarif: true + - name: Upload source scan results to annotations + if: always() + uses: Ayrx/sarif_to_github_annotations@master + with: + sarif_file: 'source-results.sarif' + - name: Upload source scan results to GitHub Security tab + if: github.event_name != 'pull_request' + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: 'source-results.sarif' + category: source-results From 7d74d4fecd3bcce3c616cb56a9b447b1be8788bb Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Wed, 13 Dec 2023 16:26:22 +0530 Subject: [PATCH 089/100] bug: ENV variable SE_VNC_PASSWORD contains sensitive data (#2061) Signed-off-by: Viet Nguyen Duc --- Base/Dockerfile | 8 +++++--- NodeBase/Dockerfile | 20 ++++++++++---------- NodeChrome/Dockerfile | 2 +- NodeDocker/Dockerfile | 2 +- NodeEdge/Dockerfile | 2 +- README.md | 2 +- charts/selenium-grid/README.md | 2 +- 7 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index f3716b9ec..6bda097b7 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -4,8 +4,9 @@ LABEL authors="Selenium " # Arguments to define the version of dependencies to download ARG VERSION ARG RELEASE=selenium-${VERSION} -ARG OPENTELEMETRY_VERSION=1.31.0 -ARG GRPC_VERSION=1.60.0 +# Default value should be aligned with upstream Selenium (https://github.com/SeleniumHQ/selenium/blob/trunk/java/maven_deps.bzl) +ARG OPENTELEMETRY_VERSION=1.28.0 +ARG GRPC_VERSION=1.57.1 #Arguments to define the user running Selenium ARG SEL_USER=seluser @@ -115,7 +116,8 @@ COPY supervisord.conf /etc #========== RUN touch ${SEL_DIR}/config.toml \ && wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/${RELEASE}/selenium-server-${VERSION}.jar \ - -O ${SEL_DIR}/selenium-server.jar + -O ${SEL_DIR}/selenium-server.jar \ + && echo "${SEL_PASSWD}" > ${SEL_DIR}/initialPasswd #===== # Download observability related jaegar jars and make them available in a separate directory diff --git a/NodeBase/Dockerfile b/NodeBase/Dockerfile index ed42d66c0..b5770fb0a 100644 --- a/NodeBase/Dockerfile +++ b/NodeBase/Dockerfile @@ -4,13 +4,16 @@ ARG AUTHORS FROM ${NAMESPACE}/base:${VERSION} LABEL authors=${AUTHORS} +ARG NOVNC_VERSION="1.4.0" +ARG WEBSOCKIFY_VERSION="0.11.0" + USER root #============== # Xvfb #============== RUN apt-get update -qqy \ - && apt-get -qqy install \ + && apt-get -qqy --no-install-recommends install \ xvfb \ pulseaudio \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* @@ -40,7 +43,7 @@ RUN apt-get -qqy update \ # VNC #===== RUN apt-get update -qqy \ - && apt-get -qqy install \ + && apt-get -qqy --no-install-recommends install \ x11vnc \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* @@ -49,7 +52,7 @@ RUN apt-get update -qqy \ # A fast, lightweight and responsive window manager #========= RUN apt-get update -qqy \ - && apt-get -qqy install \ + && apt-get -qqy --no-install-recommends install \ fluxbox \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* @@ -92,8 +95,6 @@ RUN apt-get -qqy update \ ######################################## # noVNC exposes VNC through a web page # ######################################## -ENV NOVNC_VERSION="1.4.0" \ - WEBSOCKIFY_VERSION="0.11.0" RUN wget -nv -O noVNC.zip \ "https://github.com/novnc/noVNC/archive/refs/tags/v${NOVNC_VERSION}.zip" \ && unzip -x noVNC.zip \ @@ -104,8 +105,8 @@ RUN wget -nv -O noVNC.zip \ "https://github.com/novnc/websockify/archive/refs/tags/v${WEBSOCKIFY_VERSION}.zip" \ && unzip -x websockify.zip \ && rm websockify.zip \ - && rm -rf websockify-${WEBSOCKIFY_VERSION}/tests \ - && mv websockify-${WEBSOCKIFY_VERSION} /opt/bin/noVNC/utils/websockify + && mv websockify-${WEBSOCKIFY_VERSION} /opt/bin/noVNC/utils/websockify \ + && rm -rf /opt/bin/noVNC/utils/websockify/docker /opt/bin/noVNC/utils/websockify/tests #========================================================================================================================================= # Run this command for executable file permissions for /dev/shm when this is a "child" container running in Docker Desktop and WSL2 distro @@ -117,13 +118,12 @@ RUN mkdir -p /tmp/.X11-unix && \ fix-permissions /tmp/.X11-unix #============================== -# Generating the VNC password based on the ${SE_VNC_PASSWORD} +# Generating the VNC password using initial password in Base image # Changing ownership to ${SEL_USER}, so the service can be started #============================== -ENV SE_VNC_PASSWORD=secret RUN mkdir -p ${HOME}/.vnc \ - && x11vnc -storepasswd ${SE_VNC_PASSWORD} ${HOME}/.vnc/passwd \ + && x11vnc -storepasswd $(cat ${SEL_DIR}/initialPasswd) ${HOME}/.vnc/passwd \ && chown -R "${SEL_UID}:${SEL_GID}" ${HOME}/.vnc \ && fix-permissions ${HOME}/.vnc diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index 3282a3d05..e52dd5798 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -18,7 +18,7 @@ ARG CHROME_VERSION="google-chrome-stable" RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor | tee /etc/apt/trusted.gpg.d/google.gpg >/dev/null \ && echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ && apt-get update -qqy \ - && apt-get -qqy install \ + && apt-get -qqy --no-install-recommends install \ ${CHROME_VERSION:-google-chrome-stable} \ && rm /etc/apt/sources.list.d/google-chrome.list \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* diff --git a/NodeDocker/Dockerfile b/NodeDocker/Dockerfile index e7d8e0d35..b65820cec 100644 --- a/NodeDocker/Dockerfile +++ b/NodeDocker/Dockerfile @@ -10,7 +10,7 @@ USER root # Socat to proxy docker.sock when mounted #============== RUN apt-get update -qqy \ - && apt-get -qqy install socat \ + && apt-get -qqy --no-install-recommends install socat \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* USER ${SEL_UID} diff --git a/NodeEdge/Dockerfile b/NodeEdge/Dockerfile index adadec9d5..2e3c781e8 100644 --- a/NodeEdge/Dockerfile +++ b/NodeEdge/Dockerfile @@ -16,7 +16,7 @@ ARG EDGE_VERSION="microsoft-edge-stable" RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg >/dev/null \ && echo "deb https://packages.microsoft.com/repos/edge stable main" >> /etc/apt/sources.list.d/microsoft-edge.list \ && apt-get update -qqy \ - && apt-get -qqy install ${EDGE_VERSION} \ + && apt-get -qqy --no-install-recommends install ${EDGE_VERSION} \ && rm /etc/apt/sources.list.d/microsoft-edge.list \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* diff --git a/README.md b/README.md index b5e8e9cbd..56287ac3a 100644 --- a/README.md +++ b/README.md @@ -1302,7 +1302,7 @@ that directory because it is running under the user `seluser`. This happens because that is how Docker mounts volumes in Linux, more details in this [issue](https://github.com/moby/moby/issues/2259). -There was a fix in this [feature](https://github.com/SeleniumHQ/docker-selenium/issues/1947) +There was a fix in this feature [#1947](https://github.com/SeleniumHQ/docker-selenium/issues/1947) that changed ownership when staring the container. You are able to configure browser with another download directory and mount the host with it in container by overriding `SE_DOWNLOAD_DIR`. diff --git a/charts/selenium-grid/README.md b/charts/selenium-grid/README.md index 36695472a..524b497b5 100644 --- a/charts/selenium-grid/README.md +++ b/charts/selenium-grid/README.md @@ -81,7 +81,7 @@ helm uninstall selenium-grid ## Ingress Configuration -By default, ingress is enabled without annotations set. If NGINX ingress controller is used, you need to set few annotations to override the default timeout values to avoid 504 errors (see #1808). Since in Selenium Grid the default of `SE_NODE_SESSION_TIMEOUT` and `SE_SESSION_REQUEST_TIMEOUT` is `300` seconds. +By default, ingress is enabled without annotations set. If NGINX ingress controller is used, you need to set few annotations to override the default timeout values to avoid 504 errors (see [#1808](https://github.com/SeleniumHQ/docker-selenium/issues/1808)). Since in Selenium Grid the default of `SE_NODE_SESSION_TIMEOUT` and `SE_SESSION_REQUEST_TIMEOUT` is `300` seconds. In order to make user experience better, there are few annotations will be set by default if NGINX ingress controller is used. Mostly relates to timeouts and buffer sizes. From bc98d1c1a031b30fdbc145d07acb4bf3e46cc2b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 15:25:56 +0700 Subject: [PATCH 090/100] Bump github/codeql-action from 2 to 3 (#2063) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scan-dockerfile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scan-dockerfile.yml b/.github/workflows/scan-dockerfile.yml index dd7bcdb1e..259a900dd 100644 --- a/.github/workflows/scan-dockerfile.yml +++ b/.github/workflows/scan-dockerfile.yml @@ -47,7 +47,7 @@ jobs: sarif_file: 'source-results.sarif' - name: Upload source scan results to GitHub Security tab if: github.event_name != 'pull_request' - uses: github/codeql-action/upload-sarif@v2 + uses: github/codeql-action/upload-sarif@v3 with: sarif_file: 'source-results.sarif' category: source-results From d4caa16011ee0cbf0715956f960315e6dc2c251e Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Thu, 14 Dec 2023 23:16:11 +0530 Subject: [PATCH 091/100] Add chart version to bug report template [skip ci] Signed-off-by: Viet Nguyen Duc --- .github/ISSUE_TEMPLATE/bug_report.yml | 10 +++++++++- .github/workflows/deploy.yml | 2 +- .github/workflows/update-chart-changelog.yaml | 6 ++++-- update_tag_in_docs_and_files.sh | 1 + 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index be64a7372..d750dd44c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -54,8 +54,16 @@ body: - type: input id: version attributes: - label: Docker Selenium version (tag or chart version) + label: Docker Selenium version (image tag) description: What version of Docker Selenium are you using? placeholder: 4.16.1-20231212? Please use the full tag, avoid "latest" validations: required: true + - type: input + id: chart-version + attributes: + label: Selenium Grid chart version (chart version) + description: What version of Selenium Grid chart are you using? + placeholder: 0.26.2? + validations: + required: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index de0ac5db9..21d0b60a7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -80,7 +80,7 @@ jobs: git config --local user.name "Selenium CI Bot" git commit -m "Update tag in docs and files" -a - name: Push changes - uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master + uses: ad-m/github-push-action@master with: github_token: ${{ secrets.SELENIUM_CI_TOKEN }} branch: trunk diff --git a/.github/workflows/update-chart-changelog.yaml b/.github/workflows/update-chart-changelog.yaml index 9a57e0b4f..3ac45a214 100644 --- a/.github/workflows/update-chart-changelog.yaml +++ b/.github/workflows/update-chart-changelog.yaml @@ -1,13 +1,15 @@ name: Update Chart CHANGELOG on: - page_build: + release: + types: [published] workflow_dispatch: jobs: release: runs-on: ubuntu-latest permissions: write-all + if: ${{ contains(github.event.release.tag_name, 'selenium-grid') || github.event_name == 'workflow_dispatch' }} steps: - name: Checkout uses: actions/checkout@v4 @@ -25,7 +27,7 @@ jobs: git commit -m "Update chart CHANGELOG [skip ci]" -a - name: Push changes - uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master + uses: ad-m/github-push-action@master with: github_token: ${{ secrets.SELENIUM_CI_TOKEN }} branch: trunk diff --git a/update_tag_in_docs_and_files.sh b/update_tag_in_docs_and_files.sh index 135b06b1a..11da34f95 100755 --- a/update_tag_in_docs_and_files.sh +++ b/update_tag_in_docs_and_files.sh @@ -42,6 +42,7 @@ if [ "$latest_chart_app_version" == $LATEST_TAG ] && [ "$latest_chart_app_versio echo -e "\033[0;32m NEXT_CHART_VERSION -> ${next_chart_version}\033[0m" # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`. find . \( -type d -name .git -prune \) -o -type f -name 'Chart.yaml' -print0 | xargs -0 sed -i "s/${latest_chart_version}/${next_chart_version}/g" + find . \( -type d -name .git -prune \) -o -type f -name 'bug_report.yaml' -print0 | xargs -0 sed -i "s/${latest_chart_version}/${next_chart_version}/g" fi git diff | cat From 15eec4d55a6380e550f56eb6b92b3867c946adb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 09:23:47 +0100 Subject: [PATCH 092/100] Bump actions/upload-artifact from 3 to 4 (#2067) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/helm-chart-test.yml | 4 ++-- .github/workflows/test-video.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 7c34c5eb9..b81788951 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -63,13 +63,13 @@ jobs: run: make chart_cluster_cleanup - name: Upload Helm chart package if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.CHART_FILE_NAME }} path: ${{ env.CHART_PACKAGE_PATH }} - name: Upload Helm chart template rendered if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: chart_template_rendered.yaml path: ./tests/tests/output_deployment.yaml diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index 65b2241f2..02aa7f7c4 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -37,17 +37,17 @@ jobs: - name: Run Docker Compose to record video run: USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video - name: Upload recorded Chrome video - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: chrome_video path: ./tests/videos/chrome_video.mp4 - name: Upload recorded Edge video - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: edge_video path: ./tests/videos/edge_video.mp4 - name: Upload recorded Firefox video - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: firefox_video path: ./tests/videos/firefox_video.mp4 From 56fc22aca7c7552e0f9d56a59b48fb0c55fb1e9f Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Fri, 15 Dec 2023 16:49:24 +0530 Subject: [PATCH 093/100] fix: changing owner while creating container for download support (#2064) Signed-off-by: Viet Nguyen Duc --- .github/workflows/helm-chart-test.yml | 4 +- Base/Dockerfile | 4 +- Base/entry_point.sh | 60 ++++++++++--------------- Base/fix-permissions | 65 ++++++++++++++++++--------- NodeChrome/Dockerfile | 1 - NodeEdge/Dockerfile | 1 - README.md | 56 ++++++++++++++++------- tests/test.py | 2 +- 8 files changed, 113 insertions(+), 80 deletions(-) diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index b81788951..887e6b5da 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -65,12 +65,12 @@ jobs: if: always() uses: actions/upload-artifact@v4 with: - name: ${{ env.CHART_FILE_NAME }} + name: ${{ matrix.test-strategy }}_${{ env.CHART_FILE_NAME }} path: ${{ env.CHART_PACKAGE_PATH }} - name: Upload Helm chart template rendered if: always() uses: actions/upload-artifact@v4 with: - name: chart_template_rendered.yaml + name: ${{ matrix.test-strategy }}_chart_template_rendered.yaml path: ./tests/tests/output_deployment.yaml if-no-files-found: ignore diff --git a/Base/Dockerfile b/Base/Dockerfile index 6bda097b7..ec37f8110 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -133,8 +133,7 @@ RUN /tmp/cs fetch --classpath --cache ${EXTERNAL_JARS} \ RUN rm -fr /root/.cache/* # Change ownership of directories -RUN chown -R "${SEL_USER}:${SEL_GID}" ${HOME} ${SEL_DIR} ${SEL_DIR}/assets ${EXTERNAL_JARS} ${SE_DOWNLOAD_DIR} /var/run/supervisor /var/log/supervisor \ - && fix-permissions ${HOME} ${SEL_DIR} ${SEL_DIR}/assets ${EXTERNAL_JARS} ${SE_DOWNLOAD_DIR} /var/run/supervisor /var/log/supervisor +RUN fix-permissions ${HOME} ${SEL_DIR} ${SEL_DIR}/assets ${EXTERNAL_JARS} ${SE_DOWNLOAD_DIR} /var/run/supervisor /var/log/supervisor #========== # Relaxing permissions for OpenShift and other non-sudo environments @@ -145,6 +144,7 @@ RUN chmod g=u /etc/passwd # Run the following commands as non-privileged user #=================================================== USER ${SEL_UID}:${SEL_GID} +VOLUME ${SE_DOWNLOAD_DIR} # Boolean value, maps "--bind-host" ENV SE_BIND_HOST false diff --git a/Base/entry_point.sh b/Base/entry_point.sh index 4ef9ee26b..0e8ef12f3 100755 --- a/Base/entry_point.sh +++ b/Base/entry_point.sh @@ -5,44 +5,30 @@ _log () { fi } -#============================================== -# OpenShift or non-sudo environments support -# https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#openshift-specific-guidelines -#============================================== - -if ! whoami &> /dev/null; then - if [ -w /etc/passwd ]; then - echo "${USER_NAME:-${SEL_USER}}:x:$(id -u):0:${USER_NAME:-${SEL_USER}} user:${HOME}:${SE_DOWNLOAD_DIR}:/var:/opt:/sbin/nologin" >> /etc/passwd - fi -fi - -MKDIR_EXTRA=${SE_DOWNLOAD_DIR}","${MKDIR_EXTRA} -CHOWN_EXTRA=${MKDIR_EXTRA}","${CHOWN_EXTRA} - -if [ -n "${MKDIR_EXTRA}" ]; then - for extra_dir in $(echo "${MKDIR_EXTRA}" | tr ',' ' '); do - _log "Creating directory ${extra_dir} ${MKDIR_EXTRA_OPTS:+(mkdir options: ${MKDIR_EXTRA_OPTS})}" - # shellcheck disable=SC2086 - sudo mkdir ${MKDIR_EXTRA_OPTS:-"-p"} "${extra_dir}" - done -fi - -if [ -n "${CHOWN_EXTRA}" ]; then - for extra_dir in $(echo "${CHOWN_EXTRA}" | tr ',' ' '); do - _log "Changing ${extra_dir} ownership. ${extra_dir} is owned by ${SEL_USER} ${CHOWN_EXTRA_OPTS:+(chown options: ${CHOWN_EXTRA_OPTS})}" - # shellcheck disable=SC2086 - sudo chown ${CHOWN_EXTRA_OPTS:-"-R"} "${SEL_UID}:${SEL_GID}" "${extra_dir}" - sudo -E fix-permissions "${extra_dir}" - done -fi - -# Raise error if the user isn't able to write files to download dir -if [ -n "${CHOWN_EXTRA}" ]; then - for extra_dir in $(echo "${CHOWN_EXTRA}" | tr ',' ' '); do - if [[ ! -w ${extra_dir} ]]; then - _log "ERROR: no write access to download dir ${SE_DOWNLOAD_DIR}. Please correct the permissions and restart." +# If the container started as the root user +if [ "$(id -u)" == 0 ]; then + fix-permissions "${SE_DOWNLOAD_DIR}" +elif [ "$(id -u)" == "$(id -u ${SEL_USER})" ] && [ "$(id -g)" == "$(id -g ${SEL_USER})" ]; then + # Trust SEL_USER is the desired non-root user to execute with sudo + sudo -E fix-permissions "${SE_DOWNLOAD_DIR}" +else + # For non-root user to change ownership + # Relaxing permissions for OpenShift and other non-sudo environments + # (https://docs.openshift.com/container-platform/latest/openshift_images/create-images.html#use-uid_create-images) + if ! whoami &> /dev/null; then + _log "There is no entry in /etc/passwd for our UID=$(id -u). Attempting to fix..." + if [ -w /etc/passwd ]; then + _log "Renaming user to ${USER_NAME:-default} ($(id -u):$(id -g)" + # We cannot use "sed --in-place" since sed tries to create a temp file in + # /etc/ and we may not have write access. Apply sed on our own temp file: + sed --expression="s/^${SEL_USER}:/${USER_NAME:-default}:/" /etc/passwd > /tmp/passwd + echo "${USER_NAME:-default}:x:$(id -u):$(id -g):${USER_NAME:-default} user:${HOME}:/bin/bash" >> /tmp/passwd + cat /tmp/passwd > /etc/passwd + rm /tmp/passwd + _log "Added new ${USER_NAME:-default} user ($(id -u):$(id -g)). Fixed UID!" fi - done + fi + fix-permissions "${SE_DOWNLOAD_DIR}" fi /usr/bin/supervisord --configuration /etc/supervisord.conf & diff --git a/Base/fix-permissions b/Base/fix-permissions index 97d4ad8b8..e20ab2dbc 100644 --- a/Base/fix-permissions +++ b/Base/fix-permissions @@ -1,23 +1,46 @@ #!/bin/bash set -e -# Run this with USER root only -for d in "$@"; do - find "${d}" \ - ! \( \ - -group "${SEL_GID}" \ - -a -perm -g+rwX \ - \) \ - -exec chgrp -R "${SEL_GID}" -- {} \+ \ - -exec chmod -R g+rwX -- {} \+ - # setuid, setgid *on directories only* - find "${d}" \ - \( \ - -type d \ - -a ! -perm -6000 \ - \) \ - -exec chmod -R +6000 -- {} \+ - # Relaxing permissions for OpenShift and other non-sudo environments - chmod -R u+x "${d}" - chgrp -R 0 "${d}" - chmod -R g=u "${d}" -done + +if [[ "${SE_DOWNLOAD_DIR}" != "${HOME}/Downloads" ]] && [[ -d "${SE_DOWNLOAD_DIR}" ]]; then + mkdir -p "${SE_DOWNLOAD_DIR}" +fi + +if [ "$(id -u)" == 0 ]; then + # For root user to change ownership + for d in "$@"; do + find "${d}" \ + ! \( \ + -group "${SEL_GID}" \ + -a -perm -g+rwX \ + \) \ + -exec chown -R "${SEL_UID}:${SEL_GID}" -- {} \+ \ + -exec chgrp -R "${SEL_GID}" -- {} \+ \ + -exec chmod -R g+rwX -- {} \+ + find "${d}" \ + \( \ + -type d \ + -a ! -perm -775 \ + \) \ + -exec chmod -R 775 -- {} \+ + # Relaxing permissions for OpenShift and other non-sudo environments + chmod -R u+x "${d}" + chgrp -R 0 "${d}" + chmod -R g=u "${d}" + done + + # Only give write access for app data in case running of read-only filesystem + dirs=( + "${HOME}" + "${SEL_DIR}" + "${SE_DOWNLOAD_DIR}" + "/var/run/supervisor" + "/var/log/supervisor" + "/etc/passwd" + "/tmp/.X11-unix" + ) + for d in "${dirs[@]}"; do + if [[ -d $d ]]; then + chmod 777 -R "${d}" + fi + done +fi diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index e52dd5798..aee098943 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -50,7 +50,6 @@ RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ && rm /tmp/chromedriver_linux64.zip \ && mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && fix-permissions /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ && ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver USER ${SEL_UID} diff --git a/NodeEdge/Dockerfile b/NodeEdge/Dockerfile index 2e3c781e8..500862f0f 100644 --- a/NodeEdge/Dockerfile +++ b/NodeEdge/Dockerfile @@ -43,7 +43,6 @@ RUN if [ -z "$EDGE_DRIVER_VERSION" ]; \ && unzip /tmp/msedgedriver_linux64.zip -d /opt/selenium \ && rm /tmp/msedgedriver_linux64.zip \ && mv /opt/selenium/msedgedriver /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ - && fix-permissions /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \ && ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver USER ${SEL_UID} diff --git a/README.md b/README.md index 56287ac3a..ec9e6b535 100644 --- a/README.md +++ b/README.md @@ -1302,46 +1302,72 @@ that directory because it is running under the user `seluser`. This happens because that is how Docker mounts volumes in Linux, more details in this [issue](https://github.com/moby/moby/issues/2259). -There was a fix in this feature [#1947](https://github.com/SeleniumHQ/docker-selenium/issues/1947) -that changed ownership when staring the container. +A workaround (to be done manually) for this is to create a directory on the +host and change its permissions **before mounting the volume**. +Depending on your user permissions, you might need to use +`sudo` for some of these commands: -You are able to configure browser with another download directory and mount the host with it in container by overriding `SE_DOWNLOAD_DIR`. +```bash +mkdir /home/ubuntu/files +chown 1200:1201 /home/ubuntu/files +``` + +After doing this, you should be able to download files +to the mounted directory. + +--- +Another introduced feature [#1947](https://github.com/SeleniumHQ/docker-selenium/issues/1947) +that take action to change ownership when staring the container. +You are able to configure another default browser download directory and mount the host with it in container by overriding `SE_DOWNLOAD_DIR`. + +For example, in test you might be scripting something ```groovy ChromeOptions options = new ChromeOptions(); HashMap chromePrefs = new HashMap(); -chromePrefs.put("download.default_directory", "/tmp/downloads"); +chromePrefs.put("download.default_directory", "/path/to/your/downloads"); options.setExperimentalOption("prefs", chromePrefs); options.add_argument('disable-features=DownloadBubble,DownloadBubbleV2') WebDriver driver = new ChromeDriver(options); ``` +When running the container, you set the `SE_DOWNLOAD_DIR` and mount the host with that directory in container. ```bash docker run -d -p 4444:4444 --shm-size="2g" \ - -e SE_DOWNLOAD_DIR=/tmp/downloads \ - -v /home/ubuntu/files:/tmp/downloads \ + -e SE_DOWNLOAD_DIR=/path/to/your/downloads \ + -v /home/ubuntu/files:/path/to/your/downloads \ selenium/standalone-chrome:4.16.1-20231212 ``` -### Change ownership of the volume mount +**Note:** The changing ownership when starting container is not supported well when both overriding `SE_DOWNLOAD_DIR` and running non-root (e.g. Podman) or specifying user ids different from `1200` (OpenShift arbitrary user ids). + +In this case, you can use above workaround to create and set permissions for the directory on the host before mounting the volume. -If you are using Linux and you need to change the ownership of the volume mount, you can set the `CHOWN_EXTRA` and `CHOWN_EXTRA_OPTS` (default is set `-R` - change recursively) environment variables +You also can run the container with `--user root` once to initialize and change ownership of the directory on the host, then run the container with non-root user again. +For example, the first run with root user: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ - -v /home/ubuntu/my-certs:/etc/certs \ - -e CHOWN_EXTRA=/etc/certs \ + --user root \ + -e SE_DOWNLOAD_DIR=/path/to/your/downloads \ + -v /home/ubuntu/files:/path/to/your/downloads \ selenium/standalone-chrome:4.16.1-20231212 ``` -If you want a new volume mount directory to be created and set ownership, you can set the `MKDIR_EXTRA` and `MKDIR_EXTRA_OPTS` (default is set `-p` - create a directory hierarchy) environment variables. - +Then stop it, rerun with switching to non-root user: ```bash docker run -d -p 4444:4444 --shm-size="2g" \ - -v /home/ubuntu/my-nssdb:/home/seluser/.pki/nssdb \ - -e MKDIR_EXTRA=/home/seluser/.pki/nssdb \ + --user 4496 \ + -e SE_DOWNLOAD_DIR=/path/to/your/downloads \ + -v /home/ubuntu/files:/path/to/your/downloads \ selenium/standalone-chrome:4.16.1-20231212 ``` +Summarize the supported use case for changing ownership when starting container: -Both `CHOWN_EXTRA` and `MKDIR_EXTRA` can be set to multiple directories by separating them with a `space` or `comma`. For example: `CHOWN_EXTRA=,` +| User (uid) | Mount `SE_DOWNLOAD_DIR` in container | Auto changing | +|----------------------|--------------------------------------|---------------| +| seluser (uid `1200`) | default `/home/seluser/Downloads` | Yes | +| seluser (uid `1200`) | any `/path/to/downloads` | Yes | +| any (uid != `1200`) | default `/home/seluser/Downloads` | Yes | +| any (uid != `1200`) | any `/path/to/downloads` | No | diff --git a/tests/test.py b/tests/test.py index b8b462c2b..0d260e330 100644 --- a/tests/test.py +++ b/tests/test.py @@ -174,7 +174,7 @@ def standalone_browser_container_matches(container): use_random_user_id = USE_RANDOM_USER_ID == 'true' run_in_docker_compose = RUN_IN_DOCKER_COMPOSE == 'true' - random_user_id = random.randint(2000, 65000) + random_user_id = "%s:%s" % (random.randint(2000, 65000), random.randint(2001, 65001)) if use_random_user_id: logger.info("Running tests with a random user ID -> %s" % random_user_id) From 47c525709bdf555f2677dffed9316e35c500752b Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Sun, 17 Dec 2023 08:48:34 +0100 Subject: [PATCH 094/100] Add chromium image --- .github/dependabot.yml | 12 ++ .github/workflows/test-video.yml | 5 + Makefile | 60 +++++++- NodeBase/start-xvfb.sh | 2 +- NodeChromium/Dockerfile | 55 ++++++++ NodeChromium/chromium.pref | 14 ++ NodeChromium/wrap_chromium_binary | 27 ++++ NodeDocker/config.toml | 1 + charts/selenium-grid/templates/_helpers.tpl | 7 + .../templates/chromium-node-deployment.yaml | 30 ++++ .../templates/chromium-node-hpa.yaml | 18 +++ .../templates/chromium-node-scaledjobs.yaml | 28 ++++ .../templates/chromium-node-service.yaml | 40 ++++++ charts/selenium-grid/values.yaml | 132 ++++++++++++++++++ docker-compose-v2-tracing.yml | 15 ++ docker-compose-v2.yml | 12 ++ docker-compose-v3-basicauth.yml | 10 ++ docker-compose-v3-dev.yml | 12 ++ docker-compose-v3-full-grid-dev.yml | 12 ++ docker-compose-v3-full-grid-swarm.yml | 11 ++ docker-compose-v3-full-grid-tracing.yml | 19 ++- docker-compose-v3-full-grid.yml | 12 +- docker-compose-v3-swarm.yml | 11 ++ docker-compose-v3-tracing.yml | 12 ++ docker-compose-v3-video.yml | 20 +++ docker-compose-v3.yml | 10 ++ generate_release_notes.sh | 4 + tests/charts/ci/NodeChrome-values.yaml | 3 + tests/charts/ci/NodeChromium-values.yaml | 16 +++ tests/charts/ci/NodeEdge-values.yaml | 3 + tests/charts/ci/NodeFirefox-values.yaml | 3 + .../charts/ci/ParallelAutoscaling-values.yaml | 5 + tests/charts/templates/render/dummy.yaml | 3 + tests/charts/templates/test.py | 2 +- tests/test.py | 10 +- 35 files changed, 623 insertions(+), 13 deletions(-) create mode 100644 NodeChromium/Dockerfile create mode 100644 NodeChromium/chromium.pref create mode 100755 NodeChromium/wrap_chromium_binary create mode 100644 charts/selenium-grid/templates/chromium-node-deployment.yaml create mode 100644 charts/selenium-grid/templates/chromium-node-hpa.yaml create mode 100644 charts/selenium-grid/templates/chromium-node-scaledjobs.yaml create mode 100644 charts/selenium-grid/templates/chromium-node-service.yaml create mode 100644 tests/charts/ci/NodeChromium-values.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 637f89b29..5aec98bec 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,6 +6,12 @@ updates: interval: daily time: '08:00' open-pull-requests-limit: 99 +- package-ecosystem: docker + directory: "/StandaloneChromium" + schedule: + interval: daily + time: '08:00' + open-pull-requests-limit: 99 - package-ecosystem: docker directory: "/StandaloneFirefox" schedule: @@ -36,6 +42,12 @@ updates: interval: daily time: '08:00' open-pull-requests-limit: 99 +- package-ecosystem: docker + directory: "/NodeChromium" + schedule: + interval: daily + time: '08:00' + open-pull-requests-limit: 99 - package-ecosystem: docker directory: "/" schedule: diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index 02aa7f7c4..22ce2e4ab 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -41,6 +41,11 @@ jobs: with: name: chrome_video path: ./tests/videos/chrome_video.mp4 + - name: Upload recorded Chromium video + uses: actions/upload-artifact@v4 + with: + name: chromium_video + path: ./tests/videos/chromium_video.mp4 - name: Upload recorded Edge video uses: actions/upload-artifact@v4 with: diff --git a/Makefile b/Makefile index 5df2eb27e..6b6d10703 100644 --- a/Makefile +++ b/Makefile @@ -26,10 +26,12 @@ all: hub \ chrome \ edge \ firefox \ + chromium \ docker \ standalone_chrome \ standalone_edge \ standalone_firefox \ + standalone_chromium \ standalone_docker \ video @@ -71,6 +73,9 @@ chrome_dev: chrome_beta: cd ./NodeChrome && docker build $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROME_VERSION=google-chrome-beta -t $(NAME)/node-chrome:beta . +chromium: node_base + cd ./NodeChromium && docker build $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-chromium:$(TAG_VERSION) . + edge: node_base cd ./NodeEdge && docker build $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-edge:$(TAG_VERSION) . @@ -113,6 +118,9 @@ standalone_chrome_dev: chrome_dev standalone_chrome_beta: chrome_beta cd ./Standalone && docker build $(BUILD_ARGS) --build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-chrome -t $(NAME)/standalone-chrome:beta . +standalone_chromium: chromium + cd ./Standalone && docker build $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chromium -t $(NAME)/standalone-chromium:$(TAG_VERSION) . + standalone_edge: edge cd ./Standalone && docker build $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-edge -t $(NAME)/standalone-edge:$(TAG_VERSION) . @@ -128,11 +136,14 @@ video: # https://github.com/SeleniumHQ/docker-selenium/issues/992 # Additional tags for browser images -tag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_firefox_images tag_and_push_edge_images +tag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_firefox_images tag_and_push_edge_images tag_and_push_chromium_images tag_and_push_chrome_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome +tag_and_push_chromium_images: + ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chromium + tag_and_push_edge_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) edge @@ -149,10 +160,12 @@ tag_latest: docker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:latest docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:latest docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:latest + docker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:latest docker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:latest docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:latest docker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:latest docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:latest + docker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:latest docker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:latest docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:latest docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest @@ -168,10 +181,12 @@ release_latest: docker push $(NAME)/event-bus:latest docker push $(NAME)/node-base:latest docker push $(NAME)/node-chrome:latest + docker push $(NAME)/node-chromium:latest docker push $(NAME)/node-edge:latest docker push $(NAME)/node-firefox:latest docker push $(NAME)/node-docker:latest docker push $(NAME)/standalone-chrome:latest + docker push $(NAME)/standalone-chromium:latest docker push $(NAME)/standalone-edge:latest docker push $(NAME)/standalone-firefox:latest docker push $(NAME)/standalone-docker:latest @@ -187,10 +202,12 @@ tag_major_minor: docker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:$(MAJOR) docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR) docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR) + docker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:$(MAJOR) docker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:$(MAJOR) docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR) docker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:$(MAJOR) docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR) + docker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:$(MAJOR) docker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:$(MAJOR) docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR) docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR) @@ -203,10 +220,12 @@ tag_major_minor: docker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:$(MAJOR).$(MINOR) docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR).$(MINOR) docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR).$(MINOR) + docker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:$(MAJOR).$(MINOR) docker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:$(MAJOR).$(MINOR) docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR).$(MINOR) docker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:$(MAJOR).$(MINOR) docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR).$(MINOR) + docker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:$(MAJOR).$(MINOR) docker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:$(MAJOR).$(MINOR) docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR).$(MINOR) docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR).$(MINOR) @@ -219,10 +238,12 @@ tag_major_minor: docker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR_MINOR_PATCH) + docker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR_MINOR_PATCH) @@ -237,10 +258,12 @@ release: tag_major_minor @if ! docker images $(NAME)/event-bus | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/event-bus version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/node-base | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-base version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/node-chrome | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-chrome version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/node-chromium | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-chromium version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/node-edge | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-edge version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/node-firefox | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-firefox version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/node-docker | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/node-docker version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/standalone-chrome | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-chrome version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi + @if ! docker images $(NAME)/standalone-chromium | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-chromium version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/standalone-edge | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-edge version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/standalone-firefox | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-firefox version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/standalone-docker | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/standalone-docker version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @@ -253,10 +276,12 @@ release: tag_major_minor docker push $(NAME)/event-bus:$(TAG_VERSION) docker push $(NAME)/node-base:$(TAG_VERSION) docker push $(NAME)/node-chrome:$(TAG_VERSION) + docker push $(NAME)/node-chromium:$(TAG_VERSION) docker push $(NAME)/node-edge:$(TAG_VERSION) docker push $(NAME)/node-firefox:$(TAG_VERSION) docker push $(NAME)/node-docker:$(TAG_VERSION) docker push $(NAME)/standalone-chrome:$(TAG_VERSION) + docker push $(NAME)/standalone-chromium:$(TAG_VERSION) docker push $(NAME)/standalone-edge:$(TAG_VERSION) docker push $(NAME)/standalone-firefox:$(TAG_VERSION) docker push $(NAME)/standalone-docker:$(TAG_VERSION) @@ -269,10 +294,12 @@ release: tag_major_minor docker push $(NAME)/event-bus:$(MAJOR) docker push $(NAME)/node-base:$(MAJOR) docker push $(NAME)/node-chrome:$(MAJOR) + docker push $(NAME)/node-chromium:$(MAJOR) docker push $(NAME)/node-edge:$(MAJOR) docker push $(NAME)/node-firefox:$(MAJOR) docker push $(NAME)/node-docker:$(MAJOR) docker push $(NAME)/standalone-chrome:$(MAJOR) + docker push $(NAME)/standalone-chromium:$(MAJOR) docker push $(NAME)/standalone-edge:$(MAJOR) docker push $(NAME)/standalone-firefox:$(MAJOR) docker push $(NAME)/standalone-docker:$(MAJOR) @@ -285,10 +312,12 @@ release: tag_major_minor docker push $(NAME)/event-bus:$(MAJOR).$(MINOR) docker push $(NAME)/node-base:$(MAJOR).$(MINOR) docker push $(NAME)/node-chrome:$(MAJOR).$(MINOR) + docker push $(NAME)/node-chromium:$(MAJOR).$(MINOR) docker push $(NAME)/node-edge:$(MAJOR).$(MINOR) docker push $(NAME)/node-firefox:$(MAJOR).$(MINOR) docker push $(NAME)/node-docker:$(MAJOR).$(MINOR) docker push $(NAME)/standalone-chrome:$(MAJOR).$(MINOR) + docker push $(NAME)/standalone-chromium:$(MAJOR).$(MINOR) docker push $(NAME)/standalone-edge:$(MAJOR).$(MINOR) docker push $(NAME)/standalone-firefox:$(MAJOR).$(MINOR) docker push $(NAME)/standalone-docker:$(MAJOR).$(MINOR) @@ -301,10 +330,12 @@ release: tag_major_minor docker push $(NAME)/event-bus:$(MAJOR_MINOR_PATCH) docker push $(NAME)/node-base:$(MAJOR_MINOR_PATCH) docker push $(NAME)/node-chrome:$(MAJOR_MINOR_PATCH) + docker push $(NAME)/node-chromium:$(MAJOR_MINOR_PATCH) docker push $(NAME)/node-edge:$(MAJOR_MINOR_PATCH) docker push $(NAME)/node-firefox:$(MAJOR_MINOR_PATCH) docker push $(NAME)/node-docker:$(MAJOR_MINOR_PATCH) docker push $(NAME)/standalone-chrome:$(MAJOR_MINOR_PATCH) + docker push $(NAME)/standalone-chromium:$(MAJOR_MINOR_PATCH) docker push $(NAME)/standalone-edge:$(MAJOR_MINOR_PATCH) docker push $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH) docker push $(NAME)/standalone-docker:$(MAJOR_MINOR_PATCH) @@ -315,7 +346,9 @@ test: test_chrome \ test_chrome_standalone \ test_firefox_standalone \ test_edge \ - test_edge_standalone + test_edge_standalone \ + test_chromium \ + test_chromium_standalone test_chrome: @@ -324,6 +357,12 @@ test_chrome: test_chrome_standalone: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneChrome +test_chromium: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeChromium + +test_chromium_standalone: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneChromium + test_edge: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeEdge @@ -338,9 +377,9 @@ test_firefox_standalone: # This should run on its own CI job. There is no need to combine it with the other tests. # Its main purpose is to check that a video file was generated. -test_video: video hub chrome firefox edge +test_video: video hub chrome firefox edge chromium # Running a few tests with docker-compose to generate the videos - for node in NodeChrome NodeFirefox NodeEdge ; do \ + for node in NodeChrome NodeFirefox NodeEdge NodeChromium ; do \ cd ./tests || true ; \ echo VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) > .env ; \ echo TAG=$(TAG_VERSION) >> .env ; \ @@ -349,6 +388,10 @@ test_video: video hub chrome firefox edge echo BROWSER=chrome >> .env ; \ echo VIDEO_FILE_NAME=chrome_video.mp4 >> .env ; \ fi ; \ + if [ $$node = "NodeChromium" ] ; then \ + echo BROWSER=chromium >> .env ; \ + echo VIDEO_FILE_NAME=chromium_video.mp4 >> .env ; \ + fi ; \ if [ $$node = "NodeEdge" ] ; then \ echo BROWSER=edge >> .env ; \ echo VIDEO_FILE_NAME=edge_video.mp4 >> .env ; \ @@ -364,6 +407,7 @@ test_video: video hub chrome firefox edge docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log + docker run -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/chromium_video.mp4 -f null - 2>error.log chart_setup_env: ./tests/charts/make/chart_setup_env.sh @@ -380,7 +424,8 @@ chart_build: chart_test: chart_test_template \ chart_test_chrome \ chart_test_firefox \ - chart_test_edge + chart_test_edge \ + chart_test_chromium chart_test_template: ./tests/charts/bootstrap.sh @@ -388,6 +433,9 @@ chart_test_template: chart_test_chrome: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeChrome +chart_test_chromium: + VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeChromium + chart_test_firefox: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_test.sh NodeFirefox @@ -403,6 +451,7 @@ chart_test_parallel_autoscaling: build \ ci \ chrome \ + chromium \ edge \ firefox \ docker \ @@ -415,6 +464,7 @@ chart_test_parallel_autoscaling: node_base \ release \ standalone_chrome \ + standalone_chromium \ standalone_edge \ standalone_firefox \ standalone_docker \ diff --git a/NodeBase/start-xvfb.sh b/NodeBase/start-xvfb.sh index b4959a390..2d9794509 100755 --- a/NodeBase/start-xvfb.sh +++ b/NodeBase/start-xvfb.sh @@ -19,5 +19,5 @@ if [ "${START_XVFB:-$SE_START_XVFB}" = true ] ; then --server-args="-screen 0 ${GEOMETRY} -fbdir /var/tmp -dpi ${SCREEN_DPI} -listen tcp -noreset -ac +extension RANDR" \ /usr/bin/fluxbox -display ${DISPLAY} else - echo "Xvfb and Fluxbox won't start. Chrome/Firefox/Edge can only run in headless mode. Remember to set the 'headless' flag in your test." + echo "Xvfb and Fluxbox won't start. Chrome/Firefox/Edge/Chromium can only run in headless mode. Remember to set the 'headless' flag in your test." fi diff --git a/NodeChromium/Dockerfile b/NodeChromium/Dockerfile new file mode 100644 index 000000000..191ba7b8d --- /dev/null +++ b/NodeChromium/Dockerfile @@ -0,0 +1,55 @@ +ARG NAMESPACE +ARG VERSION +ARG AUTHORS +FROM ${NAMESPACE}/node-base:${VERSION} +LABEL authors=${AUTHORS} + +USER root + +#============================================ +# Chromium and chromedriver from Debian +# Available versions at: https://packages.debian.org/search?keywords=chromium +#============================================ +COPY chromium.pref /etc/apt/preferences.d/chromium.pref + +ARG DEBIAN_VERSION=bullseye +ARG REPO_FILE=/etc/apt/sources.list.d/debian.list +ARG KEY_SERVER=keyserver.ubuntu.com +ARG DEBIAN_KEY_LOCATION=/usr/share/keyrings/debian +ARG CHROMIUM_VERSION=120.0.6099.109-1~deb11u1 +ARG CHROMEDIVER_VERSION=${CHROMIUM_VERSION} +RUN mkdir /home/seluser/.gnupg && mkdir -p ${DEBIAN_KEY_LOCATION} \ + && gpg --no-default-keyring --keyring ${DEBIAN_KEY_LOCATION}/${DEBIAN_VERSION}.gpg \ + --keyserver ${KEY_SERVER} \ + --recv-keys 0E98404D386FA1D9 \ + && echo "deb [signed-by=${DEBIAN_KEY_LOCATION}/${DEBIAN_VERSION}.gpg] http://deb.debian.org/debian ${DEBIAN_VERSION} main" \ + > ${REPO_FILE} \ + && gpg --no-default-keyring --keyring ${DEBIAN_KEY_LOCATION}/${DEBIAN_VERSION}-updates.gpg \ + --keyserver ${KEY_SERVER} \ + --recv-keys 6ED0E7B82643E131 \ + && echo "deb [signed-by=${DEBIAN_KEY_LOCATION}/${DEBIAN_VERSION}-updates.gpg] http://deb.debian.org/debian ${DEBIAN_VERSION}-updates main" \ + >> ${REPO_FILE} \ + && gpg --no-default-keyring --keyring ${DEBIAN_KEY_LOCATION}/security-${DEBIAN_VERSION}.gpg \ + --keyserver ${KEY_SERVER} \ + --recv-keys 112695A0E562B32A \ + && echo "deb [signed-by=${DEBIAN_KEY_LOCATION}/security-${DEBIAN_VERSION}.gpg] http://deb.debian.org/debian-security ${DEBIAN_VERSION}-security main contrib non-free" \ + >> ${REPO_FILE} \ + && apt-get update -qqy \ + && apt-get -qqy --no-install-recommends install chromium=${CHROMIUM_VERSION} chromium-driver=${CHROMEDIVER_VERSION} \ + && rm ${REPO_FILE} \ + && rm -rf /home/seluser/.gnupg ${DEBIAN_KEY_LOCATION}/ /var/lib/apt/lists/* /var/cache/apt/* + +#================================= +# Chromium Launch Script Wrapper +#================================= +COPY wrap_chromium_binary /opt/bin/wrap_chromium_binary +RUN /opt/bin/wrap_chromium_binary + +USER ${SEL_UID} + +#============================================ +# Dumping Browser information for config +#============================================ +RUN echo "chrome" > /opt/selenium/browser_name +RUN chromium --version | awk '{print $2}' > /opt/selenium/browser_version +RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/chromium\"}" > /opt/selenium/browser_binary_location diff --git a/NodeChromium/chromium.pref b/NodeChromium/chromium.pref new file mode 100644 index 000000000..33fb9ace5 --- /dev/null +++ b/NodeChromium/chromium.pref @@ -0,0 +1,14 @@ +# Note: 2 blank lines are required between entries +Package: * +Pin: release a=eoan +Pin-Priority: 500 + +Package: * +Pin: origin "deb.debian.org" +Pin-Priority: 300 + +# Pattern includes 'chromium', 'chromium-browser' and similarly +# named dependencies: +Package: chromium* +Pin: origin "deb.debian.org" +Pin-Priority: 700 diff --git a/NodeChromium/wrap_chromium_binary b/NodeChromium/wrap_chromium_binary new file mode 100755 index 000000000..0cf5c2533 --- /dev/null +++ b/NodeChromium/wrap_chromium_binary @@ -0,0 +1,27 @@ +#!/bin/bash + +WRAPPER_PATH=$(readlink -f /usr/bin/chromium) +BASE_PATH="$WRAPPER_PATH-base" +mv "$WRAPPER_PATH" "$BASE_PATH" + +cat > "$WRAPPER_PATH" <<_EOF +#!/bin/bash + +# umask 002 ensures default permissions of files are 664 (rw-rw-r--) and directories are 775 (rwxrwxr-x). +umask 002 + +# Debian/Ubuntu seems to not respect --lang, it instead needs to be a LANGUAGE environment var +# See: https://stackoverflow.com/a/41893197/359999 +for var in "\$@"; do + if [[ \$var == --lang=* ]]; then + LANGUAGE=\${var//--lang=} + fi +done + +# Set language environment variable +export LANGUAGE="\$LANGUAGE" + +# Note: exec -a below is a bashism. +exec -a "\$0" "$BASE_PATH" --no-sandbox "\$@" +_EOF +chmod +x "$WRAPPER_PATH" diff --git a/NodeDocker/config.toml b/NodeDocker/config.toml index 3b63bf66a..83c1b640a 100644 --- a/NodeDocker/config.toml +++ b/NodeDocker/config.toml @@ -4,6 +4,7 @@ configs = [ "selenium/standalone-firefox:4.16.1-20231212", '{"browserName": "firefox", "platformName": "linux"}', "selenium/standalone-chrome:4.16.1-20231212", '{"browserName": "chrome", "platformName": "linux"}', + "selenium/standalone-chromium:4.16.1-20231212", '{"browserName": "chromium", "platformName": "linux"}', "selenium/standalone-edge:4.16.1-20231212", '{"browserName": "MicrosoftEdge", "platformName": "linux"}' ] diff --git a/charts/selenium-grid/templates/_helpers.tpl b/charts/selenium-grid/templates/_helpers.tpl index 48c18bb95..7fbd6e094 100644 --- a/charts/selenium-grid/templates/_helpers.tpl +++ b/charts/selenium-grid/templates/_helpers.tpl @@ -58,6 +58,13 @@ Chrome node fullname {{- default "selenium-chrome-node" .Values.chromeNode.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{/* +Chromium node fullname +*/}} +{{- define "seleniumGrid.chromiumNode.fullname" -}} +{{- default "selenium-chromium-node" .Values.chromiumNode.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + {{/* Firefox node fullname */}} diff --git a/charts/selenium-grid/templates/chromium-node-deployment.yaml b/charts/selenium-grid/templates/chromium-node-deployment.yaml new file mode 100644 index 000000000..5bdd0fb4a --- /dev/null +++ b/charts/selenium-grid/templates/chromium-node-deployment.yaml @@ -0,0 +1,30 @@ +{{- if and .Values.chromiumNode.enabled ((eq (include "seleniumGrid.useKEDA" .) "true") | ternary (eq .Values.autoscaling.scalingType "deployment") .Values.chromiumNode.deploymentEnabled) }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "seleniumGrid.chromiumNode.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "seleniumGrid.chromiumNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.chromiumNode.fullname" . }} + {{- include "seleniumGrid.commonLabels" . | nindent 4 }} + {{- with .Values.chromiumNode.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.customLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and (not .Values.autoscaling.enabled) (not .Values.autoscaling.enableWithExistingKEDA) }} + replicas: {{ .Values.chromiumNode.replicas }} + {{end}} + selector: + matchLabels: + app: {{ template "seleniumGrid.chromiumNode.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +{{- $podScope := deepCopy . -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.chromiumNode.fullname" .) -}} +{{- $_ = set $podScope "node" .Values.chromiumNode -}} +{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} +{{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} +{{- end }} diff --git a/charts/selenium-grid/templates/chromium-node-hpa.yaml b/charts/selenium-grid/templates/chromium-node-hpa.yaml new file mode 100644 index 000000000..8777c003f --- /dev/null +++ b/charts/selenium-grid/templates/chromium-node-hpa.yaml @@ -0,0 +1,18 @@ +{{- if and .Values.chromiumNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "deployment") }} +apiVersion: keda.sh/v1alpha1 +kind: ScaledObject +metadata: + name: selenium-grid-chromium-scaledobject + namespace: {{ .Release.Namespace }} + annotations: + {{- with .Values.autoscaling.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + deploymentName: {{ template "seleniumGrid.chromiumNode.fullname" . }} +spec: + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.chromiumNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.chromiumNode -}} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +{{- end }} diff --git a/charts/selenium-grid/templates/chromium-node-scaledjobs.yaml b/charts/selenium-grid/templates/chromium-node-scaledjobs.yaml new file mode 100644 index 000000000..d7bf26fea --- /dev/null +++ b/charts/selenium-grid/templates/chromium-node-scaledjobs.yaml @@ -0,0 +1,28 @@ +{{- if and .Values.chromiumNode.enabled (include "seleniumGrid.useKEDA" .) (eq .Values.autoscaling.scalingType "job") }} +apiVersion: keda.sh/v1alpha1 +kind: ScaledJob +metadata: + name: {{ template "seleniumGrid.chromiumNode.fullname" . }} + namespace: {{ .Release.Namespace }} + annotations: + {{- with .Values.autoscaling.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + app: {{ template "seleniumGrid.chromiumNode.fullname" . }} + app.kubernetes.io/name: {{ template "seleniumGrid.chromiumNode.fullname" . }} + {{- include "seleniumGrid.commonLabels" . | nindent 4 }} + {{- with .Values.chromiumNode.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.customLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- $podScope := deepCopy . -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.chromiumNode.fullname" .) -}} + {{- $_ = set $podScope "node" .Values.chromiumNode -}} + {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader | toString)) -}} + {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} + {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +{{- end }} diff --git a/charts/selenium-grid/templates/chromium-node-service.yaml b/charts/selenium-grid/templates/chromium-node-service.yaml new file mode 100644 index 000000000..b9982ee21 --- /dev/null +++ b/charts/selenium-grid/templates/chromium-node-service.yaml @@ -0,0 +1,40 @@ +{{- if and .Values.chromiumNode.enabled .Values.chromiumNode.service.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "seleniumGrid.chromiumNode.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + name: {{ template "seleniumGrid.chromiumNode.fullname" . }} + {{- include "seleniumGrid.commonLabels" . | nindent 4 }} + {{- with .Values.chromiumNode.service.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + type: {{ .Values.chromiumNode.service.type }} + selector: + app: {{ template "seleniumGrid.chromiumNode.fullname" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- if and (eq .Values.chromiumNode.service.type "LoadBalancer") (.Values.chromiumNode.service.loadBalancerIP) }} + loadBalancerIP: {{ .Values.chromiumNode.service.loadBalancerIP }} + {{- end }} + ports: + - name: tcp-chromium + protocol: TCP + port: {{ .Values.chromiumNode.seleniumServicePort }} + targetPort: {{ .Values.chromiumNode.seleniumPort }} + {{- with .Values.chromiumNode.service.ports }} + {{- range . }} + - name: {{ .name }} + port: {{ .port }} + targetPort: {{ .targetPort }} + {{- if .protocol }} + protocol: {{ .protocol }} + {{- end }} + {{- if and (eq $.Values.chromiumNode.service.type "NodePort") .nodePort }} + nodePort: {{ .nodePort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 5a82d207d..3489fb588 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -796,6 +796,138 @@ edgeNode: # It should be set using the --set-json option sidecars: [] +# Configuration for chromium nodes +chromiumNode: + # Enable chromium nodes + enabled: true + + # NOTE: Only used when autoscaling.enabled is false + # Enable creation of Deployment + # true (default) - if you want long living pods + # false - for provisioning your own custom type such as Jobs + deploymentEnabled: true + + # Number of chromium nodes + replicas: 1 + # imageRegistry: selenium + # Image of chromium nodes + imageName: node-chromium + # Image of chromium nodes (this overwrites global.seleniumGrid.nodesImageTag) + # imageTag: 4.16.1-20231212 + # Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) + imagePullPolicy: IfNotPresent + # Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) + imagePullSecret: "" + + # Port list to enable on container + ports: + - 5555 + # Selenium port (spec.ports[0].targetPort in kubernetes service) + seleniumPort: 5900 + # Selenium port exposed in service (spec.ports[0].port in kubernetes service) + seleniumServicePort: 6900 + # Annotations for chromium-node pods + annotations: {} + # Labels for chromium-node pods + labels: {} + # Resources for chromium-node container + resources: + requests: + memory: "1Gi" + cpu: "1" + limits: + memory: "1Gi" + cpu: "1" + # SecurityContext for chromium-node container + securityContext: {} + # Tolerations for chromium-node pods + tolerations: [] + # Node selector for chromium-node pods + nodeSelector: {} + # Custom host aliases for chromium nodes + hostAliases: + # - ip: "198.51.100.0" + # hostnames: + # - "example.com" + # - "example.net" + # - ip: "203.0.113.0" + # hostnames: + # - "example.org" + # Custom environment variables for chromium nodes + extraEnvironmentVariables: + # - name: SE_JAVA_OPTS + # value: "-Xmx512m" + # - name: + # valueFrom: + # secretKeyRef: + # name: secret-name + # key: secret-key + # Custom environment variables by sourcing entire configMap, Secret, etc. for chromium nodes + extraEnvFrom: + # - configMapRef: + # name: proxy-settings + # - secretRef: + # name: mysecret + # Service configuration + service: + # Create a service for node + enabled: true + # Service type + type: ClusterIP + # Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) + loadBalancerIP: "" + # Extra ports exposed in node service + ports: + # - name: node-port + # port: 5555 + # targetPort: 5555 + # Custom annotations for service + annotations: {} + # Size limit for DSH volume mounted in container (if not set, default is "1Gi") + dshmVolumeSizeLimit: 1Gi + # Priority class name for chromium-node pods + priorityClassName: "" + + # Wait for pod startup + startupProbe: {} + # httpGet: + # path: /status + # port: 5555 + # failureThreshold: 120 + # periodSeconds: 5 + + # Liveness probe settings + livenessProbe: {} + + # Time to wait for pod termination + terminationGracePeriodSeconds: 30 + lifecycle: {} + extraVolumeMounts: [] + # - name: my-extra-volume + # mountPath: /home/seluser/Downloads + + extraVolumes: [] + # - name: my-extra-volume + # emptyDir: {} + # - name: my-extra-volume-from-pvc + # persistentVolumeClaim: + # claimName: my-pv-claim + + # Override the scaled options for chromium nodes + # scaledOptions: + # scaledJobOptions: + # scaledObjectOptions: + hpa: + url: '{{ include "seleniumGrid.graphqlURL" . }}' + browserName: chrome + # browserVersion: '91.0' # Optional. Only required when supporting multiple versions of browser in your Selenium Grid. + unsafeSsl: 'true' # Optional + + # It is used to add a sidecars proxy in the same pod of the browser node. + # It means it will add a new container to the deployment itself. + # It should be set using the --set-json option + sidecars: [] + videoRecorder: enabled: false # imageRegistry: selenium diff --git a/docker-compose-v2-tracing.yml b/docker-compose-v2-tracing.yml index 19583fe13..888e06a86 100644 --- a/docker-compose-v2-tracing.yml +++ b/docker-compose-v2-tracing.yml @@ -50,6 +50,21 @@ services: ports: - "6902:5900" + + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + - SE_ENABLE_TRACING=true + - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chromium + ports: + - "6903:5900" + selenium-hub: image: selenium/hub:4.16.1-20231212 ports: diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index 4496c2fb3..b405cccc9 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -39,6 +39,18 @@ services: ports: - "6902:5900" + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + ports: + - "6903:5900" + selenium-hub: image: selenium/hub:4.16.1-20231212 ports: diff --git a/docker-compose-v3-basicauth.yml b/docker-compose-v3-basicauth.yml index af16b19f2..9edadac76 100644 --- a/docker-compose-v3-basicauth.yml +++ b/docker-compose-v3-basicauth.yml @@ -33,6 +33,16 @@ services: - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + selenium-hub: image: selenium/hub:4.16.1-20231212 container_name: selenium-hub diff --git a/docker-compose-v3-dev.yml b/docker-compose-v3-dev.yml index b0720fe0e..3503977c8 100644 --- a/docker-compose-v3-dev.yml +++ b/docker-compose-v3-dev.yml @@ -39,6 +39,18 @@ services: - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + volumes: + - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + selenium-hub: image: selenium/hub:4.16.1-20231212 container_name: selenium-hub diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 6233a1a3f..1022a6a92 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -109,3 +109,15 @@ services: - SE_EVENT_BUS_HOST=selenium-event-bus - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + volumes: + - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar + depends_on: + - selenium-event-bus + environment: + - SE_EVENT_BUS_HOST=selenium-event-bus + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 0d555d75a..116e15876 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -39,6 +39,17 @@ services: replicas: 1 entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + deploy: + replicas: 1 + entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' + selenium-hub: image: selenium/hub:4.16.1-20231212 ports: diff --git a/docker-compose-v3-full-grid-tracing.yml b/docker-compose-v3-full-grid-tracing.yml index bc7db86f3..a303c5e58 100644 --- a/docker-compose-v3-full-grid-tracing.yml +++ b/docker-compose-v3-full-grid-tracing.yml @@ -76,7 +76,7 @@ services: - SE_SESSIONS_MAP_PORT=5556 - SE_SESSION_QUEUE_HOST=selenium-session-queue - SE_SESSION_QUEUE_PORT=5559 - - SE_ENABLE_TRACING=true + - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-router chrome: image: selenium/node-chrome:4.16.1-20231212 @@ -88,7 +88,7 @@ services: - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - SE_ENABLE_TRACING=true - - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome + - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chrome edge: image: selenium/node-edge:4.16.1-20231212 shm_size: 2gb @@ -98,7 +98,7 @@ services: - SE_EVENT_BUS_HOST=selenium-event-bus - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - - SE_ENABLE_TRACING=true + - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-edge firefox: image: selenium/node-firefox:4.16.1-20231212 @@ -110,4 +110,15 @@ services: - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - SE_ENABLE_TRACING=true - - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox \ No newline at end of file + - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-event-bus + environment: + - SE_EVENT_BUS_HOST=selenium-event-bus + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + - SE_ENABLE_TRACING=true + - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chromium diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index 5bc20ad79..76a21c938 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -92,4 +92,14 @@ services: environment: - SE_EVENT_BUS_HOST=selenium-event-bus - SE_EVENT_BUS_PUBLISH_PORT=4442 - - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ No newline at end of file + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-event-bus + environment: + - SE_EVENT_BUS_HOST=selenium-event-bus + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 0d555d75a..116e15876 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -39,6 +39,17 @@ services: replicas: 1 entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + deploy: + replicas: 1 + entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh' + selenium-hub: image: selenium/hub:4.16.1-20231212 ports: diff --git a/docker-compose-v3-tracing.yml b/docker-compose-v3-tracing.yml index faf7b2ec4..938f4da86 100644 --- a/docker-compose-v3-tracing.yml +++ b/docker-compose-v3-tracing.yml @@ -44,6 +44,18 @@ services: - SE_ENABLE_TRACING=true - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-firefox + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + - SE_ENABLE_TRACING=true + - JAVA_OPTS=-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://jaegar:14250 -Dotel.resource.attributes=service.name=selenium-node-chromium + selenium-hub: image: selenium/hub:4.16.1-20231212 container_name: selenium-hub diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index f216bf8dd..3f33c8c18 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -33,6 +33,16 @@ services: - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + chrome_video: image: selenium/video:ffmpeg-6.1-20231212 volumes: @@ -63,6 +73,16 @@ services: - DISPLAY_CONTAINER_NAME=firefox - FILE_NAME=firefox_video.mp4 + chromium_video: + image: selenium/video:ffmpeg-6.1-20231212 + volumes: + - /tmp/videos:/videos + depends_on: + - chrome + environment: + - DISPLAY_CONTAINER_NAME=chromium + - FILE_NAME=chromium_video.mp4 + selenium-hub: image: selenium/hub:4.16.1-20231212 container_name: selenium-hub diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index b7cfdefcf..81790ec73 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -33,6 +33,16 @@ services: - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + chromium: + image: selenium/node-chromium:4.16.1-20231212 + shm_size: 2gb + depends_on: + - selenium-hub + environment: + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + selenium-hub: image: selenium/hub:4.16.1-20231212 container_name: selenium-hub diff --git a/generate_release_notes.sh b/generate_release_notes.sh index c2f4e40ae..c17fbe344 100755 --- a/generate_release_notes.sh +++ b/generate_release_notes.sh @@ -12,8 +12,10 @@ echo "### Changelog" > release_notes.md git --no-pager log "${LATEST_TAG}...${HEAD_BRANCH}" --pretty=format:"* [\`%h\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an" --reverse >> release_notes.md CHROME_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}') +CHROMIUM_VERSION=$(docker run --rm selenium/node-chromium:${TAG_VERSION} chromium --version | awk '{print $2}') EDGE_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} microsoft-edge --version | awk '{print $3}') CHROMEDRIVER_VERSION=$(docker run --rm selenium/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}') +CHROMIUMDRIVER_VERSION=$(docker run --rm selenium/node-chromium:${TAG_VERSION} chromedriver --version | awk '{print $2}') EDGEDRIVER_VERSION=$(docker run --rm selenium/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}') FIREFOX_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}') GECKODRIVER_VERSION=$(docker run --rm selenium/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}') @@ -29,6 +31,8 @@ echo "* Edge: ${EDGE_VERSION}" >> release_notes.md echo "* EdgeDriver: ${EDGEDRIVER_VERSION}" >> release_notes.md echo "* Firefox: ${FIREFOX_VERSION}" >> release_notes.md echo "* GeckoDriver: ${GECKODRIVER_VERSION}" >> release_notes.md +echo "* Chromium: ${CHROMIUM_VERSION}" >> release_notes.md +echo "* ChromiumDriver: ${CHROMIUMDRIVER_VERSION}" >> release_notes.md echo "* ffmpeg: ${FFMPEG_VERSION}" >> release_notes.md echo "" >> release_notes.md diff --git a/tests/charts/ci/NodeChrome-values.yaml b/tests/charts/ci/NodeChrome-values.yaml index 09396f42d..f92bfd952 100644 --- a/tests/charts/ci/NodeChrome-values.yaml +++ b/tests/charts/ci/NodeChrome-values.yaml @@ -5,6 +5,9 @@ chromeNode: extraEnvironmentVariables: - name: SE_OPTS value: "--enable-managed-downloads true" +# Configuration for chromium nodes +chromiumNode: + enabled: false # Configuration for edge nodes edgeNode: enabled: false diff --git a/tests/charts/ci/NodeChromium-values.yaml b/tests/charts/ci/NodeChromium-values.yaml new file mode 100644 index 000000000..fc015db60 --- /dev/null +++ b/tests/charts/ci/NodeChromium-values.yaml @@ -0,0 +1,16 @@ +# This is used in Helm chart testing +# Configuration for chrome nodes +chromeNode: + enabled: false +# Configuration for chromium nodes +chromiumNode: + nameOverride: my-chromium-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" +# Configuration for edge nodes +edgeNode: + enabled: false +# Configuration for firefox nodes +firefoxNode: + enabled: false diff --git a/tests/charts/ci/NodeEdge-values.yaml b/tests/charts/ci/NodeEdge-values.yaml index 27220e275..d90b7707d 100644 --- a/tests/charts/ci/NodeEdge-values.yaml +++ b/tests/charts/ci/NodeEdge-values.yaml @@ -2,6 +2,9 @@ # Configuration for chrome nodes chromeNode: enabled: false +# Configuration for chromium nodes +chromiumNode: + enabled: false # Configuration for edge nodes edgeNode: nameOverride: my-edge-name diff --git a/tests/charts/ci/NodeFirefox-values.yaml b/tests/charts/ci/NodeFirefox-values.yaml index 21bb6a285..04822a5c2 100644 --- a/tests/charts/ci/NodeFirefox-values.yaml +++ b/tests/charts/ci/NodeFirefox-values.yaml @@ -2,6 +2,9 @@ # Configuration for chrome nodes chromeNode: enabled: false +# Configuration for chromium nodes +chromiumNode: + enabled: false # Configuration for edge nodes edgeNode: enabled: false diff --git a/tests/charts/ci/ParallelAutoscaling-values.yaml b/tests/charts/ci/ParallelAutoscaling-values.yaml index 39ea9434c..2e1d42819 100644 --- a/tests/charts/ci/ParallelAutoscaling-values.yaml +++ b/tests/charts/ci/ParallelAutoscaling-values.yaml @@ -9,6 +9,11 @@ chromeNode: extraEnvironmentVariables: - name: SE_OPTS value: "--enable-managed-downloads true" +chromiumNode: + nameOverride: my-chromium-name + extraEnvironmentVariables: + - name: SE_OPTS + value: "--enable-managed-downloads true" # Configuration for edge nodes edgeNode: nameOverride: my-edge-name diff --git a/tests/charts/templates/render/dummy.yaml b/tests/charts/templates/render/dummy.yaml index 52d672a8a..185cc4191 100644 --- a/tests/charts/templates/render/dummy.yaml +++ b/tests/charts/templates/render/dummy.yaml @@ -48,6 +48,9 @@ components: chromeNode: affinity: *affinity +chromiumNode: + affinity: *affinity + firefoxNode: affinity: *affinity diff --git a/tests/charts/templates/test.py b/tests/charts/templates/test.py index f05c7629d..08ea8d8a9 100644 --- a/tests/charts/templates/test.py +++ b/tests/charts/templates/test.py @@ -17,7 +17,7 @@ def load_template(yaml_file): class ChartTemplateTests(unittest.TestCase): def test_set_affinity(self): - resources_name = ['selenium-chrome-node', 'selenium-distributor', 'selenium-edge-node', 'selenium-firefox-node', + resources_name = ['selenium-chrome-node', 'selenium-distributor', 'selenium-edge-node', 'selenium-firefox-node', 'selenium-chromium-node', 'selenium-event-bus', 'selenium-router', 'selenium-session-map', 'selenium-session-queue'] count = 0 logger.info(f"Assert affinity is set in global and nodes") diff --git a/tests/test.py b/tests/test.py index 0d260e330..02fb810a0 100644 --- a/tests/test.py +++ b/tests/test.py @@ -41,6 +41,10 @@ # Firefox Images 'NodeFirefox': 'node-firefox', 'StandaloneFirefox': 'standalone-firefox', + + # Chromium Images + 'NodeChromium': 'node-chromium', + 'StandaloneChromium': 'standalone-chromium', } TEST_NAME_MAP = { @@ -56,6 +60,10 @@ 'NodeFirefox': 'FirefoxTests', 'StandaloneFirefox': 'FirefoxTests', + # Chromium Images + 'NodeChromium': 'ChromeTests', + 'StandaloneChromium': 'ChromeTests', + # Chart Parallel Test 'ParallelAutoscaling': 'ParallelAutoscalingTests' } @@ -165,7 +173,7 @@ def get_build_path(container): def standalone_browser_container_matches(container): - return re.match("(Standalone)(Chrome|Firefox|Edge)", container) + return re.match("(Standalone)(Chrome|Firefox|Edge|Chromium)", container) if __name__ == '__main__': From 1ccd1a2d1a23518fec5dd42e726bfe4a9da79450 Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Sun, 17 Dec 2023 17:09:22 +0100 Subject: [PATCH 095/100] Update to also support arm64 architecture (except edge and chrome) --- Base/Dockerfile | 12 ++++++++---- Makefile | 24 ++++++++++++++++++++++++ NodeFirefox/Dockerfile | 28 +++++++++++++++------------- tests/SeleniumTests/__init__.py | 2 +- 4 files changed, 48 insertions(+), 18 deletions(-) diff --git a/Base/Dockerfile b/Base/Dockerfile index ec37f8110..a5189f675 100644 --- a/Base/Dockerfile +++ b/Base/Dockerfile @@ -18,9 +18,12 @@ USER root #================================================ # Customize sources for apt-get #================================================ -RUN echo "deb http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \ - && echo "deb http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \ - && echo "deb http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list +RUN echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \ + && echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main universe\n" >> /etc/apt/sources.list \ + && echo "deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \ + && echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main universe\n" >> /etc/apt/sources.list \ + && echo "deb [arch=amd64,i386] http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list \ + && echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-security main universe\n" >> /etc/apt/sources.list # No interactive frontend during docker build ENV DEBIAN_FRONTEND=noninteractive \ @@ -47,7 +50,8 @@ RUN apt-get -qqy update \ gnupg2 \ libnss3-tools \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ - && sed -i 's/securerandom\.source=file:\/dev\/random/securerandom\.source=file:\/dev\/urandom/' ./usr/lib/jvm/java-11-openjdk-amd64/conf/security/java.security + && ARCH=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ + && sed -i 's/securerandom\.source=file:\/dev\/random/securerandom\.source=file:\/dev\/urandom/' ./usr/lib/jvm/java-11-openjdk-${ARCH}/conf/security/java.security #=================== # Timezone settings diff --git a/Makefile b/Makefile index 6b6d10703..4587d978c 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,20 @@ all: hub \ standalone_docker \ video +all_amd64: all + +all_arm64: hub \ + distributor \ + router \ + sessions \ + sessionqueue \ + event_bus \ + firefox \ + chromium \ + docker \ + standalone_firefox \ + standalone_chromium \ + standalone_docker build: all @@ -350,6 +364,12 @@ test: test_chrome \ test_chromium \ test_chromium_standalone +test_amd64: test + +test_arm64: test_chromium \ + test_firefox \ + test_chromium_standalone \ + test_firefox_standalone test_chrome: VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeChrome @@ -447,6 +467,8 @@ chart_test_parallel_autoscaling: .PHONY: \ all \ + all_amd64 \ + all_arm64 \ base \ build \ ci \ @@ -471,4 +493,6 @@ chart_test_parallel_autoscaling: tag_latest \ tag_and_push_browser_images \ test \ + test_amd64 \ + test_arm64 \ video diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index 0150b61e3..39c946189 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -8,19 +8,15 @@ USER root #========= # Firefox +# Available versions at https://launchpad.net/~mozillateam/+archive/ubuntu/ppa #========= -ARG FIREFOX_VERSION=latest -RUN FIREFOX_DOWNLOAD_URL=$(if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then echo "https://download.mozilla.org/?product=firefox-$FIREFOX_VERSION-ssl&os=linux64&lang=en-US"; else echo "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2"; fi) \ - && apt-get update -qqy \ - && apt-get -qqy --no-install-recommends install libavcodec-extra \ - libgtk-3-dev libdbus-glib-1-dev \ - && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ - && wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \ - && rm -rf /opt/firefox \ - && tar -C /opt -xjf /tmp/firefox.tar.bz2 \ - && rm /tmp/firefox.tar.bz2 \ - && mv /opt/firefox /opt/firefox-$FIREFOX_VERSION \ - && ln -fs /opt/firefox-$FIREFOX_VERSION/firefox /usr/bin/firefox +ARG FIREFOX_VERSION=121.0+build1-0ubuntu0.22.04.1~mt1 +RUN apt-get -qqy update \ + && apt-get -qqy --no-install-recommends install libavcodec-extra software-properties-common \ + && add-apt-repository ppa:mozillateam/ppa \ + && apt-get -qqy update \ + && apt-get -qqy --no-install-recommends install -t 'o=LP-PPA-mozillateam' firefox=${FIREFOX_VERSION} \ + && rm -rf /var/lib/apt/lists/* /var/cache/apt/* #============ # GeckoDriver @@ -28,7 +24,13 @@ RUN FIREFOX_DOWNLOAD_URL=$(if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERS ARG GECKODRIVER_VERSION=latest RUN GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = "latest" ]; then echo "0.33.0"; else echo $GECKODRIVER_VERSION; fi) \ && echo "Using GeckoDriver version: "$GK_VERSION \ - && wget --no-verbose -O /tmp/geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/v$GK_VERSION/geckodriver-v$GK_VERSION-linux64.tar.gz \ + && ARCH=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ + && if [ "$ARCH" = "arm64" ]; then \ + GK_DOWNLOAD_URL="https://github.com/mozilla/geckodriver/releases/download/v$GK_VERSION/geckodriver-v$GK_VERSION-linux-aarch64.tar.gz" ; \ + else \ + GK_DOWNLOAD_URL="https://github.com/mozilla/geckodriver/releases/download/v$GK_VERSION/geckodriver-v$GK_VERSION-linux64.tar.gz" ; \ + fi \ + && wget --no-verbose -O /tmp/geckodriver.tar.gz $GK_DOWNLOAD_URL \ && rm -rf /opt/geckodriver \ && tar -C /opt -zxf /tmp/geckodriver.tar.gz \ && rm /tmp/geckodriver.tar.gz \ diff --git a/tests/SeleniumTests/__init__.py b/tests/SeleniumTests/__init__.py index fa95acefa..c74b0d98b 100644 --- a/tests/SeleniumTests/__init__.py +++ b/tests/SeleniumTests/__init__.py @@ -80,7 +80,7 @@ def test_download_file(self): if is_continue: file_link.click() wait.until( - lambda d: str(d.get_downloadable_files()[0]).endswith(file_name) + lambda d: len(d.get_downloadable_files()) > 0 and str(d.get_downloadable_files()[0]).endswith(file_name) ) self.assertTrue(str(driver.get_downloadable_files()[0]).endswith(file_name)) From e2db7fda2bdb23b765974d3bc2e1451b4fd42f74 Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Mon, 18 Dec 2023 09:33:48 +0100 Subject: [PATCH 096/100] attempt to build and test on Circle CI --- .circleci/config.yml | 435 ++++++++++++++++++++++++++ .github/workflows/build-test.yml | 4 + .github/workflows/helm-chart-test.yml | 4 + .github/workflows/test-video.yml | 4 + 4 files changed, 447 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..fa2b0ac97 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,435 @@ +# .circleci/config.yml +version: 2.1 + +executors: + ubuntu2204arm64: + machine: + image: ubuntu-2204:current + resource_class: arm-medium + ubuntu2204amd64: + machine: + image: ubuntu-2204:current + resource_class: medium + ubuntu2204arm64large: + machine: + image: ubuntu-2204:current + resource_class: arm-large + +jobs: + build-multi-arch: + parameters: + platforms: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: seleniarm + BUILD_DATE: today + steps: + - run: + name: "Prepare workflow environment variables" + command: | + echo 'export BRANCH="${CIRCLE_BRANCH//\//-}"' >> $BASH_ENV + cat $BASH_ENV + source $BASH_ENV + echo "Workflow environment variables:" + echo $BRANCH + - run: uname -a + - run: docker info + - checkout + - run: + name: "Build Docker images" + command: | + echo "Branch is $BRANCH" + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + NAME=${NAMESPACE} VERSION=${BRANCH}_${ARCH} BUILD_DATE=${BUILD_DATE} BUILD_ARGS=${BUILD_ARGS} make all_${ARCH} + - run: + name: "Inspect Docker Images" + command: | + VERSION=${CIRCLE_BRANCH//\//-} + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + export TAG=${VERSION}_${ARCH}-${BUILD_DATE} + echo "TAG is ${TAG}" + docker image inspect $NAMESPACE/base:$TAG + docker image inspect $NAMESPACE/node-base:$TAG + docker image inspect $NAMESPACE/hub:$TAG + docker image inspect $NAMESPACE/node-chromium:$TAG + docker image inspect $NAMESPACE/standalone-chromium:$TAG + docker image inspect $NAMESPACE/node-firefox:$TAG + docker image inspect $NAMESPACE/standalone-firefox:$TAG + if [ "${ARCH}" = "amd64" ]; then + docker image inspect $NAMESPACE/node-chrome:$TAG + docker image inspect $NAMESPACE/standalone-chrome:$TAG + docker image inspect $NAMESPACE/node-edge:$TAG + docker image inspect $NAMESPACE/standalone-edge:$TAG + fi + - run: + name: "Save Docker Images in Cache" + command: | + export VERSION=${CIRCLE_BRANCH//\//-} + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + export TAG=${VERSION}_${ARCH}-${BUILD_DATE} + mkdir images + echo "TAG is ${TAG}" + echo $NAMESPACE/base:$TAG + echo $NAMESPACE/node-base:$TAG + echo $NAMESPACE/hub:$TAG + echo $NAMESPACE/node-chromium:$TAG + echo $NAMESPACE/standalone-chromium:$TAG + echo $NAMESPACE/node-firefox:$TAG + echo $NAMESPACE/standalone-firefox:$TAG + if [ "${ARCH}" = "amd64" ]; then + echo $NAMESPACE/node-chrome:$TAG + echo $NAMESPACE/standalone-chrome:$TAG + echo $NAMESPACE/node-edge:$TAG + echo $NAMESPACE/standalone-edge:$TAG + fi + docker save -o images/${ARCH}.tar \ + $NAMESPACE/base:$TAG\ + $NAMESPACE/node-base:$TAG\ + $NAMESPACE/hub:$TAG\ + $NAMESPACE/node-chromium:$TAG\ + $NAMESPACE/standalone-chromium:$TAG\ + $NAMESPACE/node-firefox:$TAG\ + $NAMESPACE/standalone-firefox:$TAG\ + $(if [ "${ARCH}" = "amd64" ]; then echo "$NAMESPACE/node-chrome:$TAG $NAMESPACE/standalone-chrome:$TAG"; fi) \ + $(if [ "${ARCH}" = "amd64" ]; then echo "$NAMESPACE/node-edge:$TAG $NAMESPACE/standalone-edge:$TAG"; fi) + - save_cache: + key: multi-arch-images-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-<< parameters.platforms >> + paths: + - images + - store_artifacts: + path: images + + test-multi-arch: + parameters: + platforms: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: seleniarm + BUILD_DATE: today + steps: + - checkout + - restore_cache: + keys: + - multi-arch-images-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-<< parameters.platforms >> + - run: uname -a + - run: docker info + - run: + name: "Load built images from cache into Docker" + command: | + echo "CIRCLE_WORKFLOW_ID = " $CIRCLE_WORKFLOW_ID + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + docker load -i images/${ARCH}.tar + - run: + name: "Use Python3 and pip3 instead of Python2.7" + command: | + echo "Use Python3 and pip3 instead of Python2.7" + sed -i 's/pip /pip3 /g' tests/bootstrap.sh + sed -i 's/python /python3 /g' tests/bootstrap.sh + sed -i 's/-m pip3 /-m pip /g' tests/bootstrap.sh + - run: + name: "Test Docker images" + no_output_timeout: 2m + command: | + export USE_RANDOM_USER=false + export BRANCH=${CIRCLE_BRANCH//\//-} + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + USE_RANDOM_USER_ID=${USE_RANDOM_USER} NAMESPACE=${NAMESPACE} VERSION=${BRANCH}_${ARCH} BUILD_DATE=${BUILD_DATE} SKIP_BUILD=true make test_${ARCH} + + deploy-multi-arch: + parameters: + platforms: + type: string + build-args: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: seleniarm + PLATFORMS: << parameters.platforms >> + BUILD_ARGS: << parameters.build-args >> + DEPLOY_BRANCH: trunk + GITHUB_USER: seleniumhq-community + GITHUB_REPO: docker-seleniarm + steps: + - checkout + - run: + name: "Prepare workflow environment variables" + command: | + export SELENIUM_VERSION=$(grep selenium-server Base/Dockerfile | sed 's/.*-\([^-]*\)\.jar \\/\1/' | head -n 1) + echo "Prepare workflow environment variables" + echo 'export BRANCH='$SELENIUM_VERSION >> $BASH_ENV + echo 'export BUILD_DATE=$(date '+%Y%m%d')' >> $BASH_ENV + echo 'export RELEASE_TAG="seleniarm-v`echo $BRANCH`-`echo $BUILD_DATE`"' >> $BASH_ENV + source $BASH_ENV + echo "Workflow environment variables:" + echo BRANCH="$BRANCH" + echo BUILD_DATE="$BUILD_DATE" + echo RELEASE_TAG="$RELEASE_TAG" + echo NAMESPACE="$NAMESPACE" + echo PLATFORMS="$PLATFORMS" + echo BUILD_ARGS="$BUILD_ARGS" + echo DEPLOY_BRANCH="$DEPLOY_BRANCH" + echo GITHUB_USER="$GITHUB_USER" + echo GITHUB_REPO="$GITHUB_REPO" + - run: uname -a + - run: docker info + - run: + name: "Check if branch is deployable (contains [deploy] in commit msg on $DEPLOY_BRANCH" + command: | + echo BRANCH="$BRANCH" + echo BUILD_DATE="$BUILD_DATE" + echo RELEASE_TAG="$RELEASE_TAG" + export CI_DEPLOY=`git log --format=oneline -n 1 | grep '\[deploy\]'` && echo "$CI_DEPLOY" + if [ -z "$CI_DEPLOY" ] || [ "$CIRCLE_BRANCH" != "$DEPLOY_BRANCH" ]; then + echo "Cancelling run. Pass [deploy] in commit message on $DEPLOY_BRANCH to deploy" + circleci-agent step halt + else + echo "[deploy] is present in commit message to $DEPLOY_BRANCH. Running workflow to deploy container images" + fi + - run: + name: "Build and Push Docker images" + command: | + echo "Login to Docker, and setup to use a buildx builder and push built multi-arch images" + docker buildx use `docker buildx create` + docker buildx ls + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + echo BRANCH="$BRANCH" + echo BUILD_DATE="$BUILD_DATE" + echo RELEASE_TAG="$RELEASE_TAG" + export CI_DEPLOY=`git log --format=oneline -n 1 | grep '\[deploy\]'` && echo "$CI_DEPLOY" + NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PLATFORMS=${PLATFORMS} BUILD_ARGS=${BUILD_ARGS} make build_multi + - run: + name: "Tag browser images and update latest tag" + command: | + NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PUSH_IMAGE=true make tag_and_push_multi_arch_browser_images + NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make tag_multi_arch_latest + - run: + name: "Generate release notes" + command: | + export LATEST_TAG=$(git describe --tags --abbrev=0) + sh generate_multi-arch-release_notes.sh $LATEST_TAG $CIRCLE_BRANCH $BRANCH $BUILD_DATE + sudo apt-get update -y && sudo apt-get install python3-venv + go install github.com/github-release/github-release@v0.10.0 + cat release_notes.md + export GITHUB_TOKEN=$(sh get-access-token.sh | tail -n 1) + github-release release --tag $RELEASE_TAG --name $RELEASE_TAG --description "`cat release_notes.md`" + + deploy-multi-arch-full-grid: + parameters: + platforms: + type: string + build-args: + type: string + machine-type: + type: executor + circle-job: + type: env_var_name + default: CIRCLE_JOB + make-targets: + type: string + executor: << parameters.machine-type >> + environment: + NAMESPACE: seleniarm + PLATFORMS: << parameters.platforms >> + BUILD_ARGS: << parameters.build-args >> + MAKE_TARGETS: << parameters.make-targets >> + DEPLOY_BRANCH: trunk + GITHUB_USER: seleniumhq-community + GITHUB_REPO: docker-seleniarm + steps: + - checkout + - run: + name: Debug + command: | + echo $CIRCLE_JOB + echo ${<< parameters.circle-job >>} + - when: + condition: + equal: [ base_multi, << parameters.make-targets >> ] + steps: + - run: echo "CIRCLE_JOB name is deploy-multi-arch-base" + - when: + condition: + equal: [ tag_and_push_multi_arch_browser_images, << parameters.make-targets >> ] + steps: + - run: echo "CIRCLE_JOB name is release notes, so we proceed" + - run: + name: "Prepare workflow environment variables" + command: | + export SELENIUM_VERSION=$(grep selenium-server Base/Dockerfile | sed 's/.*-\([^-]*\)\.jar \\/\1/' | head -n 1) + echo "Prepare workflow environment variables" + echo 'export BRANCH='$SELENIUM_VERSION >> $BASH_ENV + echo 'export BUILD_DATE=$(date '+%Y%m%d')' >> $BASH_ENV + #echo 'export BUILD_DATE=20230110' >> $BASH_ENV + echo 'export RELEASE_TAG="seleniarm-v`echo $BRANCH`-`echo $BUILD_DATE`"' >> $BASH_ENV + source $BASH_ENV + echo "Workflow environment variables:" + echo BRANCH="$BRANCH" + echo BUILD_DATE="$BUILD_DATE" + echo RELEASE_TAG="$RELEASE_TAG" + echo NAMESPACE="$NAMESPACE" + echo PLATFORMS="$PLATFORMS" + echo BUILD_ARGS="$BUILD_ARGS" + echo DEPLOY_BRANCH="$DEPLOY_BRANCH" + echo GITHUB_USER="$GITHUB_USER" + echo GITHUB_REPO="$GITHUB_REPO" + - run: uname -a + - run: docker info + - run: + name: "Check if branch is deployable (contains [deploy] in commit msg on $DEPLOY_BRANCH" + command: | + echo BRANCH="$BRANCH" + echo BUILD_DATE="$BUILD_DATE" + echo RELEASE_TAG="$RELEASE_TAG" + export CI_DEPLOY=`git log --format=oneline -n 1 | grep '\[deploy\]'` && echo "$CI_DEPLOY" + if [ -z "$CI_DEPLOY" ] || [ "$CIRCLE_BRANCH" != "$DEPLOY_BRANCH" ]; then + echo "Cancelling run. Pass [deploy] in commit message on $DEPLOY_BRANCH to deploy" + circleci-agent step halt + else + echo "[deploy] is present in commit message to $DEPLOY_BRANCH. Running workflow to deploy container images" + fi + - run: + name: "Build and Push Docker images" + command: | + echo "Login to Docker, and setup to use a buildx builder and push built multi-arch images" + docker buildx use `docker buildx create` + docker buildx ls + # For release notes, we'll pull images anonymously without login. + # if [ "$MAKE_TARGETS" != "tag_and_push_multi_arch_browser_images" ]; then + docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + # fi + echo BRANCH="$BRANCH" + echo BUILD_DATE="$BUILD_DATE" + echo RELEASE_TAG="$RELEASE_TAG" + export CI_DEPLOY=`git log --format=oneline -n 1 | grep '\[deploy\]'` && echo "$CI_DEPLOY" + #NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PLATFORMS=${PLATFORMS} BUILD_ARGS=${BUILD_ARGS} sh build-and-push.sh $MAKE_TARGETS + + export NAME=${NAMESPACE} + export VERSION=${BRANCH} + export BUILD_DATE=${BUILD_DATE} + export PLATFORMS=${PLATFORMS} + export BUILD_ARGS=${BUILD_ARGS} + # If there are build errors, let's retry + max=5; until sh build-and-push.sh $MAKE_TARGETS; do if [ $((--max)) = 0 ]; then echo Giving up; break; fi; done + + - when: + condition: + equal: [ tag_and_push_multi_arch_browser_images, << parameters.make-targets >> ] + steps: + - run: + name: "Push major/minor and browser tags to Docker Hub and update latest tag" + command: | + NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PUSH_IMAGE=true make tag_and_push_multi_arch_browser_images + NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make tag_multi_arch_latest + - run: + name: "Push major/minor tags to Docker Hub for non-browser images" + command: | + NAME=${NAMESPACE} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} PUSH_IMAGE=true make tag_major_minor_multi_arch + - run: + name: "Generate release notes" + command: | + docker logout + export LATEST_TAG=$(git describe --tags --abbrev=0) + sh generate_multi-arch-release_notes.sh $LATEST_TAG $CIRCLE_BRANCH $BRANCH $BUILD_DATE + sudo apt-get update -y && sudo apt-get install python3-venv + go install github.com/github-release/github-release@v0.10.0 + cat release_notes.md + export GITHUB_TOKEN=$(sh get-access-token.sh | tail -n 1) + github-release release --tag $RELEASE_TAG --name $RELEASE_TAG --description "`cat release_notes.md`" + +workflows: + build-and-test-multi-arch: + jobs: + - build-multi-arch: + name: build-multi-arch-arm64 + platforms: linux/arm64 + machine-type: ubuntu2204arm64 + - build-multi-arch: + name: build-multi-arch-amd64 + platforms: linux/amd64 + machine-type: ubuntu2204amd64 + - test-multi-arch: + name: test-multi-arch-arm64 + requires: [build-multi-arch-arm64] + platforms: linux/arm64 + machine-type: ubuntu2204arm64 + - test-multi-arch: + name: test-multi-arch-amd64 + requires: [build-multi-arch-amd64] + platforms: linux/amd64 + machine-type: ubuntu2204amd64 + + deploy-multi-arch-full-grid: + jobs: + - deploy-multi-arch-full-grid: + name: deploy-multi-arch-base + platforms: linux/arm64,linux/amd64,linux/arm/v7 + build-args: --push + make-targets: base_multi + machine-type: ubuntu2204arm64large + filters: + branches: + only: + - trunk + - deploy-multi-arch-full-grid: + name: deploy-multi-arch-full-grid + requires: [deploy-multi-arch-base] + platforms: linux/arm64,linux/amd64,linux/arm/v7 + build-args: --push + make-targets: grid_multi + machine-type: ubuntu2204arm64 + filters: + branches: + only: + - trunk + - deploy-multi-arch-full-grid: + name: deploy-multi-arch-node-base + requires: [deploy-multi-arch-base] + platforms: linux/arm64,linux/amd64,linux/arm/v7 + build-args: --push + make-targets: node_base_multi + machine-type: ubuntu2204arm64large + filters: + branches: + only: + - trunk + - deploy-multi-arch-full-grid: + name: deploy-multi-arch-firefox + requires: [deploy-multi-arch-node-base] + platforms: linux/arm64,linux/amd64,linux/arm/v7 + build-args: --push + make-targets: firefox_multi + machine-type: ubuntu2204arm64large + filters: + branches: + only: + - trunk + - deploy-multi-arch-full-grid: + name: deploy-multi-arch-chromium + requires: [deploy-multi-arch-node-base] + platforms: linux/arm64,linux/amd64,linux/arm/v7 + build-args: --push + make-targets: chromium_multi + machine-type: ubuntu2204arm64large + filters: + branches: + only: + - trunk + - deploy-multi-arch-full-grid: + name: deploy-multi-arch-release-notes + requires: [deploy-multi-arch-firefox,deploy-multi-arch-chromium] + platforms: linux/arm64,linux/amd64,linux/arm/v7 + build-args: --push + make-targets: tag_and_push_multi_arch_browser_images + machine-type: ubuntu2204arm64 + filters: + branches: + only: + - trunk diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index b40db3af6..63b94252c 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -2,7 +2,11 @@ name: Build & test on: push: + paths-ignore: + - '.circleci/**' pull_request: + paths-ignore: + - '.circleci/**' permissions: contents: read diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 887e6b5da..6bd18a4ec 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -2,7 +2,11 @@ name: Lint and Test Helm Charts on: push: + paths-ignore: + - '.circleci/**' pull_request: + paths-ignore: + - '.circleci/**' workflow_dispatch: permissions: diff --git a/.github/workflows/test-video.yml b/.github/workflows/test-video.yml index 22ce2e4ab..4982447f5 100644 --- a/.github/workflows/test-video.yml +++ b/.github/workflows/test-video.yml @@ -2,7 +2,11 @@ name: Test video files on: push: + paths-ignore: + - '.circleci/**' pull_request: + paths-ignore: + - '.circleci/**' permissions: contents: read From 0773a105d95156b9ffef3711a692f0f10dff4757 Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Mon, 18 Dec 2023 10:16:22 +0100 Subject: [PATCH 097/100] first step to create manifests --- .circleci/config.yml | 104 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index fa2b0ac97..d18785251 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -141,6 +141,96 @@ jobs: ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') USE_RANDOM_USER_ID=${USE_RANDOM_USER} NAMESPACE=${NAMESPACE} VERSION=${BRANCH}_${ARCH} BUILD_DATE=${BUILD_DATE} SKIP_BUILD=true make test_${ARCH} + manifest-multi-arch: + parameters: + image-name: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: seleniarm + BUILD_DATE: today + steps: + - checkout + - restore_cache: + keys: + - multi-arch-images-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-linux/arm64 + - restore_cache: + keys: + - multi-arch-images-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-linux/amd64 + - run: uname -a + - run: docker info + - run: + name: "Load built images from cache into Docker" + command: | + echo "CIRCLE_WORKFLOW_ID = " $CIRCLE_WORKFLOW_ID + docker load -i images/arm64.tar + docker load -i images/amd64.tar + - run: + name: "Create manifest" + command: | + export VERSION=${CIRCLE_BRANCH//\//-} + export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + export MANIFEST_TAG=${VERSION}-${BUILD_DATE} + export ARM_TAG=${VERSION}_arm64-${BUILD_DATE} + export AMD_TAG=${VERSION}_amd64-${BUILD_DATE} + echo "Creating ${IMAGE_NAME}:${MANIFEST_TAG} based on ${IMAGE_NAME}:${ARM_TAG} and ${IMAGE_NAME}:${AMD_TAG}" + echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin + docker push ${IMAGE_NAME}:${ARM_TAG} + docker push ${IMAGE_NAME}:${AMD_TAG} + docker manifest create ${IMAGE_NAME}:${MANIFEST_TAG} ${IMAGE_NAME}:${ARM_TAG} ${IMAGE_NAME}:${AMD_TAG} + docker manifest push ${IMAGE_NAME}:${MANIFEST_TAG} + - run: + name: "Inspect manifest" + command: | + export VERSION=${CIRCLE_BRANCH//\//-} + export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + export MANIFEST_TAG=${VERSION}-${BUILD_DATE} + docker manifest inspect ${IMAGE_NAME}:${MANIFEST_TAG} + + manifest-amd-only-arch: + parameters: + image-name: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: seleniarm + BUILD_DATE: today + steps: + - checkout + - restore_cache: + keys: + - multi-arch-images-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-linux/amd64 + - run: uname -a + - run: docker info + - run: + name: "Load built images from cache into Docker" + command: | + echo "CIRCLE_WORKFLOW_ID = " $CIRCLE_WORKFLOW_ID + docker load -i images/amd64.tar + - run: + name: "Create manifest" + command: | + export VERSION=${CIRCLE_BRANCH//\//-} + export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + export MANIFEST_TAG=${VERSION}-${BUILD_DATE} + export AMD_TAG=${VERSION}_amd64-${BUILD_DATE} + echo "Creating ${IMAGE_NAME}:${MANIFEST_TAG} based on ${IMAGE_NAME}:${AMD_TAG}" + echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin + docker push ${IMAGE_NAME}:${AMD_TAG} + docker manifest create ${IMAGE_NAME}:${MANIFEST_TAG} ${IMAGE_NAME}:${AMD_TAG} + docker manifest push ${IMAGE_NAME}:${MANIFEST_TAG} + - run: + name: "Inspect manifest" + command: | + export VERSION=${CIRCLE_BRANCH//\//-} + export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + export MANIFEST_TAG=${VERSION}-${BUILD_DATE} + docker manifest inspect ${IMAGE_NAME}:${MANIFEST_TAG} + deploy-multi-arch: parameters: platforms: @@ -365,6 +455,20 @@ workflows: requires: [build-multi-arch-amd64] platforms: linux/amd64 machine-type: ubuntu2204amd64 + - manifest-multi-arch: + name: manifest-multi-arch-<< matrix.image-name >> + requires: [test-multi-arch-arm64, test-multi-arch-amd64] + machine-type: ubuntu2204amd64 + matrix: + parameters: + image-name: [ base, node-base, hub, node-chromium, standalone-chromium, node-firefox, standalone-firefox ] + - manifest-amd-only-arch: + name: manifest-amd-arch-<< matrix.image-name >> + requires: [test-multi-arch-amd64] + machine-type: ubuntu2204amd64 + matrix: + parameters: + image-name: [ node-chrome, standalone-chrome, node-edge, standalone-edge ] deploy-multi-arch-full-grid: jobs: From b4db2cb862d9ea0143ca3aae2433f3aa9a44cd80 Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Tue, 19 Dec 2023 09:25:51 +0100 Subject: [PATCH 098/100] image to separate repo instead of tag --- .circleci/config.yml | 52 +++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d18785251..5d4ba8a5f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -170,23 +170,28 @@ jobs: - run: name: "Create manifest" command: | - export VERSION=${CIRCLE_BRANCH//\//-} - export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> - export MANIFEST_TAG=${VERSION}-${BUILD_DATE} - export ARM_TAG=${VERSION}_arm64-${BUILD_DATE} - export AMD_TAG=${VERSION}_amd64-${BUILD_DATE} + VERSION=${CIRCLE_BRANCH//\//-} + IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + MANIFEST_TAG=${VERSION}-${BUILD_DATE} + ARM_TAG=${VERSION}_arm64-${BUILD_DATE} + AMD_TAG=${VERSION}_amd64-${BUILD_DATE} echo "Creating ${IMAGE_NAME}:${MANIFEST_TAG} based on ${IMAGE_NAME}:${ARM_TAG} and ${IMAGE_NAME}:${AMD_TAG}" + MANIFEST_IMAGE=${IMAGE_NAME}:${MANIFEST_TAG} + ARM_IMAGE=${IMAGE_NAME}_arm64:${MANIFEST_TAG} + AMD_IMAGE=${IMAGE_NAME}_amd64:${MANIFEST_TAG} + docker tag ${IMAGE_NAME}:${ARM_TAG} ${ARM_IMAGE} + docker tag ${IMAGE_NAME}:${AMD_TAG} ${AMD_IMAGE} echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin - docker push ${IMAGE_NAME}:${ARM_TAG} - docker push ${IMAGE_NAME}:${AMD_TAG} - docker manifest create ${IMAGE_NAME}:${MANIFEST_TAG} ${IMAGE_NAME}:${ARM_TAG} ${IMAGE_NAME}:${AMD_TAG} - docker manifest push ${IMAGE_NAME}:${MANIFEST_TAG} + docker push ${ARM_IMAGE} + docker push ${AMD_IMAGE} + docker manifest create ${MANIFEST_IMAGE} ${ARM_IMAGE} ${AMD_IMAGE} + docker manifest push ${MANIFEST_IMAGE} - run: name: "Inspect manifest" command: | - export VERSION=${CIRCLE_BRANCH//\//-} - export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> - export MANIFEST_TAG=${VERSION}-${BUILD_DATE} + VERSION=${CIRCLE_BRANCH//\//-} + IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + MANIFEST_TAG=${VERSION}-${BUILD_DATE} docker manifest inspect ${IMAGE_NAME}:${MANIFEST_TAG} manifest-amd-only-arch: @@ -214,21 +219,24 @@ jobs: - run: name: "Create manifest" command: | - export VERSION=${CIRCLE_BRANCH//\//-} - export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> - export MANIFEST_TAG=${VERSION}-${BUILD_DATE} - export AMD_TAG=${VERSION}_amd64-${BUILD_DATE} + VERSION=${CIRCLE_BRANCH//\//-} + IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + MANIFEST_TAG=${VERSION}-${BUILD_DATE} + AMD_TAG=${VERSION}_amd64-${BUILD_DATE} echo "Creating ${IMAGE_NAME}:${MANIFEST_TAG} based on ${IMAGE_NAME}:${AMD_TAG}" + MANIFEST_IMAGE=${IMAGE_NAME}:${MANIFEST_TAG} + AMD_IMAGE=${IMAGE_NAME}_amd64:${MANIFEST_TAG} + docker tag ${IMAGE_NAME}:${AMD_TAG} ${AMD_IMAGE} echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin - docker push ${IMAGE_NAME}:${AMD_TAG} - docker manifest create ${IMAGE_NAME}:${MANIFEST_TAG} ${IMAGE_NAME}:${AMD_TAG} - docker manifest push ${IMAGE_NAME}:${MANIFEST_TAG} + docker push ${AMD_IMAGE} + docker manifest create ${MANIFEST_IMAGE} ${AMD_IMAGE} + docker manifest push ${MANIFEST_IMAGE} - run: name: "Inspect manifest" command: | - export VERSION=${CIRCLE_BRANCH//\//-} - export IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> - export MANIFEST_TAG=${VERSION}-${BUILD_DATE} + VERSION=${CIRCLE_BRANCH//\//-} + IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + MANIFEST_TAG=${VERSION}-${BUILD_DATE} docker manifest inspect ${IMAGE_NAME}:${MANIFEST_TAG} deploy-multi-arch: From 940292469b6841b01d0c30aca9682d1ce5188080 Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Tue, 19 Dec 2023 13:34:43 +0100 Subject: [PATCH 099/100] use namespace from makefile when testing video --- Makefile | 1 + tests/docker-compose-v3-test-video.yml | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 4587d978c..01f320233 100644 --- a/Makefile +++ b/Makefile @@ -403,6 +403,7 @@ test_video: video hub chrome firefox edge chromium cd ./tests || true ; \ echo VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) > .env ; \ echo TAG=$(TAG_VERSION) >> .env ; \ + echo NAME=$(NAME) >> .env ; \ echo NODE=$$node >> .env ; \ if [ $$node = "NodeChrome" ] ; then \ echo BROWSER=chrome >> .env ; \ diff --git a/tests/docker-compose-v3-test-video.yml b/tests/docker-compose-v3-test-video.yml index bbfb6f6ab..dd07a4b98 100644 --- a/tests/docker-compose-v3-test-video.yml +++ b/tests/docker-compose-v3-test-video.yml @@ -4,7 +4,7 @@ version: "3" services: browser: - image: selenium/node-${BROWSER}:${TAG} + image: ${NAME}/node-${BROWSER}:${TAG} shm_size: 2gb depends_on: - selenium-hub @@ -17,7 +17,7 @@ services: - "6900:5900" browser_video: - image: selenium/video:${VIDEO_TAG} + image: ${NAME}/video:${VIDEO_TAG} volumes: - ./videos:/videos depends_on: @@ -27,7 +27,7 @@ services: - FILE_NAME=${VIDEO_FILE_NAME} selenium-hub: - image: selenium/hub:${TAG} + image: ${NAME}/hub:${TAG} container_name: selenium-hub ports: - "4442:4442" From b2723b0a36e4a7ee12c89e169a7ff440e15ee47c Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Tue, 19 Dec 2023 12:25:19 +0100 Subject: [PATCH 100/100] add video workflow --- .circleci/config.yml | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5d4ba8a5f..6d1529358 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -141,6 +141,63 @@ jobs: ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') USE_RANDOM_USER_ID=${USE_RANDOM_USER} NAMESPACE=${NAMESPACE} VERSION=${BRANCH}_${ARCH} BUILD_DATE=${BUILD_DATE} SKIP_BUILD=true make test_${ARCH} + test-video: + parameters: + platforms: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: fhoeben + BUILD_DATE: today + steps: + - checkout + - run: uname -a + - run: docker info + - run: + name: "Use Python3 and pip3 instead of Python2.7" + command: | + echo "Use Python3 and pip3 instead of Python2.7" + sed -i 's/pip /pip3 /g' tests/bootstrap.sh + sed -i 's/python /python3 /g' tests/bootstrap.sh + sed -i 's/-m pip3 /-m pip /g' tests/bootstrap.sh + - run: + name: "Test and Build Docker images" + no_output_timeout: 2m + command: | + export USE_RANDOM_USER=false + export BRANCH=${CIRCLE_BRANCH//\//-} + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + NAME=${NAMESPACE} USE_RANDOM_USER_ID=${USE_RANDOM_USER} NAMESPACE=${NAMESPACE} FFMPEG_TAG_VERSION=${BRANCH}_${ARCH} VERSION=${BRANCH}_${ARCH} BUILD_DATE=${BUILD_DATE} make test_video + - store_artifacts: + path: tests/videos + - run: + name: "Inspect Docker Images" + command: | + VERSION=${CIRCLE_BRANCH//\//-} + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + export TAG=${VERSION}_${ARCH}-${BUILD_DATE} + echo "TAG is ${TAG}" + docker image inspect $NAMESPACE/video:$TAG + - run: + name: "Save Docker Image in Cache" + command: | + export VERSION=${CIRCLE_BRANCH//\//-} + ARCH=$(echo << parameters.platforms >> | sed 's/linux\///') + export TAG=${VERSION}_${ARCH}-${BUILD_DATE} + mkdir images + echo "TAG is ${TAG}" + echo $NAMESPACE/video:$TAG + docker save -o images/video.tar \ + $NAMESPACE/video:$TAG + - save_cache: + key: video-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-<< parameters.platforms >> + paths: + - images + - store_artifacts: + path: images + manifest-multi-arch: parameters: image-name: @@ -239,6 +296,51 @@ jobs: MANIFEST_TAG=${VERSION}-${BUILD_DATE} docker manifest inspect ${IMAGE_NAME}:${MANIFEST_TAG} + manifest-amd-image: + parameters: + image-name: + type: string + machine-type: + type: executor + executor: << parameters.machine-type >> + environment: + NAMESPACE: fhoeben + BUILD_DATE: today + steps: + - checkout + - restore_cache: + keys: + - << parameters.image-name >>-{{ .Branch }}-{{ .Environment.CIRCLE_WORKFLOW_ID }}-linux/amd64 + - run: uname -a + - run: docker info + - run: + name: "Load built images from cache into Docker" + command: | + echo "CIRCLE_WORKFLOW_ID = " $CIRCLE_WORKFLOW_ID + docker load -i images/<< parameters.image-name >>.tar + - run: + name: "Create manifest" + command: | + VERSION=${CIRCLE_BRANCH//\//-} + IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + MANIFEST_TAG=${VERSION}-${BUILD_DATE} + AMD_TAG=${VERSION}_amd64-${BUILD_DATE} + echo "Creating ${IMAGE_NAME}:${MANIFEST_TAG} based on ${IMAGE_NAME}:${AMD_TAG}" + MANIFEST_IMAGE=${IMAGE_NAME}:${MANIFEST_TAG} + AMD_IMAGE=${IMAGE_NAME}_amd64:${MANIFEST_TAG} + docker tag ${IMAGE_NAME}:${AMD_TAG} ${AMD_IMAGE} + echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin + docker push ${AMD_IMAGE} + docker manifest create ${MANIFEST_IMAGE} ${AMD_IMAGE} + docker manifest push ${MANIFEST_IMAGE} + - run: + name: "Inspect manifest" + command: | + VERSION=${CIRCLE_BRANCH//\//-} + IMAGE_NAME=$NAMESPACE/<< parameters.image-name >> + MANIFEST_TAG=${VERSION}-${BUILD_DATE} + docker manifest inspect ${IMAGE_NAME}:${MANIFEST_TAG} + deploy-multi-arch: parameters: platforms: @@ -478,6 +580,18 @@ workflows: parameters: image-name: [ node-chrome, standalone-chrome, node-edge, standalone-edge ] + build-and-test-video: + jobs: + - test-video: + name: test-video-amd64 + platforms: linux/amd64 + machine-type: ubuntu2204amd64 + - manifest-amd-image: + name: manifest-video-amd64 + requires: [test-video-amd64] + machine-type: ubuntu2204amd64 + image-name: video + deploy-multi-arch-full-grid: jobs: - deploy-multi-arch-full-grid: