Skip to content

Commit e2120db

Browse files
committed
K8s: Multiple nodes Firefox in Helm configs
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 9218e3e commit e2120db

File tree

6 files changed

+98
-63
lines changed

6 files changed

+98
-63
lines changed

charts/selenium-grid/cross-browsers-values.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,23 @@ crossBrowsers:
1818
hpa:
1919
browserVersion: '127.0'
2020
firefoxNode:
21+
- nameOverride:
22+
- nameOverride: '{{ $.Release.Name }}-node-firefox-130'
23+
imageTag: '130.0'
24+
hpa:
25+
browserVersion: '130.0'
26+
- nameOverride: '{{ $.Release.Name }}-node-firefox-129'
27+
imageTag: '129.0'
28+
hpa:
29+
browserVersion: '129.0'
30+
- nameOverride: '{{ $.Release.Name }}-node-firefox-128'
31+
imageTag: '128.0'
32+
hpa:
33+
browserVersion: '128.0'
34+
- nameOverride: '{{ $.Release.Name }}-node-firefox-127'
35+
imageTag: '127.0'
36+
hpa:
37+
browserVersion: '127.0'
2138
edgeNode:
2239
- nameOverride:
2340
- nameOverride: '{{ $.Release.Name }}-node-edge-130'

charts/selenium-grid/templates/_nameHelpers.tpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ Chrome node fullname
132132
Firefox node fullname
133133
*/}}
134134
{{- define "seleniumGrid.firefoxNode.fullname" -}}
135-
{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-node-firefox" $)) .Values.firefoxNode.nameOverride) $ | trunc 63 | trimSuffix "-" -}}
135+
{{- $component := index . 0 }}
136+
{{- $root := index . 1 }}
137+
{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-node-firefox" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix "-" -}}
136138
{{- end -}}
137139

138140
{{/*
Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,40 @@
1-
{{- if and .Values.firefoxNode.enabled ((eq (include "seleniumGrid.useKEDA" .) "true") | ternary (eq .Values.autoscaling.scalingType "deployment") .Values.firefoxNode.deploymentEnabled) }}
1+
{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}
2+
{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}
3+
{{- if and $nodeConfig.enabled ((eq (include "seleniumGrid.useKEDA" $) "true") | ternary (eq $.Values.autoscaling.scalingType "deployment") $nodeConfig.deploymentEnabled) }}
24
apiVersion: apps/v1
35
kind: Deployment
46
metadata:
5-
name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
6-
namespace: {{ .Release.Namespace }}
7+
name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
8+
namespace: {{ $.Release.Namespace }}
79
labels:
8-
app: {{ template "seleniumGrid.firefoxNode.fullname" . }}
9-
app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
10-
{{- include "seleniumGrid.commonLabels" . | nindent 4 }}
11-
{{- with .Values.firefoxNode.labels }}
10+
app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
11+
app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
12+
{{- include "seleniumGrid.commonLabels" $ | nindent 4 }}
13+
{{- with $nodeConfig.labels }}
1214
{{- toYaml . | nindent 4 }}
1315
{{- end }}
14-
{{- with .Values.customLabels }}
16+
{{- with $.Values.customLabels }}
1517
{{- toYaml . | nindent 4 }}
1618
{{- end }}
1719
spec:
1820
strategy:
19-
{{- template "seleniumGrid.updateStrategy" (list $.Values.firefoxNode $.Values.global.seleniumGrid) }}
21+
{{- template "seleniumGrid.updateStrategy" (list $nodeConfig $.Values.global.seleniumGrid) }}
2022
{{- if not (eq (include "seleniumGrid.useKEDA" $) "true") }}
21-
replicas: {{ .Values.firefoxNode.replicas }}
23+
replicas: {{ $nodeConfig.replicas }}
2224
{{- else }}
23-
replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($.Values.firefoxNode.scaledOptions).minReplicaCount }}
25+
replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }}
2426
{{- end }}
25-
revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}
27+
revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }}
2628
selector:
2729
matchLabels:
28-
app: {{ template "seleniumGrid.firefoxNode.fullname" . }}
29-
app.kubernetes.io/instance: {{ .Release.Name }}
30-
{{- $podScope := deepCopy . -}}
31-
{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}}
32-
{{- $_ = set $podScope "node" .Values.firefoxNode -}}
33-
{{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.firefoxNode.videoRecorder) -}}
34-
{{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}
30+
app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
31+
app.kubernetes.io/instance: {{ $.Release.Name }}
32+
{{- $podScope := deepCopy $ -}}
33+
{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $)) -}}
34+
{{- $_ = set $podScope "node" $nodeConfig -}}
35+
{{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}
36+
{{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}
3537
{{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }}
38+
---
39+
{{- end }}
3640
{{- end }}
Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
1-
{{- if and .Values.firefoxNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "deployment") }}
1+
{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}
2+
{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}
3+
{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "deployment") }}
24
apiVersion: keda.sh/v1alpha1
35
kind: ScaledObject
46
metadata:
5-
name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
6-
namespace: {{ .Release.Namespace }}
7+
name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
8+
namespace: {{ $.Release.Namespace }}
79
annotations:
8-
{{- with .Values.autoscaling.annotations }}
10+
{{- with $.Values.autoscaling.annotations }}
911
{{- toYaml . | nindent 4 }}
1012
{{- end }}
1113
labels:
12-
deploymentName: {{ template "seleniumGrid.firefoxNode.fullname" . }}
13-
{{- include "seleniumGrid.commonLabels" . | nindent 4 }}
14-
{{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }}
15-
{{- with .Values.firefoxNode.labels }}
14+
deploymentName: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
15+
{{- include "seleniumGrid.commonLabels" $ | nindent 4 }}
16+
{{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }}
17+
{{- with $nodeConfig.labels }}
1618
{{- toYaml . | nindent 4 }}
1719
{{- end }}
18-
{{- with .Values.customLabels }}
20+
{{- with $.Values.customLabels }}
1921
{{- toYaml . | nindent 4 }}
2022
{{- end }}
2123
spec:
22-
{{- $podScope := deepCopy . -}}
23-
{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}}
24-
{{- $_ = set $podScope "node" .Values.firefoxNode -}}
24+
{{- $podScope := deepCopy $ -}}
25+
{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $)) -}}
26+
{{- $_ = set $podScope "node" $nodeConfig -}}
2527
{{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }}
28+
---
29+
{{- end }}
2630
{{- end }}
Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,34 @@
1-
{{- if and .Values.firefoxNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "job") }}
1+
{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}
2+
{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}
3+
{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "job") }}
24
apiVersion: keda.sh/v1alpha1
35
kind: ScaledJob
46
metadata:
5-
name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
6-
namespace: {{ .Release.Namespace }}
7+
name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
8+
namespace: {{ $.Release.Namespace }}
79
annotations:
8-
{{- with .Values.autoscaling.annotations }}
10+
{{- with $.Values.autoscaling.annotations }}
911
{{- toYaml . | nindent 4 }}
1012
{{- end }}
1113
labels:
12-
app: {{ template "seleniumGrid.firefoxNode.fullname" . }}
13-
app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
14-
{{- include "seleniumGrid.commonLabels" . | nindent 4 }}
15-
{{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }}
16-
{{- with .Values.firefoxNode.labels }}
14+
app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
15+
app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
16+
{{- include "seleniumGrid.commonLabels" $ | nindent 4 }}
17+
{{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }}
18+
{{- with $nodeConfig.labels }}
1719
{{- toYaml . | nindent 4 }}
1820
{{- end }}
19-
{{- with .Values.customLabels }}
21+
{{- with $.Values.customLabels }}
2022
{{- toYaml . | nindent 4 }}
2123
{{- end }}
2224
spec:
23-
{{- $podScope := deepCopy . -}}
24-
{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}}
25-
{{- $_ = set $podScope "node" .Values.firefoxNode -}}
26-
{{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.firefoxNode.videoRecorder) -}}
27-
{{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}
25+
{{- $podScope := deepCopy $ -}}
26+
{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $)) -}}
27+
{{- $_ = set $podScope "node" $nodeConfig -}}
28+
{{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}
29+
{{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}
2830
{{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }}
2931
{{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }}
32+
---
33+
{{- end }}
3034
{{- end }}
Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,47 @@
1-
{{- if and .Values.firefoxNode.enabled .Values.firefoxNode.service.enabled }}
1+
{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}
2+
{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}
3+
{{- if and $nodeConfig.enabled $.Values.firefoxNode.service.enabled }}
24
apiVersion: v1
35
kind: Service
46
metadata:
5-
name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
6-
namespace: {{ .Release.Namespace }}
7+
name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
8+
namespace: {{ $.Release.Namespace }}
79
labels:
8-
name: {{ template "seleniumGrid.firefoxNode.fullname" . }}
10+
name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
911
{{- include "seleniumGrid.commonLabels" . | nindent 4 }}
10-
{{- with .Values.firefoxNode.service.annotations }}
12+
{{- with $nodeConfig.service.annotations }}
1113
annotations:
1214
{{- toYaml . | nindent 4 }}
1315
{{- end }}
1416
spec:
15-
type: {{ .Values.firefoxNode.service.type }}
17+
type: {{ $nodeConfig.service.type }}
1618
selector:
17-
app: {{ template "seleniumGrid.firefoxNode.fullname" . }}
18-
app.kubernetes.io/instance: {{ .Release.Name }}
19-
{{- if and (eq .Values.firefoxNode.service.type "LoadBalancer") (.Values.firefoxNode.service.loadBalancerIP) }}
20-
loadBalancerIP: {{ .Values.firefoxNode.service.loadBalancerIP }}
19+
app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }}
20+
app.kubernetes.io/instance: {{ $.Release.Name }}
21+
{{- if and (eq $nodeConfig.service.type "LoadBalancer") ($nodeConfig.service.loadBalancerIP) }}
22+
loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }}
2123
{{- end }}
2224
ports:
2325
- name: tcp-firefox
2426
protocol: TCP
25-
port: {{ .Values.firefoxNode.port }}
26-
targetPort: {{ .Values.firefoxNode.port }}
27-
{{- if and (eq $.Values.firefoxNode.service.type "NodePort") .Values.firefoxNode.nodePort }}
28-
nodePort: {{ .Values.firefoxNode.nodePort }}
27+
port: {{ $nodeConfig.port }}
28+
targetPort: {{ $nodeConfig.port }}
29+
{{- if and (eq $nodeConfig.service.type "NodePort") $nodeConfig.nodePort }}
30+
nodePort: {{ $nodeConfig.nodePort }}
2931
{{- end }}
30-
{{- with .Values.firefoxNode.service.ports }}
32+
{{- with $nodeConfig.service.ports }}
3133
{{- range . }}
3234
- name: {{ .name }}
3335
port: {{ .port }}
3436
targetPort: {{ .targetPort }}
3537
{{- if .protocol }}
3638
protocol: {{ .protocol }}
3739
{{- end }}
38-
{{- if and (eq $.Values.firefoxNode.service.type "NodePort") .nodePort }}
40+
{{- if and (eq $nodeConfig.service.type "NodePort") .nodePort }}
3941
nodePort: {{ .nodePort }}
4042
{{- end }}
4143
{{- end }}
4244
{{- end }}
45+
---
46+
{{- end }}
4347
{{- end }}

0 commit comments

Comments
 (0)