Files
datastore/tests/integration/compose/docker_compose_ytsaurus.yml
Max KainovandClaude Opus 4.8 7b03b477c3 Mirror integration-test images through Docker Hub and enforce it in style check
CI runners pull Docker Hub images through the `dockerhub-proxy` cache
(`registry:2` + nginx backed by S3). That proxy only fronts Docker Hub, so
images hosted on other registries (`mcr.microsoft.com`, `ghcr.io`) bypass it
and are pulled directly, exposing CI to those registries' anonymous rate
limits (e.g. `mcr.microsoft.com` returns HTTP 429 `toomanyrequests` under
load).

Re-host the integration-test images that were on foreign registries under the
`clickhouse/` Docker Hub namespace so the pulls route back through the proxy:

- `mcr.microsoft.com/azure-storage/azurite` -> `clickhouse/azure-storage-azurite`
- `ghcr.io/projectnessie/nessie` -> `clickhouse/projectnessie-nessie`
- `ghcr.io/ytsaurus/local` -> `clickhouse/ytsaurus-local`
- `ghcr.io/letsencrypt/pebble` -> `clickhouse/letsencrypt-pebble`
- `ghcr.io/letsencrypt/pebble-challtestsrv` -> `clickhouse/letsencrypt-pebble-challtestsrv`

`tests/integration/compose/mirror-images.sh` copies these multi-arch manifests
into the `clickhouse/` namespace and documents how to add or bump images.

Add a `compose_images_from_dockerhub` sub-check to the style check job that
scans `tests/integration/compose/*.yml` and fails if any `image:` references an
explicit non-Docker-Hub registry host, to prevent reintroducing off-proxy
images.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-25 15:44:46 +02:00

39 lines
1.6 KiB
YAML

services:
ytsaurus_backend1:
# Mirror of ghcr.io/ytsaurus/local:stable-24.2 (see compose/mirror-images.sh).
# Pulled via the dockerhub-proxy cache; ghcr.io is not behind the proxy.
image: clickhouse/ytsaurus-local:stable-24.2
restart: always
environment:
YT_FORCE_IPV4: 1
YT_FORCE_IPV6: 0
YT_USE_HOSTS: 0
YT_TOKEN: password
YT_PROXY: ytsaurus_backend1:${YTSAURUS_PROXY_PORT}
ports:
- ${YTSAURUS_PROXY_PORT}:${YTSAURUS_PROXY_PORT}
entrypoint:
- bash
- -c
- |
ADMIN_FLAG=""
if [ ! -f /tmp/.yt_admin_created ]; then
ADMIN_FLAG="--create-admin-user"
touch /tmp/.yt_admin_created
fi
exec yt_local start \
--proxy-port ${YTSAURUS_PROXY_PORT} \
--local-cypress-dir /var/lib/yt/local-cypress \
--ytserver-all-path /usr/bin/ytserver-all \
--sync --fqdn ytsaurus_backend1 \
--proxy-config '{coordinator={public_fqdn="ytsaurus_backend1:${YTSAURUS_PROXY_PORT}"}}' \
--node-count 1 \
--queue-agent-count 1 \
--address-resolver-config '{enable_ipv4=%true;enable_ipv6=%false;}' \
--listen-port-pool ${YTSAURUS_INTERNAL_PORTS_LIST} \
--native-client-supported \
--id primary -c '{name=query-tracker}' \
--enable-auth \
$$ADMIN_FLAG
cpus: 3