You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: charts/selenium-grid/CONFIGURATION.md
+23-1
Original file line number
Diff line number
Diff line change
@@ -194,6 +194,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
194
194
| components.router.externalName | string |`""`| Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)|
195
195
| components.router.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
196
196
| components.router.serviceAnnotations | object |`{}`| Custom annotations for router service |
197
+
| components.router.serviceExternalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
198
+
| components.router.serviceSessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
197
199
| components.router.tolerations | list |`[]`| Tolerations for router pods |
| components.router.priorityClassName | string |`""`| Priority class name for router pods |
@@ -217,6 +219,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
217
219
| components.distributor.securityContext | object |`{}`| SecurityContext for Distributor container |
218
220
| components.distributor.serviceType | string |`"ClusterIP"`| Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)|
219
221
| components.distributor.serviceAnnotations | object |`{}`| Custom annotations for Distributor service |
222
+
| components.distributor.serviceExternalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
223
+
| components.distributor.serviceSessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
220
224
| components.distributor.tolerations | list |`[]`| Tolerations for Distributor pods |
| components.distributor.priorityClassName | string |`""`| Priority class name for Distributor pods |
@@ -243,6 +247,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
243
247
| components.eventBus.externalName | string |`""`| Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)|
244
248
| components.eventBus.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
245
249
| components.eventBus.serviceAnnotations | object |`{}`| Custom annotations for Event Bus service |
250
+
| components.eventBus.serviceExternalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
251
+
| components.eventBus.serviceSessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
246
252
| components.eventBus.tolerations | list |`[]`| Tolerations for Event Bus pods |
247
253
| components.eventBus.nodeSelector | object |`{}`| Node selector for Event Bus pods |
248
254
| components.eventBus.priorityClassName | string |`""`| Priority class name for Event Bus pods |
@@ -261,6 +267,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
| components.sessionMap.serviceType | string |`"ClusterIP"`| Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)|
263
269
| components.sessionMap.serviceAnnotations | object |`{}`| Custom annotations for Session Map service |
270
+
| components.sessionMap.serviceExternalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
271
+
| components.sessionMap.serviceSessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
264
272
| components.sessionMap.tolerations | list |`[]`| Tolerations for Session Map pods |
| components.sessionQueue.serviceType | string |`"ClusterIP"`| Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)|
286
294
| components.sessionQueue.serviceAnnotations | object |`{}`| Custom annotations for Session Queue service |
295
+
| components.sessionQueue.serviceExternalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
296
+
| components.sessionQueue.serviceSessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
287
297
| components.sessionQueue.tolerations | list |`[]`| Tolerations for Session Queue pods |
| components.sessionQueue.priorityClassName | string |`""`| Priority class name for Session Queue pods |
@@ -323,13 +333,15 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
323
333
| hub.externalName | string |`""`| Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)|
324
334
| hub.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
325
335
| hub.serviceAnnotations | object |`{}`| Custom annotations for Selenium Hub service |
336
+
| hub.serviceExternalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
337
+
| hub.serviceSessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
326
338
| hub.tolerations | list |`[]`| Tolerations for selenium-hub pods |
@@ -350,6 +362,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
350
362
| monitoring.exporter.service.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
351
363
| monitoring.exporter.service.nodePort | int |`30199`| Node port for service |
352
364
| monitoring.exporter.service.annotations | object |`{}`| Annotations for exporter service |
365
+
| monitoring.exporter.service.externalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
366
+
| monitoring.exporter.service.sessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
@@ -413,6 +427,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
413
427
| chromeNode.service.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
414
428
| chromeNode.service.ports | string |`nil`| Extra ports exposed in node service |
415
429
| chromeNode.service.annotations | object |`{}`| Custom annotations for service |
430
+
| chromeNode.service.externalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
431
+
| chromeNode.service.sessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
416
432
| chromeNode.dshmVolumeSizeLimit | string |`""`| Size limit for DSH volume mounted in container (if not set, default is disabled, e.g "1Gi") |
417
433
| chromeNode.priorityClassName | string |`""`| Priority class name for chrome-node pods |
@@ -465,6 +481,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
465
481
| firefoxNode.service.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
466
482
| firefoxNode.service.ports | string |`nil`| Extra ports exposed in node service |
467
483
| firefoxNode.service.annotations | object |`{}`| Custom annotations for service |
484
+
| firefoxNode.service.externalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
485
+
| firefoxNode.service.sessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
468
486
| firefoxNode.dshmVolumeSizeLimit | string |`"2Gi"`| Size limit for DSH volume mounted in container (if not set, default is disabled, e.g "1Gi") |
469
487
| firefoxNode.priorityClassName | string |`""`| Priority class name for firefox-node pods |
@@ -517,6 +535,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
517
535
| edgeNode.service.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
518
536
| edgeNode.service.ports | string |`nil`| Extra ports exposed in node service |
519
537
| edgeNode.service.annotations | object |`{}`| Custom annotations for service |
538
+
| edgeNode.service.externalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
539
+
| edgeNode.service.sessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
520
540
| edgeNode.dshmVolumeSizeLimit | string |`""`| Size limit for DSH volume mounted in container (if not set, default is disabled, e.g "1Gi") |
521
541
| edgeNode.priorityClassName | string |`""`| Priority class name for edge-node pods |
@@ -569,6 +589,8 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
569
589
| relayNode.service.loadBalancerIP | string |`""`| Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)|
570
590
| relayNode.service.ports | string |`nil`| Extra ports exposed in node service |
571
591
| relayNode.service.annotations | object |`{}`| Custom annotations for service |
592
+
| relayNode.service.externalTrafficPolicy | string |`""`| Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)|
593
+
| relayNode.service.sessionAffinity | string |`""`| Set session affinity to None, ClientIP or ClientIPString |
572
594
| relayNode.dshmVolumeSizeLimit | string |`""`| Size limit for DSH volume mounted in container (if not set, default is disabled, e.g "1Gi") |
573
595
| relayNode.priorityClassName | string |`""`| Priority class name for relay-node pods |
*[Define multiple scalers with different trigger parameters.](#define-multiple-scalers-with-different-trigger-parameters)
19
20
*[Settings fixed-sized thread pool for the Distributor to create new sessions](#settings-fixed-sized-thread-pool-for-the-distributor-to-create-new-sessions)
@@ -356,6 +358,20 @@ In autoscaling, by default, it will calculate based on `no. of node types * maxR
356
358
357
359
You can override the default calculation by another value via `components.distributor.newSessionThreadPoolSize` (in full distributed mode) or `hub.newSessionThreadPoolSize` (in basic mode).
358
360
361
+
### Troubleshooting
362
+
363
+
This is a list of common issues that you might encounter when enabling autoscaling in Selenium Grid.
364
+
365
+
- Autoscaling isn't working when deploying KEDA core and Selenium Grid in different namespaces.
366
+
367
+
For example, you deployed KEDA core in `keda` namespace, and Selenium Grid in `selenium` namespace with config `autoscaling.enableWithExistingKEDA=true`. You observe that the ScaledObject/ScaledJob is created but the scaler isn't triggered.
368
+
Use `kubectl logs` to see `keda-operator` pod logs, if you see the error message looks like
369
+
370
+
> ERROR scale_handler Error getting scaler metrics and activity, but continue {"scaledJob.Name": "selenium-node-firefox-latest", "Scaler": "*scalers.seleniumGridScaler:", "error": "error requesting selenium grid endpoint: Post \"http://selenium-router:4444/graphql\": dial tcp: lookup selenium-router on 10.96.0.10:53: no such host"}
371
+
372
+
It probably is the DNS issue. You need to check the GraphQL endpoint provided in the trigger metadata is accessible from the KEDA core namespace. In case different namespaces, and using svc name, you might need to use <service-name>.<namespace-name> as the domain name.
373
+
At cluster level, you might need to configure network policies to allow traffic between namespaces properly.
374
+
359
375
## Updating Selenium-Grid release
360
376
361
377
Once you have a new chart version, you can update your selenium-grid running:
0 commit comments