Repository navigation
feat(neutron): wire a netdev router's gateway and subnets to separate NICs PUC-2115 - #2578
Merged
Merged
Conversation
Python test results1 tests - 465 1 ✅ - 460 0s ⏱️ -59s Results for commit 739b719. ± Comparison against base commit e85aba1. This pull request removes 466 and adds 1 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
nidzrai
force-pushed
the
netdev-firewall-split-nics
branch
2 times, most recently
from
October 26, 2026 04:44
d9ca040 to
9422b03
Compare
nidzrai
force-pushed
the
netdev-firewall-split-nics
branch
2 times, most recently
from
October 26, 2026 15:54
4d56786 to
ae91df0
Compare
cardoe
reviewed
Oct 26, 2026
nidzrai
force-pushed
the
netdev-firewall-split-nics
branch
2 times, most recently
from
October 27, 2026 09:01
b4bd4cc to
1031fea
Compare
khackworth
added a commit
that referenced
this pull request
Oct 27, 2026
… assigned - Add CUSTOM_NETDEV_ROLE_ATTACH trait when port categories (outside/inside) are assigned - Remove trait when no categories are assigned - Uses proper Ironic objects API: objects.Trait.create() and objects.Trait.destroy() - Addresses feedback from PR #2578 (netdev role attachment integration)
nidzrai
force-pushed
the
netdev-firewall-split-nics
branch
4 times, most recently
from
October 27, 2026 16:15
789dd4e to
e7b3ad8
Compare
nidzrai
force-pushed
the
netdev-firewall-split-nics
branch
from
October 28, 2026 16:16
be03e13 to
1a85f4d
Compare
1 task
nidzrai
force-pushed
the
netdev-firewall-split-nics
branch
from
October 28, 2026 16:49
1a85f4d to
f66a3a7
Compare
cardoe
force-pushed
the
netdev-firewall-split-nics
branch
from
October 28, 2026 18:32
f66a3a7 to
739b719
Compare
cardoe
approved these changes
Oct 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A Palo Alto router put its gateway and all its subnets on one trunk, on one
firewall NIC. In testing, outside and inside traffic both landed on eth1/20,
halving the firewall's bandwidth.
What does this change do?
Agreed with Doug and Kenny: the outside NIC carries the gateway, the inside NIC
carries the subnets.
outside, next isinside, any others get no category. Fewer than two ports is refused, and so is a re-enroll that leaves out a port that still has a role. A firewall in service is never relabelled.-outside,-inside), tags each parentoutsideorinside, and fails cleanly if the VIF lands on the wrong NIC. Each side is torn down on its own.CUSTOM_NETDEV_ROLE_ATTACHincomponents/ironic/cm-trait-based-networking.yaml: a VIF attaches only to the port whose category matches its tag.f11a3586(Backport TBN vif.* filter variables (1011790) ironic#18, Doug'svif.*TBN variables), so the rule reads the parent port's own tag withvif.tags.Rollout
The Ironic we run today rejects a TBN file with
vif.tags. The file is mountedlive, so while ironic-conductor rolls to the new image, the old conductors
reject it and fall back to Ironic's built-in rule (first free port, any
category) for server VIFs. To avoid that, deploying the Ironic bump on its own
first.
Upgrade impact
upgrade-impactlabel and a release note: runscriv createfrom therepository root and describe the required action in the generated
changelog.d/file. See RELEASING.md.Operator action means anything a deployment has to do beyond a normal resync:
deploy repo or values changes, new or removed secrets, enabling or disabling a
component, or a manual one-time step.