Skip to content

Commit ea4d5d1

Browse files
authored
K8s: Migrate subchart Redis to cloudpirates/redis from bitnami/redis (#3148)
Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com> [skip ci]
1 parent f37e93d commit ea4d5d1

5 files changed

Lines changed: 23 additions & 33 deletions

File tree

Makefile

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ CHROMIUM_VERSION := $(or $(CHROMIUM_VERSION),$(CHROMIUM_VERSION),latest)
3131
FIREFOX_DOWNLOAD_URL := $(or $(FIREFOX_DOWNLOAD_URL),$(FIREFOX_DOWNLOAD_URL),)
3232
SBOM_OUTPUT := $(or $(SBOM_OUTPUT),$(SBOM_OUTPUT),package_versions.txt)
3333
KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),2.19.0)
34-
KEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.19.0)
35-
KEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.19.0)
34+
KEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.20.1)
35+
KEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.20.1)
3636
KEDA_BASED_NAME := $(or $(KEDA_BASED_NAME),$(KEDA_BASED_NAME),kedacore)
37-
KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.19.0)
37+
KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.20.1)
3838
TEST_PATCHED_KEDA := $(or $(TEST_PATCHED_KEDA),$(TEST_PATCHED_KEDA),false)
3939
TRACING_EXPORTER_ENDPOINT := $(or $(TRACING_EXPORTER_ENDPOINT),$(TRACING_EXPORTER_ENDPOINT),http://\$$KUBERNETES_NODE_HOST_IP:4317)
4040
GHCR_NAMESPACE := $(or $(GHCR_NAMESPACE),$(GHCR_NAMESPACE),ghcr.io/seleniumhq)
@@ -488,25 +488,22 @@ tag_and_push_browser_images_ghcr:
488488
node-firefox standalone-firefox; do \
489489
docker images --format "{{.Tag}}" "$(NAME)/$$image" | grep -v "^<none>$$" | while IFS= read -r tag; do \
490490
docker buildx imagetools create \
491-
--tag $(GHCR_NAMESPACE)/$$image:$$tag \
492-
docker.io/$(NAME)/$$image:$$tag ; \
491+
--tag $(GHCR_NAMESPACE)/$$image:$$tag docker.io/$(NAME)/$$image:$$tag ; \
493492
done ; \
494493
done
495494

496495
mirror_browser_images_ghcr:
497496
for image in node-$(BROWSER_NAME) standalone-$(BROWSER_NAME); do \
498497
docker images --format "{{.Tag}}" "$(NAME)/$$image" | grep -v "^<none>$$" | while IFS= read -r tag; do \
499498
docker buildx imagetools create \
500-
--tag $(GHCR_NAMESPACE)/$$image:$$tag \
501-
docker.io/$(NAME)/$$image:$$tag ; \
499+
--tag $(GHCR_NAMESPACE)/$$image:$$tag docker.io/$(NAME)/$$image:$$tag ; \
502500
done ; \
503501
done
504502

505503
mirror_browser_channel_image_ghcr:
506504
for image in node-$(BROWSER_NAME) standalone-$(BROWSER_NAME); do \
507505
docker buildx imagetools create \
508-
--tag $(GHCR_NAMESPACE)/$$image:$(BROWSER_TAG) \
509-
docker.io/$(NAME)/$$image:$(BROWSER_TAG) ; \
506+
--tag $(GHCR_NAMESPACE)/$$image:$(BROWSER_TAG) docker.io/$(NAME)/$$image:$(BROWSER_TAG) ; \
510507
done
511508

512509
tag_ffmpeg_latest:
@@ -554,8 +551,7 @@ release_ffmpeg_latest:
554551
release_ffmpeg_ghcr_latest:
555552
for tag in latest $(FFMPEG_VERSION) $(FFMPEG_VERSION)-$(BUILD_DATE); do \
556553
docker buildx imagetools create \
557-
--tag $(GHCR_NAMESPACE)/ffmpeg:$$tag \
558-
docker.io/$(NAME)/ffmpeg:$$tag ; \
554+
--tag $(GHCR_NAMESPACE)/ffmpeg:$$tag docker.io/$(NAME)/ffmpeg:$$tag ; \
559555
done
560556

561557
release_latest:
@@ -593,8 +589,7 @@ release_ghcr_latest:
593589
standalone-edge standalone-firefox standalone-docker \
594590
standalone-kubernetes standalone-all-browsers video; do \
595591
docker buildx imagetools create \
596-
--tag $(GHCR_NAMESPACE)/$$image:latest \
597-
docker.io/$(NAME)/$$image:latest ; \
592+
--tag $(GHCR_NAMESPACE)/$$image:latest docker.io/$(NAME)/$$image:latest ; \
598593
done
599594

600595
generate_latest_sbom:
@@ -668,8 +663,7 @@ release_ghcr_nightly:
668663
standalone-edge standalone-firefox standalone-docker \
669664
standalone-kubernetes standalone-all-browsers video; do \
670665
docker buildx imagetools create \
671-
--tag $(GHCR_NAMESPACE)/$$image:nightly \
672-
docker.io/$(NAME)/$$image:nightly ; \
666+
--tag $(GHCR_NAMESPACE)/$$image:nightly docker.io/$(NAME)/$$image:nightly ; \
673667
done
674668

675669
generate_nightly_sbom:
@@ -881,13 +875,11 @@ release_ghcr:
881875
standalone-kubernetes standalone-all-browsers; do \
882876
for tag in $(TAG_VERSION) $(MAJOR) $(MAJOR).$(MINOR) $(MAJOR_MINOR_PATCH); do \
883877
docker buildx imagetools create \
884-
--tag $(GHCR_NAMESPACE)/$$image:$$tag \
885-
docker.io/$(NAME)/$$image:$$tag ; \
878+
--tag $(GHCR_NAMESPACE)/$$image:$$tag docker.io/$(NAME)/$$image:$$tag ; \
886879
done ; \
887880
done
888881
docker buildx imagetools create \
889-
--tag $(GHCR_NAMESPACE)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) \
890-
docker.io/$(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE)
882+
--tag $(GHCR_NAMESPACE)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) docker.io/$(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE)
891883

