diff --git a/.circleci/config.yml b/.circleci/config.yml index b94e13699..4dfd0b550 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,7 +10,7 @@ workflows: k8s-version: 'v1.25.16' test-strategy: playwright_connect_grid cluster: 'minikube' - helm-version: 'v3.10.3' + helm-version: 'v3.11.3' docker-version: '24.0.9' test-upgrade: true - kubernetes-test: diff --git a/.github/workflows/helm-chart-test.yml b/.github/workflows/helm-chart-test.yml index 11f876944..9cf7b423b 100644 --- a/.github/workflows/helm-chart-test.yml +++ b/.github/workflows/helm-chart-test.yml @@ -37,7 +37,7 @@ jobs: - k8s-version: 'v1.25.16' test-strategy: playwright_connect_grid cluster: 'minikube' - helm-version: 'v3.10.3' + helm-version: 'v3.11.3' docker-version: '24.0.9' test-upgrade: true service-mesh: true diff --git a/Makefile b/Makefile index 3fbd02302..f1851ef3a 100644 --- a/Makefile +++ b/Makefile @@ -26,10 +26,10 @@ PLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM)) SEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret) CHROMIUM_VERSION := $(or $(CHROMIUM_VERSION),$(CHROMIUM_VERSION),latest) SBOM_OUTPUT := $(or $(SBOM_OUTPUT),$(SBOM_OUTPUT),package_versions.txt) -KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),2.15.1-selenium-grid) -KEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.15.1-selenium-grid) +KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),2.16.0-selenium-grid) +KEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.16.0-selenium-grid) KEDA_BASED_NAME := $(or $(KEDA_BASED_NAME),$(KEDA_BASED_NAME),ndviet) -KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.15.1-selenium-grid-20241017) +KEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.16.0-selenium-grid) all: hub \ distributor \ @@ -352,7 +352,7 @@ tag_latest: docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest -release_latest: release_grid_scaler_latest +release_latest: docker push $(NAME)/base:latest docker push $(NAME)/hub:latest docker push $(NAME)/distributor:latest @@ -397,7 +397,7 @@ tag_nightly: docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:nightly docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:nightly -release_nightly: release_grid_scaler_nightly +release_nightly: docker push $(NAME)/base:nightly docker push $(NAME)/hub:nightly docker push $(NAME)/distributor:nightly @@ -477,7 +477,7 @@ tag_major_minor: docker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH) docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR_MINOR_PATCH) -release: tag_major_minor release_grid_scaler +release: tag_major_minor @if ! docker images $(NAME)/base | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/base version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/hub | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/hub version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @if ! docker images $(NAME)/distributor | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo "$(NAME)/distributor version $(TAG_VERSION) is not yet built. Please run 'make build'"; false; fi @@ -918,7 +918,7 @@ chart_test_autoscaling_disabled: chart_test_autoscaling_deployment_https: PLATFORMS=$(PLATFORMS) CHART_FULL_DISTRIBUTED_MODE=true CHART_ENABLE_BASIC_AUTH=true \ SECURE_INGRESS_ONLY_DEFAULT=true INGRESS_DISABLE_USE_HTTP2=true SELENIUM_GRID_PROTOCOL=https CHART_ENABLE_INGRESS_HOSTNAME=true SELENIUM_GRID_PORT=443 \ - SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=0 MAX_SESSIONS_FIREFOX=3 MAX_SESSIONS_EDGE=2 MAX_SESSIONS_CHROME=1 TEST_NAME_OVERRIDE=true \ + SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=0 MAX_SESSIONS_FIREFOX=1 MAX_SESSIONS_EDGE=1 MAX_SESSIONS_CHROME=1 TEST_NAME_OVERRIDE=true \ 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) BASE_VERSION=$(BASE_VERSION) \ TEMPLATE_OUTPUT_FILENAME="k8s_fullDistributed_basicAuth_secureIngress_defaultCerts_ingressHostName_disableHttp2_autoScaling_patchKEDA_scaledObject_subPath.yaml" \ ./tests/charts/make/chart_test.sh DeploymentAutoscaling diff --git a/charts/selenium-grid/CHANGELOG.md b/charts/selenium-grid/CHANGELOG.md index e65654085..3b8de08a6 100644 --- a/charts/selenium-grid/CHANGELOG.md +++ b/charts/selenium-grid/CHANGELOG.md @@ -1,3 +1,21 @@ +## :heavy_check_mark: selenium-grid-0.37.1 + +- Chart is using image tag 4.26.0-20241101 +- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, +- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, +- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, + +### Changed +- [`fc81fd05`](http://github.com/seleniumhq/docker-selenium/commit/fc81fd05ac7f5b51b91e089d4e189c5b2ea5e720) - Release chart 0.37.1 :: Viet Nguyen Duc +- [`82350ba8`](http://github.com/seleniumhq/docker-selenium/commit/82350ba80a959464c74ecf6582bea2ac97eca913) - Update chart configuration table :: Selenium CI Bot +- [`edfe8a30`](http://github.com/seleniumhq/docker-selenium/commit/edfe8a3020db5beeb1d7f11a0b45194aae3fe6d3) - chore(deps): update helm release kube-prometheus-stack to v65.8.1 (#2428) :: renovate[bot] +- [`a1887055`](http://github.com/seleniumhq/docker-selenium/commit/a1887055c59b200b8ffd5f46a02809fc6be9dc25) - chore(deps): update helm release jaeger to v3.3.2 (#2455) :: renovate[bot] +- [`e0a7d63b`](http://github.com/seleniumhq/docker-selenium/commit/e0a7d63b75c7540a9447a8008feb164e715fcb3e) - chore(deps): update helm release keda to v2.16.0 (#2459) :: renovate[bot] +- [`06663919`](http://github.com/seleniumhq/docker-selenium/commit/06663919defd859345c7b5d942106405453d30cf) - Update chart 0.37.0 changelog [skip ci] :: Selenium CI Bot + +### Experimental +- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md) + ## :heavy_check_mark: selenium-grid-0.37.0 - Chart is using image tag 4.26.0-20241101 diff --git a/charts/selenium-grid/CONFIGURATION.md b/charts/selenium-grid/CONFIGURATION.md index d978f0049..6011fcb91 100644 --- a/charts/selenium-grid/CONFIGURATION.md +++ b/charts/selenium-grid/CONFIGURATION.md @@ -1,6 +1,6 @@ # selenium-grid -![Version: 0.37.0](https://img.shields.io/badge/Version-0.37.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.26.0-20241101](https://img.shields.io/badge/AppVersion-4.26.0--20241101-informational?style=flat-square) +![Version: 0.37.1](https://img.shields.io/badge/Version-0.37.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.26.0-20241101](https://img.shields.io/badge/AppVersion-4.26.0--20241101-informational?style=flat-square) A Helm chart for creating a Selenium Grid Server in Kubernetes @@ -18,10 +18,10 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes | Repository | Name | Version | |------------|------|---------| -| https://jaegertracing.github.io/helm-charts | jaeger | 3.3.1 | -| https://kedacore.github.io/charts | keda | 2.15.2 | +| https://jaegertracing.github.io/helm-charts | jaeger | 3.3.2 | +| https://kedacore.github.io/charts | keda | 2.16.0 | | https://kubernetes.github.io/ingress-nginx | ingress-nginx | 4.11.3 | -| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 65.2.0 | +| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 65.8.1 | ## Values @@ -177,7 +177,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes | components.router.nodePort | int | `30444` | Router expose NodePort | | components.router.startupProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":5,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Startup probe settings | | components.router.readinessProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":12,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Readiness probe settings | -| components.router.livenessProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":10,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Liveness probe settings | +| components.router.livenessProbe | object | `{"enabled":true,"failureThreshold":30,"initialDelaySeconds":60,"path":"/readyz","periodSeconds":60,"successThreshold":1,"timeoutSeconds":60}` | Liveness probe settings | | components.router.resources | object | `{}` | Resources for router container | | components.router.securityContext | object | `{}` | SecurityContext for router container | | components.router.serviceType | string | `"ClusterIP"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | @@ -199,7 +199,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes | components.distributor.nodePort | int | `30553` | Distributor expose NodePort | | components.distributor.startupProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":5,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Startup probe settings | | components.distributor.readinessProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":12,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Readiness probe settings | -| components.distributor.livenessProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":10,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Liveness probe settings | +| components.distributor.livenessProbe | object | `{"enabled":true,"failureThreshold":30,"initialDelaySeconds":60,"path":"/readyz","periodSeconds":60,"successThreshold":1,"timeoutSeconds":60}` | Liveness probe settings | | components.distributor.resources | object | `{}` | Resources for Distributor container | | components.distributor.securityContext | object | `{}` | SecurityContext for Distributor container | | components.distributor.serviceType | string | `"ClusterIP"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) | @@ -283,7 +283,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes | hub.nodePort | int | `31444` | Selenium Hub expose NodePort | | hub.startupProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":5,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Startup probe settings | | hub.readinessProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":12,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Readiness probe settings | -| hub.livenessProbe | object | `{"enabled":true,"failureThreshold":10,"initialDelaySeconds":10,"path":"/readyz","periodSeconds":10,"successThreshold":1,"timeoutSeconds":10}` | Liveness probe settings | +| hub.livenessProbe | object | `{"enabled":true,"failureThreshold":30,"initialDelaySeconds":60,"path":"/readyz","periodSeconds":60,"successThreshold":1,"timeoutSeconds":60}` | Liveness probe settings | | hub.subPath | string | `""` | Custom sub path for the hub deployment | | hub.extraEnvironmentVariables | string | `nil` | Custom environment variables for selenium-hub | | hub.extraEnvFrom | string | `nil` | Custom environment variables by sourcing entire configMap, Secret, etc. for selenium-hub | @@ -577,7 +577,6 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes | videoRecorder.extraVolumes | list | `[]` | Extra volumes for video recorder pod | | videoRecorder.s3 | object | `{"args":[],"command":[],"extraEnvironmentVariables":null,"imageName":"aws-cli","imagePullPolicy":"IfNotPresent","imageRegistry":"bitnami","imageTag":"latest","securityContext":{"runAsUser":0}}` | Container spec for the uploader if above it is defined as "uploader.name: s3" | | customLabels | object | `{}` | Custom labels for k8s resources | -| keda.image | object | `{"keda":{"registry":"selenium","repository":"keda","tag":"2.15.1-selenium-grid-20241101"},"metricsApiServer":{"registry":"selenium","repository":"keda-metrics-apiserver","tag":"2.15.1-selenium-grid-20241101"},"webhooks":{"registry":"selenium","repository":"keda-admission-webhooks","tag":"2.15.1-selenium-grid-20241101"}}` | Specify image for KEDA components | | keda.additionalAnnotations | string | `nil` | Annotations for KEDA resources | | keda.http.timeout | int | `60000` | | | keda.webhooks | object | `{"enabled":false}` | Enable KEDA admission webhooks component | diff --git a/charts/selenium-grid/Chart.yaml b/charts/selenium-grid/Chart.yaml index a9bb41b79..23c8c25c2 100644 --- a/charts/selenium-grid/Chart.yaml +++ b/charts/selenium-grid/Chart.yaml @@ -2,12 +2,12 @@ apiVersion: v2 name: selenium-grid description: A Helm chart for creating a Selenium Grid Server in Kubernetes type: application -version: 0.37.0 +version: 0.37.1 appVersion: 4.26.0-20241101 icon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png dependencies: - repository: https://kedacore.github.io/charts - version: 2.15.2 + version: 2.16.0 name: keda condition: autoscaling.enabled, keda.enabled - repository: https://kubernetes.github.io/ingress-nginx @@ -15,11 +15,11 @@ dependencies: name: ingress-nginx condition: ingress.enableWithController, ingress-nginx.enabled - repository: https://jaegertracing.github.io/helm-charts - version: 3.3.1 + version: 3.3.2 name: jaeger condition: tracing.enabled, jaeger.enabled - repository: https://prometheus-community.github.io/helm-charts - version: 65.2.0 + version: 65.8.1 name: kube-prometheus-stack condition: monitoring.enabled, prometheus-stack.enabled maintainers: diff --git a/charts/selenium-grid/values.yaml b/charts/selenium-grid/values.yaml index 77917f386..0dc78cce8 100644 --- a/charts/selenium-grid/values.yaml +++ b/charts/selenium-grid/values.yaml @@ -424,10 +424,10 @@ components: livenessProbe: enabled: true path: /readyz - initialDelaySeconds: 10 - failureThreshold: 10 - timeoutSeconds: 10 - periodSeconds: 10 + initialDelaySeconds: 60 + failureThreshold: 30 + timeoutSeconds: 60 + periodSeconds: 60 successThreshold: 1 # -- Resources for router container resources: {} @@ -494,10 +494,10 @@ components: livenessProbe: enabled: true path: /readyz - initialDelaySeconds: 10 - failureThreshold: 10 - timeoutSeconds: 10 - periodSeconds: 10 + initialDelaySeconds: 60 + failureThreshold: 30 + timeoutSeconds: 60 + periodSeconds: 60 successThreshold: 1 # -- Resources for Distributor container resources: {} @@ -716,10 +716,10 @@ hub: livenessProbe: enabled: true path: /readyz - initialDelaySeconds: 10 - failureThreshold: 10 - timeoutSeconds: 10 - periodSeconds: 10 + initialDelaySeconds: 60 + failureThreshold: 30 + timeoutSeconds: 60 + periodSeconds: 60 successThreshold: 1 # -- Custom sub path for the hub deployment subPath: "" @@ -1768,20 +1768,6 @@ customLabels: {} # Configuration for dependency chart keda keda: # enabled: false - # -- Specify image for KEDA components - image: - keda: - registry: selenium - repository: keda - tag: "2.15.1-selenium-grid-20241101" - metricsApiServer: - registry: selenium - repository: keda-metrics-apiserver - tag: "2.15.1-selenium-grid-20241101" - webhooks: - registry: selenium - repository: keda-admission-webhooks - tag: "2.15.1-selenium-grid-20241101" # -- Annotations for KEDA resources additionalAnnotations: http: diff --git a/tests/charts/make/chart_test.sh b/tests/charts/make/chart_test.sh index 825b55519..bab70edcf 100755 --- a/tests/charts/make/chart_test.sh +++ b/tests/charts/make/chart_test.sh @@ -55,7 +55,7 @@ MAX_SESSIONS_CHROME=${MAX_SESSIONS_CHROME:-"1"} MAX_SESSIONS_FIREFOX=${MAX_SESSIONS_FIREFOX:-"1"} MAX_SESSIONS_EDGE=${MAX_SESSIONS_EDGE:-"1"} TEST_NAME_OVERRIDE=${TEST_NAME_OVERRIDE:-"false"} -TEST_PATCHED_KEDA=${TEST_PATCHED_KEDA:-"true"} +TEST_PATCHED_KEDA=${TEST_PATCHED_KEDA:-"false"} BASIC_AUTH_EMBEDDED_URL=${BASIC_AUTH_EMBEDDED_URL:-"false"} SELENIUM_GRID_MONITORING=${SELENIUM_GRID_MONITORING:-"true"} TEST_EXISTING_PTS=${TEST_EXISTING_PTS:-"false"}