Skip to content

(feat) Add substrate as a subchart#2030

Merged
EItanya merged 5 commits into
kagent-dev:mainfrom
jjamroga:jjamroga/add-substrate-as-subchart
Jun 18, 2026
Merged

(feat) Add substrate as a subchart#2030
EItanya merged 5 commits into
kagent-dev:mainfrom
jjamroga:jjamroga/add-substrate-as-subchart

Conversation

@jjamroga

@jjamroga jjamroga commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds substrate as a subchart to kagent. Subchart version is based on pinned version in go.mod. Adds an warning in notes.txt warning about regarding experimental support.

Manual Testing

# 1. Verify SUBSTRATE_VERSION is derived from go.mod replace directive
make --eval='show:; @echo $(SUBSTRATE_VERSION)' show
# Expected: 0.0.6  (matches `replace ... => github.com/kagent-dev/substrate v0.0.6`)

# 2. Stamp Chart.yaml files and pull subchart deps from GHCR
make helm-version
# Expected: "Pulled: ghcr.io/kagent-dev/substrate/helm/substrate-crds:0.0.6"
#           "Pulled: ghcr.io/kagent-dev/substrate/helm/substrate:0.0.6"
helm dependency list helm/kagent-crds | grep substrate
helm dependency list helm/kagent      | grep substrate
# Expected: substrate-crds  0.0.6  oci://ghcr.io/kagent-dev/substrate/helm  ok
#           substrate       0.0.6  oci://ghcr.io/kagent-dev/substrate/helm  ok

# 3. kagent-crds — substrate gating
helm template t helm/kagent-crds --set substrate.enabled=false 2>/dev/null \
  | grep -c '^# Source: kagent-crds/charts/substrate-crds/'
# Expected: 0

helm template t helm/kagent-crds --set substrate.enabled=true 2>/dev/null \
  | grep '^# Source: kagent-crds/charts/substrate-crds/' | sort -u
# Expected: ate.dev_actortemplates.yaml, ate.dev_workerpools.yaml

# 4. kagent main chart — substrate subchart gating
helm template t helm/kagent --set substrate.enabled=false --set providers.openAI.apiKey=x 2>/dev/null \
  | grep -c '^# Source: kagent/charts/substrate/'
# Expected: 0

helm template t helm/kagent --set substrate.enabled=true --set providers.openAI.apiKey=x 2>/dev/null \
  | grep '^# Source: kagent/charts/substrate/' | sort -u
# Expected: ate-api-server.yaml, ate-api-server-envvars.yaml, ate-controller.yaml,
#           atelet.yaml, atenet-dns.yaml, atenet-router.yaml, jwt-bootstrap.yaml,
#           jwt-oidc-rbac.yaml, role.yaml, rustfs.yaml, valkey.yaml

Signed-off-by: Jonathan Jamroga <jjamroga@gmail.com>
Copilot AI review requested due to automatic review settings June 16, 2026 18:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds optional Helm chart dependencies and configuration knobs to include the “substrate” component (and its CRDs) alongside existing kagent charts.

Changes:

  • Introduces substrate.enabled values in both kagent and kagent-crds Helm values files (default disabled).
  • Adds substrate / substrate-crds as conditional Helm chart dependencies in the chart templates.
  • Extends the helm-version packaging flow to stamp SUBSTRATE_VERSION into generated Chart.yaml files.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
helm/kagent/values.yaml Adds substrate.enabled configuration section (default off).
helm/kagent/Chart-template.yaml Adds conditional substrate dependency using ${SUBSTRATE_VERSION}.
helm/kagent-crds/values.yaml Adds substrate.enabled configuration section (default off) and fixes indentation for kmcp.enabled.
helm/kagent-crds/Chart-template.yaml Adds conditional substrate-crds dependency using ${SUBSTRATE_VERSION}.
Makefile Adds SUBSTRATE_VERSION and injects it into envsubst during Helm chart stamping.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jjamroga jjamroga changed the title Add substrate as a subchart WIP: Add substrate as a subchart Jun 16, 2026
@mesutoezdil

Copy link
Copy Markdown
Contributor

as i see, substrate is already in go.mod (github.com/kagent-dev/substrate v0.0.6), so SUBSTRATE_VERSION can be derived the same way KMCP_VERSION is, instead of being hardcoded? and what is still missing for the WIP label?

@jjamroga

Copy link
Copy Markdown
Collaborator Author

as i see, substrate is already in go.mod (github.com/kagent-dev/substrate v0.0.6), so SUBSTRATE_VERSION can be derived the same way KMCP_VERSION is, instead of being hardcoded? and what is still missing for the WIP label?

Hey @mesutoezdil Thanks for taking a look! Good catch, I will make substrate subchart version match what's present for KMCP. I initially avoided this because in some cases, it may make sense for the controller to be ahead of the version present in the chart (for example, we're preparing for a release of substrate, so for a certain time the controller supports a version of substrate that's ahead of the version we ship in our chart). If this is every needed, we can revisit.

This is WIP since I was distracted with other work, I will be updating the PR description shortly.

Signed-off-by: Jonathan Jamroga <jjamroga@gmail.com>
@jjamroga jjamroga force-pushed the jjamroga/add-substrate-as-subchart branch from b53c814 to 2093a82 Compare June 17, 2026 20:41
jjamroga added 2 commits June 18, 2026 08:47
Signed-off-by: Jonathan Jamroga <jjamroga@gmail.com>
Signed-off-by: Jonathan Jamroga <jjamroga@gmail.com>
@jjamroga jjamroga changed the title WIP: Add substrate as a subchart (feat) Add substrate as a subchart Jun 18, 2026
@EItanya EItanya merged commit 440d5fe into kagent-dev:main Jun 18, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants