Release the chart as 0.4.0, and let it express the engine token - #201
Merged
Conversation
The Temporal engine landed across #196-#199 without the umbrella chart's version moving off 0.3.0. Charts publish under that version and OCI tags are mutable, so every one of those merges overwrote 0.3.0 in place — an installed "pin" silently became a different chart. #199's publish then failed on a transient GHCR error, which is the only reason the enable-by-default values are not already live for anyone tracking 0.3.0. Bump to 0.4.0 so the engine ships under a version of its own, and add the temporal-engine subchart to Chart.lock, which never recorded it. ## AGENT_ENGINE had a chart path; the token did not #199 fixed exactly the gap it described, but only half of it. The engine gateway resolves the CALLER's roles from a bearer token and re-resolves every skill/agent target under them, so a deployment that sets AGENT_ENGINE and nothing else reaches a gateway that fails closed to zero capabilities and denies every turn. There was no values path to AGENT_TEMPORAL_ENGINE_TOKEN at all. secrets.temporalEngineTokenKey follows the convention the neighbouring keys already use — a key name into secrets.existingSecret, rendered only when config.agentEngine is set. It is optional: true, because the alternative to a token is the gateway's own defaultSubject/defaultRoles rather than a broken pod. One of the two has to be configured for a turn to resolve anything, and the values comments now say so on both sides. With config.agentEngine unset, `helm template` output is byte-identical to before this change — verified by diffing the rendered manifests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The Temporal engine landed across #196–#199 without the umbrella chart's
versionmoving off0.3.0. Charts publish under that version and OCI tagsare mutable, so each of those merges overwrote
0.3.0in place — anyone"pinned" to it silently received a different chart. #199's publish then failed
on a transient GHCR error, which is the only reason its enable-by-default
values are not already live for 0.3.0 consumers.
This bumps the chart to
0.4.0, and closes the half of #199's own gap that itleft open.
AGENT_ENGINE got a chart path; the token did not
#199 fixed exactly the problem it described —
AGENT_ENGINEcould not beexpressed in values — but the switch needs two things, not one.
The engine gateway resolves the caller's roles from a bearer token
(
resolveCaller→rbac.StaticResolver) and re-resolves every skill/agenttarget under them. A deployment that sets
AGENT_ENGINEand nothing elsereaches a gateway that fails closed to zero capabilities and denies every
turn. There was no values path to
AGENT_TEMPORAL_ENGINE_TOKENat all.secrets.temporalEngineTokenKeyfollows the convention its neighbours alreadyuse — a key name into
secrets.existingSecret, rendered only whenconfig.agentEngineis set.It is
optional: truedeliberately. The alternative to a token is thegateway's own
defaultSubject/defaultRoles, not a broken pod — but one ofthe two must be configured or a turn resolves nothing, and the values
comments now say that on both sides.
Also here
temporal-engineadded toChart.lock, which never recorded it.Chart.yamldescriptions still said the engine was "off by default",which Enable the Temporal engine by default (DRAFT — blocked on the e2e run) #199 made untrue.
Verification
helm templatewithconfig.agentEngineunset is byte-identical tobefore this change (diffed rendered manifests) — same property Enable the Temporal engine by default (DRAFT — blocked on the e2e run) #199 claimed
for itself.
agentEngine=temporal,AGENT_ENGINE,AGENT_TEMPORAL_ENGINE_URLandAGENT_TEMPORAL_ENGINE_TOKENall render, the last as asecretKeyRefintosecrets.existingSecret.Deployments, both gateway Services, and the derived
CALLBACK_BASE_URLresolves to a Service that exists.
Risk
Publishing
0.4.0does not disturb anyone tracking0.3.0. Note that theenable-by-default values from #199 reach an installation the moment it moves to
0.4.0, so consumers need theirtemporal-engineimage repositories andTemporal address configured before they bump — the chart defaults are
temporal-engine-worker:latest, which resolves to Docker Hub.🤖 Generated with Claude Code