Files
ironic/releasenotes/notes/initial-port-bind-5a1ffb083f6631d4.yaml
Julia Kreger 5146e0a0f8 provide host_id to neutron early on
Cases exist where you can request a port to be created, in such
a way where neutron has to defer assignment of addressing.

In Neutron's world, it wants to map the host so it can be ensured
that *correct* physical network is available and mapped to for the
address range. Networking-baremetal helps backfill physical connection
context so Neutron can make the appropriate address assignment.

In order to ensure we do the right thing while also ensuring
appropriate security around the state of the port and the bind,
we need to go ahead and facilitate an *initial* context
to neutron so address assignment can occur, but explicitly limits
the provided information to a highly limited scope to prevent
actual binding to a physical port.

With the assignment of addresses, it becomes possible to begin to
generate, or eventually *fix* network configuration  metadata
being provided to a baremetal node.

In this *entire* process, we also identified you can create neutron
ports with binding information "out of the gate" to be immediately
bound. Thanks metalsmith! So the code pattern now checks the port,
and unbinds the VIF before rebinding it.

Related-Bug: #2106073
Change-Id: Ic53c626afe641ce63d71a7858e65df1fb250e3c0
2025-05-12 18:40:48 +00:00

17 lines
867 B
YAML

---
fixes:
- |
Fixes interface binding logic as it relates to Neutron VIF attachments,
such that an initial neutron port update occurs to ensure Neutron performs
any necessary address assignments, which will now result in the port
entering an ``ACTIVE`` state. The state may change later on as the port
is updated as part of any workflow actions with supplied port configuration
information to allow ML2 plugins to finalize any port binding actions, when
appropriate. The base bug which identified this issue is
`bug 2106073 <https://bugs.launchpad.net/nova/+bug/2106073>`_, which will
require additional work to completely fix.
Related, this logic *also* detaches any previously bound VIF which might
have been supplied to Ironic. To have done so in advance of attachment is
erroneous, yet understandable behavior.