Skip to content

[BGP] nncp: add ipv4 gateway address to internalapi and storage bridges#783

Draft
eduolivares wants to merge 1 commit into
openstack-k8s-operators:mainfrom
eduolivares:nncp-bridge-gateway-ip
Draft

[BGP] nncp: add ipv4 gateway address to internalapi and storage bridges#783
eduolivares wants to merge 1 commit into
openstack-k8s-operators:mainfrom
eduolivares:nncp-bridge-gateway-ip

Conversation

@eduolivares

@eduolivares eduolivares commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Without an explicit ipv4 address in the NNCP desired state, NMState periodically reconciles the internalapi and storage bridges and removes the gateway IP that the bridge CNI plugin sets via isGateway: true in the NAD.
  • Once the gateway IP is removed, the kernel connected route for the network disappears and pod IPs on those bridges become unreachable from compute/networker nodes via BGP, causing ovn-controller to become unhealthy. The issue typically manifests after 24+ hours of operation.
  • This fix adds the gateway IP (first host IP of each subnet) to the NNCP so NMState preserves it across reconciliation cycles.
  • Applies to lib/nncp-l3 (base template) and all BGP deployment examples that import it (bgp_dt01, bgp-l3-xl, dz-storage).

Fixes: OSPRH-32725

Test plan

  • Deploy a BGP-based RHOSO environment using the updated NNCP templates
  • Verify internalapi and storage bridges retain their gateway IPs after NMState reconciliation
  • Verify OVN SB DB pods remain reachable from compute/networker nodes after 24+ hours

🤖 Generated with Claude Code

Without an explicit ipv4 address in the NNCP desired state, NMState
periodically reconciles the bridges and removes the gateway IP that
the bridge CNI plugin sets via isGateway:true in the NAD. This causes
the kernel connected route for the network to disappear, making pod IPs
on those bridges unreachable from compute/networker nodes via BGP.

The fix adds the gateway IP (first host IP of each subnet) to the NNCP
so NMState preserves it across reconciliation cycles.

Fixes: OSPRH-32725

Assisted-By: Claude Sonnet 4.6
@openshift-ci
openshift-ci Bot requested review from fultonj and karelyatin July 14, 2026 10:16
@openshift-ci

openshift-ci Bot commented Jul 14, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: eduolivares
Once this PR has been reviewed and has the lgtm label, please assign abays for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@fultonj

fultonj commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

/lgtm

waiting for test results before merging

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants