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

kubeovn / kube-ovn / 25917468877
27%

Build:
DEFAULT BRANCH: master
Ran 15 May 2026 12:22PM UTC
Jobs 1
Files 212
Run time 1min
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

15 May 2026 12:20PM UTC coverage: 24.993% (-0.04%) from 25.036%
25917468877

push

github

web-flow
fix(controller): make BgpConf/EvpnConf informers optional (#6726) (#6737)

* fix(controller): make BgpConf/EvpnConf informers optional (#6726)

The kube-ovn-controller used to unconditionally add the BgpConf and
EvpnConf informers to its WaitForCacheSync list. On clusters upgraded
from <v1.16 via Helm those CRDs are missing (Helm does not re-apply
the chart's crds/ directory on `helm upgrade`), so the controller
hangs forever in "Waiting for informer caches to sync" and breaks
IPAM cluster-wide.

Treat BgpConf/EvpnConf like the other optional CRDs (NetworkAttachment,
ServiceCIDR):

* Detect the CRDs at startup via the discovery API and only register
  the informers when present.
* When missing, start a 10s background poller that picks them up once
  they appear, with no controller restart required.
* Publish the lister/synced fields only after WaitForCacheSync returns
  true so concurrent VEG reconcilers cannot observe a non-nil lister
  backed by an empty cache.
* Guard the vpc-egress-gateway consumer paths with a nil-lister check
  that surfaces a clear error and lets the workqueue retry.

Add an e2e regression test (kube-ovn/optional_crd) that deletes both
CRDs, restarts the controller and asserts the rollout completes and
IPAM still works, then restores the CRDs and verifies the controller
self-heals.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Mengxin Liu <liumengxinfly@gmail.com>

* fix(controller): address review feedback on optional BgpConf/EvpnConf (#6726)

Two follow-ups requested by Copilot on PR #6737:

* Race-free publication of the optional listers. The
  bgpConfLister/evpnConfLister fields are now atomic.Pointer values so
  the background poller's Store happens-before the VEG worker's Load,
  eliminating the data race flagged in bgp_evpn_conf.go and
  vpc_egress_gateway.go.

* Fail-fast e2e polling. The three wait loops in the new optional_crd
  spec previously masked every error other than NotFo... (continued)

0 of 107 new or added lines in 3 files covered. (0.0%)

14318 of 57287 relevant lines covered (24.99%)

0.29 hits per line

Uncovered Changes

Lines Coverage ∆ File
84
0.0
pkg/controller/bgp_evpn_conf.go
14
0.0
0.0% pkg/controller/vpc_egress_gateway.go
9
1.12
-0.0% pkg/controller/controller.go
Jobs
ID Job ID Ran Files Coverage
1 25917468877.1 15 May 2026 12:22PM UTC 212
24.99
GitHub Action Run
Source Files on build 25917468877
  • Tree
  • List 212
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 35056ace on github
  • Prev Build on master (#25909114514)
  • Next Build on master (#25923073645)
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