Skip to content

K8s: Node Relay to extend autoscaling Grid with test cloud resources #2703

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Mar 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 32 additions & 6 deletions .github/workflows/helm-chart-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ jobs:
test-upgrade: true
service-mesh: false
os: ubuntu-22.04
check-records-output: true
test-strategy: disabled
- k8s-version: 'v1.27.16'
cluster: 'minikube'
Expand All @@ -56,6 +57,7 @@ jobs:
test-upgrade: true
service-mesh: true
os: ubuntu-22.04
check-records-output: true
test-strategy: job
- k8s-version: 'v1.28.15'
cluster: 'minikube'
Expand All @@ -65,43 +67,58 @@ jobs:
test-upgrade: true
service-mesh: true
os: ubuntu-22.04
check-records-output: true
test-strategy: deployment
- k8s-version: 'v1.29.14'
- k8s-version: 'v1.29.15'
cluster: 'minikube'
helm-version: 'v3.14.3'
docker-version: '27.5.1'
python-version: '3.11'
test-upgrade: true
service-mesh: false
os: ubuntu-22.04
check-records-output: true
test-strategy: job_https
- k8s-version: 'v1.30.10'
- k8s-version: 'v1.30.11'
cluster: 'minikube'
helm-version: 'v3.15.4'
docker-version: '27.5.1'
python-version: '3.12'
test-upgrade: true
service-mesh: false
os: ubuntu-22.04
check-records-output: true
test-strategy: job_hostname
- k8s-version: 'v1.31.6'
- k8s-version: 'v1.31.7'
cluster: 'minikube'
helm-version: 'v3.16.4'
docker-version: '27.4.1'
python-version: '3.13'
test-upgrade: true
service-mesh: false
os: ubuntu-22.04
check-records-output: true
test-strategy: deployment_https
- k8s-version: 'v1.32.2'
- k8s-version: 'v1.32.3'
cluster: 'minikube'
helm-version: 'v3.17.0'
docker-version: '26.1.4'
python-version: '3.10'
test-upgrade: true
service-mesh: true
os: ubuntu-22.04
check-records-output: true
test-strategy: playwright_connect_grid
- k8s-version: 'v1.32.3'
cluster: 'minikube'
helm-version: 'v3.17.0'
docker-version: '26.1.4'
python-version: '3.10'
test-upgrade: true
service-mesh: true
os: ubuntu-22.04
check-records-output: false
test-strategy: job_relay
env:
CLUSTER: ${{ matrix.cluster }}
KUBERNETES_VERSION: ${{ matrix.k8s-version }}
Expand All @@ -110,6 +127,10 @@ jobs:
DOCKER_VERSION: ${{ matrix.docker-version }}
TEST_UPGRADE_CHART: ${{ matrix.test-upgrade }}
SERVICE_MESH: ${{ matrix.service-mesh }}
CHECK_RECORD_OUTPUT: ${{ matrix.check-records-output }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_REGION: ${{ secrets.SAUCE_REGION }}
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
Expand Down Expand Up @@ -200,8 +221,13 @@ jobs:
timeout_minutes: 30
max_attempts: 3
command: |
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false make chart_test_autoscaling_${{ matrix.test-strategy }} \
&& NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video_integrity
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false make chart_test_autoscaling_${{ matrix.test-strategy }}
exit_code=$?
if [[ "${CHECK_RECORD_OUTPUT}" = "true" ]] && [[ "${exit_code}" -eq 0 ]]; then
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video_integrity
exit_code=$?
fi
exit ${exit_code}
- name: Upload Helm chart package
if: always()
uses: actions/upload-artifact@main
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/k8s-scaling-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,28 +75,28 @@ jobs:
python-version: '3.10'
os: ubuntu-22.04
test-strategy: test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions
- k8s-version: 'v1.29.14'
- k8s-version: 'v1.29.15'
cluster: 'minikube'
helm-version: 'v3.14.3'
docker-version: '27.5.1'
python-version: '3.11'
os: ubuntu-22.04
test-strategy: test_k8s_autoscaling_job_count_strategy_default
- k8s-version: 'v1.30.10'
- k8s-version: 'v1.30.11'
cluster: 'minikube'
helm-version: 'v3.15.4'
docker-version: '27.5.1'
python-version: '3.12'
os: ubuntu-22.04
test-strategy: test_k8s_autoscaling_deployment_count_in_chaos
- k8s-version: 'v1.31.6'
- k8s-version: 'v1.31.7'
cluster: 'minikube'
helm-version: 'v3.16.4'
docker-version: '27.4.1'
python-version: '3.13'
os: ubuntu-22.04
test-strategy: test_k8s_autoscaling_deployment_count_with_node_max_sessions
- k8s-version: 'v1.32.2'
- k8s-version: 'v1.32.3'
cluster: 'minikube'
helm-version: 'v3.17.0'
docker-version: '26.1.4'
Expand Down
10 changes: 9 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),
KEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.16.1)
KEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.16.1-selenium-grid)
KEDA_BASED_NAME := $(or $(KEDA_BASED_NAME),$(KEDA_BASED_NAME),ndviet)
KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.16.1-selenium-grid-20250225)
KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.16.1-selenium-grid-20250310)
TEST_PATCHED_KEDA := $(or $(TEST_PATCHED_KEDA),$(TEST_PATCHED_KEDA),true)

