[BUG] `substrateWorkerPool.ateomImage` ships empty by default, failing any install that enables the WorkerPool

Open Beginner friendly
#2,491 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
helm
Domain
devops

Research direction

Start with helm/kagent/values.yaml and helm/kagent/templates/substrate-workerpool.yaml, then check the pinned substrate version in helm/kagent/Chart.yaml and the image reference in examples/substrate-openclaw/README.md. Render or install the chart with both WorkerPool flags enabled and no explicit image; done means the default resolves to the matching ateom-gvisor image and the required-value failure no longer occurs.

Written by the indexing model from the issue text.

Description

📋 Prerequisites
  • I have searched the existing issues to avoid creating a duplicate
  • By submitting this issue, you agree to follow our Code of Conduct
  • I am using the latest version of the software
  • I have tried to clear cache/cookies or used incognito mode (if ui-related)
  • I can consistently reproduce this issue
🎯 Affected Service(s)

Controller Service

🚦 Impact/Severity

Minor inconvenience

🐛 Bug Description

helm/kagent/templates/substrate-workerpool.yaml requires substrateWorkerPool.ateomImage to be set whenever the chart is asked to create the Agent Substrate WorkerPool (controller.substrate.enabled=true + substrateWorkerPool.create=true):

{{- if and .Values.controller.substrate.enabled .Values.substrateWorkerPool.create }}
{{- if not .Values.substrateWorkerPool.ateomImage }}
{{- fail "substrateWorkerPool.ateomImage is required when substrateWorkerPool.create=true" }}
{{- end }}
...
  ateomImage: {{ .Values.substrateWorkerPool.ateomImage | quote }}

But helm/kagent/values.yaml ships this value empty (ateomImage: "") with no default, even though a matching image is already published and ready: ghcr.io/kagent-dev/substrate/ateom-gvisor, tagged to match this chart's own pinned substrate dependency version (helm/kagent/Chart.yaml: - name: substrate, version: 0.0.9, repository: oci://ghcr.io/kagent-dev/substrate/helm; the matching image tag is v0.0.9, confirmed by examples/substrate-openclaw/README.md:60: ateomImage=ghcr.io/kagent-dev/substrate/ateom-gvisor:v${SUBSTRATE_VERSION}).

So every install that opts into the WorkerPool fails immediately with substrateWorkerPool.ateomImage is required when substrateWorkerPool.create=true, even though the correct value is fully derivable from information the chart already has.

🔄 Steps To Reproduce
  1. helm install kagent ./helm/kagent --set controller.substrate.enabled=true --set substrateWorkerPool.create=true (without setting substrateWorkerPool.ateomImage).
  2. Observe the install fails.
🤔 Expected Behavior

When ateomImage isn't explicitly set, the chart should default it to the ateom-gvisor image matching the pinned substrate dependency version, only requiring an explicit value in cases where that can't be reliably derived.

📱 Actual Behavior

every install of this feature fails until the user manually discovers and supplies the correct, currently-undocumented image reference.

💻 Environment

No response

🔧 CLI Bug Report

No response

🔍 Additional Context

No response

📋 Logs

📷 Screenshots

No response

🙋 Are you willing to contribute?
  • I am willing to submit a PR to fix this issue
Dominant language
Go
Stars
3.8k
Forks
775
Avg merge
1d 11h
Merged PRs (30d)
145

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from kagent-dev/kagent

All issues in kagent-dev/kagent

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.