Skip to content

Commit 509e2df

Browse files
committed
Docker: Use in-house tools image to avoid pulling rate-limits
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 8b90a3d commit 509e2df

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

.tools/Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM ubuntu:noble
2+
3+
ARG AUTHORS=SeleniumHQ
4+
LABEL authors="${AUTHORS} <[email protected]>"
5+
LABEL org.opencontainers.image.source="https://github.com/${AUTHORS}/docker-selenium"
6+
7+
RUN apt-get update && apt-get install -y curl && \
8+
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(dpkg --print-architecture)/kubectl" && \
9+
chmod +x kubectl && \
10+
mv kubectl /usr/local/bin/ && \
11+
apt-get clean && rm -rf /var/lib/apt/lists/*
12+
13+
RUN useradd -m kubectl
14+
USER kubectl
15+
16+
RUN kubectl version --client
17+
18+
ENTRYPOINT ["kubectl"]

Makefile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ all: hub \
5656
standalone_firefox \
5757
standalone_docker \
5858
standalone_all_browsers \
59-
video
59+
video \
60+
tools
6061

6162
check_dev_env:
6263
./tests/charts/make/chart_check_env.sh
@@ -292,6 +293,9 @@ video: base
292293
ffmpeg:
293294
cd ./.ffmpeg && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg FFMPEG_VERSION=$(FFMPEG_VERSION) $(FROM_IMAGE_ARGS) -t $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) .
294295

296+
tools:
297+
cd ./.tools && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/tools:$(BUILD_DATE) .
298+
295299
all_browsers: node_base
296300
cd ./NodeChromium && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-base --build-arg CHROMIUM_VERSION=$(CHROMIUM_VERSION) -t $(NAME)/node-all-browsers:$(TAG_VERSION) . ; \
297301
cd .. ; \
@@ -414,6 +418,7 @@ tag_latest:
414418
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest
415419
docker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:latest
416420
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest
421+
docker tag $(NAME)/tools:$(BUILD_DATE) $(NAME)/tools:latest
417422
case "$(PLATFORMS)" in *linux/amd64*) \
418423
docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:latest && \
419424
docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:latest && \
@@ -452,6 +457,7 @@ release_latest: release_grid_scaler_latest
452457
docker push $(NAME)/standalone-docker:latest
453458
docker push $(NAME)/standalone-all-browsers:latest
454459
docker push $(NAME)/video:latest
460+
docker push $(NAME)/tools:latest
455461

456462
generate_latest_sbom:
457463
NAME=$(NAME) FILTER_IMAGE_TAG=latest OUTPUT_FILE=$(SBOM_OUTPUT) ./generate_sbom.sh
@@ -474,6 +480,7 @@ tag_nightly:
474480
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:nightly
475481
docker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:nightly
476482
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:nightly
483+
docker tag $(NAME)/tools:$(BUILD_DATE) $(NAME)/tools:nightly
477484
case "$(PLATFORMS)" in *linux/amd64*) \
478485
docker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:nightly && \
479486
docker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:nightly && \
@@ -507,6 +514,7 @@ release_nightly: release_grid_scaler_nightly
507514
docker push $(NAME)/standalone-docker:nightly
508515
docker push $(NAME)/standalone-all-browsers:nightly
509516
docker push $(NAME)/video:nightly
517+
docker push $(NAME)/tools:nightly
510518

511519
generate_nightly_sbom:
512520
NAME=$(NAME) FILTER_IMAGE_TAG=nightly OUTPUT_FILE=$(SBOM_OUTPUT) ./generate_sbom.sh

charts/selenium-grid/CONFIGURATION.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
3434
| global.seleniumGrid.imageTag | string | `"4.35.0-20250828"` | Image tag for all selenium components |
3535
| global.seleniumGrid.nodesImageTag | string | `"4.35.0-20250828"` | Image tag for browser's nodes |
3636
| global.seleniumGrid.videoImageTag | string | `"ffmpeg-8.0-20250828"` | Image tag for browser's video recorder |
37-
| global.seleniumGrid.kubectlImage | string | `"bitnami/kubectl:latest"` | kubectl image is used to execute kubectl commands in utility jobs |
37+
| global.seleniumGrid.kubectlImage | string | `"selenium/tools:latest"` | kubectl image is used to execute kubectl commands in utility jobs |
3838
| global.seleniumGrid.imagePullSecret | string | `""` | Pull secret for all components, can be overridden individually |
3939
| global.seleniumGrid.logLevel | string | `"INFO"` | Log level for all components. Possible values describe here: https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging |
4040
| global.seleniumGrid.defaultNodeStartupProbe | string | `"exec"` | Set default startup probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet |
@@ -402,7 +402,7 @@ A Helm chart for creating a Selenium Grid Server in Kubernetes
402402
| autoscaling.annotations | object | `{"helm.sh/hook":"post-install,post-upgrade,post-rollback","helm.sh/hook-weight":"1"}` | Annotations for KEDA resources: ScaledObject and ScaledJob |
403403
| autoscaling.patchObjectFinalizers.nameOverride | string | `nil` | Override the name of the patch job |
404404
| autoscaling.patchObjectFinalizers.enabled | bool | `true` | Enable patching finalizers for KEDA scaled resources. Workaround for Hook post-upgrade selenium-grid/templates/x-node-hpa.yaml failed: object is being deleted: scaledobjects.keda.sh "x" already exists |
405-
| autoscaling.patchObjectFinalizers.activeDeadlineSeconds | int | `300` | Deadline (in seconds) for patch job to complete |
405+
| autoscaling.patchObjectFinalizers.activeDeadlineSeconds | int | `600` | Deadline (in seconds) for patch job to complete |
406406
| autoscaling.patchObjectFinalizers.annotations | object | `{"helm.sh/hook":"post-install,post-upgrade,post-rollback,pre-delete","helm.sh/hook-delete-policy":"hook-succeeded,before-hook-creation"}` | Annotations for patch job |
407407
| autoscaling.patchObjectFinalizers.deleteObjectsScript | string | `""` | Define your custom script to replace the default script |
408408
| autoscaling.patchObjectFinalizers.patchFinalizersScript | string | `""` | Define your custom script to replace the default script |

charts/selenium-grid/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ global:
1313
# -- Image tag for browser's video recorder
1414
videoImageTag: ffmpeg-8.0-20250828
1515
# -- kubectl image is used to execute kubectl commands in utility jobs
16-
kubectlImage: bitnami/kubectl:latest
16+
kubectlImage: selenium/tools:latest
1717
# -- Pull secret for all components, can be overridden individually
1818
imagePullSecret: ""
1919
# -- Log level for all components. Possible values describe here: https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging
@@ -1055,7 +1055,7 @@ autoscaling:
10551055
# -- Enable patching finalizers for KEDA scaled resources. Workaround for Hook post-upgrade selenium-grid/templates/x-node-hpa.yaml failed: object is being deleted: scaledobjects.keda.sh "x" already exists
10561056
enabled: true
10571057
# -- Deadline (in seconds) for patch job to complete
1058-
activeDeadlineSeconds: 300
1058+
activeDeadlineSeconds: 600
10591059
# -- Annotations for patch job
10601060
annotations:
10611061
"helm.sh/hook": post-install,post-upgrade,post-rollback,pre-delete

0 commit comments

Comments
 (0)