all: hub \
Expand Down Expand Up @@ -990,6 +990,14 @@ chart_test_autoscaling_job_hostname:
TEMPLATE_OUTPUT_FILENAME="k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_originKEDA_scaledJob_subPath.yaml" \
./tests/charts/make/chart_test.sh JobAutoscaling

chart_test_autoscaling_job_relay:
PLATFORMS=$(PLATFORMS) CHART_ENABLE_TRACING=true CHART_ENABLE_BASIC_AUTH=true SELENIUM_GRID_MONITORING=false TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) \
TEST_MULTIPLE_PLATFORMS=true TEST_MULTIPLE_PLATFORMS_RELAY=true CLEAR_POD_HISTORY=true \
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 \
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) \
TEMPLATE_OUTPUT_FILENAME="k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_relay_node_scaledJob_subPath.yaml" \
./tests/charts/make/chart_test.sh JobAutoscaling

chart_test_autoscaling_job_multiple_versions_without_explicit:
TEST_MULTIPLE_VERSIONS=true TEST_MULTIPLE_VERSIONS_EXPLICIT=false make chart_test_autoscaling_job

Expand Down
1 change: 1 addition & 0 deletions NodeBase/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ ENV LANG_WHICH=${LANG_WHICH} \
SE_NODE_REGISTER_CYCLE="10" \
SE_NODE_REGISTER_SHUTDOWN_ON_FAILURE="true" \
SE_OTEL_SERVICE_NAME="selenium-node" \
SE_NODE_RELAY_ONLY="true" \
# Setting Selenium Manager to work offline
SE_OFFLINE="true" \
SE_NODE_BROWSER_VERSION="stable" \
Expand Down
7 changes: 5 additions & 2 deletions NodeBase/generate_config
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,11 @@ fi
SE_NODE_CONTAINER_NAME="${SE_NODE_CONTAINER_NAME:-$(hostname)}"

# 'browserName' is mandatory for default stereotype
if [[ -z "${SE_NODE_STEREOTYPE}" ]] && [[ -n "${SE_NODE_BROWSER_NAME}" ]]; then
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)\"}"
if [[ -z "${SE_NODE_STEREOTYPE}" ]] && [[ -n "${SE_NODE_BROWSER_NAME}" ]] && ([[ -z "${SE_NODE_RELAY_URL}" ]] || [[ "${SE_NODE_RELAY_ONLY}" = "false" ]]); then
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)\"}"
if [[ -n "${SE_BROWSER_BINARY_LOCATION}" ]]; then
SE_NODE_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_STEREOTYPE}" "{${SE_BROWSER_BINARY_LOCATION}}")"
fi
else
SE_NODE_STEREOTYPE="${SE_NODE_STEREOTYPE}"
fi
Expand Down
16 changes: 13 additions & 3 deletions NodeBase/generate_relay_config
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ fi

if [[ -n "${SE_NODE_RELAY_URL}" ]]; then
echo "[relay]" >>"$FILENAME"
echo "url = \"${SE_NODE_RELAY_URL}\"" >>"$FILENAME"
echo "url = \"$(envsubst < <(echo ${SE_NODE_RELAY_URL}))\"" >>"$FILENAME"
if [[ -z "${SE_NODE_RELAY_STATUS_ENDPOINT}" ]]; then
echo "status-endpoint = \"/status\"" >>"$FILENAME"
else
Expand All @@ -18,7 +18,17 @@ if [[ -n "${SE_NODE_RELAY_URL}" ]]; then
echo "protocol-version = \"${SE_NODE_RELAY_PROTOCOL_VERSION}\"" >>"$FILENAME"
fi
if [[ -z "${SE_NODE_RELAY_STEREOTYPE}" ]]; then
SE_NODE_RELAY_STEREOTYPE="{\"browserName\": \"${SE_NODE_RELAY_BROWSER_NAME}\", \"platformName\": \"${SE_NODE_RELAY_PLATFORM_NAME}\", \"appium:platformVersion\": \"${SE_NODE_RELAY_PLATFORM_VERSION}\"}"
SE_NODE_RELAY_STEREOTYPE="{\"browserName\": \"${SE_NODE_RELAY_BROWSER_NAME:-${SE_NODE_BROWSER_NAME}}\", \"platformName\": \"${SE_NODE_RELAY_PLATFORM_NAME:-${SE_NODE_PLATFORM_NAME}}\"}"
if [[ -n "${SE_NODE_RELAY_PLATFORM_VERSION}" ]]; then
SE_NODE_RELAY_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_RELAY_STEREOTYPE}" "{\"appium:platformVersion\":\"${SE_NODE_RELAY_PLATFORM_VERSION}\"}")"
fi
BROWSER_VERSION=${SE_NODE_RELAY_BROWSER_VERSION:-${SE_NODE_BROWSER_VERSION}}
if [[ -n "${BROWSER_VERSION}" ]] && [[ "${BROWSER_VERSION}" != "stable" ]]; then
SE_NODE_RELAY_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_RELAY_STEREOTYPE}" "{\"browserVersion\":\"${BROWSER_VERSION}\"}")"
fi
if [[ "${SE_NODE_ENABLE_MANAGED_DOWNLOADS}" = "true" ]]; then
SE_NODE_RELAY_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_RELAY_STEREOTYPE}" "{\"se:downloadsEnabled\": true}")"
fi
else
SE_NODE_RELAY_STEREOTYPE="${SE_NODE_RELAY_STEREOTYPE}"
fi
Expand All @@ -31,5 +41,5 @@ if [[ -n "${SE_NODE_RELAY_URL}" ]]; then
echo "Merged relay stereotype: ${SE_NODE_RELAY_STEREOTYPE}"
fi
fi
echo "configs = ['${SE_NODE_RELAY_MAX_SESSIONS}', '${SE_NODE_RELAY_STEREOTYPE}']" >>"$FILENAME"
echo "configs = ['${SE_NODE_MAX_SESSIONS:-${SE_NODE_RELAY_MAX_SESSIONS}}', '${SE_NODE_RELAY_STEREOTYPE}']" >>"$FILENAME"
fi
5 changes: 4 additions & 1 deletion Standalone/generate_config
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,10 @@ fi
SE_NODE_CONTAINER_NAME="${SE_NODE_CONTAINER_NAME:-$(hostname)}"

