Testing Selenium Grid Helm Chart

February 21, 2026 · View on GitHub

All related testing to this helm chart will be documented in this file.

Test Traceability Matrix

FeaturesTC DescriptionCoverageTest via
Basic AuthBasic Auth is disabledCluster
Basic Auth is enabledCluster
Auto scalingAuto scaling with enableWithExistingKEDA is trueCluster
Auto scaling with scalingType is jobCluster
Auto scaling with scalingType is deploymentCluster
Auto scaling with autoscaling.scaledOptions.minReplicaCount is 0Cluster
Parallel tests execution against node autoscalingCluster
IngressIngress is enabled without hostnameCluster
Ingress is enabled with hostname is setCluster
Hub sub-path is set with Ingress ImplementationSpecific pathsCluster
ingress.traefik configs for Traefik ingress controller annotationsTemplate
Distributed componentsisolateComponents is enabledCluster
isolateComponents is disabledCluster
Browser NodesNode nameOverride is setCluster
Sanity tests in nodeCluster
Video recorder is enabled in nodeCluster
Node extraEnvironmentVariables is set valueCluster
GeneralSet new image registry via global.seleniumGrid.imageRegistryCluster
Components are able to set .affinityTemplate
TracingEnable tracing via SE_ENABLE_TRACINGCluster
Disable tracing via SE_ENABLE_TRACINGCluster
Node componentSE_NODE_PORT can set a port different via .portCluster
Extra ports can be exposed on container via .portsCluster
Extra ports can be exposed on Service via .service.portsCluster
Service type change to NodePort, specific NodePort can be setCluster

CI Test Traceability Matrix

We have a CI pipeline to test the Helm chart with the following test cases.

Matrixjobdeploymentjob_httpsjob_hostnamedeployment_https
ClusterKindKindKindMinikubeMinikube
Kubernetes versionv1.25.16v1.26.14v1.27.11v1.28.7v1.29.2
Autoscalingxxxxx
Scaling type deploymentxx
Scaling type jobxxx
Full distributed modexx
Enable basic authxxx
Ingress hostnamexxx
Ingress K8S_PUBLIC_IPxx
HTTPS tls.enabledxx
Enable tracingxxx
Enable video recorderxxxxx
Enable video uploaderxxxxx
Test headlessxx

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.
  • Set of values are used to render the templates located in tests/charts/templates/render.
# Back to root directory
cd ../..

# Build chart dependencies and lint
make chart_build

# Test chart template
make chart_test_template
  • Build chart dependencies and lint requires Chart Testing ct. There is a config file 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.

# Back to root directory
cd ../..

# Setup Kubernetes environment
make setup_dev_env

# Build Docker images
make build

# Build and lint charts
make chart_build

# Setup Kubernetes cluster
make chart_cluster_setup

# Test Selenium Grid on Kubernetes
make chart_test_autoscaling_deployment

make chart_test_autoscaling_job

# Cleanup Kubernetes cluster
make chart_cluster_cleanup
  • Setup Kubernetes environment requires Kind and Kubectl.
  • Set of values are used to deploy the chart to Kubernetes cluster located in tests/charts/ci.