Skip to content

feat(openstack-sync): add NeutronSegmentRange CRD and sync plugin - #2270

Open
geetikabatra wants to merge 1 commit into
rackerlabs:mainfrom
geetikabatra:add-neutron-segment-range-crd
Open

feat(openstack-sync): add NeutronSegmentRange CRD and sync plugin#2270
geetikabatra wants to merge 1 commit into
rackerlabs:mainfrom
geetikabatra:add-neutron-segment-range-crd

Conversation

@geetikabatra

Copy link
Copy Markdown

Add a NeutronSegmentRange CRD to the openstack-sync-operator and a segment_ranges hook plus plugin package that reconciles Neutron network segment ranges (openstack network segment range) from custom resources.

  • CRD: neutron.understack.rackspace.net/v1alpha1 NeutronSegmentRange
  • plugin: reconcile/create/adopt by owner-prefixed name, prune on removal
  • immutable network_type/physical_network mismatches fail loudly
  • wired into operator values.yaml (plugins.neutronSegmentRanges, disabled)

What does this change do?

Upgrade impact

  • This change requires operator action to upgrade. If checked, add the
    upgrade-impact label and a release note: run scriv create from the
    repository 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.

Following network ranges were identified from all the branches.

rax-prod-iad3-rxdb-braze-zone1 (18)

  1. vxlan 1800000-1849999 shared spine501-13.iad3
  2. vlan 4010-4010 physical-network=enrol enrol
  3. vlan 1800-3799 shared physical-network=g16-17/g16-18-network g16-17/g16-18-network
  4. vlan 1800-3799 shared physical-network=g16-11/g16-12-network g16-11/g16-12-network
  5. vlan 1800-3799 shared physical-network=g16-13/g16-14-network g16-13/g16-14-network
  6. vlan 1800-3799 shared physical-network=g10-35/g10-36-network g10-35/g10-36-network
  7. vlan 1800-3799 shared physical-network=g10-37/g10-38-network g10-37/g10-38-network
  8. vlan 1800-3799 shared physical-network=g15-27/g15-28-network g15-27/g15-28-network
  9. vlan 1800-3799 shared physical-network=g17-41/g17-42-network g17-41/g17-42-network
  10. vlan 1800-3799 shared physical-network=g4-15/g4-16-network g4-15/g4-16-network
  11. vlan 1800-3799 shared physical-network=g4-21/g4-22-network g4-21/g4-22-network
  12. vlan 1800-3799 shared physical-network=g4-7/g4-8-network g4-7/g4-8-network
  13. vlan 1800-3799 shared physical-network=g16-41/g16-42-network g16-41/g16-42-network
  14. vlan 1800-3799 shared physical-network=g16-7/g16-8-network g16-7/g16-8-network
  15. vlan 1800-3799 shared physical-network=g17-33/g17-34-network g17-33/g17-34-network
  16. vlan 1800-3799 shared physical-network=g19-39/g19-40-network g19-39/g19-40-network
  17. vlan 1800-3799 shared physical-network=g19-41/g19-42-network g19-41/g19-42-network
  18. vlan 1800-3799 shared physical-network=g19-43/g19-44-network g19-43/g19-44-network

rax-prod-ord1-advent (8)

  1. vxlan 1900000-1949999 shared spine1201-4.ord1
  2. vlan 4010-4010 physical-network=enrol enrol
  3. vlan 1800-3799 shared physical-network=j2-13/j2-14-network j2-13/j2-14-network
  4. vlan 1800-3799 shared physical-network=j2-15/j2-16-network j2-15/j2-16-network
  5. vlan 1800-3799 shared physical-network=j2-21/j2-22-network j2-21/j2-22-network
  6. vlan 1800-3799 shared physical-network=j2-29-2/j2-30-2-network j2-29-2/j2-30-2-network
  7. vlan 1800-3799 shared physical-network=j2-29/j2-30-network j2-29/j2-30-network
  8. vlan 1800-3799 shared physical-network=j2-3/j2-4-network j2-3/j2-4-network

rax-prod-iad3-advent (10)

  1. vxlan 2000000-2049999 shared spine404-10.iad3
  2. vlan 4010-4010 physical-network=enrol enrol
  3. vlan 1800-3799 shared physical-network=f8-7/f8-8-network f8-7/f8-8-network
  4. vlan 1800-3799 shared physical-network=f8-13/f8-14-network f8-13/f8-14-network
  5. vlan 1800-3799 shared physical-network=f8-17/f8-18-network f8-17/f8-18-network
  6. vlan 1800-3799 shared physical-network=f8-25/f8-26-network f8-25/f8-26-network
  7. vlan 1800-3799 shared physical-network=f8-41/f8-42-network f8-41/f8-42-network
  8. vlan 1800-3799 shared physical-network=f8-41-2/f8-42-2-network f8-41-2/f8-42-2-network
  9. vlan 1800-3799 shared physical-network=f8-15/f8-16-network f8-15/f8-16-network
  10. vlan 1800-3799 shared physical-network=f10-14/f10-15-network f10-14/f10-15-network

Add a NeutronSegmentRange CRD to the openstack-sync-operator and a
segment_ranges hook plus plugin package that reconciles Neutron network
segment ranges (openstack network segment range) from custom resources.

- CRD: neutron.understack.rackspace.net/v1alpha1 NeutronSegmentRange
- plugin: reconcile/create/adopt by owner-prefixed name, prune on removal
- immutable network_type/physical_network mismatches fail loudly
- wired into operator values.yaml (plugins.neutronSegmentRanges, disabled)
@cardoe

cardoe commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Dockerfile doesn't COPY segment_ranges.py into /hooks/ — this hook won't exist in the built image. Needs a COPY line like the ones for router_flavors.py/placeholder.py.

Also network_type: flat isn't valid — Neutron's segment range API only supports vlan/vxlan/gre/geneve. Drop it from the CRD enum and PHYSICAL_NETWORK_TYPES.

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.

2 participants