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

stacklok / toolhive / 32974088242
70%

Build:
DEFAULT BRANCH: main
Ran 26 Aug 2026 01:32PM UTC
Jobs 1
Files 902
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

26 Aug 2026 01:25PM UTC coverage: 69.504% (+0.03%) from 69.47%
32974088242

push

github

web-flow
Trust private CAs for upstream auth servers (#6428)

* Trust private CAs for upstream auth servers

An embedded auth server could not complete an authorization-code exchange
with an OAuth2 or OIDC provider whose certificate is signed by a private
CA, so an in-cluster IdP behind an internal PKI was unusable as an
upstream.

Add caBundleRef to the OIDC and OAuth2 upstream configs. The operator
projects the selected ConfigMap key as a read-only ca.crt per upstream and
passes its path to the provider and DCR clients, so one upstream's private
CA is not implicitly trusted for another or for unrelated traffic.

Such an upstream may present either a publicly trusted certificate or a
private one, so these clients need the system roots as well as the bundle.
Add WithSystemRootsPlusCABundle for that and leave WithCABundle pinning:
its other callers include the JWKS and introspection clients that validate
incoming tokens, where a bundle is often configured precisely to restrict
trust to a private issuer.

The bundle is mounted with subPath, which kubelet never refreshes, so a
rotated CA reaches a running pod only through a pod template change. Hash
the selected bytes into a pod template annotation and compare it during
drift detection on MCPServer, MCPRemoteProxy and VirtualMCPServer,
including when caBundleRef is removed.

Resolve and PEM-validate each reference during reconciliation. A missing
ConfigMap, absent key, or malformed certificate surfaces as a status
condition rather than a pod that starts without the trust roots its
upstream requires.

Fixes #6417

Signed-off-by: Jakub Hrozek <jakub@stacklok.com>

* Clarify embedded auth CA key requirement

Signed-off-by: Jakub Hrozek <jakub@stacklok.com>

* Regenerate OpenAPI docs for upstream CA fields

The new CAFilePath fields on the authserver upstream run-configs are part
of the generated API surface, so the committed spec no longer matched what
swag produces and the docgen check failed.

Regenerating also dr... (continued)

497 of 675 new or added lines in 23 files covered. (73.63%)

28 existing lines in 8 files now uncovered.

75899 of 109201 relevant lines covered (69.5%)

89.77 hits per line

Uncovered Changes

Lines Coverage ∆ File
37
64.14
-0.03% cmd/thv-operator/controllers/virtualmcpserver_controller.go
23
69.49
0.71% cmd/thv-operator/controllers/mcpremoteproxy_controller.go
23
68.46
0.77% cmd/thv-operator/controllers/mcpserver_controller.go
14
80.28
cmd/thv-operator/pkg/controllerutil/ca_bundle.go
12
72.29
-1.8% cmd/thv-operator/api/v1beta1/mcpexternalauthconfig_types.go
12
5.84
-0.27% cmd/thv-operator/app/app.go
12
91.9
-0.84% cmd/thv-operator/pkg/controllerutil/authserver.go
10
71.43
cmd/thv-operator/controllers/upstream_ca_bundle.go
6
72.73
cmd/thv-operator/controllers/mcpremoteproxy_authserver_cabundle_configmap.go
6
72.73
cmd/thv-operator/controllers/mcpserver_authserver_cabundle_configmap.go
4
29.63
8.8% cmd/help/dedupe-enums/main.go
4
45.07
0.74% cmd/thv-operator/api/v1beta1/zz_generated.deepcopy.go
4
95.68
-2.73% pkg/networking/http_client.go
3
84.96
-0.44% cmd/thv-operator/controllers/mcpremoteproxy_deployment.go
3
79.95
-0.27% cmd/thv-operator/controllers/virtualmcpserver_deployment.go
2
86.13
-0.23% pkg/auth/dcr/resolver.go
2
90.76
-0.47% pkg/authserver/upstream/oauth2.go
1
88.46
0.37% cmd/thv-operator/controllers/virtualmcpserver_authz_configmap.go

Coverage Regressions

Lines Coverage ∆ File
11
59.0
-0.83% pkg/workloads/manager.go
6
19.87
-3.97% pkg/client/manager.go
3
61.43
-4.29% pkg/state/runconfig.go
3
78.26
-0.87% pkg/transport/proxy/httpsse/http_proxy.go
2
64.14
-0.03% cmd/thv-operator/controllers/virtualmcpserver_controller.go
1
69.49
0.71% cmd/thv-operator/controllers/mcpremoteproxy_controller.go
1
68.46
0.77% cmd/thv-operator/controllers/mcpserver_controller.go
1
81.07
-0.12% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 32974088242.1 26 Aug 2026 01:32PM UTC 902
69.5
GitHub Action Run
Source Files on build 32974088242
  • Tree
  • List 902
  • Changed 29
  • Source Changed 22
  • Coverage Changed 29
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32974088242
  • 23e6d2f1 on github
  • Prev Build on main (#32973875754)
  • Next Build on main (#32976581648)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc