Skip to content

Commit 3135203

Browse files
committed
K8s: Node Relay to extend autoscaling Grid with test cloud resources
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 8da2459 commit 3135203

20 files changed

+264
-39
lines changed

.github/workflows/helm-chart-test.yml

+32-6
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
test-upgrade: true
4848
service-mesh: false
4949
os: ubuntu-22.04
50+
check-records-output: true
5051
test-strategy: disabled
5152
- k8s-version: 'v1.27.16'
5253
cluster: 'minikube'
@@ -56,6 +57,7 @@ jobs:
5657
test-upgrade: true
5758
service-mesh: true
5859
os: ubuntu-22.04
60+
check-records-output: true
5961
test-strategy: job
6062
- k8s-version: 'v1.28.15'
6163
cluster: 'minikube'
@@ -65,43 +67,58 @@ jobs:
6567
test-upgrade: true
6668
service-mesh: true
6769
os: ubuntu-22.04
70+
check-records-output: true
6871
test-strategy: deployment
69-
- k8s-version: 'v1.29.14'
72+
- k8s-version: 'v1.29.15'
7073
cluster: 'minikube'
7174
helm-version: 'v3.14.3'
7275
docker-version: '27.5.1'
7376
python-version: '3.11'
7477
test-upgrade: true
7578
service-mesh: false
7679
os: ubuntu-22.04
80+
check-records-output: true
7781
test-strategy: job_https
78-
- k8s-version: 'v1.30.10'
82+
- k8s-version: 'v1.30.11'
7983
cluster: 'minikube'
8084
helm-version: 'v3.15.4'
8185
docker-version: '27.5.1'
8286
python-version: '3.12'
8387
test-upgrade: true
8488
service-mesh: false
8589
os: ubuntu-22.04
90+
check-records-output: true
8691
test-strategy: job_hostname
87-
- k8s-version: 'v1.31.6'
92+
- k8s-version: 'v1.31.7'
8893
cluster: 'minikube'
8994
helm-version: 'v3.16.4'
9095
docker-version: '27.4.1'
9196
python-version: '3.13'
9297
test-upgrade: true
9398
service-mesh: false
9499
os: ubuntu-22.04
100+
check-records-output: true
95101
test-strategy: deployment_https
96-
- k8s-version: 'v1.32.2'
102+
- k8s-version: 'v1.32.3'
97103
cluster: 'minikube'
98104
helm-version: 'v3.17.0'
99105
docker-version: '26.1.4'
100106
python-version: '3.10'
101107
test-upgrade: true
102108
service-mesh: true
103109
os: ubuntu-22.04
110+
check-records-output: true
104111
test-strategy: playwright_connect_grid
112+
- k8s-version: 'v1.32.3'
113+
cluster: 'minikube'
114+
helm-version: 'v3.17.0'
115+
docker-version: '26.1.4'
116+
python-version: '3.10'
117+
test-upgrade: true
118+
service-mesh: true
119+
os: ubuntu-22.04
120+
check-records-output: false
121+
test-strategy: job_relay
105122
env:
106123
CLUSTER: ${{ matrix.cluster }}
107124
KUBERNETES_VERSION: ${{ matrix.k8s-version }}
@@ -110,6 +127,10 @@ jobs:
110127
DOCKER_VERSION: ${{ matrix.docker-version }}
111128
TEST_UPGRADE_CHART: ${{ matrix.test-upgrade }}
112129
SERVICE_MESH: ${{ matrix.service-mesh }}
130+
CHECK_RECORD_OUTPUT: ${{ matrix.check-records-output }}
131+
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
132+
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
133+
SAUCE_REGION: ${{ secrets.SAUCE_REGION }}
113134
steps:
114135
- name: Free Disk Space (Ubuntu)
115136
uses: jlumbroso/free-disk-space@main
@@ -200,8 +221,13 @@ jobs:
200221
timeout_minutes: 30
201222
max_attempts: 3
202223
command: |
203-
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false make chart_test_autoscaling_${{ matrix.test-strategy }} \
204-
&& NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video_integrity
224+
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false make chart_test_autoscaling_${{ matrix.test-strategy }}
225+
exit_code=$?
226+
if [[ "${CHECK_RECORD_OUTPUT}" = "true" ]] && [[ "${exit_code}" -eq 0 ]]; then
227+
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video_integrity
228+
exit_code=$?
229+
fi
230+
exit ${exit_code}
205231
- name: Upload Helm chart package
206232
if: always()
207233
uses: actions/upload-artifact@main

.github/workflows/k8s-scaling-test.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -75,28 +75,28 @@ jobs:
7575
python-version: '3.10'
7676
os: ubuntu-22.04
7777
test-strategy: test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions
78-
- k8s-version: 'v1.29.14'
78+
- k8s-version: 'v1.29.15'
7979
cluster: 'minikube'
8080
helm-version: 'v3.14.3'
8181
docker-version: '27.5.1'
8282
python-version: '3.11'
8383
os: ubuntu-22.04
8484
test-strategy: test_k8s_autoscaling_job_count_strategy_default
85-
- k8s-version: 'v1.30.10'
85+
- k8s-version: 'v1.30.11'
8686
cluster: 'minikube'
8787
helm-version: 'v3.15.4'
8888
docker-version: '27.5.1'
8989
python-version: '3.12'
9090
os: ubuntu-22.04
9191
test-strategy: test_k8s_autoscaling_deployment_count_in_chaos
92-
- k8s-version: 'v1.31.6'
92+
- k8s-version: 'v1.31.7'
9393
cluster: 'minikube'
9494
helm-version: 'v3.16.4'
9595
docker-version: '27.4.1'
9696
python-version: '3.13'
9797
os: ubuntu-22.04
9898
test-strategy: test_k8s_autoscaling_deployment_count_with_node_max_sessions
99-
- k8s-version: 'v1.32.2'
99+
- k8s-version: 'v1.32.3'
100100
cluster: 'minikube'
101101
helm-version: 'v3.17.0'
102102
docker-version: '26.1.4'

Makefile

+9-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),
3434
KEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.16.1)
3535
KEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.16.1-selenium-grid)
3636
KEDA_BASED_NAME := $(or $(KEDA_BASED_NAME),$(KEDA_BASED_NAME),ndviet)
37-
KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.16.1-selenium-grid-20250225)
37+
KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.16.1-selenium-grid-20250310)
3838
TEST_PATCHED_KEDA := $(or $(TEST_PATCHED_KEDA),$(TEST_PATCHED_KEDA),true)
3939

4040
all: hub \
@@ -990,6 +990,14 @@ chart_test_autoscaling_job_hostname:
990990
TEMPLATE_OUTPUT_FILENAME="k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_originKEDA_scaledJob_subPath.yaml" \
991991
./tests/charts/make/chart_test.sh JobAutoscaling
992992

993+
chart_test_autoscaling_job_relay:
994+
PLATFORMS=$(PLATFORMS) CHART_ENABLE_TRACING=true CHART_ENABLE_BASIC_AUTH=true SELENIUM_GRID_MONITORING=false TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) \
995+
TEST_MULTIPLE_PLATFORMS=true TEST_MULTIPLE_PLATFORMS_RELAY=true CLEAR_POD_HISTORY=true \
996+
SECURE_INGRESS_ONLY_DEFAULT=true SECURE_USE_EXTERNAL_CERT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -I | cut -d' ' -f1) SELENIUM_GRID_PORT=443 \
997+
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \
998+
TEMPLATE_OUTPUT_FILENAME="k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_relay_node_scaledJob_subPath.yaml" \
999+
./tests/charts/make/chart_test.sh JobAutoscaling
1000+
9931001
chart_test_autoscaling_job_multiple_versions_without_explicit:
9941002
TEST_MULTIPLE_VERSIONS=true TEST_MULTIPLE_VERSIONS_EXPLICIT=false make chart_test_autoscaling_job
9951003

NodeBase/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ ENV LANG_WHICH=${LANG_WHICH} \
5050
SE_NODE_REGISTER_CYCLE="10" \
5151
SE_NODE_REGISTER_SHUTDOWN_ON_FAILURE="true" \
5252
SE_OTEL_SERVICE_NAME="selenium-node" \
53+
SE_NODE_RELAY_ONLY="true" \
5354
# Setting Selenium Manager to work offline
5455
SE_OFFLINE="true" \
5556
SE_NODE_BROWSER_VERSION="stable" \

NodeBase/generate_config

+5-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,11 @@ fi
6565
SE_NODE_CONTAINER_NAME="${SE_NODE_CONTAINER_NAME:-$(hostname)}"
6666

6767
# 'browserName' is mandatory for default stereotype
68-
if [[ -z "${SE_NODE_STEREOTYPE}" ]] && [[ -n "${SE_NODE_BROWSER_NAME}" ]]; then
69-
SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"${SE_NODE_PLATFORM_NAME}\", ${SE_BROWSER_BINARY_LOCATION}, \"se:containerName\": \"${SE_NODE_CONTAINER_NAME}\", \"container:hostname\": \"$(hostname)\"}"
68+
if [[ -z "${SE_NODE_STEREOTYPE}" ]] && [[ -n "${SE_NODE_BROWSER_NAME}" ]] && ([[ -z "${SE_NODE_RELAY_URL}" ]] || [[ "${SE_NODE_RELAY_ONLY}" = "false" ]]); then
69+
SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"${SE_NODE_PLATFORM_NAME}\", \"se:containerName\": \"${SE_NODE_CONTAINER_NAME}\", \"container:hostname\": \"$(hostname)\"}"
70+
if [[ -n "${SE_BROWSER_BINARY_LOCATION}" ]]; then
71+
SE_NODE_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_STEREOTYPE}" "{${SE_BROWSER_BINARY_LOCATION}}")"
72+
fi
7073
else
7174
SE_NODE_STEREOTYPE="${SE_NODE_STEREOTYPE}"
7275
fi

NodeBase/generate_relay_config

+13-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fi
88

