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

stacklok / toolhive / 24729431797
66%

Build:
DEFAULT BRANCH: main
Ran 21 Apr 2026 03:01PM UTC
Jobs 1
Files 655
Run time 4min
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

21 Apr 2026 02:54PM UTC coverage: 66.125% (-0.3%) from 66.455%
24729431797

push

github

web-flow
Graduate CRDs from v1alpha1 to v1beta1 (#4849)

* Graduate CRDs from v1alpha1 to v1beta1

Signal API stability by promoting all ToolHive CRDs to v1beta1 while
preserving backwards compatibility — the CRDs serve both versions
simultaneously so existing v1alpha1 resources survive the upgrade
untouched and users migrate manifests at their own pace.

v1alpha1 and v1beta1 are schema-identical. The new
cmd/thv-operator/api/v1alpha1/ package defines only the root resource
types (MCPServer, MCPGroup, ...) as thin wrappers whose Spec and Status
fields reference the canonical types from v1beta1. controller-gen walks
field types when building the OpenAPI schema, so both versions resolve
to the same schema without any duplication of the actual model — I
verified empirically that all 12 CRDs produce structurally identical
schemas (modulo the legitimately-different root descriptions).

The upgrade is orchestrated through the `served` and `storage` flags
on each version entry: the new CRDs list both versions as served, mark
v1beta1 as storage, and mark v1alpha1 as deprecated with a warning.
No conversion webhook is configured, which defaults to strategy: None
— safe because the schemas are identical. Kubernetes swaps the
apiVersion string when serving an object at a different version than
it was stored at. Users can upgrade the CRD chart without deleting
anything, keep reading/writing at v1alpha1 indefinitely, and migrate
to v1beta1 by re-applying manifests. Once status.storedVersions no
longer contains v1alpha1, a future release can drop the v1alpha1
entry and remove the wrapper package.

What changed:

- Mechanical rename from v1alpha1 to v1beta1 across all Go imports,
  YAML apiVersion strings, Helm deploy manifests, chainsaw fixtures,
  examples, docs, and generated artifacts.
- New cmd/thv-operator/api/v1alpha1/ package: 12 root types + 12 list
  types as thin wrappers over v1beta1 Spec/Status, plus scheme
  registration. Each root type carries a +kubebuilder:d... (continued)

1559 of 3423 new or added lines in 53 files covered. (45.54%)

96 existing lines in 11 files now uncovered.

58479 of 88437 relevant lines covered (66.13%)

62.42 hits per line

Uncovered Changes

Lines Coverage ∆ File
1303
42.8
cmd/thv-operator/api/v1beta1/zz_generated.deepcopy.go
254
0.0
-42.8% cmd/thv-operator/api/v1alpha1/zz_generated.deepcopy.go
65
59.41
0.0% cmd/thv-operator/controllers/virtualmcpserver_controller.go
48
65.61
0.0% cmd/thv-operator/controllers/mcpserver_controller.go
45
60.93
0.0% cmd/thv-operator/controllers/mcpremoteproxy_controller.go
15
39.61
0.0% cmd/thv-operator/controllers/mcpoidcconfig_controller.go
15
42.97
0.0% cmd/thv-operator/controllers/mcptelemetryconfig_controller.go
13
39.5
0.0% pkg/vmcp/k8s/backend_reconciler.go
12
55.9
0.0% cmd/thv-operator/controllers/mcpserverentry_controller.go
11
19.63
0.0% cmd/thv-operator/controllers/mcpserver_telemetryconfig.go
10
53.74
0.0% cmd/thv-operator/controllers/mcpexternalauthconfig_controller.go
9
64.12
0.0% cmd/thv-operator/controllers/mcpgroup_controller.go
7
50.79
0.0% cmd/thv-operator/controllers/toolconfig_controller.go
7
73.01
0.0% cmd/thv-operator/controllers/virtualmcpserver_deployment.go
6
53.11
0.0% cmd/thv-operator/controllers/embeddingserver_controller.go
6
8.49
0.34% cmd/thv-operator/main.go
6
80.09
0.0% pkg/vmcp/workloads/k8s.go
5
0.0
0.0% pkg/audit/zz_generated.deepcopy.go
4
68.6
0.0% cmd/thv-operator/pkg/controllerutil/tokenexchange.go
3
77.4
0.0% cmd/thv-operator/controllers/mcpregistry_controller.go
3
45.71
0.0% cmd/thv-operator/controllers/virtualmcpserver_embedding.go
3
37.19
0.0% cmd/thv-operator/pkg/registryapi/manager.go
3
88.24
0.0% cmd/thv-operator/pkg/virtualmcpserverstatus/collector.go
2
73.95
0.0% cmd/thv-operator/controllers/mcpserver_runconfig.go
2
49.15
0.0% cmd/thv-operator/pkg/registryapi/mocks/mock_manager.go
2
36.36
0.0% cmd/thv-operator/pkg/virtualmcpserverstatus/mocks/mock_collector.go
2
14.29
0.0% pkg/groups/manager.go
1
82.66
0.0% cmd/thv-operator/controllers/mcpremoteproxy_deployment.go
1
83.12
0.0% cmd/thv-operator/controllers/virtualmcpserver_telemetryconfig.go
1
81.98
0.0% pkg/vmcp/status/k8s_reporter.go

Coverage Regressions

Lines Coverage ∆ File
80
0.0
-42.8% cmd/thv-operator/api/v1alpha1/zz_generated.deepcopy.go
3
79.38
-0.77% pkg/transport/proxy/httpsse/http_proxy.go
2
60.93
0.0% cmd/thv-operator/controllers/mcpremoteproxy_controller.go
2
93.94
-6.06% pkg/foreach/foreach.go
2
61.97
-1.41% pkg/networking/port.go
2
73.63
-0.64% pkg/runner/config.go
1
65.61
0.0% cmd/thv-operator/controllers/mcpserver_controller.go
1
50.79
0.0% cmd/thv-operator/controllers/toolconfig_controller.go
1
14.29
0.0% pkg/groups/manager.go
1
39.5
0.0% pkg/vmcp/k8s/backend_reconciler.go
1
80.09
0.0% pkg/vmcp/workloads/k8s.go
Jobs
ID Job ID Ran Files Coverage
1 24729431797.1 21 Apr 2026 03:01PM UTC 655
66.13
GitHub Action Run
Source Files on build 24729431797
  • Tree
  • List 655
  • Changed 73
  • Source Changed 66
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24729431797
  • 3dbbf5ae on github
  • Prev Build on main (#24727943685)
  • Next Build on main (#24730769715)
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