Summary
Helm chart openab-0.3.3 (latest stable) cannot be installed because it references an image path that doesn't exist publicly. The image actually lives at the pre-rename path under thepagent/agent-broker-*.
Repro
helm repo add openab https://openabdev.github.io/openab
helm repo update
helm install openab openab/openab \
--set discord.botToken=... \
--set-string discord.allowedChannels[0]=... \
--set agent.preset=claude
Pod ends up in ImagePullBackOff:
Failed to pull image "ghcr.io/openabdev/openab-claude:dd7e1ca":
failed to authorize: failed to fetch anonymous token:
unexpected status from GET request to
https://ghcr.io/token?scope=repository%3Aopenabdev%2Fopenab-claude%3Apull&service=ghcr.io:
401 Unauthorized
Same failure for preset=codex, preset=gemini, and the default kiro-cli preset (all four image paths under ghcr.io/openabdev/openab* return authentication required from the anonymous token endpoint).
Root cause
Chart 0.3.3 was packaged after PR #96 (rename agent-broker → openab), which updated charts/openab/values.yaml to point at ghcr.io/openabdev/openab and the deployment template's volumeMounts to /etc/openab. But its appVersion is dd7e1ca, which is the commit before the rename. At that commit:
- The CI workflow pushed images to
ghcr.io/thepagent/agent-broker*, so no image with tag dd7e1ca was ever published under ghcr.io/openabdev/openab*.
- The binary inside that image is named
agent-broker and reads its config from /etc/agent-broker/config.toml (Dockerfile CMD).
Net effect: chart openab-0.3.3 is misaligned with its own appVersion in two independent ways — image path and config mount path.
The pre-rename images are still publicly accessible:
$ curl -s "https://ghcr.io/token?scope=repository:thepagent/agent-broker-claude:pull&service=ghcr.io"
{"token":"djE6dGhlcGFnZW50L2FnZW50LWJyb2tlci1jbGF1ZGU6..."}
$ curl -s "https://ghcr.io/token?scope=repository:openabdev/openab-claude:pull&service=ghcr.io"
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required"}]}
Workaround
Just overriding image.repository on openab-0.3.3 is not enough — the pre-rename binary still tries to read /etc/agent-broker/config.toml, which openab-0.3.3's deployment doesn't mount, so the pod ends up in CrashLoopBackOff with:
Error: failed to read /etc/agent-broker/config.toml: No such file or directory
What actually works is installing the pre-rename chart that's still in the same Helm index — it ships with both the matching image path and the matching mount path:
helm install openab openab/agent-broker --version 0.3.3 \
--set discord.botToken=... \
--set-string discord.allowedChannels[0]=... \
--set agent.preset=claude
(Note: this leaves the deployment named openab-agent-broker, not openab, so adjust any follow-up kubectl exec / rollout restart commands accordingly.)
Suggested fix
Either:
- Cut a new stable chart release whose
appVersion matches a commit built and pushed by the post-rename workflow, and verify the resulting ghcr.io/openabdev/openab* packages are public, or
- Make the existing
ghcr.io/openabdev/openab* packages public if they were already pushed by the post-rename CI run — and double-check that the image at the published tag actually contains the renamed binary reading /etc/openab/config.toml, not the old agent-broker binary.
Summary
Helm chart
openab-0.3.3(latest stable) cannot be installed because it references an image path that doesn't exist publicly. The image actually lives at the pre-rename path underthepagent/agent-broker-*.Repro
Pod ends up in
ImagePullBackOff:Same failure for
preset=codex,preset=gemini, and the default kiro-cli preset (all four image paths underghcr.io/openabdev/openab*returnauthentication requiredfrom the anonymous token endpoint).Root cause
Chart
0.3.3was packaged after PR #96 (rename agent-broker → openab), which updatedcharts/openab/values.yamlto point atghcr.io/openabdev/openaband the deployment template'svolumeMountsto/etc/openab. But itsappVersionisdd7e1ca, which is the commit before the rename. At that commit:ghcr.io/thepagent/agent-broker*, so no image with tagdd7e1cawas ever published underghcr.io/openabdev/openab*.agent-brokerand reads its config from/etc/agent-broker/config.toml(DockerfileCMD).Net effect: chart
openab-0.3.3is misaligned with its own appVersion in two independent ways — image path and config mount path.The pre-rename images are still publicly accessible:
Workaround
Just overriding
image.repositoryonopenab-0.3.3is not enough — the pre-rename binary still tries to read/etc/agent-broker/config.toml, whichopenab-0.3.3's deployment doesn't mount, so the pod ends up inCrashLoopBackOffwith:What actually works is installing the pre-rename chart that's still in the same Helm index — it ships with both the matching image path and the matching mount path:
(Note: this leaves the deployment named
openab-agent-broker, notopenab, so adjust any follow-upkubectl exec/rollout restartcommands accordingly.)Suggested fix
Either:
appVersionmatches a commit built and pushed by the post-rename workflow, and verify the resultingghcr.io/openabdev/openab*packages are public, orghcr.io/openabdev/openab*packages public if they were already pushed by the post-rename CI run — and double-check that the image at the published tag actually contains the renamed binary reading/etc/openab/config.toml, not the oldagent-brokerbinary.