Skip to content

Commit 8ba6bee

Browse files
committed
fix(remote-worker): install the capabilities the leaf advertises
cmd/worker/main.go's `probed` list advertises bash, rg, base64, file, python3 and git as this worker's Hello.capabilities, and its comment states "the pool will eventually match on these, so they must be true". Three of the six were not installed: on a real VM the leaf reported `caps=[bash base64 file]`, advertising a set it could not honour. It also gates measurement fidelity. Spec §2.3's duty bases were derived from workloads whose git operations cost ~470ms, so without git in the sandbox an E8 tool call can only be a ~0ms no-op -- the hands tier is exercised structurally but carries no load, and the measured duty cycle then describes a cheaper workload than the basis it is compared against. Adds git and python3 to both image definitions. `rg` stays absent deliberately: ripgrep is not in the UBI 9 repositories, so honouring it means EPEL or vendoring a binary into a demo image. Recorded as a known gap rather than a silent one -- whoever needs capability-matched scheduling should add it or shorten `probed`. The DL3041 ignore directives were repositioned to abut their RUN lines, since a comment block between them silences nothing. Verified: hadolint and the rest of make lint clean, remote-worker go tests pass. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
1 parent 5d553ca commit 8ba6bee

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

remote-worker/Dockerfile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,22 @@ RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o /out/remote-worker ./cm
2626
# bumps for the same reason .hadolint.yaml already ignores DL3018 for Alpine.
2727
# hadolint ignore=DL3007
2828
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
29+
# git and python3 are here because cmd/worker/main.go's `probed` list advertises
30+
# bash, rg, base64, file, python3, git
31+
# as this worker's Hello.capabilities, and its comment says "the pool will eventually match on
32+
# these, so they must be true". Three of the six were not: on a real VM the leaf reported
33+
# `caps=[bash base64 file]`, so it advertised a set it could not honour.
34+
#
35+
# It also matters for measurement. Spec §2.3's duty bases were derived from workloads whose git
36+
# operations cost ~470ms; without git in the sandbox, an E8 tool call can only be a ~0ms no-op, so
37+
# the hands tier is exercised structurally but carries no load and the measured duty cycle describes
38+
# a cheaper workload than the basis it is compared against.
39+
#
40+
# `rg` is deliberately still absent: ripgrep is not in the UBI 9 repositories, so honouring it means
41+
# either EPEL or vendoring a binary into a demo image. Left as a known gap rather than a silent one —
42+
# whoever needs capability-matched scheduling should either add it or shorten `probed`.
2943
# hadolint ignore=DL3041
30-
RUN microdnf install -y --nodocs bash coreutils-single findutils file \
44+
RUN microdnf install -y --nodocs bash coreutils-single findutils file git python3 \
3145
&& microdnf clean all
3246
COPY --from=build /out/remote-worker /usr/local/bin/remote-worker
3347
# The harness execs every tool call from its sandbox working directory, which defaults to

remote-worker/Dockerfile.runtime

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
# bumps for the same reason .hadolint.yaml already ignores DL3018 for Alpine.
1111
# hadolint ignore=DL3007
1212
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
13+
# git and python3: see the same block in ./Dockerfile. cmd/worker/main.go's `probed` list advertises
14+
# them as this worker's capabilities and they were not present, and a sandbox without git cannot run
15+
# a tool call resembling the workloads spec §2.3's duty bases were measured from. `rg` remains absent
16+
# (not in the UBI 9 repositories) — a known gap, not a silent one.
1317
# hadolint ignore=DL3041
14-
RUN microdnf install -y --nodocs bash coreutils-single findutils file \
18+
RUN microdnf install -y --nodocs bash coreutils-single findutils file git python3 \
1519
&& microdnf clean all
1620
COPY remote-worker /usr/local/bin/remote-worker
1721
# See the same block in ./Dockerfile: the harness execs tool calls from /workspace (the default

0 commit comments

Comments
 (0)