-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathvalues.yaml
More file actions
2273 lines (2172 loc) · 87.8 KB
/
values.yaml
File metadata and controls
2273 lines (2172 loc) · 87.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
global:
# -- Public IP of the host running Kubernetes cluster.
# This is used to access the Selenium Grid from outside the cluster when ingress is disabled or enabled without a hostname is set.
# This is part of constructing SE_NODE_GRID_URL and rewrite URL of `se:vnc`, `se:cdp` in the capabilities when `ingress.hostname` is unset
K8S_PUBLIC_IP: ""
seleniumGrid:
# -- Image registry for all selenium components
imageRegistry: selenium
# -- Image tag for all selenium components
imageTag: 4.38.0-20251101
# -- Image tag for browser's nodes
nodesImageTag: 4.38.0-20251101
# -- Image tag for browser's video recorder
videoImageTag: ffmpeg-8.0-20251101
# -- kubectl image is used to execute kubectl commands in utility jobs
kubectlImage: bitnamilegacy/kubectl:latest
# -- Pull secret for all components, can be overridden individually
imagePullSecret: ""
# -- Log level for all components. Possible values describe here: https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging
logLevel: INFO
# -- Set default startup probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet
defaultNodeStartupProbe: exec
# -- Set default readiness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet
defaultNodeReadinessProbe: exec
# -- Set default readiness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet
defaultNodeLivenessProbe: exec
# -- Set default liveness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet
defaultComponentLivenessProbe: httpGet
# -- Probe logs output can be retrieved using `kubectl logs`. Noted: this will not work if shareProcessNamespace is enabled
stdoutProbeLog: false
# -- Specify how many old ReplicaSets for this Deployment you want to retain. The rest will be garbage-collected in the background.
revisionHistoryLimit: 10
# -- Whether to enable structured logging
structuredLogs: false
# -- Enable http logging. Tracing should be enabled to log http logs.
httpLogs: false
updateStrategy:
# -- Specify update strategy for all components, can be overridden individually
type: Recreate
# type: RollingUpdate
# -- Specify for strategy RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
# -- Specify affinity for all components, can be overridden individually
affinity: {}
# -- Specify topologySpreadConstraints for all components, can be overridden individually
topologySpreadConstraints: []
# - maxSkew: 4
# topologyKey: kubernetes.io/hostname
# whenUnsatisfiable: DoNotSchedule
# Note: If not define labelSelector, it will be added automatically based on "app" label in each component
# -- Timeout in seconds. A new incoming session request is added to the queue. Requests sitting in the queue for longer than the configured time will timeout.
sessionRequestTimeout: 300
# -- Specify number of max sessions per node. Can be overridden by individual component (this is also set to scaler trigger parameter `nodeMaxSessions` if `autoscaling` is enabled)
nodeMaxSessions: 1
# Noted: In case of autoscaling enabled, with scaling type `job`, Node will be drained following `nodeMaxSessions` by default
# If changing `nodeDrainAfterSessionCount` > `nodeMaxSessions` it will take precedence over `nodeMaxSessions` in scaling type `job`
# For other cases, `nodeDrainAfterSessionCount` > 0 always take effect.
# -- Set number of sessions will be executed in a Node before detaching it from Hub and shutting it down
nodeDrainAfterSessionCount: 0
# -- This causes the Node to auto manage files downloaded for a given session on the Node (https://www.selenium.dev/documentation/webdriver/drivers/remote_webdriver/#enable-downloads-in-the-grid)
nodeEnableManagedDownloads: true
# -- Setting custom capabilities for matching specific Nodes (https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes). If set via Helm CLI, consider use `--set-literal` to prevent Helm from interpreting the JSON string
nodeCustomCapabilities: ""
# -- How long, in seconds, will the Node try to register to the Distributor for the first time. After this period is completed, the Node will not attempt to register again.
nodeRegisterPeriod: 120
# -- How often, in seconds, the Node will try to register itself for the first time to the Distributor.
nodeRegisterCycle: 5
tls:
# -- Create a Secret resource for TLS certificate and key. If using an external secret set to false and provide its name in `nameOverride` below
create: true
# -- Name of external secret containing the TLS certificate and key
nameOverride:
# -- Enable or disable TLS for the server components (and ingress proxy)
enabled: false
ingress:
# -- Enable or disable TLS for the ingress proxy only
enabled: false
# -- Use the certificate and key are generated with below settings
generateTLS: false
defaultName: "SeleniumHQ"
defaultDays: 3650
defaultCN: "www.selenium.dev"
# or *.domain.com
defaultSANList: []
# - staging.domain.com
# - production.domain.com
defaultIPList: []
# - 10.10.10.10
# -- Cert files will be imported from chart directory if not specified
secretFilesImportFrom: "certs/**"
# -- File names for the TLS certificate and key to import
secretFiles:
# -- Key to set contents for certificate file via --set-file
tls.crt: ""
# -- Key to set contents for private key file via --set-file
tls.key: ""
# -- Key to set contents for trust store file via --set-file
server.jks: ""
# -- Key to set contents for trust store password file via --set-file
server.pass: ""
# -- All files for TLS will be mounted to the server components under directory
certVolumeMountPath: "/opt/selenium/secrets"
# -- Cert file will be mounted to server components as a volume
certificateFile: tls.crt
# -- Key file will be mounted to server components as a volume
privateKeyFile: tls.key
# -- Trust store file will be mounted to server components as a volume
trustStoreFile: server.jks
# -- Trust store password file will be mounted to server components as a volume
trustStorePasswordFile: server.pass
# -- Recommend to get from trustStorePasswordFile instead of plain text via env variable
trustStorePassword: ""
# -- Disable verification the hostname included in the server's TLS/SSL certificates matches the hostnames provided
disableHostnameVerification: true
registrationSecret:
# -- Enable feature node registration secret to make sure that the node is one you control and not a rouge node
enabled: false
# -- The secret value to be used for node registration
value: "HappyTesting"
# Basic auth settings for Selenium Grid
basicAuth:
# -- Create a secret resource for basic auth. If using an external secret, set to false and provide its name in `nameOverride` below
create: true
# -- External secret containing the basic auth username and password for reference
nameOverride:
# -- Enable or disable basic auth for the Hub/Router
enabled: false
# -- Username for basic auth
username: admin
# -- Password for basic auth
password: admin
# -- Embed the basic auth "username:password@" in few URLs e.g. SE_NODE_GRID_URL
embeddedUrl: false
# -- Annotations for basic auth secret resource
annotations: {}
# -- Deploy Router, Distributor, EventBus, SessionMap and Nodes separately
isolateComponents: false
# Service Account for all components
serviceAccount:
# -- Create a service account for all components. If using an external service account, set to false and provide its name in `nameOverride` below
create: true
# -- Override to use an external service account
nameOverride:
# -- Annotations for the service account
annotations: {}
# eks.amazonaws.com/role-arn: "arn:aws:iam::12345678:role/video-bucket-permissions"
# -- RBAC settings for patching finalizers KEDA scaled resources
rbacRole:
# -- Enable to create RBAC role to access few KEDA resources. If using an external role, set to false and provide its name in `nameOverride` below
create: true
# -- Override resource name or provide an external role name
nameOverride:
annotations: {}
rules:
- apiGroups:
- keda.sh
resources:
- scaledjobs
verbs: [get, list, patch, update, delete]
- apiGroups:
- keda.sh
resources:
- scaledobjects
verbs: [get, list, patch, update, delete]
- apiGroups:
- keda.sh
resources:
- triggerauthentications
verbs: [get, list, patch, update, delete]
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs: [get, list, patch, update, delete]
# -- RBAC role binding settings for patching finalizers KEDA scaled resources
rbacRoleBinding:
# -- Enable to create RBAC role binding to a service account. If using an external role binding, set to false and provide its name in `nameOverride` below
create: true
# -- Override resource name or provide an external role binding name
nameOverride:
annotations: {}
subjects:
- kind: ServiceAccount
roleRef:
kind: Role
apiGroup: rbac.authorization.k8s.io
# Configure the ingress resource to access the Grid installation.
ingress:
# -- Enable to create ingress resource
enabled: true
# -- Enable ingress resource with automatically installing Ingress NGINX Controller
enableWithController: false
# -- Name of ingress class to select which controller will implement ingress resource
className: ""
# Refer to list nginx annotations: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md#annotations
nginx:
# -- Enable corresponding annotations for NGINX Ingress Controller
websocket: true
# -- Set timeout to corresponding annotations for NGINX Ingress Controller
proxyTimeout: 3600
proxyBuffer:
# -- Set buffer size to corresponding annotations for NGINX Ingress Controller
size: 512M
# -- Set buffer number to corresponding annotations for NGINX Ingress Controller
number: 4
# -- Enable corresponding annotations for NGINX Ingress Controller
sslPassthrough: true
# -- Specify a Secret with the certificate `tls.crt`, key `tls.key`, the name in the form "namespace/secretName" for NGINX Ingress Controller
sslSecret: ""
# -- Enables or disables HTTP/2 support in secure connections via annotations for NGINX Ingress Controller
useHttp2: false
# -- Apply upstream keepalive settings once HTTP/2 is enabled
upstreamKeepalive:
# -- Set keepalive connections to corresponding annotations for NGINX Ingress Controller
connections: 10000
# -- Set keepalive timeout to corresponding annotations for NGINX Ingress Controller
time: 1h
# -- Set keepalive requests to corresponding annotations for NGINX Ingress Controller
requests: 10000
ports:
# -- Specify HTTP port is exposed by ingress controller
http: 80
# -- Specify HTTPS port is exposed by ingress controller
https: 443
# -- Custom annotations for ingress resource
annotations: {}
# -- Default host for the ingress resource
hostname: ""
# -- Default host path for the ingress resource
path: /
# -- Default path type for the ingress resource
pathType: Prefix
# -- List of paths for the ingress resource. This will override the default path
paths: []
# -- TLS backend configuration for ingress resource
tls: []
# ConfigMap that contains SE_EVENT_BUS_HOST, SE_EVENT_BUS_PUBLISH_PORT and SE_EVENT_BUS_SUBSCRIBE_PORT variables
busConfigMap:
# -- Override the name of the bus configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data:
SE_JAVA_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100"
# -- Custom annotations for configmap
annotations: {}
# ConfigMap that contains environment variables for session map
sessionMapConfigMap:
# -- Override the name of the session map configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data:
SE_JAVA_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100"
# -- Custom annotations for configmap
annotations: {}
# ConfigMap that contains environment variables for session queue
sessionQueueConfigMap:
# -- Override the name of the session map configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data:
SE_JAVA_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100"
# -- Custom annotations for configmap
annotations: {}
distributorConfigMap:
# -- Override the name of the distributor configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data:
SE_JAVA_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100"
# -- Default mode for ConfigMap is mounted as file
defaultMode: 0755
# -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
extraScriptsImportFrom: "configs/distributor/**"
# -- Directory where the extra scripts are mounted to
extraScriptsDirectory: "/opt/bin"
extraScripts:
# -- Key to set contents for script file via --set-file
distributorProbe.sh: ""
# -- Name of volume mount is used to mount scripts in the ConfigMap. Default is same as this configMap name
scriptVolumeMountName:
# -- Custom annotations for configmap
annotations: {}
routerConfigMap:
# -- Override the name of the router configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data:
SE_JAVA_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100"
# -- Default mode for ConfigMap is mounted as file
defaultMode: 0755
# -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
extraScriptsImportFrom: "configs/router/**"
# -- Directory where the extra scripts are mounted to
extraScriptsDirectory: "/opt/bin"
extraScripts:
# -- Key to set contents for script file via --set-file
routerGraphQLUrl.sh: ""
# -- Key to set contents for script file via --set-file
routerProbe.sh: ""
# -- Name of volume mount is used to mount scripts in the ConfigMap
scriptVolumeMountName:
# -- Custom annotations for configmap
annotations: {}
# ConfigMap that contains common environment variables for browser nodes
nodeConfigMap:
# -- Override the name of the node configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data:
SE_JAVA_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=50"
# -- Default mode for ConfigMap is mounted as file
defaultMode: 0755
# -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
extraScriptsImportFrom: "configs/node/**"
# -- Directory where the extra scripts are mounted to
extraScriptsDirectory: "/opt/bin"
extraScripts:
# -- Key to set contents for script file via --set-file
nodeGridUrl.sh: ""
# -- Key to set contents for script file via --set-file
nodePreStop.sh: ""
# -- Key to set contents for script file via --set-file
nodeProbe.sh: ""
# -- Key to set contents for script file via --set-file
nodeProbeReadiness.sh: ""
# -- Name of volume mount is used to mount scripts in the ConfigMap
scriptVolumeMountName:
leftoversCleanup:
# -- Enable feature automatic browser leftovers cleanup stuck browser processes, tmp files
enabled: false
# -- Interval in seconds to run the cleanup job
jobIntervalInSecs: 3600
# -- Browser process elapsed time in seconds to consider as leftovers
browserElapsedTimeInSecs: 7200
# -- Tmp files elapsed time in days to consider as leftovers
tmpFilesAfterDays: 1
# -- Custom annotations for configmap
annotations: {}
recorderConfigMap:
# -- Override the name of the recorder configMap
nameOverride:
# -- Default mode for ConfigMap is mounted as file
defaultMode: 0755
# -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
extraScriptsImportFrom: "configs/recorder/**"
# -- Directory where the extra scripts are mounted to
extraScriptsDirectory: "/opt/bin"
# -- List of extra scripts to be mounted to the container. Format as `filename: content`
extraScripts:
# video.sh: ""
# video_graphQLQuery.sh: ""
# -- Name of volume mount is used to mount scripts in the ConfigMap
scriptVolumeMountName:
# -- Directory in container where the videos are stored
videoVolumeMountName: videos
# -- Custom annotations for configmap
annotations: {}
uploaderConfigMap:
# -- Override the name of the uploader configMap
nameOverride:
# -- Default mode for ConfigMap is mounted as file
defaultMode: 0755
# -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
extraScriptsImportFrom: "configs/uploader/**"
# -- Directory where the extra scripts are mounted to
extraScriptsDirectory: "/opt/selenium"
# -- List of extra scripts to be mounted to the container. Format as `filename: content`
extraScripts:
upload.sh: ""
# -- Extra files stored in Secret to be mounted to the container.
secretFiles:
upload.conf: "[sample]"
# -- Name of volume mount is used to mount scripts in the ConfigMap
scriptVolumeMountName:
# -- Name of Secret is used to store the `secretFiles`
secretVolumeMountName:
# -- Custom annotations for configmap
annotations: {}
# -- ConfigMap that contains common environment variables for Logging (https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging)
loggingConfigMap:
# -- Override the name of the logging configMap
nameOverride:
# -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values
data: {}
# -- Custom annotations for configmap
annotations: {}
serverConfigMap:
# -- Override the name of the server configMap
nameOverride:
# -- Extra common environment variables for Server (https://www.selenium.dev/documentation/grid/configuration/cli_options/#server) to server configMap
data:
# Log level of supervisord. Accept values: critical, error, warn, info, debug, trace, blather (http://supervisord.org/logging.html)
SE_SUPERVISORD_LOG_LEVEL: "info"
# -- Custom annotations for configmap
annotations: {}
# Secrets for all components. Component environment variables contain sensitive data should be stored in secrets.
secrets:
# -- Create the default secret for all components. If using an external secret, set to false and provide its name in `nameOverride` below
create: true
# -- Override to use an external secret
nameOverride:
# -- Extra environment variables set to the secret
data:
SE_VNC_PASSWORD: "secret"
# -- Custom annotations for secret
annotations: {}
# Configuration for isolated components (applied only if `isolateComponents: true`)
components:
# Configuration for router component
router:
# -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)
imageRegistry:
# -- Router image name
imageName: router
# -- Router image tag (this overwrites global.seleniumGrid.imageTag parameter)
imageTag:
# -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
imagePullPolicy: IfNotPresent
# -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
imagePullSecret: ""
# -- Custom sub path for Router
subPath: ""
# -- Disable the Grid UI
disableUI: false
# -- Specify extra environment variables for Router
extraEnvironmentVariables: []
# -- Specify extra environment variables from ConfigMap and Secret for Router
extraEnvFrom: []
# -- Specify affinity for router pods, this overwrites global.seleniumGrid.affinity parameter
affinity: {}
# -- Specify topologySpreadConstraints for router pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter
topologySpreadConstraints: []
# -- Custom annotations for router pods
annotations: {}
# -- Router container port
port: 4444
# -- Router expose NodePort
nodePort: 30444
# -- Startup probe settings
startupProbe:
enabled: true
path: /readyz
initialDelaySeconds: 5
failureThreshold: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
# -- Readiness probe settings
readinessProbe:
enabled: true
path: /readyz
initialDelaySeconds: 12
failureThreshold: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
# -- Liveness probe settings
livenessProbe:
enabled: true
path: /readyz
initialDelaySeconds: 60
failureThreshold: 30
timeoutSeconds: 60
periodSeconds: 60
successThreshold: 1
# -- Resources for router container
resources:
requests:
cpu: "0.5"
memory: "512Mi"
limits:
cpu: "1"
memory: "2Gi"
# -- Number of replicas
replicas: 1
# -- SecurityContext for router container
securityContext: {}
# -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
serviceType: ClusterIP
# -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)
clusterIP: ""
# -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)
externalName: ""
# -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
loadBalancerIP: ""
# -- Custom annotations for router service
serviceAnnotations: {}
# -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)
serviceExternalTrafficPolicy: ""
# -- Set session affinity to None, ClientIP or ClientIPString
serviceSessionAffinity: ""
# -- Tolerations for router pods
tolerations: []
# -- Node selector for router pods
nodeSelector: {}
# -- Priority class name for router pods
priorityClassName: ""
# Configuration for distributor component
distributor:
# -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)
imageRegistry:
# -- Distributor image name
imageName: distributor
# -- Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter)
imageTag:
# -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
imagePullPolicy: IfNotPresent
# -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
imagePullSecret: ""
# -- Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue
newSessionThreadPoolSize:
# -- Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched
slotSelectorStrategy: ""
# -- Specify extra environment variables for Distributor
extraEnvironmentVariables: []
# -- Specify extra environment variables from ConfigMap and Secret for Distributor
extraEnvFrom: []
# -- Specify affinity for distributor pods, this overwrites global.seleniumGrid.affinity parameter
affinity: {}
# -- Specify topologySpreadConstraints for Distributor pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter
topologySpreadConstraints: []
# -- Custom annotations for Distributor pods
annotations: {}
# -- Distributor container port
port: 5553
# -- Distributor expose NodePort
nodePort: 30553
# -- Startup probe settings
startupProbe:
enabled: true
path: /readyz
initialDelaySeconds: 5
failureThreshold: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
# -- Readiness probe settings
readinessProbe:
enabled: true
path: /readyz
initialDelaySeconds: 12
failureThreshold: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
# -- Liveness probe settings
livenessProbe:
enabled: true
path: /readyz
initialDelaySeconds: 60
failureThreshold: 30
timeoutSeconds: 60
periodSeconds: 60
successThreshold: 1
# -- Resources for Distributor container
resources:
requests:
cpu: "0.5"
memory: "512Mi"
limits:
cpu: "1"
memory: "2Gi"
# -- Number of replicas
replicas: 1
# -- SecurityContext for Distributor container
securityContext: {}
# -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
serviceType: ClusterIP
# -- Custom annotations for Distributor service
serviceAnnotations: {}
# -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)
serviceExternalTrafficPolicy: ""
# -- Set session affinity to None, ClientIP or ClientIPString
serviceSessionAffinity: ""
# -- Tolerations for Distributor pods
tolerations: []
# -- Node selector for Distributor pods
nodeSelector: {}
# -- Priority class name for Distributor pods
priorityClassName: ""
# Configuration for Event Bus component
eventBus:
# -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)
imageRegistry:
# -- Event Bus image name
imageName: event-bus
# -- Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter)
imageTag:
# -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
imagePullPolicy: IfNotPresent
# -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
imagePullSecret: ""
# -- Specify extra environment variables for Event Bus
extraEnvironmentVariables: []
# -- Specify extra environment variables from ConfigMap and Secret for Event Bus
extraEnvFrom: []
# -- Specify affinity for Event Bus pods, this overwrites global.seleniumGrid.affinity parameter
affinity: {}
# -- Specify topologySpreadConstraints for Event Bus pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter
topologySpreadConstraints: []
# -- Custom annotations for Event Bus pods
annotations: {}
# -- Event Bus container port
port: 5557
# -- Event Bus expose NodePort
nodePort: 30557
# -- Container port where events are published
publishPort: 4442
# -- NodePort exposed where events are published
publishNodePort: 30442
# -- Container port where to subscribe for events
subscribePort: 4443
# -- NodePort exposed where to subscribe for events
subscribeNodePort: 30443
# -- Resources for event-bus container
resources:
requests:
cpu: "0.5"
memory: "512Mi"
limits:
cpu: "1"
memory: "2Gi"
# -- Number of replicas
replicas: 1
# -- SecurityContext for event-bus container
securityContext: {}
# -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
serviceType: ClusterIP
# -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)
clusterIP: ""
# -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)
externalName: ""
# -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
loadBalancerIP: ""
# -- Custom annotations for Event Bus service
serviceAnnotations: {}
# -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)
serviceExternalTrafficPolicy: ""
# -- Set session affinity to None, ClientIP or ClientIPString
serviceSessionAffinity: ""
# -- Tolerations for Event Bus pods
tolerations: []
# -- Node selector for Event Bus pods
nodeSelector: {}
# -- Priority class name for Event Bus pods
priorityClassName: ""
# Configuration for Session Map component
sessionMap:
# -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)
imageRegistry:
# -- Session Map image name
imageName: sessions
# -- Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter)
imageTag:
# -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
imagePullPolicy: IfNotPresent
# -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
imagePullSecret: ""
# -- Specify extra environment variables for Session Map
extraEnvironmentVariables: []
# -- Specify extra environment variables from ConfigMap and Secret for Session Map
extraEnvFrom: []
# -- Specify affinity for Session Map pods, this overwrites global.seleniumGrid.affinity parameter
affinity: {}
# -- Specify topologySpreadConstraints for Session Map pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter
topologySpreadConstraints: []
# -- Custom annotations for Session Map pods
annotations: {}
# -- Session Map container port
port: 5556
# -- Resources for Session Map container
resources:
requests:
cpu: "0.5"
memory: "512Mi"
limits:
cpu: "1"
memory: "1Gi"
# -- Number of replicas
replicas: 1
# -- SecurityContext for Session Map container
securityContext: {}
# -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
serviceType: ClusterIP
# -- Custom annotations for Session Map service
serviceAnnotations: {}
# -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)
serviceExternalTrafficPolicy: ""
# -- Set session affinity to None, ClientIP or ClientIPString
serviceSessionAffinity: ""
# -- Tolerations for Session Map pods
tolerations: []
# -- Node selector for Session Map pods
nodeSelector: {}
# -- Priority class name for Session Map pods
priorityClassName: ""
externalDatastore:
# -- Enable external datastore for Session Map
enabled: false
# -- Backend for external datastore (supported: postgresql, redis). Details for each backend are described below config key
backend: postgresql
# -- Configure database backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#database-backed-session-map)
postgresql:
implementation: "org.openqa.selenium.grid.sessionmap.jdbc.JdbcBackedSessionMap"
jdbcUser: "seluser"
jdbcPassword: "seluser"
jdbcUrl: "jdbc:postgresql://{{ $.Release.Name }}-postgresql:5432/selenium_sessions"
# -- Configure Redis backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#redis-backed-session-map)
redis:
scheme: "redis"
implementation: "org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap"
hostname: "{{ $.Release.Name }}-redis-master"
port: "6379"
# Configuration for Session Queue component
sessionQueue:
# -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)
imageRegistry:
# -- Session Queue image name
imageName: session-queue
# -- Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter)
imageTag:
# -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
imagePullPolicy: IfNotPresent
# -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
imagePullSecret: ""
# -- Override global sessionRequestTimeout
sessionRequestTimeout: ""
# -- Specify extra environment variables for Session Queue
extraEnvironmentVariables: []
# -- Specify extra environment variables from ConfigMap and Secret for Session Queue
extraEnvFrom: []
# -- Specify affinity for Session Queue pods, this overwrites global.seleniumGrid.affinity parameter
affinity: {}
# -- Specify topologySpreadConstraints for Session Queue pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter
topologySpreadConstraints: []
# -- Custom annotations for Session Queue pods
annotations: {}
# -- Session Queue container port
port: 5559
# -- Session Queue expose NodePort
nodePort: 30559
# -- Resources for Session Queue container
resources:
requests:
cpu: "0.5"
memory: "512Mi"
limits:
cpu: "1"
memory: "1Gi"
# -- Number of replicas
replicas: 1
# -- SecurityContext for Session Queue container
securityContext: {}
# -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
serviceType: ClusterIP
# -- Custom annotations for Session Queue service
serviceAnnotations: {}
# -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)
serviceExternalTrafficPolicy: ""
# -- Set session affinity to None, ClientIP or ClientIPString
serviceSessionAffinity: ""
# -- Tolerations for Session Queue pods
tolerations: []
# -- Node selector for Session Queue pods
nodeSelector: {}
# -- Priority class name for Session Queue pods
priorityClassName: ""
# -- Custom environment variables for all components
extraEnvironmentVariables: []
# - name: SE_JAVA_OPTS
# value: "-Xmx512m"
# - name:
# valueFrom:
# secretKeyRef:
# name: secret-name
# key: secret-key
# -- Custom environment variables by sourcing entire configMap, Secret, etc. for all components
extraEnvFrom: []
# - configMapRef:
# name: proxy-settings
# - secretRef:
# name: mysecret
# -- Extra volume mounts for component container
extraVolumeMounts: []
# - name: logs-volume
# mountPath: /opt/selenium/logs
# -- Extra volumes for component pod
extraVolumes: []
# - name: logs-volume
# persistentVolumeClaim:
# claimName: external-logs-pvc
# Configuration for selenium hub deployment (applied only if `isolateComponents: false`)
hub:
# -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)
imageRegistry:
# -- Selenium Hub image name
imageName: hub
# -- Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter)
imageTag:
# -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
imagePullPolicy: IfNotPresent
# -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
imagePullSecret: ""
# -- Specify affinity for Selenium Hub pods, this overwrites global.seleniumGrid.affinity parameter
affinity: {}
# -- Specify topologySpreadConstraints for Hub pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter
topologySpreadConstraints: []
# -- Custom annotations for Selenium Hub pods
annotations: {}
# -- Custom labels for Selenium Hub pods
labels: {}
# -- Disable the Grid UI
disableUI: false
# -- Override global sessionRequestTimeout
sessionRequestTimeout: ""
# -- Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue
newSessionThreadPoolSize:
# -- Port where events are published
publishPort: 4442
# -- NodePort exposed where events are published
publishNodePort: 31442
# -- Port where to subscribe for events
subscribePort: 4443
# -- NodePort exposed where to subscribe for events
subscribeNodePort: 32443
# -- Selenium Hub port
port: 4444
# -- Selenium Hub expose NodePort
nodePort: 31444
# -- Startup probe settings
startupProbe:
enabled: true
path: /readyz
initialDelaySeconds: 5
failureThreshold: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
# -- Readiness probe settings
readinessProbe:
enabled: true
path: /readyz
initialDelaySeconds: 12
failureThreshold: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
# -- Liveness probe settings
livenessProbe:
enabled: true
path: /readyz
initialDelaySeconds: 60
failureThreshold: 30
timeoutSeconds: 60
periodSeconds: 60
successThreshold: 1
# -- Custom sub path for the hub deployment
subPath: ""
# -- Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched
slotSelectorStrategy: ""
# -- Custom environment variables for selenium-hub
extraEnvironmentVariables: []
# - name: SE_JAVA_OPTS
# value: "-Xmx512m"
# - name: SECRET_VARIABLE
# valueFrom:
# secretKeyRef:
# name: secret-name
# key: secret-key
# -- Custom environment variables by sourcing entire configMap, Secret, etc. for selenium-hub
extraEnvFrom: []
# - configMapRef:
# name: proxy-settings
# - secretRef:
# name: mysecret
# -- Extra volume mounts for Hub container
extraVolumeMounts: []
# - name: logs-volume
# mountPath: /opt/selenium/logs
# -- Extra volumes for Hub pod
extraVolumes: []
# - name: logs-volume
# persistentVolumeClaim:
# claimName: external-logs-pvc
# -- Resources for selenium-hub container
resources:
requests:
cpu: "0.5"
memory: "1Gi"
limits:
cpu: "1"
memory: "2Gi"
# -- Number of replicas
replicas: 1
# -- SecurityContext for selenium-hub container
securityContext: {}
# -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
serviceType: ClusterIP
# -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)
clusterIP: ""
# -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)
externalName: ""
# -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
loadBalancerIP: ""
# -- Custom annotations for Selenium Hub service
serviceAnnotations: {}
# -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)
serviceExternalTrafficPolicy: ""
# -- Set session affinity to None, ClientIP or ClientIPString
serviceSessionAffinity: ""
# -- Tolerations for selenium-hub pods
tolerations: []
# -- Node selector for selenium-hub pods
nodeSelector: {}
# -- Priority class name for selenium-hub pods
priorityClassName: ""
tracing:
# -- Enable tracing. Implies installing Jaeger
enabled: false
# -- Enable tracing without automatically installing Jaeger
enabledWithExistingEndpoint: false
# -- Exporter type for tracing. Recommended `otlp` for wide compatibility with observability backends (e.g. Jaeger, Elastic, etc.)
exporter: otlp
# -- Exporter endpoint for pushing trace data
exporterEndpoint: "http://{{ .Release.Name }}-jaeger-collector:4317"
# -- Enable global auto-configuration for tracing
globalAutoConfigure: true
ingress:
# -- Enable ingress resource to access the Jaeger
enabled: true
# -- Annotations for Jaeger ingress resource
annotations:
# -- Configure paths for Jaeger ingress resource
paths:
- backend:
service:
name: "{{ .Release.Name }}-jaeger-query"
port:
number: 16686
path: &jaegerBasePath "/jaeger"
pathType: Prefix
monitoring:
enabled: false
enabledWithExistingAgent: false
exporter:
nameOverride: ""
imageRegistry: "ricardbejarano"
imageName: "graphql_exporter"
imageTag: "latest"
# -- Custom pull secret for container in patch job
imagePullSecret: ""
annotations: {}
port: 9199
service:
# -- Create a service for exporter
enabled: true