99
if [[ -n "${SE_NODE_RELAY_URL}" ]]; then
1010
echo "[relay]" >>"$FILENAME"
11-
echo "url = \"${SE_NODE_RELAY_URL}\"" >>"$FILENAME"
11+
echo "url = \"$(envsubst < <(echo ${SE_NODE_RELAY_URL}))\"" >>"$FILENAME"
1212
if [[ -z "${SE_NODE_RELAY_STATUS_ENDPOINT}" ]]; then
1313
echo "status-endpoint = \"/status\"" >>"$FILENAME"
1414
else
@@ -18,7 +18,17 @@ if [[ -n "${SE_NODE_RELAY_URL}" ]]; then
1818
echo "protocol-version = \"${SE_NODE_RELAY_PROTOCOL_VERSION}\"" >>"$FILENAME"
1919
fi
2020
if [[ -z "${SE_NODE_RELAY_STEREOTYPE}" ]]; then
21-
SE_NODE_RELAY_STEREOTYPE="{\"browserName\": \"${SE_NODE_RELAY_BROWSER_NAME}\", \"platformName\": \"${SE_NODE_RELAY_PLATFORM_NAME}\", \"appium:platformVersion\": \"${SE_NODE_RELAY_PLATFORM_VERSION}\"}"
21+
SE_NODE_RELAY_STEREOTYPE="{\"browserName\": \"${SE_NODE_RELAY_BROWSER_NAME:-${SE_NODE_BROWSER_NAME}}\", \"platformName\": \"${SE_NODE_RELAY_PLATFORM_NAME:-${SE_NODE_PLATFORM_NAME}}\"}"
22+
if [[ -n "${SE_NODE_RELAY_PLATFORM_VERSION}" ]]; then
23+
SE_NODE_RELAY_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_RELAY_STEREOTYPE}" "{\"appium:platformVersion\":\"${SE_NODE_RELAY_PLATFORM_VERSION}\"}")"
24+
fi
25+
BROWSER_VERSION=${SE_NODE_RELAY_BROWSER_VERSION:-${SE_NODE_BROWSER_VERSION}}
26+
if [[ -n "${BROWSER_VERSION}" ]] && [[ "${BROWSER_VERSION}" != "stable" ]]; then
27+
SE_NODE_RELAY_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_RELAY_STEREOTYPE}" "{\"browserVersion\":\"${BROWSER_VERSION}\"}")"
28+
fi
29+
if [[ "${SE_NODE_ENABLE_MANAGED_DOWNLOADS}" = "true" ]]; then
30+
SE_NODE_RELAY_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_RELAY_STEREOTYPE}" "{\"se:downloadsEnabled\": true}")"
31+
fi
2232
else
2333
SE_NODE_RELAY_STEREOTYPE="${SE_NODE_RELAY_STEREOTYPE}"
2434
fi
@@ -31,5 +41,5 @@ if [[ -n "${SE_NODE_RELAY_URL}" ]]; then
3141
echo "Merged relay stereotype: ${SE_NODE_RELAY_STEREOTYPE}"
3242
fi
3343
fi
34-
echo "configs = ['${SE_NODE_RELAY_MAX_SESSIONS}', '${SE_NODE_RELAY_STEREOTYPE}']" >>"$FILENAME"
44+
echo "configs = ['${SE_NODE_MAX_SESSIONS:-${SE_NODE_RELAY_MAX_SESSIONS}}', '${SE_NODE_RELAY_STEREOTYPE}']" >>"$FILENAME"
3545
fi

Standalone/generate_config

+4-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ fi
4444
SE_NODE_CONTAINER_NAME="${SE_NODE_CONTAINER_NAME:-$(hostname)}"
4545

4646
if [[ -z "$SE_NODE_STEREOTYPE" ]]; then
47-
SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"${SE_NODE_PLATFORM_NAME}\", ${SE_BROWSER_BINARY_LOCATION}, \"se:containerName\": \"${SE_NODE_CONTAINER_NAME}\", \"container:hostname\": \"$(hostname)\"}"
47+
SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"${SE_NODE_PLATFORM_NAME}\", \"se:containerName\": \"${SE_NODE_CONTAINER_NAME}\", \"container:hostname\": \"$(hostname)\"}"
48+
if [[ -n "${SE_BROWSER_BINARY_LOCATION}" ]]; then
49+
SE_NODE_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_STEREOTYPE}" "{${SE_BROWSER_BINARY_LOCATION}}")"
50+
fi
4851
else
4952
SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE"
5053
fi

