-
Notifications
You must be signed in to change notification settings - Fork 156
Add Output Schema Support to CompositeToolSpec CRD #2824
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@claude Review this PR |
|
Claude finished @tgrunnagle's task —— View job Code Review Complete ✅I've completed a thorough review of this PR adding Output Schema Support to the CompositeToolSpec CRD. Overall, this is excellent work with comprehensive implementation, testing, and attention to detail. The code is production-ready. SummaryThis PR successfully adds the missing Key Strengths:
Detailed Review1. Type Definitions (
|
0a96ff0 to
8d3e115
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2824 +/- ##
==========================================
+ Coverage 56.59% 56.61% +0.01%
==========================================
Files 320 320
Lines 30899 30928 +29
==========================================
+ Hits 17487 17509 +22
- Misses 11910 11914 +4
- Partials 1502 1505 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Issue: #2771
Branch:
issue_2771_2025-12-01Overview
Added the missing
Outputfield to the VirtualMCPServer and VirtualMCPCompositeToolDefinition CRDs to match the existing implementation inpkg/vmcp/config/config.go. This enables users to define structured output schemas for composite tools via Kubernetes CRDs.Changes Made
1. CRD Type Definitions
Added
OutputSpectype (virtualmcpserver_types.go:217-227)Added
OutputPropertySpectype (virtualmcpserver_types.go:229-255){{.steps.step_id.output.field}}runtime.RawExtensionfor flexibilityUpdated
CompositeToolSpec(virtualmcpserver_types.go:210-214)Output *OutputSpecfieldUpdated
VirtualMCPCompositeToolDefinitionSpec(virtualmcpcompositetooldefinition_types.go:61-65)Output *OutputSpecfield2. Converter Implementation
Added
convertOutputSpec()(converter.go:346-363)OutputSpecto vmcp configOutputConfigAdded
convertOutputProperty()(converter.go:365-397)runtime.RawExtensiontoanyconversion for defaults3. CRD Manifests
virtualmcpservers.yaml- includes Output fieldvirtualmcpcompositetooldefinitions.yaml- includes Output field4. Comprehensive Testing
Converter Tests (converter_test.go:460-705)
Integration Tests (virtualmcpserver_compositetool_watch_test.go:116-131)
Testing Summary
✅ All tests pass:
task lint-fix)Operator Chart Contribution Guidelines Verification
Verified all contribution practices per deploy/charts/operator/CONTRIBUTING.md:
✅ Commit Signature: GPG signed (RSA key A8177AE...19AD2ADD)
✅ Helm Template: Renders successfully without errors
✅ Chart Linting: All tests passed (6 different value configurations)
✅ Documentation: Pre-commit
helm-docshook passed✅ Chart Version: Operator CRD version bumped
Impact
What Users Can Now Do
Users can define structured output schemas for composite tools that:
Backward Compatibility
✅ Fully backward compatible - the
Outputfield is optional and defaults to the last step's output when not specified.