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

stacklok / toolhive / 22581978007

02 Mar 2026 03:07PM UTC coverage: 63.093% (+0.003%) from 63.09%
22581978007

push

github

web-flow
Fix operator e2e CI failures and spurious deployment updates (#3961)

* Fix operator e2e CI failures and spurious deployment updates

The operator e2e chainsaw tests fail across all K8s versions because the
Kind cluster must pull the yardstick image from the remote registry at
runtime, which cannot complete within the 60s assert timeout.

Add two steps matching the pattern already used in test-e2e-lifecycle.yml:
- Disable containerd image store before creating the Kind cluster (Docker
  29+ workaround for kind load with multi-arch images), with a comment
  referencing the upstream KIND issue for context
- Pre-pull and load the yardstick-server image into the Kind cluster
  before running chainsaw tests

Replace reflect.DeepEqual with equality.Semantic.DeepEqual when comparing
Kubernetes resource types (Env vars and resource requirements) in the
MCPServer controller. reflect.DeepEqual treats nil and empty slices/maps
as different, causing unnecessary deployment updates that can contribute
to reconciliation loops and test flakiness.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix infinite deployment update loop caused by annotation fight

The deployment update path was replacing annotations entirely, which
stripped K8s-managed annotations like deployment.kubernetes.io/revision.
The K8s deployment controller would immediately re-add the annotation,
triggering another reconcile and creating a tight loop that prevented
deployments from ever becoming available.

Fix annotation comparison to use subset check instead of exact match,
so K8s-managed annotations do not trigger spurious updates. Fix the
update path to merge annotations instead of replacing them, preserving
K8s-managed annotations while applying controller-desired values.

Applied consistently across MCPServer, MCPRemoteProxy, and
VirtualMCPServer controllers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Move mapIsSubset to controllerutil for shared reuse

Move the m... (continued)

14 of 16 new or added lines in 4 files covered. (87.5%)

7 existing lines in 3 files now uncovered.

45452 of 72040 relevant lines covered (63.09%)

77.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

80.58
/pkg/transport/proxy/httpsse/http_proxy.go


Source Not Available

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