Skip to content

Commit 8466588

Browse files
authored
chart(fix): basicAuth.embeddedUrl in GraphQL endpoint for old scaler compatible (#2408)
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent c6a781b commit 8466588

File tree

7 files changed

+63
-53
lines changed

7 files changed

+63
-53
lines changed

Diff for: .github/workflows/helm-chart-test.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -165,13 +165,6 @@ jobs:
165165
command: |
166166
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false make chart_test_autoscaling_${{ matrix.test-strategy }} \
167167
&& NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video_integrity
168-
- name: Test chart upgrade
169-
if: (matrix.test-upgrade == true)
170-
run: |
171-
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} SET_MAX_REPLICAS=10 TEST_UPGRADE_CHART=${TEST_UPGRADE_CHART} make chart_test_autoscaling_${{ matrix.test-strategy }}
172-
- name: Cleanup Kubernetes cluster
173-
if: always()
174-
run: CLUSTER=${CLUSTER} make chart_cluster_cleanup
175168
- name: Upload Helm chart package
176169
if: always()
177170
uses: actions/upload-artifact@main
@@ -191,6 +184,13 @@ jobs:
191184
with:
192185
name: ${{ env.ARTIFACT_NAME }}-videos
193186
path: ./tests/videos/
187+
- name: Test chart upgrade
188+
if: (matrix.test-upgrade == true)
189+
run: |
190+
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} SET_MAX_REPLICAS=10 TEST_NAME_OVERRIDE=true TEST_UPGRADE_CHART=${TEST_UPGRADE_CHART} make chart_test_autoscaling_${{ matrix.test-strategy }}
191+
- name: Cleanup Kubernetes cluster
192+
if: always()
193+
run: CLUSTER=${CLUSTER} make chart_cluster_cleanup
194194
- name: Clean up Docker
195195
if: always()
196196
run: docker system prune -af

Diff for: Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,7 @@ chart_test_autoscaling_deployment_https:
919919
./tests/charts/make/chart_test.sh DeploymentAutoscaling
920920

921921
chart_test_autoscaling_deployment:
922-
PLATFORMS=$(PLATFORMS) TEST_EXISTING_KEDA=true RELEASE_NAME=selenium CHART_ENABLE_TRACING=true \
922+
PLATFORMS=$(PLATFORMS) TEST_EXISTING_KEDA=true RELEASE_NAME=selenium CHART_ENABLE_TRACING=true TEST_PATCHED_KEDA=false \
923923
SECURE_CONNECTION_SERVER=true SECURE_USE_EXTERNAL_CERT=true SERVICE_TYPE_NODEPORT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -i) SELENIUM_GRID_PORT=31444 \
924924
SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=1 \
925925
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) \
@@ -935,7 +935,7 @@ chart_test_autoscaling_job_https:
935935
./tests/charts/make/chart_test.sh JobAutoscaling
936936

937937
chart_test_autoscaling_job_hostname:
938-
PLATFORMS=$(PLATFORMS) CHART_ENABLE_TRACING=true CHART_ENABLE_BASIC_AUTH=true \
938+
PLATFORMS=$(PLATFORMS) CHART_ENABLE_TRACING=true CHART_ENABLE_BASIC_AUTH=true BASIC_AUTH_EMBEDDED_URL=true TEST_PATCHED_KEDA=false \
939939
SECURE_INGRESS_ONLY_DEFAULT=true SECURE_USE_EXTERNAL_CERT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -i) SELENIUM_GRID_PORT=443 \
940940
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) \
941941
TEMPLATE_OUTPUT_FILENAME="k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_scaledJob_subPath.yaml" \

Diff for: charts/selenium-grid/CONFIGURATION.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# selenium-grid
22

3-
![Version: 0.36.0](https://img.shields.io/badge/Version-0.36.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.25.0-20240922](https://img.shields.io/badge/AppVersion-4.25.0--20240922-informational?style=flat-square)
3+
![Version: 0.36.1](https://img.shields.io/badge/Version-0.36.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.25.0-20240922](https://img.shields.io/badge/AppVersion-4.25.0--20240922-informational?style=flat-square)
44

55
A Helm chart for creating a Selenium Grid Server in Kubernetes
66

Diff for: charts/selenium-grid/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: selenium-grid
33
description: A Helm chart for creating a Selenium Grid Server in Kubernetes
44
type: application
5-
version: 0.36.0
5+
version: 0.36.1
66
appVersion: 4.25.0-20240922
77
icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png
88
dependencies:

Diff for: charts/selenium-grid/templates/_helpers.tpl

+3-3
Original file line numberDiff line numberDiff line change
@@ -638,9 +638,6 @@ Get the url of the grid. If the external url can be figured out from the ingress
638638
*/}}
639639
{{- define "seleniumGrid.url" -}}
640640
{{- $url := printf "%s://%s%s%s" (include "seleniumGrid.url.schema" .) (include "seleniumGrid.url.host" .) (include "seleniumGrid.url.port" .) (include "seleniumGrid.url.subPath" .) -}}
641-
{{- if $.Values.basicAuth.embeddedUrl -}}
642-
{{- $url := printf "%s://%s%s%s%s" (include "seleniumGrid.url.schema" .) (include "seleniumGrid.url.basicAuth" .) (include "seleniumGrid.url.host" .) (include "seleniumGrid.url.port" .) (include "seleniumGrid.url.subPath" .) -}}
643-
{{- end -}}
644641
{{- $url }}
645642
{{- end -}}
646643

@@ -649,6 +646,9 @@ Get the url of the grid server in the cluster
649646
*/}}
650647
{{- define "seleniumGrid.server.url" -}}
651648
{{- $url := printf "%s://%s%s%s" (include "seleniumGrid.server.url.schema" .) (include "seleniumGrid.server.url.host" .) (include "seleniumGrid.server.url.port" .) (include "seleniumGrid.url.subPath" .) -}}
649+
{{- if $.Values.basicAuth.embeddedUrl -}}
650+
{{- $url = printf "%s://%s%s%s%s" (include "seleniumGrid.server.url.schema" .) (include "seleniumGrid.url.basicAuth" .) (include "seleniumGrid.server.url.host" .) (include "seleniumGrid.server.url.port" .) (include "seleniumGrid.url.subPath" .) -}}
651+
{{- end -}}
652652
{{- $url }}
653653
{{- end -}}
654654

Diff for: tests/charts/ci/local-pvc.yaml

+15-15
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,21 @@ spec:
7474
targetPort: 21005
7575
---
7676
apiVersion: v1
77+
kind: PersistentVolumeClaim
78+
metadata:
79+
name: ${TEST_PV_CLAIM_NAME}
80+
namespace: ${SELENIUM_NAMESPACE}
81+
labels:
82+
app: ftp-server
83+
spec:
84+
accessModes:
85+
- "ReadWriteOnce"
86+
resources:
87+
requests:
88+
storage: "2Gi"
89+
storageClassName: "standard"
90+
---
91+
apiVersion: v1
7792
kind: PersistentVolume
7893
metadata:
7994
name: pv-local
@@ -92,18 +107,3 @@ spec:
92107
type: DirectoryOrCreate
93108
persistentVolumeReclaimPolicy: Retain
94109
storageClassName: "standard"
95-
---
96-
apiVersion: v1
97-
kind: PersistentVolumeClaim
98-
metadata:
99-
name: ${TEST_PV_CLAIM_NAME}
100-
namespace: ${SELENIUM_NAMESPACE}
101-
labels:
102-
app: ftp-server
103-
spec:
104-
accessModes:
105-
- "ReadWriteOnce"
106-
resources:
107-
requests:
108-
storage: "2Gi"
109-
storageClassName: "standard"

Diff for: tests/charts/make/chart_test.sh

+34-24
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ MAX_SESSIONS_CHROME=${MAX_SESSIONS_CHROME:-"1"}
5353
MAX_SESSIONS_FIREFOX=${MAX_SESSIONS_FIREFOX:-"1"}
5454
MAX_SESSIONS_EDGE=${MAX_SESSIONS_EDGE:-"1"}
5555
TEST_NAME_OVERRIDE=${TEST_NAME_OVERRIDE:-"false"}
56+
TEST_PATCHED_KEDA=${TEST_PATCHED_KEDA:-"true"}
57+
BASIC_AUTH_EMBEDDED_URL=${BASIC_AUTH_EMBEDDED_URL:-"false"}
5658

5759
cleanup() {
5860
# Get the list of pods
@@ -189,6 +191,7 @@ if [ "${CHART_ENABLE_BASIC_AUTH}" = "true" ]; then
189191
--set basicAuth.enabled=${CHART_ENABLE_BASIC_AUTH} \
190192
--set basicAuth.username=${BASIC_AUTH_USERNAME} \
191193
--set basicAuth.password=${BASIC_AUTH_PASSWORD} \
194+
--set basicAuth.embeddedUrl=${BASIC_AUTH_EMBEDDED_URL} \
192195
"
193196
export SELENIUM_GRID_USERNAME=${BASIC_AUTH_USERNAME}
194197
export SELENIUM_GRID_PASSWORD=${BASIC_AUTH_PASSWORD}
@@ -330,6 +333,34 @@ HELM_COMMAND_SET_BASE_VALUES="${HELM_COMMAND_SET_BASE_VALUES} \
330333
--values ${MATRIX_BROWSER_VALUES_FILE} \
331334
"
332335

336+
if [ "${TEST_EXISTING_KEDA}" = "true" ] && [ "${TEST_UPGRADE_CHART}" != "true" ]; then
337+
if [ "${TEST_PATCHED_KEDA}" = "true" ]; then
338+
KEDA_SET_IMAGES="--set image.keda.registry=${KEDA_BASED_NAME} --set image.keda.repository=keda --set image.keda.tag=${KEDA_BASED_TAG} \
339+
--set image.metricsApiServer.registry=${KEDA_BASED_NAME} --set image.metricsApiServer.repository=keda-metrics-apiserver --set image.metricsApiServer.tag=${KEDA_BASED_TAG} \
340+
--set image.webhooks.registry=${KEDA_BASED_NAME} --set image.webhooks.repository=keda-admission-webhooks --set image.webhooks.tag=${KEDA_BASED_TAG} \
341+
"
342+
fi
343+
helm repo add kedacore https://kedacore.github.io/charts
344+
echo "Install KEDA core on Kubernetes cluster"
345+
helm upgrade -i ${KEDA_NAMESPACE} -n ${KEDA_NAMESPACE} --create-namespace --set webhooks.enabled=true ${KEDA_SET_IMAGES} kedacore/keda
346+
echo "Wait for KEDA core to be ready"
347+
kubectl -n ${KEDA_NAMESPACE} wait --for=condition=ready pod -l app.kubernetes.io/instance=${KEDA_NAMESPACE} --timeout 180s
348+
elif [ "${TEST_EXISTING_KEDA}" != "true" ]; then
349+
if [ "${TEST_PATCHED_KEDA}" = "true" ]; then
350+
HELM_COMMAND_SET_IMAGES="${HELM_COMMAND_SET_IMAGES} \
351+
--set keda.image.keda.registry=${KEDA_BASED_NAME} --set keda.image.keda.repository=keda --set keda.image.keda.tag=${KEDA_BASED_TAG} \
352+
--set keda.image.metricsApiServer.registry=${KEDA_BASED_NAME} --set keda.image.metricsApiServer.repository=keda-metrics-apiserver --set keda.image.metricsApiServer.tag=${KEDA_BASED_TAG} \
353+
--set keda.image.webhooks.registry=${KEDA_BASED_NAME} --set keda.image.webhooks.repository=keda-admission-webhooks --set keda.image.webhooks.tag=${KEDA_BASED_TAG} \
354+
"
355+
else
356+
HELM_COMMAND_SET_IMAGES="${HELM_COMMAND_SET_IMAGES} \
357+
--set keda.image.keda.registry=null --set keda.image.keda.repository=null --set keda.image.keda.tag=null \
358+
--set keda.image.metricsApiServer.registry=null --set keda.image.metricsApiServer.repository=null --set keda.image.metricsApiServer.tag=null \
359+
--set keda.image.webhooks.registry=null --set keda.image.webhooks.repository=null --set keda.image.webhooks.tag=null \
360+
"
361+
fi
362+
fi
363+
333364
HELM_COMMAND_ARGS="${RELEASE_NAME} \
334365
${HELM_COMMAND_SET_BASE_VALUES} \
335366
${HELM_COMMAND_SET_AUTOSCALING} \
@@ -343,27 +374,6 @@ if [ "${RENDER_HELM_TEMPLATE_ONLY}" = "true" ]; then
343374
exit 0
344375
fi
345376

346-
if [ "${TEST_EXISTING_KEDA}" = "true" ] && [ "${TEST_UPGRADE_CHART}" != "true" ]; then
347-
helm repo add kedacore https://kedacore.github.io/charts
348-
echo "Install KEDA core on Kubernetes cluster"
349-
helm upgrade -i ${KEDA_NAMESPACE} -n ${KEDA_NAMESPACE} --create-namespace --set webhooks.enabled=true \
350-
--set image.keda.registry=${KEDA_BASED_NAME} --set image.keda.repository=keda --set image.keda.tag=${KEDA_BASED_TAG} \
351-
--set image.metricsApiServer.registry=${KEDA_BASED_NAME} --set image.metricsApiServer.repository=keda-metrics-apiserver --set image.metricsApiServer.tag=${KEDA_BASED_TAG} \
352-
--set image.webhooks.registry=${KEDA_BASED_NAME} --set image.webhooks.repository=keda-admission-webhooks --set image.webhooks.tag=${KEDA_BASED_TAG} \
353-
kedacore/keda
354-
elif [ "${TEST_EXISTING_KEDA}" != "true" ] && [ "${TEST_UPGRADE_CHART}" != "true" ]; then
355-
HELM_COMMAND_SET_IMAGES="${HELM_COMMAND_SET_IMAGES} \
356-
--set keda.image.keda.registry=${KEDA_BASED_NAME} --set keda.image.keda.repository=keda --set keda.image.keda.tag=${KEDA_BASED_TAG} \
357-
--set keda.image.metricsApiServer.registry=${KEDA_BASED_NAME} --set keda.image.metricsApiServer.repository=keda-metrics-apiserver --set keda.image.metricsApiServer.tag=${KEDA_BASED_TAG} \
358-
--set keda.image.webhooks.registry=${KEDA_BASED_NAME} --set keda.image.webhooks.repository=keda-admission-webhooks --set keda.image.webhooks.tag=${KEDA_BASED_TAG} \
359-
"
360-
fi
361-
362-
if [ "${TEST_EXISTING_KEDA}" = "true" ] && [ "${TEST_UPGRADE_CHART}" != "true" ]; then
363-
echo "Wait for KEDA core to be ready"
364-
kubectl -n ${KEDA_NAMESPACE} wait --for=condition=ready pod -l app.kubernetes.io/instance=${KEDA_NAMESPACE} --timeout 180s
365-
fi
366-
367377
echo "Deploy Selenium Grid Chart"
368378
helm upgrade --install ${HELM_COMMAND_ARGS}
369379

@@ -405,9 +415,6 @@ else
405415
./tests/bootstrap.sh ${MATRIX_BROWSER}
406416
fi
407417

408-
echo "Get pods status"
409-
kubectl get pods -n ${SELENIUM_NAMESPACE}
410-
411418
# Wait until no pods are in "Terminating" state
412419
while true; do
413420
terminating_pods=$(kubectl get pods -n ${SELENIUM_NAMESPACE} --no-headers | grep Terminating | wc -l)
@@ -420,6 +427,9 @@ while true; do
420427
fi
421428
done
422429

430+
echo "Get pods status"
431+
kubectl get pods -n ${SELENIUM_NAMESPACE}
432+
423433
echo "Get all resources in all namespaces"
424434
kubectl get all -A >> tests/tests/describe_all_resources_${MATRIX_BROWSER}.txt
425435

0 commit comments

Comments
 (0)