Skip to content

feat(understack-workflows): add pa support for nb device sync - #2274

Draft
khackworth wants to merge 1 commit into
mainfrom
firewall_nb_device_sync
Draft

feat(understack-workflows): add pa support for nb device sync#2274
khackworth wants to merge 1 commit into
mainfrom
firewall_nb_device_sync

Conversation

@khackworth

@khackworth khackworth commented Sep 2, 2026

Copy link
Copy Markdown
Contributor
  • Creates the device
  • Creates the interfaces
  • Cables the interfaces
  • Creates the management port
  • IPs the management port

Needs a few details to get this to function properly.
Nautobotop:

  • no more pre-built ports for the device-type (other than management)

Custom Fields (Nautobot):

  • mate_serial custom field on Device model (string, optional)

Device Role (Nautobot):

  • firewall role must exist

Ironic Node Properties:

  • properties.vendor = "Palo Alto"
  • properties.model = "PA-1410" or "PA-5410"
  • extra.serial = device serial number
  • extra.mate_serial = HA mate serial (optional)

Ironic Port Properties (per data port):

  • extra.bios_name = interface name (e.g., "ethernet1/19")
  • switch_info = FQDN of switch (e.g., "n11-22-2.dfw3.rackspace.net")

Ironic driver_info:

  • driver_info.management_ip = mgmt IP address
  • driver_info.management_mac = mgmt MAC address (optional until inspect exists)

Location:

  • properties.physical_network must be set (determines location via switch lookup)

Changes in action:

[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal node manage ae57da42-ae65-43ce-a6dd-780cf7d31fe4

[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal node set ae57da42-ae65-43ce-a6dd-780cf7d31fe4 --extra serial=026701009879
[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows %  openstack baremetal port set 22a2aaa4-35a3-4bee-bc8b-1fcb0473c655 --extra bios_name=ethernet1/19
[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal port set 22a2aaa4-35a3-4bee-bc8b-1fcb0473c655 --local-link-connection switch_info=n11-22-1.dfw3.rackspace.net
[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal port set ccb9c593-6cef-4291-b0d5-5d75f9be57f4 --local-link-connection switch_info=n11-22-1.dfw3.rackspace.net

[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal port set ccb9c593-6cef-4291-b0d5-5d75f9be57f4 --extra bios_name=ethernet1/20

Validation

[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal node show ae57da42-ae65-43ce-a6dd-780cf7d31fe4 -c extra -c properties -c driver_info -f yaml

driver_info:
  management_ip: 10.15.149.107
  management_switch: n11-22-1d.dfw3
  management_switch_port: Ethernet1/25
extra:
  external_cmdb_id: 1357149
  mate_serial: 026701009874
  serial: 026701009879
properties:
  model: PA-1410
  vendor: Palo Alto
[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal port show 22a2aaa4-35a3-4bee-bc8b-1fcb0473c655 -c extra -c local_link_connection -f yaml

extra:
  bios_name: ethernet1/19
local_link_connection:
  port_id: Ethernet1/45
  switch_id: cc:6a:33:c9:e9:e3
  switch_info: n11-22-1.dfw3.rackspace.net
[prod-dfw3] [k8s:uc_dfw3_prod](firewall_nb_device_sync) khackwor understack-workflows % openstack baremetal port show ccb9c593-6cef-4291-b0d5-5d75f9be57f4 -c extra -c local_link_connection -f yaml

extra:
  bios_name: ethernet1/20
local_link_connection:
  port_id: Ethernet1/46
  switch_id: cc:6a:33:c9:e9:e3
  switch_info: n11-22-1.dfw3.rackspace.net

Execution:

2026-09-02 11:54:04 -0400 - __main__ - INFO - Connecting to Nautobot: https://nautobot.prod.undercloud.rackspace.net
2026-09-02 11:54:05 -0400 - __main__ - INFO - Syncing PA firewall node: ae57da42-ae65-43ce-a6dd-780cf7d31fe4
2026-09-02 11:54:05 -0400 - __main__ - INFO - Region: dfw3, Location: dfw3
2026-09-02 11:54:05 -0400 - keystoneauth.identity.v3.websso - WARNING - To authenticate please go to: https://keystone.prod.undercloud.rackspace.net/v3/auth/OS-FEDERATION/identity_providers/sso/protocols/openid/websso?origin=http%3A%2F%2Flocalhost%3A9990%2Fauth%2Fwebsso%2F
2026-09-02 11:54:06 -0400 - understack_workflows.ironic.client - INFO - Fetching inventory for node: ae57da42-ae65-43ce-a6dd-780cf7d31fe4
2026-09-02 11:54:06 -0400 - understack_workflows.ironic.client - ERROR - Node not found: ae57da42-ae65-43ce-a6dd-780cf7d31fe4
2026-09-02 11:54:06 -0400 - understack_workflows.oslo_event.nautobot_device_sync - DEBUG - [node:ae57da42-ae65-43ce-a6dd-780cf7d31fe4] No inventory for netdev appliance (expected)
2026-09-02 11:54:08 -0400 - understack_workflows.oslo_event.nautobot_device_sync - DEBUG - Updating custom field mate_serial: 026701009874
2026-09-02 11:54:08 -0400 - understack_workflows.oslo_event.nautobot_device_sync - INFO - Updated device ae57da42-ae65-43ce-a6dd-780cf7d31fe4 in Nautobot, save result: True
2026-09-02 11:54:09 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - INFO - Created interface ethernet1/19 (22a2aaa4-35a3-4bee-bc8b-1fcb0473c655) in Nautobot
2026-09-02 11:54:09 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - DEBUG - Handling cable for interface 22a2aaa4-35a3-4bee-bc8b-1fcb0473c655 -> n11-22-1.dfw3.rackspace.net:Ethernet1/45
2026-09-02 11:54:10 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - INFO - Created cable connecting 22a2aaa4-35a3-4bee-bc8b-1fcb0473c655 to n11-22-1.dfw3.rackspace.net:Ethernet1/45
2026-09-02 11:54:10 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - INFO - Created interface ethernet1/20 (ccb9c593-6cef-4291-b0d5-5d75f9be57f4) in Nautobot
2026-09-02 11:54:10 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - DEBUG - Handling cable for interface ccb9c593-6cef-4291-b0d5-5d75f9be57f4 -> n11-22-1.dfw3.rackspace.net:Ethernet1/46
2026-09-02 11:54:11 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - INFO - Created cable connecting ccb9c593-6cef-4291-b0d5-5d75f9be57f4 to n11-22-1.dfw3.rackspace.net:Ethernet1/46
2026-09-02 11:54:12 -0400 - understack_workflows.oslo_event.nautobot_device_interface_sync - INFO - Synced 2 interfaces for node ae57da42-ae65-43ce-a6dd-780cf7d31fe4 to Nautobot
2026-09-02 11:54:12 -0400 - __main__ - INFO - ✓ Sync succeeded!

✓ Successfully synced node ae57da42-ae65-43ce-a6dd-780cf7d31fe4 to Nautobot

…ngs/config items yet

Creates the device
Creates the interfaces
Cables the interfaces
Creates the management port
IPs the management port

Needs a few details to get this to function properly.
Custom Fields (Nautobot):

mate_serial custom field on Device model (string, optional)
Device Role (Nautobot):

firewall role must exist
Ironic Node Properties:

properties.vendor = "Palo Alto"
properties.model = "PA-1410" or "PA-5410"
extra.serial = device serial number
extra.mate_serial = HA mate serial (optional)
Ironic Port Properties (per data port):

extra.bios_name = interface name (e.g., "ethernet1/19")
switch_info = FQDN of switch (e.g., "n11-22-2.dfw3.rackspace.net")
Ironic driver_info:

driver_info.management_ip = mgmt IP address
driver_info.management_mac = mgmt MAC address (optional until inspect exists)
Location:

properties.physical_network must be set (determines location via switch lookup)
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