Skip to content

Commit dc3f59d

Browse files
committed
[ci] Update tag 4.29.0-20250222 in docs and files
[skip test]
1 parent 88dc13e commit dc3f59d

31 files changed

+397
-350
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ body:
5656
attributes:
5757
label: Docker Selenium version (image tag)
5858
description: What version of Docker Selenium are you using?
59-
placeholder: 4.28.1-20250202? Please use the full tag, avoid "latest"
59+
placeholder: 4.29.0-20250222? Please use the full tag, avoid "latest"
6060
validations:
6161
required: true
6262
- type: input

.github/workflows/release-chrome-versions.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: 'Build date in format YYYYMMDD. Must provide if reusing base image'
2323
required: false
2424
type: string
25-
default: '20250202'
25+
default: '20250222'
2626
browser-name:
2727
description: 'Browser name to build. E.g: chrome'
2828
required: true

.github/workflows/release-edge-versions.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: 'Build date in format YYYYMMDD. Must provide if reusing base image'
2323
required: false
2424
type: string
25-
default: '20250202'
25+
default: '20250222'
2626
browser-name:
2727
description: 'Browser name to build. E.g: edge'
2828
required: true

.github/workflows/release-firefox-versions.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: 'Build date in format YYYYMMDD. Must provide if reusing base image'
2323
required: false
2424
type: string
25-
default: '20250202'
25+
default: '20250222'
2626
browser-name:
2727
description: 'Browser name to build. E.g: firefox'
2828
required: true

.keda/README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ The stable implementation will be merged to the upstream KEDA repository frequen
1313
Replace the image registry and tag of these KEDA components with the patched image tag:
1414

1515
```bash
16-
docker pull selenium/keda:2.16.1-selenium-grid-20250202
17-
docker pull selenium/keda-metrics-apiserver:2.16.1-selenium-grid-20250202
18-
docker pull selenium/keda-admission-webhooks:2.16.1-selenium-grid-20250202
16+
docker pull selenium/keda:2.16.1-selenium-grid-20250222
17+
docker pull selenium/keda-metrics-apiserver:2.16.1-selenium-grid-20250222
18+
docker pull selenium/keda-admission-webhooks:2.16.1-selenium-grid-20250222
1919
```
2020

