chore(deps): update dependency stacklok/toolhive to v0.15.0#1925
Merged
Conversation
452d55d to
5f49848
Compare
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
samuv
approved these changes
Apr 7, 2026
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.
This PR contains the following updates:
v0.14.1→v0.15.0Release Notes
stacklok/toolhive (stacklok/toolhive)
v0.15.0Compare Source
🚀 Toolhive v0.15.0 is live!
This release brings significant improvements to OIDC/auth configuration, policy enforcement, secrets management, and observability — along with some important breaking changes and deprecations to be aware of before upgrading.
Please review these carefully before upgrading:
MCPServerandMCPRemoteProxy. Manifests usingspec.port,spec.targetPort, inlinespec.tools, plaintextclientSecret, orthvCABundlePathwill fail validation. See the [migration guide](#4467) for field-by-field replacements.referencingServers→referencingWorkloads— The status field onMCPOIDCConfig,MCPToolConfig,MCPExternalAuthConfig, andMCPTelemetryConfigis now a structured{kind, name}array instead of a plain string list. Any scripts or tooling reading.status.referencingServerswill need updating.find_tool,call_tool) and upstream IDP token claims. Deployments with Cedar enabled should review their policy sets, as operations that were previously unchecked may now be denied.More Information
1. Removed Deprecated CRD Fields
Breaking Change — Operator Users
Six deprecated fields have been removed from
MCPServerandMCPRemoteProxyCRDs. These fields were retained duringv1alpha1for backward compatibility but are now removed to eliminate API ambiguity and a security liability (plaintextclientSecretvisible in etcd/audit logs).Existing manifests using any of these fields will fail validation after upgrading. Apply the field mappings below before upgrading.
Migration
spec.portspec.proxyPortspec.targetPortspec.mcpPortspec.tools(inline ToolsFilter)spec.toolConfigRef→ MCPToolConfigspec.oidcConfig.inline.clientSecretspec.oidcConfig.inline.clientSecretRef(Secret reference)spec.oidcConfig.inline.thvCABundlePathspec.oidcConfig.inline.caBundleRef(ConfigMap reference)Port fields
Direct rename in manifests:
Tools filter
Create a separate MCPToolConfig resource and reference it via
spec.toolConfigRef.name.Client secret
Move the plaintext value into a Kubernetes Secret and use
clientSecretRefwithnameandkeyfields.CA bundle path
Store the CA certificate in a ConfigMap and use
caBundleRef.configMapRefwithnameandkeyfields. ToolHive handles the mount automatically.PR: #4467 — Fixes #4250
2. ReferencingServers Replaced with Structured ReferencingWorkloads
Breaking Change — Status Field (4 CRDs)
The
status.referencingServersfield (a plain[]string) has been replaced withstatus.referencingWorkloads(a structured array of{kind, name}objects) on four shared configuration CRDs:The new
WorkloadReferencetype includes akindfield with enum validation (MCPServer,VirtualMCPServer,MCPRemoteProxy), enabling shared config resources to distinguish which workload type is referencing them.Before
After
Impact: Any scripts, monitoring, or tooling that reads
.status.referencingServersmust be updated to read.status.referencingWorkloads[].name(and optionally.kind). The printer column inkubectl getoutput also reflects the new field.Fixes #4491
3. Expanded Cedar Policy Enforcement
Behavioral Change — May Deny Previously Allowed Operations
Cedar authorization has been extended to cover two previously unprotected code paths. Deployments with Cedar policies enabled should review their policy sets to ensure these operations are permitted as intended.
Optimizer meta-tools (
find_tool,call_tool)When the optimizer is enabled alongside Cedar authorization, the optimizer's
find_toolandcall_toolmeta-tools replace real backend tools intools/listresponses. Previously, Cedar's default-deny policy would silently filter out these meta-tools, leaving clients with zero tools. Additionally,call_toolinvocations andfind_toolresults were not checked against Cedar policies at all.Now:
tools/list: Meta-tools (find_tool,call_tool) pass through Cedar filtering; real backend tools are filtered as beforetools/call→call_tool: The middleware extracts the innertool_nameargument and authorizes that backend tool against Cedar before executiontools/call→find_tool: The response is filtered through Cedar so clients cannot discover unauthorized toolsPR: #4385 — Fixes #4374, #4373
Upstream IDP token claims
Cedar policies can now reference upstream Identity Provider claims (e.g., GitHub
login, Oktagroups) when the embedded auth server is active. Three gaps are closed:Identity.Groupsis now populated from upstream token claims using configurable claim names (defaults:groups,roles,cognito:groups)CreatePrincipalEntitynow buildsTHVGroupparent entities, makingprincipal in THVGroup::"engineering"evaluate correctlyOperators can configure this via the
primary_upstream_provideroption in Cedar config. If the upstream token is opaque (non-JWT), the authorizer denies the request — there is no silent fallback.PR: #4448 — Closes #4408
4. Deprecations
Two inline configuration fields on
MCPServerhave been deprecated in favour of shared configuration CRD references. Both fields continue to work in v0.15.0 but will be removed inv1beta1. Setting both the deprecated inline field and the new reference field on the same resource is rejected by CEL validation at admission time.spec.oidcConfig→spec.oidcConfigRef(MCPOIDCConfig)The inline
spec.oidcConfigfield is deprecated. Usespec.oidcConfigRefto reference a shared MCPOIDCConfig resource instead, with optional per-serveraudienceandscopesoverrides.PR: #4481 — Closes #4248, Ref #4253
spec.telemetry→spec.telemetryConfigRef(MCPTelemetryConfig)The inline
spec.telemetryfield is deprecated. Usespec.telemetryConfigRefto reference a shared MCPTelemetryConfig resource instead, with an optional per-serverserviceNameoverride for distinct telemetry identity.PR: #4482 — Ref #4253
🔐 OIDC & Auth
MCPOIDCConfigCRD and controller for managing OIDC lifecycle at the platform levelMCPServerandVirtualMCPServercontrollerslogin, Oktagroups) can now be evaluated by Cedar policies🛡️ Policy Enforcement
find_toolandcall_tooloperations in the optimizer — including filtering discovery results and authorizing inner tool calls🔑 Secrets & Storage
DataStorageinterface with cleanerUpsert/CreatesemanticsDataStoragewith session restore supportScopedProviderfor smoother upgrades📡 Telemetry
MCPTelemetryConfigCRD and controller for managing telemetry configurationMCPServerwith inline deprecation support🧩 CRD & Operator Improvements
ObservedGenerationadded toMCPServer,MCPGroup, andMCPRegistrystatuskubectlvisibilitycategories=toolhivemarker added across all CRDs for easier discoveryMCPToolConfig, with a top-levelReadycondition onMCPServer🔁 Deprecations (still work in v0.15.0, will be removed in v1beta1)
spec.oidcConfigonMCPServerandVirtualMCPServeris deprecated in favour ofspec.oidcConfigRef→ sharedMCPOIDCConfigspec.telemetryonMCPServeris deprecated in favour ofspec.telemetryConfigRef→ sharedMCPTelemetryConfig🔧 Dependencies & Security
go-gitbumped to v5.17.1httprc,golang.org/x/time,sqlite, and more👋 Welcome to our newest contributor @samuv — great to have you on board! 🎉
🔗 Full changelog: stacklok/toolhive@v0.14.1...v0.15.0
Configuration
📅 Schedule: Branch creation - "" in timezone Europe/London, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.