Skip to content

Release the chart as 0.4.0, and let it express the engine token - #201

Merged
DavidNic11 merged 1 commit into
mainfrom
feat/chart-0-4-0-temporal-engine-token
Aug 7, 2026
Merged

Release the chart as 0.4.0, and let it express the engine token#201
DavidNic11 merged 1 commit into
mainfrom
feat/chart-0-4-0-temporal-engine-token

Conversation

@DavidNic11

Copy link
Copy Markdown
Collaborator

What & why

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 each of those merges overwrote 0.3.0 in 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 it
left open.

AGENT_ENGINE got a chart path; the token did not

#199 fixed exactly the problem it described — AGENT_ENGINE could not be
expressed in values — but the switch needs two things, not one.

The engine gateway resolves the caller's roles from a bearer token
(resolveCallerrbac.StaticResolver) and re-resolves every skill/agent
target under them. 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 its neighbours already
use — a key name into secrets.existingSecret, rendered only when
config.agentEngine is set.

It is optional: true deliberately. The alternative to a token is the
gateway's own defaultSubject/defaultRoles, not a broken pod — but one of
the two must be configured
or a turn resolves nothing, and the values
comments now say that on both sides.

Also here

Verification

  • helm template with config.agentEngine unset is byte-identical to
    before this change (diffed rendered manifests) — same property Enable the Temporal engine by default (DRAFT — blocked on the e2e run) #199 claimed
    for itself.
  • With agentEngine=temporal, AGENT_ENGINE, AGENT_TEMPORAL_ENGINE_URL and
    AGENT_TEMPORAL_ENGINE_TOKEN all render, the last as a secretKeyRef into
    secrets.existingSecret.
  • Full umbrella render against a real downstream values file: all three engine
    Deployments, both gateway Services, and the derived CALLBACK_BASE_URL
    resolves to a Service that exists.

Risk

Publishing 0.4.0 does not disturb anyone tracking 0.3.0. Note that the
enable-by-default values from #199 reach an installation the moment it moves to
0.4.0, so consumers need their temporal-engine image repositories and
Temporal address configured before they bump — the chart defaults are
temporal-engine-worker:latest, which resolves to Docker Hub.

🤖 Generated with Claude Code

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>

@imaustink imaustink left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

🚢

@DavidNic11
DavidNic11 merged commit c5469db into main Aug 7, 2026
6 checks passed
@DavidNic11
DavidNic11 deleted the feat/chart-0-4-0-temporal-engine-token branch August 7, 2026 18:27
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.

2 participants