892884
start_test_site:
893885
@docker rm -f the-internet 2>/dev/null || true

charts/selenium-grid/CONFIGURATION.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
1919
| Repository | Name | Version |
2020
|------------|------|---------|
2121
| https://charts.bitnami.com/bitnami | postgresql | ^18.0.0 |
22-
| https://charts.bitnami.com/bitnami | redis | ^25.0.0 |
22+
| https://cloudpirates-io.github.io/helm-charts | redis | ^0.30.0 |
2323
| https://jaegertracing.github.io/helm-charts | jaeger | ^4.0.0 |
24-
| https://kedacore.github.io/charts | keda | 2.19 |
24+
| https://kedacore.github.io/charts | keda | ^2.20.0 |
2525
| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | ^86.0.0 |
2626
| https://traefik.github.io/charts | traefik | ^40.0.0 |
2727

@@ -232,10 +232,10 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
232232
| components.distributor.imagePullSecret | string | `""` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |
233233
| components.distributor.newSessionThreadPoolSize | string | `nil` | Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue |
234234
| components.distributor.slotSelectorStrategy | string | `""` | Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched |
235-
| components.distributor.externalDatastore | object | `{"backend":"redis","enabled":false,"redis":{"implementation":"org.openqa.selenium.grid.distributor.redis.RedisBackedDistributor","url":"redis://{{ $.Release.Name }}-redis-master:6379"}}` | Configure external datastore for Distributor. When enabled, all replicas share state through the backend (node registrations, slot reservations, health-check coordination), allowing zero-downtime rolling restarts. |
235+
| components.distributor.externalDatastore | object | `{"backend":"redis","enabled":false,"redis":{"implementation":"org.openqa.selenium.grid.distributor.redis.RedisBackedDistributor","url":"redis://{{ $.Release.Name }}-redis:6379"}}` | Configure external datastore for Distributor. When enabled, all replicas share state through the backend (node registrations, slot reservations, health-check coordination), allowing zero-downtime rolling restarts. |
236236
| components.distributor.externalDatastore.enabled | bool | `false` | Enable external datastore for Distributor |
237237
| components.distributor.externalDatastore.backend | string | `"redis"` | Backend for external datastore (supported: redis) |
238-
| components.distributor.externalDatastore.redis | object | `{"implementation":"org.openqa.selenium.grid.distributor.redis.RedisBackedDistributor","url":"redis://{{ $.Release.Name }}-redis-master:6379"}` | Configure Redis backed Distributor |
238+
| components.distributor.externalDatastore.redis | object | `{"implementation":"org.openqa.selenium.grid.distributor.redis.RedisBackedDistributor","url":"redis://{{ $.Release.Name }}-redis:6379"}` | Configure Redis backed Distributor |
239239
| components.distributor.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Distributor |
240240
| components.distributor.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Distributor |
241241
| components.distributor.affinity | object | `{}` | Specify affinity for distributor pods, this overwrites global.seleniumGrid.affinity parameter |
@@ -315,7 +315,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
315315
| components.sessionMap.externalDatastore.enabled | bool | `false` | Enable external datastore for Session Map |
316316
| components.sessionMap.externalDatastore.backend | string | `"redis"` | Backend for external datastore (supported: postgresql, redis). Details for each backend are described below config key |
317317
| components.sessionMap.externalDatastore.postgresql | object | `{"implementation":"org.openqa.selenium.grid.sessionmap.jdbc.JdbcBackedSessionMap","jdbcPassword":"seluser","jdbcUrl":"jdbc:postgresql://{{ $.Release.Name }}-postgresql:5432/selenium_sessions","jdbcUser":"seluser"}` | Configure database backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#database-backed-session-map) |
318-
| components.sessionMap.externalDatastore.redis | object | `{"hostname":"{{ $.Release.Name }}-redis-master","implementation":"org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap","port":"6379","scheme":"redis"}` | Configure Redis backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#redis-backed-session-map) |
318+
| components.sessionMap.externalDatastore.redis | object | `{"hostname":"{{ $.Release.Name }}-redis","implementation":"org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap","port":"6379","scheme":"redis"}` | Configure Redis backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#redis-backed-session-map) |
319319
| components.sessionQueue.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |
320320
| components.sessionQueue.imageName | string | `"session-queue"` | Session Queue image name |
321321
| components.sessionQueue.imageTag | string | `nil` | Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) |
@@ -795,7 +795,6 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
795795
| postgresql.auth | object | `{"database":"selenium_sessions","password":"seluser","username":"seluser"}` | Authentication should be aligned with config in session map |
796796
| postgresql.primary.initdb.scripts | object | `{"init.sql":"CREATE TABLE IF NOT EXISTS sessions_map(\n session_ids varchar(256),\n session_caps text,\n session_uri varchar(256),\n session_stereotype text,\n session_start varchar(256)\n);\n"}` | Initdb scripts for PostgreSQL to create sessions_map table |
797797
| redis.enabled | bool | `false` | Enable to install Redis along with Grid |
798-
| redis.image.repository | string | `"bitnamilegacy/redis"` | |
799798
| redis.architecture | string | `"standalone"` | Setup architecture |
800799
| redis.auth.enabled | bool | `false` | Disable authentication due to implementation still not supporting it |
801800

