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

ovn-kubernetes / ovn-kubernetes / 18655908164
54%
master: 58%

Build:
Build:
LAST BUILD BRANCH: enable_ebgp
DEFAULT BRANCH: master
Ran 20 Oct 2025 03:22PM UTC
Jobs 1
Files 275
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

20 Oct 2025 02:41PM UTC coverage: 54.639% (+0.04%) from 54.597%
18655908164

Pull #5606

github

pperiyasamy
EgressIP: fix failover and restart stale SNAT/LRP; ensure status sync

Scenario:
- Nodes: node-1, node-2, node-3
- Egress IPs: EIP-1
- Pods: pod1 on node-1, pod2 on node-3 (pods are created via deployment replicas)
- Egress-assignable nodes: node-1, node-2
- EIP-1 assigned to node-1

During a simultaneous reboot of node-1 and node-2, EIP-1 failed over to node-2 and
ovnkube-controller restarted at nearly the same time:

1) EIP-1 was reassigned to node-2 by the cluster manager.
2) The controller synced EIPs with stale status and cleaned SNATs/LRPs
   referring to node-1 due to outdated pod IPs (this is because pods will be
   recreated due to node reboots).
3) pod1/pod2 Add events arrived while the informer cache still had the
   old EIP status, so new SNATs/LRPs were created pointing to node-1.
4) The EIP-1 Add event arrived with the new status; entries for node-2
   were added/updated.
5) Result: stale SNATs and LRPs with stale nexthops for node-1 remained.

Fix:
- Populate pod EIP status during EgressIP sync so podAssignment has
  accurate egressStatuses.
- Reconcile stale assignments using podAssignment (egressStatuses) when
  the informer cache is not up to date, ensuring SNAT/LRP for the
  previously assigned node are corrected.
- Remove stale EIP SNAT entries for remote-zone pods and update LRP
  nexthops accordingly.
- Add coverage for simultaneous EIP failover and controller restart.

Signed-off-by: Periyasamy Palanisamy <pepalani@redhat.com>
Pull Request #5606: Fix stale EIP assignments during failover and controller restart

42 of 44 new or added lines in 1 file covered. (95.45%)

2 existing lines in 1 file now uncovered.

38941 of 71270 relevant lines covered (54.64%)

441.69 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
68.78
0.24% go-controller/pkg/ovn/egressip.go

Coverage Regressions

Lines Coverage ∆ File
2
69.13
-0.25% go-controller/pkg/ovn/base_network_controller.go
Jobs
ID Job ID Ran Files Coverage
1 18655908164.1 20 Oct 2025 03:22PM UTC 275
54.64
GitHub Action Run
Source Files on build 18655908164
  • Tree
  • List 275
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #5606
  • PR Base - master (#18651596674)
  • Delete
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