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

stacklok / toolhive / 20798657282
50%

Build:
DEFAULT BRANCH: main
Ran 07 Jan 2026 10:33PM UTC
Jobs 1
Files 424
Run time 2min
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

07 Jan 2026 10:31PM UTC coverage: 50.048% (-0.5%) from 50.556%
20798657282

push

github

web-flow
Vmcp: Add but do not use app config to the CRD  (#3203)

This PR adds the vmcpconfig.Config to the VirtualMCPServerSpec, but does not use it. This sets up subsequent work to migrate the existing functionality (e.g. defaults, validation, discovery) built up around the other VirtualMCPServerSpec fields onto their equivalent fields in vmcpconfig.Config.

Supports #3125

Large PR Justification
This PR is large in lines-of-code, but is conceptually small. This PR contains the minimal changes to add config.Config to the VirtualMCPServerSpec.

All changes are motivated by errors from task operator-generate && task operator-manifests && task lint.

Changes
Migrate from any to a CRD-compatible json.Map or json.Any.
The CRD code generation does not support any types in the app config object. The simplest thing to do would be replace all uses with runtime.RawExtension. However, that makes the code that previously depended on map[string]any less typesafe and more verbose, since it must unmarshall the raw contents manually. Consequently, I introduced a pkg/json/any.go that is simpler to work with. Specifically, the json.Map is a typesafe and CRD-compatible map[string]any.

Many test files were updated to use this new type rather than map[string]any.

Use string rather than float for SamplingRate
This one is straightforward. Sampling rate was previously a float which is unsupported by kubebuilder. This also required regenerating the swagger docs.

Generate DeepCopy methods
Kubebuilder requires the config types have DeepCopy methods. Changes to the taskfile and existing config objects ensures this code is generated.

---------

Signed-off-by: Jeremy Drouillard <jeremy@stacklok.com>

48 of 668 new or added lines in 14 files covered. (7.19%)

2 existing lines in 1 file now uncovered.

28914 of 57773 relevant lines covered (50.05%)

58.69 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
0.0
0.0% cmd/thv-operator/api/v1alpha1/zz_generated.deepcopy.go
1
63.91
0.0% pkg/vmcp/config/validator.go
2
90.63
-1.31% pkg/vmcp/config/yaml_loader.go
4
24.66
-0.04% cmd/thv/app/run_flags.go
5
60.66
-1.36% pkg/vmcp/composer/output_validator.go
6
69.54
-0.19% cmd/thv-operator/pkg/vmcpconfig/converter.go
6
66.41
-0.84% pkg/telemetry/config.go
6
65.37
0.03% pkg/vmcp/composer/output_constructor.go
8
90.06
-4.53% pkg/vmcp/server/workflow_converter.go
19
0.0
pkg/audit/zz_generated.deepcopy.go
26
0.0
pkg/telemetry/zz_generated.deepcopy.go
43
0.0
pkg/vmcp/auth/types/zz_generated.deepcopy.go
119
0.0
pkg/json/any.go
374
0.0
pkg/vmcp/config/zz_generated.deepcopy.go

Uncovered Existing Lines

Lines Coverage ∆ File
2
81.86
-0.28% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 20798657282.1 07 Jan 2026 10:33PM UTC 424
50.05
GitHub Action Run
Source Files on build 20798657282
  • Tree
  • List 424
  • Changed 17
  • Source Changed 13
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #20798657282
  • ab329ce8 on github
  • Prev Build on main (#20783566607)
  • Next Build on main (#20811908029)
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