# ⚠️ Repo Archive Notice As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts [Deprecation and Archive Notice](https://github.com/helm/charts#%EF%B8%8F-deprecation-and-archive-notice), and [Update](https://helm.sh/blog/charts-repo-deprecation/). # Selenium ## DEPRECATION NOTICE This chart is deprecated and no longer supported. ## TL;DR; ```console $ helm install stable/selenium ``` ## Introduction This chart bootstraps a [Selenium](http://www.seleniumhq.org/) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. ## Prerequisites - Kubernetes 1.5+ with Beta APIs enabled ## Installing the Chart To install the chart with the release name `my-release`: ```console $ helm install --name my-release stable/selenium ``` The command deploys Selenium on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. > **Tip**: List all releases using `helm list` ## Uninstalling the Chart To uninstall/delete the `my-release` deployment: ```console $ helm delete my-release ``` The command removes all the Kubernetes components associated with the chart and deletes the release. ## Configuration The following table lists the configurable parameters of the Selenium chart and their default values. | Parameter | Description | Default | | --------- | ----------- | ------- | | `global.nodeSelector` | Node label to be useed globally for scheduling of all images | `nil` | | `global.hostAliases` | A list of hostAliases, that contains ip and hostnames, to be used globally | `[]` | | `global.affinity` | Deployemnt affinities to be used globally for scheduling of all images | `nil` | | `global.tolerations` | Deployment tolerations to be used globally for scheduling of all images | `nil` | | `global.imagePullSecrets` | The secret to use for pulling the images for all deployments | `nil` | | `hub.image` | The selenium hub image | `selenium/hub` | | `hub.tag` | The selenium hub image tag | `3.141.59` | | `hub.imagePullSecrets` | The secret to use for pulling the image. Will override the global parameter if set | `nil` | | `hub.pullPolicy` | The pull policy for the hub image | `IfNotPresent` | | `hub.port` | The port the hub listens on | `4444` | | `hub.servicePort` | The port the hub Service listens on | `4444` | | `hub.nodePort` | The port the hub is exposed when Nodeport mode is selected | `nil` | | `hub.podAnnotations` | Annotations on the hub pod | `{}` | | `hub.podLabels` | Additionals labels to the hub pod | `{}`| | `hub.securityContext` | SecurityContext on the hub pod | `{"runAsUser": 1000, "fsGroup": 1000}` | | `hub.extraEnvs` | Any additional environment variables to set in the pods | `[]` | | `hub.javaOpts` | The java options for the selenium hub JVM, default sets the maximum heap size to 400 mb | `-Xmx400m` | | `hub.resources` | The resources for the hub container, defaults to minimum half a cpu and maximum 512 mb RAM | `{"limits":{"cpu":".5", "memory":"512Mi"}}` | | `hub.serviceType` | The Service type | `LoadBalancer` | | `hub.serviceLoadBalancerIP` | The Public IP for the Load Balancer | `nil` | | `hub.loadBalancerSourceRanges` | A list of IP CIDRs allowed access to load balancer (if supported) | `[]` | | `hub.serviceSessionAffinity` | The session affinity for the hub service| `None` | | `hub.gridNewSessionWaitTimeout` | | `nil` | | `hub.gridJettyMaxThreads` | | `nil` | | `hub.gridNodePolling` | | `nil` | | `hub.gridCleanUpCycle` | Specifies how often the hub will poll running proxies for timed-out (i.e. hung) threads **(in ms)**. Must also specify "timeout" option | `nil` | | `hub.gridTimeout` | Specifies the timeout before the server automatically kills a session that hasn't had any activity in the last X seconds.| `nil` | | `hub.gridBrowserTimeout` | Number of seconds a browser session is allowed to hang while a WebDriver command is running | `nil` | | `hub.gridMaxSession` | | `nil` | | `hub.gridUnregisterIfStillDownAfter` | | `nil` | | `hub.seOpts` | Command line arguments to pass to hub | `nil` | | `hub.timeZone` | The time zone for the container | `nil` | | `hub.nodeSelector` | Node label to use for scheduling of the hub if set this takes precedence over the global value | `nil` | | `hub.affinity` | Deployemnt affinities to use for scheduling of the hub if set this takes precedence over the global value | `nil` | | `hub.tolerations` | Deployment tolerations to use for scheduling of the hub if set this takes precedence over the global value | `nil` | | `hub.ingress.enabled` | Configure an ingress for the selenium hub | `false` | | `hub.ingress.annotations` | Annotations for the ingress for the selenium hub | `nil` | | `hub.ingress.path` | The path for this ingress from which to route the traffic to the selenium hub | `/` | | `hub.ingress.hosts` | The list hosts for which this ingress should resolve the selenium hub | `[selenium-hub.local]` | | `hub.ingress.tls` | The tls secret to configure ssl for this ingress | `[]` | | `hub.readinessTimeout` | Timeout for hub readiness probe in seconds | `1` | | `hub.livenessTimeout` | Timeout for hub liveness probe in seconds | `1` | | `hub.probePath` | Path for readiness and liveness probes to check | `/wd/hub/status` | | `chrome.enabled` | Schedule a chrome node pod | `false` | | `chrome.runAsDaemonSet` | Schedule chrome node pods as DaemonSet | `false` | | `chrome.image` | The selenium node chrome image | `selenium/node-chrome` | | `chrome.tag` | The selenium node chrome tag | `3.141.59` | | `chrome.imagePullSecrets` | The secret to use for pulling the image. Will override the global parameter if set | `nil` | | `chrome.pullPolicy` | The pull policy for the node chrome image | `IfNotPresent` | | `chrome.replicas` | The number of selenium node chrome pods. This is ignored if runAsDaemonSet is enabled. | `1` | | `chrome.enableLivenessProbe` | When true will add a liveness check to the pod | `false` | | `chrome.waitForRunningSessions` | When true will wait for current running sessions to finish before terminating the pod | `false` | | `chrome.podAnnotations` | Annotations on the chrome pods | `{}` | | `chrome.podLabels` | Additional labels on the chrome pods | `{}` | | `chrome.securityContext` | SecurityContext on the chrome pods | `{"runAsUser": 1000, "fsGroup": 1000}` | | `chrome.extraEnvs` | Any additional environment variables to set in the pods | `[]` | | `chrome.javaOpts` | The java options for the selenium node chrome JVM, default sets the maximum heap size to 900 mb | `-Xmx900m` | | `chrome.volumeMounts` | Additional volumes to mount, the default provides a larger shared memory | `[{"mountPath":"/dev/shm", "name":"dshm"}]` | | `chrome.volumes` | Additional volumes import, the default provides a larger shared memory | `[{"name":"dshm", "emptyDir":{"medium":"Memory"}}]` | | `chrome.resources` | The resources for the node chrome container, defaults to minimum half a cpu and maximum 1,000 mb | `{"limits":{"cpu":".5", "memory":"1000Mi"}}` | | `chrome.screenWidth` | | `nil` | | `chrome.screenHeight` | | `nil` | | `chrome.screenDepth` | | `nil` | | `chrome.display` | The vnc display | `nil` | | `chrome.chromeVersion` | The version of chrome to use | `nil` | | `chrome.nodeMaxInstances` | The maximum number of browser instances | `nil` | | `chrome.nodeMaxSession` | The maximum number of sessions | `nil` | | `chrome.nodeRegistryCycle` | The number of milliseconds to wait, registering a node| `nil` | | `chrome.nodePort` | The port to listen on | `nil` | | `chrome.seOpts` | Command line arguments to pass to node | `nil` | | `chrome.timeZone` | The time zone for the container | `nil` | | `chrome.nodeSelector` | Node label to use for scheduling of chrome images if set this takes precedence over the global value | `nil` | | `chrome.affinity` | Deployemnt affinities to use for scheduling of the chrome if set this takes precedence over the global value | `nil` | | `chrome.tolerations` | Deployment tolerations to use for scheduling of the chrome if set this takes precedence over the global value | `nil` | | `chromeDebug.enabled` | Schedule a selenium node chrome debug pod | `false` | | `chromeDebug.runAsDaemonSet` | Schedule selenium node chrome debug pods as DaemonSet | `false` | | `chromeDebug.image` | The selenium node chrome debug image | `selenium/node-chrome-debug` | | `chromeDebug.tag` | The selenium node chrome debug tag | `3.141.59` | | `chromeDebug.imagePullSecrets` | The secret to use for pulling the image. Will override the global parameter if set | `nil` | | `chromeDebug.pullPolicy` | The selenium node chrome debug pull policy | `IfNotPresent` | | `chromeDebug.replicas` | The number of selenium node chrome debug pods. This is ignored if runAsDaemonSet is enabled. | `1` | | `chromeDebug.enableLivenessProbe` | When true will add a liveness check to the pod | `false` | | `chromeDebug.waitForRunningSessions` | When true will wait for current running sessions to finish before terminating the pod | `false` | | `chromeDebug.podAnnotations` | Annotations on the Chrome debug pod | `{}` | | `chromeDebug.podLabels` | Additional labels on the Chrome debug pods | `{}` | | `chromeDebug.securityContext` | SecurityContext on the Chrome debug pods | `{"runAsUser": 1000, "fsGroup": 1000}` | | `chromeDebug.extraEnvs` | Any additional environment variables to set in the pods | `[]` | | `chromeDebug.javaOpts` | The java options for a selenium node chrome debug JVM, default sets the max heap size to 900 mb | `-Xmx900m` | | `chromeDebug.volumeMounts` | Additional volumes to mount, the default provides a larger shared | `[{"mountPath":"/dev/shm", "name":"dshm"}]` | | `chromeDebug.volumes` | Additional volumes import, the default provides a larger shared | `[{"name":"dshm", "emptyDir":{"medium":"Memory"}}]` | | `chromeDebug.resources` | The resources for the hub container, defaults to minimum half a cpu and maximum 1,000 mb | `{"limits":{"cpu":".5", "memory":"1000Mi"}}` | | `chromeDebug.screenWidth` | | `nil` | | `chromeDebug.screenHeight` | | `nil` | | `chromeDebug.screenDepth` | | `nil` | | `chromeDebug.display` | The vnc display | `nil` | | `chromeDebug.chromeVersion` | The version of chrome to use | `nil` | | `chromeDebug.nodeMaxInstances` | The maximum number of browser instances | `nil` | | `chromeDebug.nodeMaxSession` | The maximum number of sessions | `nil` | | `chromeDebug.nodeRegistryCycle` | The number of milliseconds to wait, registering a node| `nil` | | `chromeDebug.nodePort` | The port to listen on | `nil` | | `chromeDebug.seOpts` | Command line arguments to pass to node | `nil` | | `chromeDebug.timeZone` | The time zone for the container | `nil` | | `chromeDebug.nodeSelector` | Node label to use for scheduling of chromeDebug images if set this takes precedence over the global value | `nil` | | `chromeDebug.affinity` | Deployemnt affinities to use for scheduling of the chromeDebug if set this takes precedence over the global value | `nil` | | `chromeDebug.tolerations` | Deployment tolerations to use for scheduling of the chromeDebug if set this takes precedence over the global value | `nil` | | `firefox.enabled` | Schedule a selenium node firefox pod | `false` | | `firefox.runAsDaemonSet` | Schedule selenium node firefox pods as DaemonSet | `false` | | `firefox.image` | The selenium node firefox image | `selenium/node-firefox` | | `firefox.tag` | The selenium node firefox tag | `3.141.59` | | `firefox.imagePullSecrets` | The secret to use for pulling the image. Will override the global parameter if set | `nil` | | `firefox.pullPolicy` | The selenium node firefox pull policy | `IfNotPresent` | | `firefox.replicas` | The number of selenium node firefox pods. This is ignored if runAsDaemonSet is enabled. | `1` | | `firefox.enableLivenessProbe` | When true will add a liveness check to the pod | `false` | | `firefox.waitForRunningSessions` | When true will wait for current running sessions to finish before terminating the pod | `false` | | `firefox.podAnnotations` | Annotations on the firefox pods | `{}` | | `firefox.podLabels` | Additional labels on the firefox pods | `{}` | | `firefox.securityContext` | SecurityContext on the firefox pods | `{"runAsUser": 1000, "fsGroup": 1000}` | | `firefox.extraEnvs` | Any additional environment variables to set in the pods | `[]` | | `firefox.javaOpts` | The java options for a selenium node firefox JVM, default sets the max heap size to 900 mb | `-Xmx900m` | | `firefox.volumeMounts` | Additional volumes to mount, the default provides a larger shared memory | `[{"mountPath":"/dev/shm", "name":"dshm"}]` | | `firefox.volumes` | Additional volumes import, the default provides a larger shared memory | `[{"name":"dshm", "emptyDir":{"medium":"Memory"}}]` | | `firefox.resources` | The resources for the hub container, defaults to minimum half a cpu and maximum 1,000 mb | `{"limits":{"cpu":".5", "memory":"1000Mi"}}` | | `firefox.screenWidth` | | `nil` | | `firefox.screenHeight` | | `nil` | | `firefox.screenDepth` | | `nil` | | `firefox.display` | The vnc display | `nil` | | `firefox.firefoxVersion` | The version of firefox to use | `nil` | | `firefox.nodeMaxInstances` | The maximum number of browser instances | `nil` | | `firefox.nodeMaxSession` | The maximum number of sessions | `nil` | | `firefox.nodeRegistryCycle` | The number of milliseconds to wait, registering a node| `nil` | | `firefox.nodePort` | The port to listen on | `nil` | | `firefox.seOpts` | Command line arguments to pass to node | `nil` | | `firefox.timeZone` | The time zone for the container | `nil` | | `firefox.nodeSelector` | Node label to use for scheduling of firefox images if set this takes precedence over the global value | `nil` | | `firefox.affinity` | Deployemnt affinities to use for scheduling of the firefox if set this takes precedence over the global value | `nil` | | `firefox.tolerations` | Deployment tolerations to use for scheduling of the firefox if set this takes precedence over the global value | `nil` | | `firefoxDebug.enabled` | Schedule a selenium node firefox debug pod | `false` | | `firefoxDebug.runAsDaemonSet` | Schedule selenium node firefox debug pods as DaemonSet | `false` | | `firefoxDebug.image` | The selenium node firefox debug image | `selenium/node-firefox-debug` | | `firefoxDebug.tag` | The selenium node firefox debug tag | `3.141.59` | | `firefoxDebug.imagePullSecrets` | The secret to use for pulling the image. Will override the global parameter if set | `nil` | | `firefoxDebug.pullPolicy` | The selenium node firefox debug pull policy | `IfNotPresent` | | `firefoxDebug.replicas` | The number of selenium node firefox debug pods. This is ignored if runAsDaemonSet is enabled. | `1` | | `firefoxDebug.enableLivenessProbe` | When true will add a liveness check to the pod | `false` | | `firefoxDebug.waitForRunningSessions` | When true will wait for current running sessions to finish before terminating the pod | `false` | | `firefoxDebug.podAnnotations` | Annotations on the firefox debug pods | `{}` | | `firefoxDebug.podLabels` | Additional labels on the firefox debug pods | `{}` | | `firefoxDebug.securityContext` | SecurityContext on the firefox debug pods | `{"runAsUser": 1000, "fsGroup": 1000}` | | `firefoxDebug.extraEnvs` | Any additional environment variables to set in the pods | `[]` | | `firefoxDebug.javaOpts` | The java options for a selenium node firefox debug JVM, default sets the max heap size to 900 mb | `-Xmx900m` | | `firefoxDebug.volumeMounts` | Additional volumes to mount, the default provides a larger shared | `[{"mountPath":"/dev/shm", "name":"dshm"}]` | | `firefoxDebug.volumes` | Additional volumes import, the default provides a larger shared | `[{"name":"dshm", "emptyDir":{"medium":"Memory"}}]` | | `firefoxDebug.resources` | The resources for the selenium node firefox debug container, defaults to minimum half a cpu and maximum 1,000 mb | `{"limits":{"cpu":".5", "memory":"1000Mi"}}` | | `firefoxDebug.screenWidth` | | `nil` | | `firefoxDebug.screenHeight` | | `nil` | | `firefoxDebug.screenDepth` | | `nil` | | `firefoxDebug.display` | The vnc display | `nil` | | `firefoxDebug.firefoxVersion` | The version of firefox to use | `nil` | | `firefoxDebug.nodeMaxInstances` | The maximum number of browser instances | `nil` | | `firefoxDebug.nodeMaxSession` | The maximum number of sessions | `nil` | | `firefoxDebug.nodeRegistryCycle` | The number of milliseconds to wait, registering a node| `nil` | | `firefoxDebug.nodePort` | The port to listen on | `nil` | | `firefoxDebug.seOpts` | Command line arguments to pass to node | `nil` | | `firefoxDebug.timeZone` | The time zone for the container | `nil` | | `firefoxDebug.nodeSelector` | Node label to use for scheduling of firefoxDebug images if set this takes precedence over the global value | `nil` | | `firefoxDebug.affinity` | Deployemnt affinities to use for scheduling of the firefoxDebug if set this takes precedence over the global value | `nil` | | `firefoxDebug.tolerations` | Deployment tolerations to use for scheduling of the firefoxDebug if set this takes precedence over the global value | `nil` | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, ```console $ helm install --name my-release \ --set chrome.enabled=true \ stable/selenium ``` Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, ```console $ helm install --name my-release -f values.yaml stable/selenium ``` > **Tip**: You can use the default [values.yaml](values.yaml)