diff --git a/.keda/scalers/selenium-grid-scaler.md b/.keda/scalers/selenium-grid-scaler.md index e2afe9ae84..4b30d1e4a6 100644 --- a/.keda/scalers/selenium-grid-scaler.md +++ b/.keda/scalers/selenium-grid-scaler.md @@ -55,11 +55,11 @@ metadata: name: selenium-grid-chrome-scaledobject namespace: keda labels: - deploymentName: selenium-chrome-node + deploymentName: selenium-node-chrome spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-chrome-node + name: selenium-node-chrome triggers: - type: selenium-grid metadata: @@ -78,11 +78,11 @@ metadata: name: selenium-grid-firefox-scaledobject namespace: keda labels: - deploymentName: selenium-firefox-node + deploymentName: selenium-node-firefox spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-firefox-node + name: selenium-node-firefox triggers: - type: selenium-grid metadata: @@ -99,11 +99,11 @@ metadata: name: selenium-grid-edge-scaledobject namespace: keda labels: - deploymentName: selenium-edge-node + deploymentName: selenium-node-edge spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-edge-node + name: selenium-node-edge triggers: - type: selenium-grid metadata: @@ -121,11 +121,11 @@ metadata: name: selenium-grid-chrome-scaledobject namespace: keda labels: - deploymentName: selenium-chrome-node + deploymentName: selenium-node-chrome spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-chrome-node + name: selenium-node-chrome triggers: - type: selenium-grid metadata: @@ -143,11 +143,11 @@ metadata: name: selenium-grid-chrome-91-scaledobject namespace: keda labels: - deploymentName: selenium-chrome-node-91 + deploymentName: selenium-node-chrome-91 spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-chrome-node-91 + name: selenium-node-chrome-91 triggers: - type: selenium-grid metadata: @@ -163,11 +163,11 @@ metadata: name: selenium-grid-chrome-90-scaledobject namespace: keda labels: - deploymentName: selenium-chrome-node-90 + deploymentName: selenium-node-chrome-90 spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-chrome-node-90 + name: selenium-node-chrome-90 triggers: - type: selenium-grid metadata: @@ -219,11 +219,11 @@ metadata: name: selenium-grid-chrome-scaledobject namespace: keda labels: - deploymentName: selenium-chrome-node + deploymentName: selenium-node-chrome spec: maxReplicaCount: 8 scaleTargetRef: - name: selenium-chrome-node + name: selenium-node-chrome triggers: - type: selenium-grid metadata: diff --git a/charts/selenium-grid/CONFIGURATION.md b/charts/selenium-grid/CONFIGURATION.md index ff986b3f94..a4e3b562b0 100644 --- a/charts/selenium-grid/CONFIGURATION.md +++ b/charts/selenium-grid/CONFIGURATION.md @@ -348,6 +348,10 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes | autoscaling.scaledObjectOptions.scaleTargetRef.kind | string | `"Deployment"` | Target reference for KEDA ScaledObject | | autoscaling.terminationGracePeriodSeconds | int | `3600` | Define terminationGracePeriodSeconds for scalingType "deployment". Period for `deregisterLifecycle` to gracefully shut down the node before force terminating it | | autoscaling.deregisterLifecycle | string | `nil` | Define preStop command to shut down the node gracefully when scalingType is set to "deployment" | +| crossBrowsers.chromeNode | list | `[{"nameOverride":null}]` | Additional chrome nodes, array of objects with the same structure as `chromeNode` | +| crossBrowsers.firefoxNode | list | `[{"nameOverride":null}]` | Additional firefox nodes, array of objects with the same structure as `firefoxNode` | +| crossBrowsers.edgeNode | list | `[{"nameOverride":null}]` | Additional edge nodes, array of objects with the same structure as `edgeNode` | +| crossBrowsers.relayNode | list | `[{"nameOverride":null}]` | Additional release nodes, array of objects with the same structure as `relayNode` | | chromeNode.enabled | bool | `true` | Enable chrome nodes | | chromeNode.deploymentEnabled | bool | `true` | NOTE: Only used when autoscaling.enabled is false Enable creation of Deployment true (default) - if you want long-living pods false - for provisioning your own custom type such as Jobs | | chromeNode.updateStrategy | object | `{"type":"RollingUpdate"}` | Global update strategy will be overwritten by individual component | diff --git a/charts/selenium-grid/cross-browsers-values.yaml b/charts/selenium-grid/cross-browsers-values.yaml new file mode 100644 index 0000000000..bfd950dbb3 --- /dev/null +++ b/charts/selenium-grid/cross-browsers-values.yaml @@ -0,0 +1,46 @@ +crossBrowsers: + chromeNode: + # Keep the first iteration with latest version of Chrome + - nameOverride: + - nameOverride: '{{ $.Release.Name }}-node-chrome-130' + imageTag: '130.0' + hpa: + browserVersion: '130.0' + - nameOverride: '{{ $.Release.Name }}-node-chrome-129' + imageTag: '129.0' + hpa: + browserVersion: '129.0' + - nameOverride: '{{ $.Release.Name }}-node-chrome-128' + imageTag: '128.0' + hpa: + browserVersion: '128.0' + firefoxNode: + # Keep the first iteration with latest version of Firefox + - nameOverride: + - nameOverride: '{{ $.Release.Name }}-node-firefox-130' + imageTag: '130.0' + hpa: + browserVersion: '130.0' + - nameOverride: '{{ $.Release.Name }}-node-firefox-129' + imageTag: '129.0' + hpa: + browserVersion: '129.0' + - nameOverride: '{{ $.Release.Name }}-node-firefox-128' + imageTag: '128.0' + hpa: + browserVersion: '128.0' + edgeNode: + # Keep the first iteration with latest version of Edge + - nameOverride: + - nameOverride: '{{ $.Release.Name }}-node-edge-130' + imageTag: '130.0' + hpa: + browserVersion: '130.0' + - nameOverride: '{{ $.Release.Name }}-node-edge-129' + imageTag: '129.0' + hpa: + browserVersion: '129.0' + - nameOverride: '{{ $.Release.Name }}-node-edge-128' + imageTag: '128.0' + hpa: + browserVersion: '128.0' diff --git a/charts/selenium-grid/templates/_nameHelpers.tpl b/charts/selenium-grid/templates/_nameHelpers.tpl index 162e7d2ecc..6968225ee4 100644 --- a/charts/selenium-grid/templates/_nameHelpers.tpl +++ b/charts/selenium-grid/templates/_nameHelpers.tpl @@ -123,28 +123,36 @@ SessionQueue fullname Chrome node fullname */}} {{- define "seleniumGrid.chromeNode.fullname" -}} -{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-chrome-node" $)) .Values.chromeNode.nameOverride) $ | trunc 63 | trimSuffix "-" -}} +{{- $component := index . 0 }} +{{- $root := index . 1 }} +{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-node-chrome" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* Firefox node fullname */}} {{- define "seleniumGrid.firefoxNode.fullname" -}} -{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-firefox-node" $)) .Values.firefoxNode.nameOverride) $ | trunc 63 | trimSuffix "-" -}} +{{- $component := index . 0 }} +{{- $root := index . 1 }} +{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-node-firefox" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* Edge node fullname */}} {{- define "seleniumGrid.edgeNode.fullname" -}} -{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-edge-node" $)) .Values.edgeNode.nameOverride) $ | trunc 63 | trimSuffix "-" -}} +{{- $component := index . 0 }} +{{- $root := index . 1 }} +{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-node-edge" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* Relay node fullname */}} {{- define "seleniumGrid.relayNode.fullname" -}} -{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-relay-node" $)) .Values.relayNode.nameOverride) $ | trunc 63 | trimSuffix "-" -}} +{{- $component := index . 0 }} +{{- $root := index . 1 }} +{{- tpl (default (include "seleniumGrid.component.name" (list "selenium-node-relay" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* diff --git a/charts/selenium-grid/templates/chrome-node-deployment.yaml b/charts/selenium-grid/templates/chrome-node-deployment.yaml index 930239934f..b845edb043 100644 --- a/charts/selenium-grid/templates/chrome-node-deployment.yaml +++ b/charts/selenium-grid/templates/chrome-node-deployment.yaml @@ -1,36 +1,40 @@ -{{- if and .Values.chromeNode.enabled ((eq (include "seleniumGrid.useKEDA" .) "true") | ternary (eq .Values.autoscaling.scalingType "deployment") .Values.chromeNode.deploymentEnabled) }} +{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }} +{{- $nodeConfig := merge $newNode $.Values.chromeNode -}} +{{- if and $nodeConfig.enabled ((eq (include "seleniumGrid.useKEDA" $) "true") | ternary (eq $.Values.autoscaling.scalingType "deployment") $nodeConfig.deploymentEnabled) }} apiVersion: apps/v1 kind: Deployment metadata: - name: {{ template "seleniumGrid.chromeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - app: {{ template "seleniumGrid.chromeNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.chromeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.chromeNode.labels }} + app: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: strategy: - {{- template "seleniumGrid.updateStrategy" (list $.Values.chromeNode $.Values.global.seleniumGrid) }} + {{- template "seleniumGrid.updateStrategy" (list $nodeConfig $.Values.global.seleniumGrid) }} {{- if not (eq (include "seleniumGrid.useKEDA" $) "true") }} - replicas: {{ .Values.chromeNode.replicas }} + replicas: {{ $nodeConfig.replicas }} {{- else }} - replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($.Values.chromeNode.scaledOptions).minReplicaCount }} + replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }} {{- end }} - revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }} + revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }} selector: matchLabels: - app: {{ template "seleniumGrid.chromeNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} -{{- $_ = set $podScope "node" .Values.chromeNode -}} -{{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.chromeNode.videoRecorder) -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} + app: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} +{{- $podScope := deepCopy $ -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" (list $nodeConfig $)) -}} +{{- $_ = set $podScope "node" $nodeConfig -}} +{{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} +{{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-hpa.yaml b/charts/selenium-grid/templates/chrome-node-hpa.yaml index 8dbf85ec44..9f3bae2434 100644 --- a/charts/selenium-grid/templates/chrome-node-hpa.yaml +++ b/charts/selenium-grid/templates/chrome-node-hpa.yaml @@ -1,26 +1,30 @@ -{{- if and .Values.chromeNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "deployment") }} +{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }} +{{- $nodeConfig := merge $newNode $.Values.chromeNode -}} +{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "deployment") }} apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: - name: {{ template "seleniumGrid.chromeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - deploymentName: {{ template "seleniumGrid.chromeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.chromeNode.labels }} + deploymentName: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.chromeNode -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml index d49e39d0aa..5c83971167 100644 --- a/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml +++ b/charts/selenium-grid/templates/chrome-node-scaledjobs.yaml @@ -1,30 +1,34 @@ -{{- if and .Values.chromeNode.enabled (include "seleniumGrid.useKEDA" .) (eq .Values.autoscaling.scalingType "job") }} +{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }} +{{- $nodeConfig := merge $newNode $.Values.chromeNode -}} +{{- if and $nodeConfig.enabled (include "seleniumGrid.useKEDA" $) (eq $.Values.autoscaling.scalingType "job") }} apiVersion: keda.sh/v1alpha1 kind: ScaledJob metadata: - name: {{ template "seleniumGrid.chromeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - app: {{ template "seleniumGrid.chromeNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.chromeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.chromeNode.labels }} + app: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.chromeNode -}} - {{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.chromeNode.videoRecorder) -}} - {{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.chromeNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} + {{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} + {{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/chrome-node-service.yaml b/charts/selenium-grid/templates/chrome-node-service.yaml index a6965c3d04..cbdab86e8b 100644 --- a/charts/selenium-grid/templates/chrome-node-service.yaml +++ b/charts/selenium-grid/templates/chrome-node-service.yaml @@ -1,33 +1,35 @@ -{{- if and .Values.chromeNode.enabled .Values.chromeNode.service.enabled }} +{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }} +{{- $nodeConfig := merge $newNode $.Values.chromeNode -}} +{{- if and $nodeConfig.enabled $nodeConfig.service.enabled }} apiVersion: v1 kind: Service metadata: - name: {{ template "seleniumGrid.chromeNode.fullname" . }} + name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} namespace: {{ .Release.Namespace }} labels: - name: {{ template "seleniumGrid.chromeNode.fullname" . }} + name: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.chromeNode.service.annotations }} + {{- with $nodeConfig.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: - type: {{ .Values.chromeNode.service.type }} + type: {{ $nodeConfig.service.type }} selector: - app: {{ template "seleniumGrid.chromeNode.fullname" . }} + app: {{ template "seleniumGrid.chromeNode.fullname" (list $nodeConfig $) }} app.kubernetes.io/instance: {{ .Release.Name }} - {{- if and (eq .Values.chromeNode.service.type "LoadBalancer") (.Values.chromeNode.service.loadBalancerIP) }} - loadBalancerIP: {{ .Values.chromeNode.service.loadBalancerIP }} + {{- if and (eq $nodeConfig.service.type "LoadBalancer") ($nodeConfig.service.loadBalancerIP) }} + loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }} {{- end }} ports: - name: tcp-chrome protocol: TCP - port: {{ .Values.chromeNode.port }} - targetPort: {{ .Values.chromeNode.port }} - {{- if and (eq $.Values.chromeNode.service.type "NodePort") .Values.chromeNode.nodePort }} - nodePort: {{ .Values.chromeNode.nodePort }} + port: {{ $nodeConfig.port }} + targetPort: {{ $nodeConfig.port }} + {{- if and (eq $nodeConfig.service.type "NodePort") $nodeConfig.nodePort }} + nodePort: {{ $nodeConfig.nodePort }} {{- end }} - {{- with .Values.chromeNode.service.ports }} + {{- with $nodeConfig.service.ports }} {{- range . }} - name: {{ .name }} port: {{ .port }} @@ -35,9 +37,11 @@ spec: {{- if .protocol }} protocol: {{ .protocol }} {{- end }} - {{- if and (eq $.Values.chromeNode.service.type "NodePort") .nodePort }} + {{- if and (eq $nodeConfig.service.type "NodePort") .nodePort }} nodePort: {{ .nodePort }} {{- end }} {{- end }} {{- end }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-deployment.yaml b/charts/selenium-grid/templates/edge-node-deployment.yaml index ac3ff3cb33..2491690d68 100644 --- a/charts/selenium-grid/templates/edge-node-deployment.yaml +++ b/charts/selenium-grid/templates/edge-node-deployment.yaml @@ -1,36 +1,40 @@ -{{- if and .Values.edgeNode.enabled ((eq (include "seleniumGrid.useKEDA" .) "true") | ternary (eq .Values.autoscaling.scalingType "deployment") .Values.edgeNode.deploymentEnabled) }} +{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }} +{{- $nodeConfig := merge $newNode $.Values.edgeNode -}} +{{- if and $nodeConfig.enabled ((eq (include "seleniumGrid.useKEDA" $) "true") | ternary (eq $.Values.autoscaling.scalingType "deployment") $nodeConfig.deploymentEnabled) }} apiVersion: apps/v1 kind: Deployment metadata: - name: {{ template "seleniumGrid.edgeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - app: {{ template "seleniumGrid.edgeNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.edgeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.edgeNode.labels }} + app: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: strategy: - {{- template "seleniumGrid.updateStrategy" (list $.Values.edgeNode $.Values.global.seleniumGrid) }} + {{- template "seleniumGrid.updateStrategy" (list $nodeConfig $.Values.global.seleniumGrid) }} {{- if not (eq (include "seleniumGrid.useKEDA" $) "true") }} - replicas: {{ .Values.edgeNode.replicas }} + replicas: {{ $nodeConfig.replicas }} {{- else }} - replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($.Values.edgeNode.scaledOptions).minReplicaCount }} + replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }} {{- end }} - revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }} + revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }} selector: matchLabels: - app: {{ template "seleniumGrid.edgeNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} -{{- $_ = set $podScope "node" .Values.edgeNode -}} -{{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.edgeNode.videoRecorder) -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} + app: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} +{{- $podScope := deepCopy $ -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" (list $nodeConfig $)) -}} +{{- $_ = set $podScope "node" $nodeConfig -}} +{{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} +{{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-hpa.yaml b/charts/selenium-grid/templates/edge-node-hpa.yaml index 513440d638..f07fc01440 100644 --- a/charts/selenium-grid/templates/edge-node-hpa.yaml +++ b/charts/selenium-grid/templates/edge-node-hpa.yaml @@ -1,26 +1,30 @@ -{{- if and .Values.edgeNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "deployment") }} +{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }} +{{- $nodeConfig := merge $newNode $.Values.edgeNode -}} +{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "deployment") }} apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: - name: {{ template "seleniumGrid.edgeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - deploymentName: {{ template "seleniumGrid.edgeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.edgeNode.labels }} + deploymentName: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.edgeNode -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-scaledjob.yaml b/charts/selenium-grid/templates/edge-node-scaledjob.yaml index 49875b0557..82942f3744 100644 --- a/charts/selenium-grid/templates/edge-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/edge-node-scaledjob.yaml @@ -1,30 +1,34 @@ -{{- if and .Values.edgeNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "job") }} +{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }} +{{- $nodeConfig := merge $newNode $.Values.edgeNode -}} +{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "job") }} apiVersion: keda.sh/v1alpha1 kind: ScaledJob metadata: - name: {{ template "seleniumGrid.edgeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - app: {{ template "seleniumGrid.edgeNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.edgeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.edgeNode.labels }} + app: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.edgeNode -}} - {{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.edgeNode.videoRecorder) -}} - {{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.edgeNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} + {{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} + {{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/edge-node-service.yaml b/charts/selenium-grid/templates/edge-node-service.yaml index 896be0ac95..2bfe6ee7dd 100644 --- a/charts/selenium-grid/templates/edge-node-service.yaml +++ b/charts/selenium-grid/templates/edge-node-service.yaml @@ -1,33 +1,35 @@ -{{- if and .Values.edgeNode.enabled .Values.edgeNode.service.enabled }} +{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }} +{{- $nodeConfig := merge $newNode $.Values.edgeNode -}} +{{- if and $nodeConfig.enabled $nodeConfig.service.enabled }} apiVersion: v1 kind: Service metadata: - name: {{ template "seleniumGrid.edgeNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - name: {{ template "seleniumGrid.edgeNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.edgeNode.service.annotations }} + name: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- with $nodeConfig.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: - type: {{ .Values.edgeNode.service.type }} + type: {{ $nodeConfig.service.type }} selector: - app: {{ template "seleniumGrid.edgeNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - {{- if and (eq .Values.edgeNode.service.type "LoadBalancer") (.Values.edgeNode.service.loadBalancerIP) }} - loadBalancerIP: {{ .Values.edgeNode.service.loadBalancerIP }} + app: {{ template "seleniumGrid.edgeNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} + {{- if and (eq $nodeConfig.service.type "LoadBalancer") ($nodeConfig.service.loadBalancerIP) }} + loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }} {{- end }} ports: - name: tcp-edge protocol: TCP - port: {{ .Values.edgeNode.port }} - targetPort: {{ .Values.edgeNode.port }} - {{- if and (eq $.Values.edgeNode.service.type "NodePort") .Values.edgeNode.nodePort }} - nodePort: {{ .Values.edgeNode.nodePort }} + port: {{ $nodeConfig.port }} + targetPort: {{ $nodeConfig.port }} + {{- if and (eq $nodeConfig.service.type "NodePort") $nodeConfig.nodePort }} + nodePort: {{ $nodeConfig.nodePort }} {{- end }} - {{- with .Values.edgeNode.service.ports }} + {{- with $nodeConfig.service.ports }} {{- range . }} - name: {{ .name }} port: {{ .port }} @@ -35,9 +37,11 @@ spec: {{- if .protocol }} protocol: {{ .protocol }} {{- end }} - {{- if and (eq $.Values.edgeNode.service.type "NodePort") .nodePort }} + {{- if and (eq $nodeConfig.service.type "NodePort") .nodePort }} nodePort: {{ .nodePort }} {{- end }} {{- end }} {{- end }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-deployment.yaml b/charts/selenium-grid/templates/firefox-node-deployment.yaml index 67c0d171b7..54003d222f 100644 --- a/charts/selenium-grid/templates/firefox-node-deployment.yaml +++ b/charts/selenium-grid/templates/firefox-node-deployment.yaml @@ -1,36 +1,40 @@ -{{- if and .Values.firefoxNode.enabled ((eq (include "seleniumGrid.useKEDA" .) "true") | ternary (eq .Values.autoscaling.scalingType "deployment") .Values.firefoxNode.deploymentEnabled) }} +{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }} +{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}} +{{- if and $nodeConfig.enabled ((eq (include "seleniumGrid.useKEDA" $) "true") | ternary (eq $.Values.autoscaling.scalingType "deployment") $nodeConfig.deploymentEnabled) }} apiVersion: apps/v1 kind: Deployment metadata: - name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - app: {{ template "seleniumGrid.firefoxNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.firefoxNode.labels }} + app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: strategy: - {{- template "seleniumGrid.updateStrategy" (list $.Values.firefoxNode $.Values.global.seleniumGrid) }} + {{- template "seleniumGrid.updateStrategy" (list $nodeConfig $.Values.global.seleniumGrid) }} {{- if not (eq (include "seleniumGrid.useKEDA" $) "true") }} - replicas: {{ .Values.firefoxNode.replicas }} + replicas: {{ $nodeConfig.replicas }} {{- else }} - replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($.Values.firefoxNode.scaledOptions).minReplicaCount }} + replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }} {{- end }} - revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }} + revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }} selector: matchLabels: - app: {{ template "seleniumGrid.firefoxNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} -{{- $_ = set $podScope "node" .Values.firefoxNode -}} -{{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.firefoxNode.videoRecorder) -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} + app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} +{{- $podScope := deepCopy $ -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $)) -}} +{{- $_ = set $podScope "node" $nodeConfig -}} +{{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} +{{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-hpa.yaml b/charts/selenium-grid/templates/firefox-node-hpa.yaml index 0d4d907ef8..425a2f894c 100644 --- a/charts/selenium-grid/templates/firefox-node-hpa.yaml +++ b/charts/selenium-grid/templates/firefox-node-hpa.yaml @@ -1,26 +1,30 @@ -{{- if and .Values.firefoxNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "deployment") }} +{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }} +{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}} +{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "deployment") }} apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: - name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - deploymentName: {{ template "seleniumGrid.firefoxNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.firefoxNode.labels }} + deploymentName: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.firefoxNode -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml index b72b0d89ad..f83e5173ee 100644 --- a/charts/selenium-grid/templates/firefox-node-scaledjob.yaml +++ b/charts/selenium-grid/templates/firefox-node-scaledjob.yaml @@ -1,30 +1,34 @@ -{{- if and .Values.firefoxNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "job") }} +{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }} +{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}} +{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "job") }} apiVersion: keda.sh/v1alpha1 kind: ScaledJob metadata: - name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - app: {{ template "seleniumGrid.firefoxNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.firefoxNode.labels }} + app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.firefoxNode -}} - {{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.firefoxNode.videoRecorder) -}} - {{- $_ = set $podScope "uploader" (get .Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} + {{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} + {{- $_ = set $podScope "uploader" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}} {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/firefox-node-service.yaml b/charts/selenium-grid/templates/firefox-node-service.yaml index a0de36ca50..cbf5862901 100644 --- a/charts/selenium-grid/templates/firefox-node-service.yaml +++ b/charts/selenium-grid/templates/firefox-node-service.yaml @@ -1,33 +1,35 @@ -{{- if and .Values.firefoxNode.enabled .Values.firefoxNode.service.enabled }} +{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }} +{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}} +{{- if and $nodeConfig.enabled $.Values.firefoxNode.service.enabled }} apiVersion: v1 kind: Service metadata: - name: {{ template "seleniumGrid.firefoxNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - name: {{ template "seleniumGrid.firefoxNode.fullname" . }} + name: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.firefoxNode.service.annotations }} + {{- with $nodeConfig.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: - type: {{ .Values.firefoxNode.service.type }} + type: {{ $nodeConfig.service.type }} selector: - app: {{ template "seleniumGrid.firefoxNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - {{- if and (eq .Values.firefoxNode.service.type "LoadBalancer") (.Values.firefoxNode.service.loadBalancerIP) }} - loadBalancerIP: {{ .Values.firefoxNode.service.loadBalancerIP }} + app: {{ template "seleniumGrid.firefoxNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} + {{- if and (eq $nodeConfig.service.type "LoadBalancer") ($nodeConfig.service.loadBalancerIP) }} + loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }} {{- end }} ports: - name: tcp-firefox protocol: TCP - port: {{ .Values.firefoxNode.port }} - targetPort: {{ .Values.firefoxNode.port }} - {{- if and (eq $.Values.firefoxNode.service.type "NodePort") .Values.firefoxNode.nodePort }} - nodePort: {{ .Values.firefoxNode.nodePort }} + port: {{ $nodeConfig.port }} + targetPort: {{ $nodeConfig.port }} + {{- if and (eq $nodeConfig.service.type "NodePort") $nodeConfig.nodePort }} + nodePort: {{ $nodeConfig.nodePort }} {{- end }} - {{- with .Values.firefoxNode.service.ports }} + {{- with $nodeConfig.service.ports }} {{- range . }} - name: {{ .name }} port: {{ .port }} @@ -35,9 +37,11 @@ spec: {{- if .protocol }} protocol: {{ .protocol }} {{- end }} - {{- if and (eq $.Values.firefoxNode.service.type "NodePort") .nodePort }} + {{- if and (eq $nodeConfig.service.type "NodePort") .nodePort }} nodePort: {{ .nodePort }} {{- end }} {{- end }} {{- end }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/relay-node-deployment.yaml b/charts/selenium-grid/templates/relay-node-deployment.yaml index 9255e204ce..ddb92cc697 100644 --- a/charts/selenium-grid/templates/relay-node-deployment.yaml +++ b/charts/selenium-grid/templates/relay-node-deployment.yaml @@ -1,36 +1,40 @@ -{{- if and .Values.relayNode.enabled ((eq (include "seleniumGrid.useKEDA" .) "true") | ternary (eq .Values.autoscaling.scalingType "deployment") .Values.relayNode.deploymentEnabled) }} +{{- range $i, $newNode := .Values.crossBrowsers.relayNode }} +{{- $nodeConfig := merge $newNode $.Values.relayNode -}} +{{- if and $nodeConfig.enabled ((eq (include "seleniumGrid.useKEDA" $) "true") | ternary (eq $.Values.autoscaling.scalingType "deployment") $nodeConfig.deploymentEnabled) }} apiVersion: apps/v1 kind: Deployment metadata: - name: {{ template "seleniumGrid.relayNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - app: {{ template "seleniumGrid.relayNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.relayNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.relayNode.labels }} + app: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: strategy: - {{- template "seleniumGrid.updateStrategy" (list $.Values.relayNode $.Values.global.seleniumGrid) }} + {{- template "seleniumGrid.updateStrategy" (list $nodeConfig $.Values.global.seleniumGrid) }} {{- if not (eq (include "seleniumGrid.useKEDA" $) "true") }} - replicas: {{ .Values.relayNode.replicas }} + replicas: {{ $nodeConfig.replicas }} {{- else }} - replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($.Values.relayNode.scaledOptions).minReplicaCount }} + replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }} {{- end }} - revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }} + revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }} selector: matchLabels: - app: {{ template "seleniumGrid.relayNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} -{{- $podScope := deepCopy . -}} -{{- $_ := set $podScope "name" (include "seleniumGrid.relayNode.fullname" .) -}} -{{- $_ = set $podScope "node" .Values.relayNode -}} -{{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.relayNode.videoRecorder) -}} -{{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader.name | toString)) -}} + app: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} +{{- $podScope := deepCopy $ -}} +{{- $_ := set $podScope "name" (include "seleniumGrid.relayNode.fullname" (list $nodeConfig $)) -}} +{{- $_ = set $podScope "node" $nodeConfig -}} +{{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} +{{- $_ = set $podScope "uploader" (get $.Values.videoRecorder (.Values.videoRecorder.uploader.name | toString)) -}} {{- include "seleniumGrid.podTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/relay-node-hpa.yaml b/charts/selenium-grid/templates/relay-node-hpa.yaml index 20d1a054b8..43c733760b 100644 --- a/charts/selenium-grid/templates/relay-node-hpa.yaml +++ b/charts/selenium-grid/templates/relay-node-hpa.yaml @@ -1,26 +1,30 @@ -{{- if and .Values.relayNode.enabled (eq (include "seleniumGrid.useKEDA" .) "true") (eq .Values.autoscaling.scalingType "deployment") }} +{{- range $i, $newNode := .Values.crossBrowsers.relayNode }} +{{- $nodeConfig := merge $newNode $.Values.relayNode -}} +{{- if and $nodeConfig.enabled (eq (include "seleniumGrid.useKEDA" $) "true") (eq $.Values.autoscaling.scalingType "deployment") }} apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: - name: {{ template "seleniumGrid.relayNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - deploymentName: {{ template "seleniumGrid.relayNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.relayNode.labels }} + deploymentName: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.relayNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.relayNode -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.relayNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/relay-node-scaledjobs.yaml b/charts/selenium-grid/templates/relay-node-scaledjobs.yaml index dbdce04ff5..2ff6a7057d 100644 --- a/charts/selenium-grid/templates/relay-node-scaledjobs.yaml +++ b/charts/selenium-grid/templates/relay-node-scaledjobs.yaml @@ -1,30 +1,34 @@ -{{- if and .Values.relayNode.enabled (include "seleniumGrid.useKEDA" .) (eq .Values.autoscaling.scalingType "job") }} +{{- range $i, $newNode := .Values.crossBrowsers.relayNode }} +{{- $nodeConfig := merge $newNode $.Values.relayNode -}} +{{- if and $nodeConfig.enabled (include "seleniumGrid.useKEDA" $) (eq $.Values.autoscaling.scalingType "job") }} apiVersion: keda.sh/v1alpha1 kind: ScaledJob metadata: - name: {{ template "seleniumGrid.relayNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} annotations: - {{- with .Values.autoscaling.annotations }} + {{- with $.Values.autoscaling.annotations }} {{- toYaml . | nindent 4 }} {{- end }} labels: - app: {{ template "seleniumGrid.relayNode.fullname" . }} - app.kubernetes.io/name: {{ template "seleniumGrid.relayNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- include "seleniumGrid.autoscalingLabels" . | nindent 4 }} - {{- with .Values.relayNode.labels }} + app: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- include "seleniumGrid.autoscalingLabels" $ | nindent 4 }} + {{- with $nodeConfig.labels }} {{- toYaml . | nindent 4 }} {{- end }} - {{- with .Values.customLabels }} + {{- with $.Values.customLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - {{- $podScope := deepCopy . -}} - {{- $_ := set $podScope "name" (include "seleniumGrid.relayNode.fullname" .) -}} - {{- $_ = set $podScope "node" .Values.relayNode -}} - {{- $_ = set $podScope "recorder" (mergeOverwrite .Values.videoRecorder .Values.relayNode.videoRecorder) -}} - {{- $_ = set $podScope "uploader" (get .Values.videoRecorder (.Values.videoRecorder.uploader.name | toString)) -}} + {{- $podScope := deepCopy $ -}} + {{- $_ := set $podScope "name" (include "seleniumGrid.relayNode.fullname" (list $nodeConfig $)) -}} + {{- $_ = set $podScope "node" $nodeConfig -}} + {{- $_ = set $podScope "recorder" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}} + {{- $_ = set $podScope "uploader" (get $.Values.videoRecorder (.Values.videoRecorder.uploader.name | toString)) -}} {{- $_ = set $podScope "podTemplate" (include "seleniumGrid.podTemplate" $podScope | fromYaml) }} {{- include "seleniumGrid.autoscalingTemplate" $podScope | nindent 2 }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/templates/relay-node-service.yaml b/charts/selenium-grid/templates/relay-node-service.yaml index 661cbc0aff..2ed524c835 100644 --- a/charts/selenium-grid/templates/relay-node-service.yaml +++ b/charts/selenium-grid/templates/relay-node-service.yaml @@ -1,33 +1,35 @@ -{{- if and .Values.relayNode.enabled .Values.relayNode.service.enabled }} +{{- range $i, $newNode := .Values.crossBrowsers.relayNode }} +{{- $nodeConfig := merge $newNode $.Values.relayNode -}} +{{- if and $nodeConfig.enabled $nodeConfig.service.enabled }} apiVersion: v1 kind: Service metadata: - name: {{ template "seleniumGrid.relayNode.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + namespace: {{ $.Release.Namespace }} labels: - name: {{ template "seleniumGrid.relayNode.fullname" . }} - {{- include "seleniumGrid.commonLabels" . | nindent 4 }} - {{- with .Values.relayNode.service.annotations }} + name: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + {{- include "seleniumGrid.commonLabels" $ | nindent 4 }} + {{- with $nodeConfig.service.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: - type: {{ .Values.relayNode.service.type }} + type: {{ $nodeConfig.service.type }} selector: - app: {{ template "seleniumGrid.relayNode.fullname" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - {{- if and (eq .Values.relayNode.service.type "LoadBalancer") (.Values.relayNode.service.loadBalancerIP) }} - loadBalancerIP: {{ .Values.relayNode.service.loadBalancerIP }} + app: {{ template "seleniumGrid.relayNode.fullname" (list $nodeConfig $) }} + app.kubernetes.io/instance: {{ $.Release.Name }} + {{- if and (eq $nodeConfig.service.type "LoadBalancer") ($nodeConfig.service.loadBalancerIP) }} + loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }} {{- end }} ports: - name: tcp-chrome protocol: TCP - port: {{ .Values.relayNode.port }} - targetPort: {{ .Values.relayNode.port }} - {{- if and (eq $.Values.relayNode.service.type "NodePort") .Values.relayNode.nodePort }} - nodePort: {{ .Values.relayNode.nodePort }} + port: {{ $nodeConfig.port }} + targetPort: {{ $nodeConfig.port }} + {{- if and (eq $nodeConfig.service.type "NodePort") $nodeConfig.nodePort }} + nodePort: {{ $nodeConfig.nodePort }} {{- end }} - {{- with .Values.relayNode.service.ports }} + {{- with $nodeConfig.service.ports }} {{- range . }} - name: {{ .name }} port: {{ .port }} @@ -35,9 +37,11 @@ spec: {{- if .protocol }} protocol: {{ .protocol }} {{- end }} - {{- if and (eq $.Values.relayNode.service.type "NodePort") .nodePort }} + {{- if and (eq $nodeConfig.service.type "NodePort") .nodePort }} nodePort: {{ .nodePort }} {{- end }} {{- end }} {{- end }} +--- +{{- end }} {{- end }} diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 42d89cf06f..de6d0876a5 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -910,6 +910,24 @@ autoscaling: # exec: # command: [ "bash", "-c", "/opt/bin/nodePreStop.sh" ] +# Configuration additional nodes with different versions, capabilities, etc. +crossBrowsers: + # -- Additional chrome nodes, array of objects with the same structure as `chromeNode` + chromeNode: + - nameOverride: + # - Refer to file `cross-browsers-values.yaml` to configure additional nodes + # -- Additional firefox nodes, array of objects with the same structure as `firefoxNode` + firefoxNode: + - nameOverride: + # - Refer to file `cross-browsers-values.yaml` to configure additional node browsers + # -- Additional edge nodes, array of objects with the same structure as `edgeNode` + edgeNode: + - nameOverride: + # - Refer to file `cross-browsers-values.yaml` to configure additional node browsers + # -- Additional release nodes, array of objects with the same structure as `relayNode` + relayNode: + - nameOverride: + # Configuration for chrome nodes chromeNode: # -- Enable chrome nodes diff --git a/tests/charts/bootstrap.sh b/tests/charts/bootstrap.sh index 653342bf28..60f3aacc00 100755 --- a/tests/charts/bootstrap.sh +++ b/tests/charts/bootstrap.sh @@ -18,6 +18,7 @@ helm package charts/selenium-grid --version 1.0.0-SNAPSHOT -d tests/tests RELEASE_NAME="selenium" helm template ${RELEASE_NAME} --values tests/charts/templates/render/dummy.yaml \ + --values charts/selenium-grid/cross-browsers-values.yaml \ --set-file 'nodeConfigMap.extraScripts.setFromCommand\.sh=tests/charts/templates/render/dummy_external.sh' \ --set-file 'recorderConfigMap.extraScripts.setFromCommand\.sh=tests/charts/templates/render/dummy_external.sh' \ --set-file 'uploaderConfigMap.extraScripts.setFromCommand\.sh=tests/charts/templates/render/dummy_external.sh' \ @@ -37,6 +38,7 @@ helm package tests/charts/umbrella-charts --version 1.0.0-SNAPSHOT -d tests/test RELEASE_NAME="test" helm template ${RELEASE_NAME} --values tests/charts/templates/render/dummy_solution.yaml \ + --values charts/selenium-grid/cross-browsers-values.yaml \ --set-file 'selenium-grid.nodeConfigMap.extraScripts.setFromCommand\.sh=tests/charts/templates/render/dummy_external.sh' \ --set-file 'selenium-grid.recorderConfigMap.extraScripts.setFromCommand\.sh=tests/charts/templates/render/dummy_external.sh' \ --set-file 'selenium-grid.uploaderConfigMap.extraScripts.setFromCommand\.sh=tests/charts/templates/render/dummy_external.sh' \ diff --git a/tests/charts/templates/test.py b/tests/charts/templates/test.py index 4d68ddf476..31f75744b0 100644 --- a/tests/charts/templates/test.py +++ b/tests/charts/templates/test.py @@ -18,10 +18,10 @@ def load_template(yaml_file): class ChartTemplateTests(unittest.TestCase): def test_set_affinity(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node', + resources_name = [f'{RELEASE_NAME}selenium-node-chrome', f'{RELEASE_NAME}selenium-distributor', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox', f'{RELEASE_NAME}selenium-event-bus', f'{RELEASE_NAME}selenium-router', f'{RELEASE_NAME}selenium-session-map', @@ -107,10 +107,10 @@ def test_disable_ui_set_to_grid_env_var(self): self.assertTrue(is_present, "ENV variable SE_DISABLE_UI is not populated") def test_log_level_set_to_logging_config_map(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node', + resources_name = [f'{RELEASE_NAME}selenium-node-chrome', f'{RELEASE_NAME}selenium-distributor', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox', f'{RELEASE_NAME}selenium-event-bus', f'{RELEASE_NAME}selenium-router', f'{RELEASE_NAME}selenium-session-map', @@ -193,9 +193,9 @@ def test_extra_script_import_to_recorder_configmap(self): self.assertEqual(count, len(resources_name), "No recorder config resources found") def test_upload_conf_mount_to_video_container(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node',] + resources_name = [f'{RELEASE_NAME}selenium-node-chrome', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox',] is_present = False for doc in LIST_OF_DOCUMENTS: if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment': @@ -208,7 +208,7 @@ def test_upload_conf_mount_to_video_container(self): if container['name'] == 's3': uploader_container = container # Test for case override upload config in Edge node - if doc['metadata']['name'] == f'{RELEASE_NAME}selenium-edge-node': + if doc['metadata']['name'] == f'{RELEASE_NAME}selenium-node-edge': self.assertTrue(uploader_container is None, "Video uploader should be disabled in Edge node config") continue list_volume_mounts = None @@ -222,7 +222,7 @@ def test_upload_conf_mount_to_video_container(self): self.assertTrue(is_present, "Volume mount for upload config is not present in the container") def test_terminationGracePeriodSeconds_in_deployment_autoscaling(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node',] + resources_name = [f'{RELEASE_NAME}selenium-node-chrome',] count = 0 for doc in LIST_OF_DOCUMENTS: if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment': @@ -231,8 +231,8 @@ def test_terminationGracePeriodSeconds_in_deployment_autoscaling(self): count += 1 self.assertEqual(count, len(resources_name), "node.terminationGracePeriodSeconds doesn't override a higher value than autoscaling.terminationGracePeriodSeconds") - resources_name = [f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node',] + resources_name = [f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox',] count = 0 for doc in LIST_OF_DOCUMENTS: if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment': @@ -270,9 +270,9 @@ def test_update_strategy_in_all_components(self): f'{RELEASE_NAME}selenium-router', f'{RELEASE_NAME}selenium-session-map', f'{RELEASE_NAME}selenium-session-queue',] - rolling = [f'{RELEASE_NAME}selenium-chrome-node', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node',] + rolling = [f'{RELEASE_NAME}selenium-node-chrome', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox',] count_recreate = 0 count_rolling = 0 for doc in LIST_OF_DOCUMENTS: @@ -288,9 +288,9 @@ def test_update_strategy_in_all_components(self): self.assertEqual(count_recreate, len(recreate), "No deployment resources found with strategy Recreate") def test_topologySpreadConstraints_in_all_components(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node', + resources_name = [f'{RELEASE_NAME}selenium-node-chrome', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox', f'{RELEASE_NAME}selenium-distributor', f'{RELEASE_NAME}selenium-event-bus', f'{RELEASE_NAME}selenium-router', @@ -314,9 +314,9 @@ def test_not_create_basic_auth_secret_when_nameOverride_is_set(self): self.assertEqual(count, 0, "Basic auth secret resource is created when nameOverride is set") def test_router_envFrom_secretRef_name_use_external_secret_when_basicAuth_nameOverride_is_set(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node', + resources_name = [f'{RELEASE_NAME}selenium-node-chrome', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox', f'{RELEASE_NAME}selenium-distributor', f'{RELEASE_NAME}selenium-event-bus', f'{RELEASE_NAME}selenium-router', @@ -334,9 +334,9 @@ def test_router_envFrom_secretRef_name_use_external_secret_when_basicAuth_nameOv self.assertTrue(is_present, "ENV variable from secretRef name is not set to external secret") def test_scaler_triggers_authenticationRef_name_is_added(self): - resources_name = [f'{RELEASE_NAME}selenium-chrome-node', - f'{RELEASE_NAME}selenium-edge-node', - f'{RELEASE_NAME}selenium-firefox-node',] + resources_name = [f'{RELEASE_NAME}selenium-node-chrome', + f'{RELEASE_NAME}selenium-node-edge', + f'{RELEASE_NAME}selenium-node-firefox',] is_present = False for doc in LIST_OF_DOCUMENTS: if doc['metadata']['name'] in resources_name and doc['kind'] == 'ScaledObject': @@ -345,9 +345,9 @@ def test_scaler_triggers_authenticationRef_name_is_added(self): self.assertTrue(name, f'{RELEASE_NAME}selenium-scaler-trigger-auth') def test_scaler_triggers_parameter_nodeMaxSessions_global_and_individual_value(self): - resources_name = {f'{RELEASE_NAME}selenium-chrome-node': 2, - f'{RELEASE_NAME}selenium-edge-node': 3, - f'{RELEASE_NAME}selenium-firefox-node': 1,} + resources_name = {f'{RELEASE_NAME}selenium-node-chrome': 2, + f'{RELEASE_NAME}selenium-node-edge': 3, + f'{RELEASE_NAME}selenium-node-firefox': 1,} count = 0 for resource_name in resources_name.keys(): for doc in LIST_OF_DOCUMENTS: