Skip to content

feat(understack-workflows): set Nautobot device-sync fields at firewall enroll - #2322

Open
nidzrai wants to merge 1 commit into
mainfrom
extended_netdev
Open

feat(understack-workflows): set Nautobot device-sync fields at firewall enroll#2322
nidzrai wants to merge 1 commit into
mainfrom
extended_netdev

Conversation

@nidzrai

@nidzrai nidzrai commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

What

enroll-fw now sets, at enroll time, the Ironic node/port fields the Nautobot Palo Alto device sync reads — so they no longer have to be applied by hand after enrolment.

Field Set by
node.properties.vendor --vendor (default Palo Alto)
node.properties.model --model (e.g. PA-1410)
node.extra.serial --serial
port.extra.bios_name auto — defaults to the port label

Why

netdev appliances are NoInspect, so the fields inspection would normally populate (bios_name, serial) have to come from enrol. Without them the Nautobot device sync (khackworth's #2274) can't create the device/interfaces, so they were being set manually via openstack baremetal node/port set.

Changes

  • engine (netdev_reconciler): generic support for node.properties (create + diff-patch on re-run) and port.extra.bios_name (defaults to the label; converges on re-run).
  • enroll-fw: --serial / --vendor / --model; serialextra, vendor/modelproperties. --ports help notes switch must be the switch FQDN (how the sync resolves the cable).
  • firewall.py: firewall_metadata returns (driver_info, extra, properties); apply_node_metadata patches properties too (active-node path).
  • enroll-fw.yaml: serial / vendor / model params.

Testing

787 tests pass; ruff clean; kustomize builds and renders the new params. Contract verified against khackworth's hand-run commands (vendor/model → properties, serial → extra, bios_name == label).

Relates to #2274.

🤖 Generated with Claude Code

…ll enroll

The Nautobot Palo Alto device sync needs vendor/model in the node
properties, the device serial in extra, and each port's interface name in
extra.bios_name. netdev appliances are NoInspect, so these must be set at
enroll time -- today they are applied by hand after enrolment.

- engine: support node.properties (create + diff-patch on re-run) and port
  extra.bios_name (defaults to the port label; converges on re-run)
- enroll-fw: add --serial / --vendor (default "Palo Alto") / --model; serial
  -> extra, vendor/model -> properties; note that --ports "switch" must be the
  switch FQDN so the sync can resolve the cable
- firewall_metadata now returns (driver_info, extra, properties);
  apply_node_metadata patches properties too (active-node path)
- enroll-fw.yaml: serial / vendor / model params

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Nidhi Rai <nidhi.rai@rackspace.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant