From cc056ce7dfa22a4b286a778103609ad8f56c9917 Mon Sep 17 00:00:00 2001 From: Doug Goldstein Date: Thu, 8 May 2025 15:51:37 -0500 Subject: [PATCH] feat(neutron-understack): add L3 router example plugins These plugins serve the purpose of being able to be loaded and be used for conversations around different router backend implementations. The networking design doc references these plugins in its examples. --- components/neutron/values.yaml | 7 ++++++- .../neutron_understack/l3_router/__init__.py | 0 .../neutron_understack/l3_router/cisco_asa.py | 5 +++++ .../neutron_understack/l3_router/palo_alto.py | 5 +++++ .../neutron-understack/neutron_understack/l3_router/vrf.py | 5 +++++ 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 python/neutron-understack/neutron_understack/l3_router/__init__.py create mode 100644 python/neutron-understack/neutron_understack/l3_router/cisco_asa.py create mode 100644 python/neutron-understack/neutron_understack/l3_router/palo_alto.py create mode 100644 python/neutron-understack/neutron_understack/l3_router/vrf.py diff --git a/components/neutron/values.yaml b/components/neutron/values.yaml index bbcad8a8a..dcd77ea9f 100644 --- a/components/neutron/values.yaml +++ b/components/neutron/values.yaml @@ -83,7 +83,12 @@ conf: # add 50 to the max MTU we want of 9000 to handle Neutron's -50 for VXLAN type global_physnet_mtu: 9050 service_providers: - service_provider: "L3_ROUTER_NAT:cisco-asa:neutron_understack.l3_service_cisco_asa.CiscoAsa" + service_provider: + type: multistring + values: + - "L3_ROUTER_NAT:cisco-asa:neutron_understack.l3_router.cisco_asa.CiscoAsa" + - "L3_ROUTER_NAT:palo-alto:neutron_understack.l3_router.palo_alto.PaloAlto" + - "L3_ROUTER_NAT:vrf:neutron_understack.l3_router.vrf.Vrf" ovn: # the ovn-metadata-agent utilizes 'localport' on each hypervisor in OVS to work, since # we don't have an OVS that the baremetal nodes are plugged into we can't have this diff --git a/python/neutron-understack/neutron_understack/l3_router/__init__.py b/python/neutron-understack/neutron_understack/l3_router/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/neutron-understack/neutron_understack/l3_router/cisco_asa.py b/python/neutron-understack/neutron_understack/l3_router/cisco_asa.py new file mode 100644 index 000000000..68dbab873 --- /dev/null +++ b/python/neutron-understack/neutron_understack/l3_router/cisco_asa.py @@ -0,0 +1,5 @@ +from neutron.services.ovn_l3.service_providers.user_defined import UserDefined + + +class CiscoAsa(UserDefined): + pass diff --git a/python/neutron-understack/neutron_understack/l3_router/palo_alto.py b/python/neutron-understack/neutron_understack/l3_router/palo_alto.py new file mode 100644 index 000000000..34a4851b6 --- /dev/null +++ b/python/neutron-understack/neutron_understack/l3_router/palo_alto.py @@ -0,0 +1,5 @@ +from neutron.services.ovn_l3.service_providers.user_defined import UserDefined + + +class PaloAlto(UserDefined): + pass diff --git a/python/neutron-understack/neutron_understack/l3_router/vrf.py b/python/neutron-understack/neutron_understack/l3_router/vrf.py new file mode 100644 index 000000000..54c0a9f1b --- /dev/null +++ b/python/neutron-understack/neutron_understack/l3_router/vrf.py @@ -0,0 +1,5 @@ +from neutron.services.ovn_l3.service_providers.user_defined import UserDefined + + +class Vrf(UserDefined): + pass