2121
Besides that, you also can use image tag `latest` or `nightly`.
@@ -27,15 +27,15 @@ If you are deploying KEDA core using their official Helm [chart](https://github.
2727
keda:
2828
registry: selenium
2929
repository: keda
30-
tag: "2.16.1-selenium-grid-20250202"
30+
tag: "2.16.1-selenium-grid-20250222"
3131
metricsApiServer:
3232
registry: selenium
3333
repository: keda-metrics-apiserver
34-
tag: "2.16.1-selenium-grid-20250202"
34+
tag: "2.16.1-selenium-grid-20250222"
3535
webhooks:
3636
registry: selenium
3737
repository: keda-admission-webhooks
38-
tag: "2.16.1-selenium-grid-20250202"
38+
tag: "2.16.1-selenium-grid-20250222"
3939
```
4040
4141
If you are deployment Selenium Grid chart with `autoscaling.enabled` is `true` (implies installing KEDA sub-chart), KEDA images registry and tag already set in the `values.yaml`. Refer to list [configuration](../charts/selenium-grid/CONFIGURATION.md).

.keda/scalers/selenium-grid-scaler.md

+102-55
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ triggers:
2525
platformName: '' # Optional.
2626
unsafeSsl: 'false' # Optional.
2727
activationThreshold: 0 # Optional.
28+
nodeMaxSessions: 1 # Optional.
29+
capabilities: '' # Optional.
2830
```
2931
3032
**Parameter list:**
@@ -37,7 +39,7 @@ triggers:
3739
- `activationThreshold` - Target value for activating the scaler. Learn more about activation [here](./../concepts/scaling-deployments.md#activating-and-scaling-thresholds). (Default: `0`, Optional)
3840
- `platformName` - Name of the browser platform. Refer to the [Selenium Grid's](https://www.selenium.dev/documentation/en/getting_started_with_webdriver/browsers/) and [WebdriverIO's](https://webdriver.io/docs/options/#capabilities) documentation for more info. (Optional)
3941
- `nodeMaxSessions` - Number of maximum sessions that can run in parallel on a Node. Update this parameter align with node config `--max-sessions` (`SE_NODE_MAX_SESSIONS`) to have the correct scaling behavior. (Default: `1`, Optional).
40-
- `capabilities` - Add more custom capabilities for matching specific Nodes. (Optional)
42+
- `capabilities` - Add more custom capabilities for matching specific Nodes. It should be in JSON string, see [example](https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes) (Optional)
4143

4244
**Trigger Authentication**
4345
- `username` - Username for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)
@@ -47,6 +49,9 @@ triggers:
4749

4850
### Example
4951

52+
---
53+
#### Selenium Grid scaler trigger metadata for Chrome browser with `platformNane` and empty `browserVersion`
54+
5055
Here is a full example of scaled object definition using Selenium Grid trigger:
5156

5257
```yaml
@@ -125,7 +130,7 @@ With above script, the request is sent to Grid. Via GraphQL response, it looks l
125130
}
126131
```
127132

128-
In Node deployment spec, there is environment variable `SE_NODE_BROWSER_VERSION` which is set to empty. This is used to unset `browserVersion` in Node stereotypes (it is in project [docker-selenium](https://github.com/SeleniumHQ/docker-selenium) setting short browser build number by default), which is expected to match with the request capabilities in queue and scaler trigger metadata.
133+
In Node deployment spec, there is environment variable `SE_NODE_BROWSER_VERSION` which can be set to empty. This is used to unset `browserVersion` in Node stereotypes (it is in project [docker-selenium](https://github.com/SeleniumHQ/docker-selenium) setting short browser build number by default), which is expected to match with the request capabilities in queue and scaler trigger metadata.
129134

130135
When the request capabilities match with scaler trigger metadata, the scaler will create a new Node and connect to the Hub. Now the GraphQL response looks like
131136

@@ -161,6 +166,9 @@ When the request capabilities match with scaler trigger metadata, the scaler wil
161166

162167
Now, the request can be picked up by the Node and the session is created. Session queue will be cleared and the scaler will not create a new Node until the next request comes in.
163168

169+
---
170+
#### Selenium Grid scaler trigger metadata for Chrome browser with `browserVersion` and `platformName`
171+
164172
Moreover, at the same time, you can create one more scaled object for Chrome browser request with specific `browserVersion`. For example
165173

166174
```yaml
@@ -178,6 +186,11 @@ spec:
178186
image: selenium/node-chrome:131.0
179187
ports:
180188
- containerPort: 5555
189+
env:
190+
- name: SE_NODE_BROWSER_VERSION
191+
value: '131.0'
192+
- name: SE_NODE_PLATFORM_NAME
193+
value: 'Linux'
181194
182195
---
183196
@@ -211,6 +224,9 @@ options.set_capability('browserVersion', '131.0')
211224
driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
212225
```
213226

227+
---
228+
#### Selenium Grid scaler trigger metadata with extra `capabilities`
229+
214230
For an advanced use case, you also can set custom capabilities for matching specific Nodes in the scaler trigger metadata. For example
215231

216232
```yaml
@@ -227,15 +243,15 @@ spec:
227243
- name: selenium-node-chrome
228244
image: selenium/node-chrome:132.0
229245
ports:
230-
- containerPort: 5555
246+
- containerPort: 5555
231247
env:
232-
- name: SE_NODE_BROWSER_VERSION
233-
value: '132.0'
234-
- name: SE_NODE_PLATFORM_NAME
235-
value: 'Linux'
236-
# Append custom capabilities to Node stereotype. See: https://github.com/SeleniumHQ/docker-selenium?tab=readme-ov-file#node-configuration-options
237-
- name: SE_NODE_STEREOTYPE_EXTRA
238-
value: "{\"myApp:version\":\"beta\", \"myApp:publish:\":\"public\"}"
248+
- name: SE_NODE_BROWSER_VERSION
249+
value: '132.0'
250+
- name: SE_NODE_PLATFORM_NAME
251+
value: 'Linux'
252+
# Append custom capabilities to Node stereotype. See: https://github.com/SeleniumHQ/docker-selenium?tab=readme-ov-file#node-configuration-options
253+
- name: SE_NODE_STEREOTYPE_EXTRA
254+
value: "{\"myApp:version\":\"beta\", \"myApp:publish:\":\"public\"}"
239255
240256
---
241257
@@ -274,9 +290,32 @@ options.set_capability('myApp:publish', 'public')
274290
driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
275291
```
276292

277-
Similarly, for Firefox
293+
---
294+
#### Selenium Grid scaler trigger metadata for Firefox browser
278295

279296
```yaml
297+
kind: Deployment
298+
metadata:
299+
name: selenium-node-firefox
300+
labels:
301+
deploymentName: selenium-node-firefox
302+
spec:
303+
replicas: 1
304+
template:
305+
spec:
306+
containers:
307+
- name: selenium-node-firefox
308+
image: selenium/node-firefox:latest
309+
ports:
310+
- containerPort: 5555
311+
env:
312+
- name: SE_NODE_BROWSER_VERSION
313+
value: ''
314+
- name: SE_NODE_PLATFORM_NAME
315+
value: 'Linux'
316+
317+
---
318+
280319
apiVersion: keda.sh/v1alpha1
281320
kind: ScaledObject
282321
metadata:
@@ -305,9 +344,34 @@ options.set_capability('platformName', 'Linux')
305344
driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
306345
```
307346

347+
---
348+
#### Selenium Grid scaler trigger metadata for Edge browser
349+
308350
Similarly, for Edge. Note that for Edge you must set the `sessionBrowserName` to `msedge` inorder for scaling to work properly.
309351

310352
```yaml
353+
kind: Deployment
354+
metadata:
355+
name: selenium-node-edge
356+
labels:
357+
deploymentName: selenium-node-edge
358+
spec:
359+
replicas: 1
360+
template:
361+
spec:
362+
containers:
363+
- name: selenium-node-edge
364+
image: selenium/node-edge:latest
365+
ports:
366+
- containerPort: 5555
367+
env:
368+
- name: SE_NODE_BROWSER_VERSION
369+
value: ''
370+
- name: SE_NODE_PLATFORM_NAME
371+
value: 'Linux'
372+
373+
---
374+
311375
apiVersion: keda.sh/v1alpha1
312376
kind: ScaledObject
313377
metadata:
@@ -337,73 +401,56 @@ options.set_capability('platformName', 'Linux')
337401
driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
338402
```
339403

404+
---
405+
#### Selenium Grid scaler trigger metadata for Chrome browser with `nodeMaxSessions`
406+
340407
In case you want to scale from 0 (`minReplicaCount: 0`), and browser nodes are configured different `--max-sessions` greater than 1, you can set `nodeMaxSessions` for scaler align with number of slots available per node to have the correct scaling behavior.
341408

342409
```yaml
343-
apiVersion: keda.sh/v1alpha1
344-
kind: ScaledObject
410+
kind: Deployment
345411
metadata:
346-
name: selenium-grid-chrome-scaledobject
347-
namespace: keda
412+
name: selenium-node-chrome
348413
labels:
349414
deploymentName: selenium-node-chrome
350415
spec:
351-
maxReplicaCount: 8
352-
scaleTargetRef:
353-
name: selenium-node-chrome
354-
triggers:
355-
- type: selenium-grid
356-
metadata:
357-
url: 'http://selenium-hub:4444/graphql'
358-
browserName: 'chrome'
359-
platformName: 'Linux'
360-
nodeMaxSessions: 4
361-
unsafeSsl: 'true'
362-
```
363-
364-
If you are supporting multiple versions of browser capability in your Selenium Grid, You should create one scaler for every browser version and pass the `browserVersion` in the metadata.
416+
replicas: 1
417+
template:
418+
spec:
419+
containers:
420+
- name: selenium-node-chrome
421+
image: selenium/node-chrome:latest
422+
ports:
423+
- containerPort: 5555
424+
env:
425+
- name: SE_NODE_BROWSER_VERSION
426+
value: ''
427+
- name: SE_NODE_PLATFORM_NAME
428+
value: 'Linux'
429+
- name: SE_NODE_OVERRIDE_MAX_SESSIONS
430+
value: 'true'
431+
- name: SE_NODE_MAX_SESSIONS
432+
value: '4'
365433
366-
```yaml
367-
apiVersion: keda.sh/v1alpha1
368-
kind: ScaledObject
369-
metadata:
370-
name: selenium-grid-chrome-91-scaledobject
371-
namespace: keda
372-
labels:
373-
deploymentName: selenium-node-chrome-91
374-
spec:
375-
maxReplicaCount: 8
376-
scaleTargetRef:
377-
name: selenium-node-chrome-91
378-
triggers:
379-
- type: selenium-grid
380-
metadata:
381-
url: 'http://selenium-hub:4444/graphql'
382-
browserName: 'chrome'
383-
platformName: 'Linux'
384-
browserVersion: '91.0'
385-
unsafeSsl: 'true'
386-
```
434+
---
387435
388-
```yaml
389436
apiVersion: keda.sh/v1alpha1
390437
kind: ScaledObject
391438
metadata:
392-
name: selenium-grid-chrome-90-scaledobject
439+
name: selenium-grid-chrome-scaledobject
393440
namespace: keda
394441
labels:
395-
deploymentName: selenium-node-chrome-90
442+
deploymentName: selenium-node-chrome
396443
spec:
397444
maxReplicaCount: 8
398445
scaleTargetRef:
399-
name: selenium-node-chrome-90
446+
name: selenium-node-chrome
400447
triggers:
401448
- type: selenium-grid
402449
metadata:
403450
url: 'http://selenium-hub:4444/graphql'
404451
browserName: 'chrome'
405452
platformName: 'Linux'
406-
browserVersion: '90.0'
453+
nodeMaxSessions: 4
407454
unsafeSsl: 'true'
408455
```
409456

NodeDocker/config.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
33
# start a container with the given image.
44
configs = [
5-
"selenium/standalone-firefox:4.28.1-20250202", '{"browserName": "firefox", "platformName": "linux"}',
6-
"selenium/standalone-chrome:4.28.1-20250202", '{"browserName": "chrome", "platformName": "linux"}',
7-
"selenium/standalone-edge:4.28.1-20250202", '{"browserName": "MicrosoftEdge", "platformName": "linux"}'
5+
"selenium/standalone-firefox:4.29.0-20250222", '{"browserName": "firefox", "platformName": "linux"}',
6+
"selenium/standalone-chrome:4.29.0-20250222", '{"browserName": "chrome", "platformName": "linux"}',
7+
"selenium/standalone-edge:4.29.0-20250222", '{"browserName": "MicrosoftEdge", "platformName": "linux"}'
88
]
99

1010
# URL for connecting to the docker daemon
@@ -14,7 +14,7 @@ configs = [
1414
# socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock
1515
url = "http://127.0.0.1:2375"
1616
# Docker image used for video recording
17-
video-image = "selenium/video:ffmpeg-7.1-20250202"
17+
video-image = "selenium/video:ffmpeg-7.1-20250222"
1818

1919
# Uncomment the following section if you are running the node on a separate VM
2020
# Fill out the placeholders with appropriate values

0 commit comments

Comments
 (0)