Skip to content

Commit 47d85ea

Browse files
committed
fix(deploy): wire agent-challenge api+worker to shared postgres
Mount the base_agent_challenge_database_url secret at /run/secrets/base/database_url on BOTH the agent-challenge api and worker and set CHALLENGE_DATABASE_URL_FILE so they share a Postgres backend instead of a single-writer sqlite file (the multi-writer lock blocked POST commits). Also carries the validator-role=master + openrouter key-file env and pins IMAGE_AGENT_CHALLENGE to the new digest that ships asyncpg + database_url_file support.
1 parent 1bcd076 commit 47d85ea

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

deploy/swarm/install-swarm.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ DAEMON_JSON_DST="${DAEMON_JSON_DST:-/etc/docker/daemon.json}"
9191
# rationale at the broker service-create below. The deploy CONFIG this script sets is
9292
# independent of the image build and reproduces as-is.
9393
IMAGE_MASTER="${IMAGE_MASTER:-ghcr.io/baseintelligence/base-master@sha256:838ed7ca090f276a014a9c04820b84cc48ac3833af9b37c4047dfa8677156cb7}"
94-
IMAGE_AGENT_CHALLENGE="${IMAGE_AGENT_CHALLENGE:-ghcr.io/baseintelligence/agent-challenge@sha256:75b6d3fe467cddde4241b4bf0b5611ffc3f648f24e3211cb718841d39a498929}"
94+
IMAGE_AGENT_CHALLENGE="${IMAGE_AGENT_CHALLENGE:-ghcr.io/baseintelligence/agent-challenge@sha256:d12690a39b0a1311ffe237001f9c2fef364303c6162111d37d3b305a8d3159c5}"
9595
IMAGE_PRISM="${IMAGE_PRISM:-ghcr.io/baseintelligence/prism@sha256:e052a3eced0b76424c858fcea5c04e948a6764b051a862a9b99d011a44f9ffd9}"
9696
# Prism GPU evaluator (CUDA cu128 torchrun runner). Must satisfy BOTH prism
9797
# docker_allowed_images AND the broker broker_allowed_images (ghcr.io/baseintelligence/);
@@ -1052,6 +1052,9 @@ deploy_challenges() {
10521052
"CHALLENGE_SLUG=agent-challenge"
10531053
"CHALLENGE_HARBOR_RUNNER_IMAGE=${AGENT_CHALLENGE_RUNNER_IMAGE}"
10541054
"CHALLENGE_DOCKER_ALLOWED_IMAGES=${CHALLENGE_DOCKER_ALLOWED_IMAGES}"
1055+
"CHALLENGE_VALIDATOR_ROLE=master"
1056+
"CHALLENGE_OPENROUTER_API_KEY_FILE=${SECRET_MOUNT_DIR}/openrouter_api_key"
1057+
"CHALLENGE_DATABASE_URL_FILE=${SECRET_MOUNT_DIR}/database_url"
10551058
)
10561059

10571060
# agent-challenge primary API service (container port 8000). Overlay-internal —
@@ -1063,6 +1066,7 @@ deploy_challenges() {
10631066
"base_agent_challenge_challenge_token:challenge_token" \
10641067
"base_agent_challenge_docker_broker_token:docker_broker_token" \
10651068
"base_agent_challenge_submission_env_encryption_key:submission_env_encryption_key" \
1069+
"base_agent_challenge_database_url:database_url" \
10661070
"base_openrouter_api_key:openrouter_api_key"
10671071

10681072
# agent-challenge worker sidecar (command `agent-challenge-worker`; see
@@ -1086,6 +1090,7 @@ deploy_challenges() {
10861090
"base_agent_challenge_challenge_token:challenge_token" \
10871091
"base_agent_challenge_docker_broker_token:docker_broker_token" \
10881092
"base_agent_challenge_submission_env_encryption_key:submission_env_encryption_key" \
1093+
"base_agent_challenge_database_url:database_url" \
10891094
"base_openrouter_api_key:openrouter_api_key"
10901095

10911096
# PRISM service (container port 8080). Overlay-internal — reached over the overlay; no host publish.

0 commit comments

Comments
 (0)