charts/selenium-grid/CONFIGURATION.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
396396
| autoscaling.patchObjectFinalizers.enabled | bool | `true` | Enable patching finalizers for KEDA scaled resources. Workaround for Hook post-upgrade selenium-grid/templates/x-node-hpa.yaml failed: object is being deleted: scaledobjects.keda.sh "x" already exists |
397397
| autoscaling.patchObjectFinalizers.activeDeadlineSeconds | int | `120` | Deadline (in seconds) for patch job to complete |
398398
| autoscaling.patchObjectFinalizers.annotations | object | `{"helm.sh/hook":"post-install,post-upgrade,post-rollback,pre-delete","helm.sh/hook-delete-policy":"hook-succeeded,before-hook-creation","helm.sh/hook-weight":"-1"}` | Annotations for patch job |
399+
| autoscaling.patchObjectFinalizers.cleanUpScript | string | `""` | Define your custom script to replace the default script |
400+
| autoscaling.patchObjectFinalizers.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |
399401
| autoscaling.patchObjectFinalizers.serviceAccount | string | `""` | Define an external service account name contains permissions to patch KEDA scaled resources |
400402
| autoscaling.patchObjectFinalizers.imagePullSecret | string | `""` | Custom pull secret for container in patch job |
401403
| autoscaling.patchObjectFinalizers.resources | object | `{"limits":{"cpu":"200m","memory":"500Mi"},"requests":{"cpu":"100m","memory":"200Mi"}}` | Define resources for container in patch job |
@@ -639,10 +641,10 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
639641
| relayNode.scaledOptions | string | `nil` | Override the scaled options for relay nodes |
640642
| relayNode.scaledJobOptions | string | `nil` | Override the scaledJobOptions for relay nodes |
641643
| relayNode.scaledObjectOptions | string | `nil` | Override the scaledObjectOptions for relay nodes |
642-
| relayNode.hpa.browserName | string | `"chrome"` | browserName should match with Node stereotype and request capability is scaled by this scaler |
644+
| relayNode.hpa.browserName | string | `""` | browserName should match with Node stereotype and request capability is scaled by this scaler |
643645
| relayNode.hpa.sessionBrowserName | string | `""` | sessionBrowserName if the browserName is different from the sessionBrowserName |
644646
| relayNode.hpa.browserVersion | string | `""` | browserVersion should match with Node stereotype and request capability is scaled by this scaler |
645-
| relayNode.hpa.platformName | string | `"Android"` | platformName should match with Node stereotype and request capability is scaled by this scaler |
647+
| relayNode.hpa.platformName | string | `""` | platformName should match with Node stereotype and request capability is scaled by this scaler |
646648
| relayNode.hpa.unsafeSsl | string | `"{{ template \"seleniumGrid.graphqlURL.unsafeSsl\" . }}"` | Skip check SSL when connecting to the Graphql endpoint |
647649
| relayNode.initContainers | list | `[]` | It is used to add initContainers in the same pod of the browser node. It should be set using the --set-json option |
648650
| relayNode.sidecars | list | `[]` | It is used to add 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 |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Utilize Relay Node to set up hybrid Autoscaling Grid with using on-premise and test cloud provider (e.g. SauceLabs, BrowserStack, etc.)
2+
#
3+
# For example: below incoming requests will be served by Node container on-premise
4+
# options = ChromeOptions()
5+
# options.set_capability('platformName', 'Linux')
6+
# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
7+
#
8+
# Below incoming requests will be served by Relay Node where commands are forwarded to test cloud provider
9+
# options = ChromeOptions()
10+
# options.set_capability('platformName', 'macOS 13.0')
11+
# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
12+
crossBrowsers:
13+
chromeNode:
14+
- nameOverride: '{{ $.Release.Name }}-node-chrome-linux'
15+
hpa:
16+
platformName: 'Linux'
17+
firefoxNode:
18+
- nameOverride: '{{ $.Release.Name }}-node-firefox-linux'
19+
hpa:
20+
platformName: 'Linux'
21+
edgeNode:
22+
- nameOverride: '{{ $.Release.Name }}-node-edge-linux'
23+
hpa:
24+
platformName: 'Linux'
25+
relayNode:
26+
- nameOverride: '{{ $.Release.Name }}-node-relay-chrome-macos'
27+
hpa:
28+
browserName: 'chrome'
29+
platformName: 'macOS'
30+
- nameOverride: '{{ $.Release.Name }}-node-relay-chrome-windows'
31+
hpa:
32+
browserName: 'chrome'
33+
platformName: 'Windows 11'
34+
- nameOverride: '{{ $.Release.Name }}-node-relay-firefox-macos'
35+
hpa:
36+
browserName: 'firefox'
37+
platformName: 'macOS'
38+
- nameOverride: '{{ $.Release.Name }}-node-relay-firefox-windows'
39+
hpa:
40+
browserName: 'firefox'
41+
platformName: 'Windows 11'
42+
- nameOverride: '{{ $.Release.Name }}-node-relay-edge-macos'
43+
hpa:
44+
browserName: "MicrosoftEdge"
45+
sessionBrowserName: "msedge"
46+
platformName: 'macOS'
47+
- nameOverride: '{{ $.Release.Name }}-node-relay-edge-windows'
48+
hpa:
49+
browserName: "MicrosoftEdge"
50+
sessionBrowserName: "msedge"
51+
platformName: 'Windows 11'
52+
- nameOverride: '{{ $.Release.Name }}-node-relay-safari-macos'
53+
hpa:
54+
browserName: 'safari'
55+
platformName: 'macOS'
56+
57+
relayNode:
58+
enabled: true
59+
videoRecorder:
60+
enabled: false
61+
extraEnvironmentVariables:
62+
# - name: SAUCE_USERNAME
63+
# value: "<your_SAUCE_USERNAME>"
64+
# - name: SAUCE_ACCESS_KEY
65+
# value: "<your_SAUCE_ACCESS_KEY>"
66+
# - name: SAUCE_REGION
67+
# value: "<your_SAUCE_REGION>"
68+
# - name: SE_NODE_RELAY_URL
69+
# value: "https://$SAUCE_USERNAME:$SAUCE_ACCESS_KEY@ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub"
70+
extraEnvFrom:
71+
# - secretRef:
72+
# name: your-secret-with-all-env-vars