if [[ -z "$SE_NODE_STEREOTYPE" ]]; then
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)\"}"
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)\"}"
if [[ -n "${SE_BROWSER_BINARY_LOCATION}" ]]; then
SE_NODE_STEREOTYPE="$(python3 /opt/bin/json_merge.py "${SE_NODE_STEREOTYPE}" "{${SE_BROWSER_BINARY_LOCATION}}")"
fi
else
SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE"
fi
Expand Down
5 changes: 3 additions & 2 deletions charts/selenium-grid/CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
| edgeNode.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 |
| edgeNode.videoRecorder | object | `{}` | Override specific video recording settings for edge node |
| relayNode.enabled | bool | `false` | Enable relay nodes |
| relayNode.relayUrl | string | `""` | Specify another Grid, another network, or a cloud vendor that you wish to connect to (e.g. https://ondemand.us-west-1.saucelabs.com/wd/hub) |
| relayNode.deploymentEnabled | bool | `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 |
| relayNode.updateStrategy | object | `{"type":"RollingUpdate"}` | Global update strategy will be overwritten by individual component |
| relayNode.replicas | int | `1` | Number of relay nodes |
Expand Down Expand Up @@ -642,10 +643,10 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
| relayNode.scaledOptions | string | `nil` | Override the scaled options for relay nodes |
| relayNode.scaledJobOptions | string | `nil` | Override the scaledJobOptions for relay nodes |
| relayNode.scaledObjectOptions | string | `nil` | Override the scaledObjectOptions for relay nodes |
| relayNode.hpa.browserName | string | `"chrome"` | browserName should match with Node stereotype and request capability is scaled by this scaler |
| relayNode.hpa.browserName | string | `""` | browserName should match with Node stereotype and request capability is scaled by this scaler |
| relayNode.hpa.sessionBrowserName | string | `""` | sessionBrowserName if the browserName is different from the sessionBrowserName |
| relayNode.hpa.browserVersion | string | `""` | browserVersion should match with Node stereotype and request capability is scaled by this scaler |
| relayNode.hpa.platformName | string | `"Android"` | platformName should match with Node stereotype and request capability is scaled by this scaler |
| relayNode.hpa.platformName | string | `""` | platformName should match with Node stereotype and request capability is scaled by this scaler |
| relayNode.hpa.unsafeSsl | string | `"{{ template \"seleniumGrid.graphqlURL.unsafeSsl\" . }}"` | Skip check SSL when connecting to the Graphql endpoint |
| 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 |
| 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 |
Expand Down
5 changes: 5 additions & 0 deletions charts/selenium-grid/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,11 @@ For example [multiple-nodes-platform.yaml](./multiple-nodes-platform.yaml) file,

For example [multiple-nodes-platform-version.yaml](./multiple-nodes-platform-version.yaml) file, it defines multiple scalers with `platformName: 'Linux'` and last few previous stable versions per browser node to scale against requests with `browserVersion` and `platformName` capabilities.

To extend your Grid, you can use Relay Node (which allows you to route Grid tests to another Grid, another network, or a cloud vendor).
Besides on-prem browser Nodes with Linux-based, you also can serve test requests with other platforms, browsers or even mobile devices which provided by cloud vendors.
Your teams will not worry about the underlying infrastructure, they just request to the single Grid endpoint hosted in your organization.
Check out values file [multiple-nodes-platform-relay.yaml](./multiple-nodes-platform-relay.yaml) for more details.

While deploying the chart, you can quickly use these extra values files by passing the file via `--values` flag to apply.

### Settings fixed-sized thread pool for the Distributor to create new sessions
Expand Down
70 changes: 70 additions & 0 deletions charts/selenium-grid/multiple-nodes-platform-relay.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Utilize Relay Node to set up hybrid Autoscaling Grid with using on-premise and test cloud provider (e.g. SauceLabs, BrowserStack, etc.)
#
# For example: below incoming requests will be served by Node container on-premise
# options = ChromeOptions()
# options.set_capability('platformName', 'Linux')
# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
#
# Below incoming requests will be served by Relay Node where commands are forwarded to test cloud provider
# options = ChromeOptions()
# options.set_capability('platformName', 'macOS 13.0')
# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)
crossBrowsers:
chromeNode:
- nameOverride: '{{ $.Release.Name }}-node-chrome-linux'
hpa:
platformName: 'Linux'
firefoxNode:
- nameOverride: '{{ $.Release.Name }}-node-firefox-linux'
hpa:
platformName: 'Linux'
edgeNode:
- nameOverride: '{{ $.Release.Name }}-node-edge-linux'
hpa:
platformName: 'Linux'
relayNode:
- nameOverride: '{{ $.Release.Name }}-node-relay-chrome-macos'
hpa:
browserName: 'chrome'
platformName: 'macOS'
- nameOverride: '{{ $.Release.Name }}-node-relay-chrome-windows'
hpa:
browserName: 'chrome'
platformName: 'Windows 11'
- nameOverride: '{{ $.Release.Name }}-node-relay-firefox-macos'
hpa:
browserName: 'firefox'
platformName: 'macOS'
- nameOverride: '{{ $.Release.Name }}-node-relay-firefox-windows'
hpa:
browserName: 'firefox'
platformName: 'Windows 11'
- nameOverride: '{{ $.Release.Name }}-node-relay-edge-macos'
hpa:
browserName: "MicrosoftEdge"
sessionBrowserName: "msedge"
platformName: 'macOS'
- nameOverride: '{{ $.Release.Name }}-node-relay-edge-windows'
hpa:
browserName: "MicrosoftEdge"
sessionBrowserName: "msedge"
platformName: 'Windows 11'
- nameOverride: '{{ $.Release.Name }}-node-relay-safari-macos'
hpa:
browserName: 'safari'
platformName: 'macOS'

relayNode:
enabled: true
# relayUrl: "https://ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub"
videoRecorder:
enabled: false
extraEnvironmentVariables:
# - name: SAUCE_REGION
# value: "<your_SAUCE_REGION>"
# Or can give relay url directly to environment variable SE_NODE_RELAY_URL. Value can be referring to value of existing env vars.
# - name: SE_NODE_RELAY_URL
# value: "https://ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub"
extraEnvFrom:
# - secretRef:
# name: your-secret-with-all-env-vars
6 changes: 3 additions & 3 deletions charts/selenium-grid/multiple-nodes-platform.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ crossBrowsers:
browserVersion: ''
- nameOverride: '{{ $.Release.Name }}-node-chrome-platform-windows'
hpa:
platformName: 'windows'
platformName: 'Windows 11'
browserVersion: ''
firefoxNode:
- nameOverride: '{{ $.Release.Name }}-node-firefox-platform-any'
Expand All @@ -34,7 +34,7 @@ crossBrowsers:
browserVersion: ''
- nameOverride: '{{ $.Release.Name }}-node-firefox-platform-windows'
hpa:
platformName: 'windows'
platformName: 'Windows 11'
browserVersion: ''
edgeNode:
- nameOverride: '{{ $.Release.Name }}-node-edge-platform-any'
Expand All @@ -47,5 +47,5 @@ crossBrowsers:
browserVersion: ''
- nameOverride: '{{ $.Release.Name }}-node-edge-platform-windows'
hpa:
platformName: 'windows'
platformName: 'Windows 11'
browserVersion: ''
Loading
Loading