charts/selenium-grid/Chart.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ appVersion: 4.44.0-20260505
77
icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png
88
dependencies:
99
- repository: https://kedacore.github.io/charts
10-
version: 2.19
10+
version: ^2.20.0
1111
name: keda
1212
condition: autoscaling.enabled, keda.enabled
1313
- repository: https://traefik.github.io/charts
@@ -26,8 +26,8 @@ dependencies:
2626
version: ^18.0.0
2727
name: postgresql
2828
condition: postgresql.enabled
29-
- repository: https://charts.bitnami.com/bitnami
30-
version: ^25.0.0
29+
- repository: https://cloudpirates-io.github.io/helm-charts
30+
version: ^0.30.0
3131
name: redis
3232
condition: redis.enabled
3333
maintainers:

charts/selenium-grid/values.yaml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ components:
577577
# -- Configure Redis backed Distributor
578578
redis:
579579
implementation: "org.openqa.selenium.grid.distributor.redis.RedisBackedDistributor"
580-
url: "redis://{{ $.Release.Name }}-redis-master:6379"
580+
url: "redis://{{ $.Release.Name }}-redis:6379"
581581
# -- Specify extra environment variables for Distributor
582582
extraEnvironmentVariables: []
583583
# -- Specify extra environment variables from ConfigMap and Secret for Distributor
@@ -794,7 +794,7 @@ components:
794794
redis:
795795
scheme: "redis"
796796
implementation: "org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap"
797-
hostname: "{{ $.Release.Name }}-redis-master"
797+
hostname: "{{ $.Release.Name }}-redis"
798798
port: "6379"
799799

800800
# Configuration for Session Queue component
@@ -2371,12 +2371,10 @@ postgresql:
23712371
session_start varchar(256)
23722372
);
23732373
2374-
# Configuration for dependency chart Redis (README: https://artifacthub.io/packages/helm/bitnami/redis)
2374+
# Configuration for dependency chart Redis (README: https://artifacthub.io/packages/helm/cloudpirates/redis)
23752375
redis:
23762376
# -- Enable to install Redis along with Grid
23772377
enabled: false
2378-
image:
2379-
repository: bitnamilegacy/redis
23802378
# -- Setup architecture
23812379
architecture: standalone
23822380
auth:

tests/charts/config/ct.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ chart-repos:
99
- jaegertracing=https://jaegertracing.github.io/helm-charts
1010
- prometheusCommunity=https://prometheus-community.github.io/helm-charts
1111
- bitnami=https://charts.bitnami.com/bitnami
12+
- cloudpirates=https://cloudpirates-io.github.io/helm-charts
1213
upgrade: false
1314
helm-extra-args: --timeout 600s
1415
check-version-increment: false

0 commit comments

Comments
 (0)