charts/selenium-grid/multiple-nodes-platform.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ crossBrowsers:
2121
browserVersion: ''
2222
- nameOverride: '{{ $.Release.Name }}-node-chrome-platform-windows'
2323
hpa:
24-
platformName: 'windows'
24+
platformName: 'Windows 11'
2525
browserVersion: ''
2626
firefoxNode:
2727
- nameOverride: '{{ $.Release.Name }}-node-firefox-platform-any'
@@ -34,7 +34,7 @@ crossBrowsers:
3434
browserVersion: ''
3535
- nameOverride: '{{ $.Release.Name }}-node-firefox-platform-windows'
3636
hpa:
37-
platformName: 'windows'
37+
platformName: 'Windows 11'
3838
browserVersion: ''
3939
edgeNode:
4040
- nameOverride: '{{ $.Release.Name }}-node-edge-platform-any'
@@ -47,5 +47,5 @@ crossBrowsers:
4747
browserVersion: ''
4848
- nameOverride: '{{ $.Release.Name }}-node-edge-platform-windows'
4949
hpa:
50-
platformName: 'windows'
50+
platformName: 'Windows 11'
5151
browserVersion: ''

charts/selenium-grid/templates/_helpers.tpl

+4
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,10 @@ template:
369369
value: {{ $nodeCustomCapabilities | quote }}
370370
- name: SE_DRAIN_AFTER_SESSION_COUNT
371371
value: {{ and (eq (include "seleniumGrid.useKEDA" $) "true") (eq .Values.autoscaling.scalingType "job") | ternary $nodeMaxSessions 0 | quote }}
372+
{{- if and (eq (include "seleniumGrid.useKEDA" $) "true") }}
373+
- name: SE_NODE_BROWSER_NAME
374+
value: {{ if hasKey .node.hpa "browserName" }}{{ .node.hpa.browserName | quote }}{{ else }}""{{ end }}
375+
{{- end }}
372376
{{- if and (eq (include "seleniumGrid.useKEDA" $) "true") }}
373377
- name: SE_NODE_BROWSER_VERSION
374378
value: {{ if hasKey .node.hpa "browserVersion" }}{{ .node.hpa.browserVersion | quote }}{{ else }}""{{ end }}

0 commit comments

Comments
 (0)