• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 24199578209
66%

Build:
DEFAULT BRANCH: main
Ran 09 Apr 2026 03:54PM UTC
Jobs 1
Files 616
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Apr 2026 03:48PM UTC coverage: 65.018% (-0.009%) from 65.027%
24199578209

push

github

web-flow
Add MCPServerEntry backend discovery to VirtualMCPServer (#4698)

* Add MCPServerEntry backend discovery to VirtualMCPServer controller

VirtualMCPServer needs to discover MCPServerEntry resources (zero-infrastructure
catalog entries) and include them as backends. This enables vMCP to route traffic
to remote MCP servers declared as MCPServerEntry without proxy pods.

- Add WorkloadTypeMCPServerEntry constant and discoverer logic that lists
  MCPServerEntries by groupRef, converts them to vmcp.Backend using the remote
  URL directly from the spec (no K8s Service needed)
- Extend ConfigMap generation to include entry-type backends with remoteURL,
  transport, auth config, and CA bundle mount paths
- Mount CA bundle ConfigMaps as read-only volumes at
  /etc/toolhive/ca-bundles/<entry-name>/ when caBundleRef is configured
- Add mcpserverentries to VirtualMCPServer RBAC rules (get/list/watch)
- Add MCPServerEntry watch with optimized mapper (via MCPGroup Status.Entries)
- Add CABundlePath field to StaticBackendConfig for TLS verification
- Fix pre-existing missing mcpremoteproxies RBAC marker on controller
- Extract metadata key constants to fix goconst lint violations

Closes #4657

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Regenerate CRD manifests and API docs for CABundlePath field

Run task operator-manifests, operator-generate, and crdref-gen to
pick up the new CABundlePath field on StaticBackendConfig and the
updated RBAC markers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address review feedback for MCPServerEntry discovery

- Rename metadataKeyWorkloadStat to metadataKeyWorkloadStatus (F4)
- Add nil guard to caBundleMountPath for defensive safety (F5)
- Fix volume name truncation with hash suffix to avoid collisions and
  trailing hyphens in DNS labels (F2)
- Add url.Parse validation for RemoteURL as defense-in-depth (F6)
- Propagate errors from buildCABundlePathMap and
  buildCABundleVolu... (continued)

239 of 339 new or added lines in 4 files covered. (70.5%)

37 existing lines in 5 files now uncovered.

56112 of 86302 relevant lines covered (65.02%)

62.52 hits per line

Uncovered Changes

Lines Coverage ∆ File
58
60.03
-1.14% cmd/thv-operator/controllers/virtualmcpserver_controller.go
19
78.82
2.22% pkg/vmcp/workloads/k8s.go
13
59.77
4.1% cmd/thv-operator/controllers/virtualmcpserver_deployment.go
10
72.54
-0.05% cmd/thv-operator/controllers/virtualmcpserver_vmcpconfig.go

Coverage Regressions

Lines Coverage ∆ File
14
74.44
-5.19% pkg/client/config.go
11
68.83
-14.29% pkg/client/discovery.go
8
23.56
-4.6% pkg/client/manager.go
2
73.63
-0.64% pkg/runner/config.go
2
82.81
-0.21% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 24199578209.1 09 Apr 2026 03:54PM UTC 616
65.02
GitHub Action Run
Source Files on build 24199578209
  • Tree
  • List 616
  • Changed 12
  • Source Changed 5
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24199578209
  • 97051d8c on github
  • Prev Build on main (#24198803510)
  • Next Build on main (#24201737681)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc