RFC: CRD v1beta1 Optimization and Configuration Extraction#23
Open
RFC: CRD v1beta1 Optimization and Configuration Extraction#23
Conversation
This RFC proposes architectural improvements to ToolHive's Kubernetes CRDs: - Extract shared config into reusable CRDs (MCPOIDCConfig, MCPTelemetryConfig, MCPAuthzConfig, MCPAggregationToolConfig) - Remove VirtualMCPServer's embedded Config field - Replace type discriminators with CEL-validated unions - Remove deprecated fields - Consolidate MCPRegistry status Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove VirtualMCPServer Config embedding sections (deferred to follow-up PR) - Split OIDC config into shareable (issuer, jwksUri, claims) vs per-server (audience, scopes) - Split Telemetry config into shareable (endpoint, settings) vs per-server (serviceName) - Add namespace to all config references - Add status size discussion to Open Questions - Clean up Go implementation details, keep architecture-focused content - Update reference types to show per-server override patterns Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
e3f65ad to
227f01e
Compare
Contributor
|
LGTM now. I won't ack in case Jeremy adds his comments later so that the proposal doesn't get accidentally merged, but feel free to ping me once you need me to hit the approve button. |
5 tasks
* RFC-0023: Add CRD and application config unification section Add a new section addressing how CRD spec types relate to application config structures, motivated by Issue #3125. Key additions: - Problem statement covering configuration pipeline complexity, silent bugs from translation layers, documentation divergence, and testing limitations - Options comparison table contrasting separate vs unified types - Proposal recommending new CRDs use the same types as application configs, with VirtualMCPServer and MCPTelemetryConfig as examples - Trade-offs discussion including mitigation strategies for Kubernetes-specific reference fields Updated for consistency: - Added #3125 to Related Issues - Added unified types goal to Goals section - Updated Summary to mention unified CRD/config types - Updated Implementation Plan to reflect unified types approach Signed-off-by: Jeremy Drouillard <jeremy@stacklok.com> * remove outdated section Signed-off-by: Jeremy Drouillard <jeremy@stacklok.com> * clarify example Signed-off-by: Jeremy Drouillard <jeremy@stacklok.com> --------- Signed-off-by: Jeremy Drouillard <jeremy@stacklok.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.
Summary
This RFC proposes architectural improvements to ToolHive's Kubernetes CRDs for the v1beta1 release.
Key Changes
New Configuration CRDs:
MCPOIDCConfig- Shared OIDC authentication configMCPTelemetryConfig- Shared OpenTelemetry/Prometheus configMCPAuthzConfig- Shared Cedar authorization policiesMCPAggregationToolConfig- Per-workload tool filtering for VirtualMCPServerStructural Improvements:
Configfield (CRD-first approach)port,targetPort,toolsFilter)Quality of Life:
kubectl getoutputLocalObjectReferencetypeImplementation Phases
Related RFCs
Breaking Change
This is a breaking change from v1alpha1. Migration tooling will be provided.
🤖 Generated with Claude Code