Enable Neutron TaaS

This enables the Tap-as-a-Service plugin in neutron to test the
deployment support we recently added to puppet-neutron.

Depends-on: https://review.opendev.org/906016
Change-Id: I1bed97477fa737733d5b59b7de085e61494c69f9
This commit is contained in:
Takashi Kajinami 2024-01-18 11:27:50 +09:00
parent babc7a0a94
commit 94c7d321e7
5 changed files with 55 additions and 2 deletions

View File

@ -77,6 +77,7 @@ scenario](#all-in-one).
| vitrage | X | | | | | |
| watcher | | | | X | | |
| vpnaas | | | | X | | |
| taas | | | | X | | |
| bgpvpn-api | | | | X | | |
| bgp-dr | | | | X | | |
| redis | X | X | X | | | |

View File

@ -28,14 +28,16 @@ if $facts['os']['name'] == 'Ubuntu' {
$l2gw_enabled = false
# FIXME(ykarel) Disable bgp_dragent until Ubuntu python3 stein(with stein packages) jobs are ready
$bgp_dragent_enabled = false
# TODO(tkajinam): Enable this along with the other plugins
# TODO(tkajinam): Enable these along with the other plugins
$vpnaas_enabled = false
$taas_enabled = false
} else {
$ipv6 = true
$bgpvpn_enabled = true
$l2gw_enabled = true
$bgp_dragent_enabled = true
$vpnaas_enabled = true
$taas_enabled = true
}
include openstack_integration
@ -57,6 +59,7 @@ class { 'openstack_integration::glance':
}
class { 'openstack_integration::neutron':
vpnaas_enabled => $vpnaas_enabled,
taas_enabled => $taas_enabled,
bgpvpn_enabled => $bgpvpn_enabled,
l2gw_enabled => $l2gw_enabled,
bgp_dragent_enabled => $bgp_dragent_enabled,
@ -87,6 +90,7 @@ class { 'openstack_integration::tempest':
horizon => true,
watcher => true,
vpnaas => $vpnaas_enabled,
taas => $taas_enabled,
bgpvpn => $bgpvpn_enabled,
l2gw => $l2gw_enabled,
l2gw_switch => 'cell08-5930-01::FortyGigE1/0/1|100',

View File

@ -13,6 +13,10 @@
# (optional) Flag to enable VPNaaS.
# Defaults to false.
#
# [*taas_enabled*]
# (optional) Flag to enable TAPaaS.
# Defaults to false.
#
# [*bgpvpn_enabled*]
# (optional) Flag to enable BGPVPN API extensions.
# Defaults to false.
@ -37,6 +41,7 @@ class openstack_integration::neutron (
$driver = 'openvswitch',
$metering_enabled = false,
$vpnaas_enabled = false,
$taas_enabled = false,
$bgpvpn_enabled = false,
$l2gw_enabled = false,
$bgp_dragent_enabled = false,
@ -51,6 +56,10 @@ class openstack_integration::neutron (
fail('Metering agent is not supported when ovn mechanism driver is used.')
}
if $driver != 'openvswitch' and $taas_enabled {
fail('TaaS is supported only when ovs mechanism driver is used.')
}
if $::openstack_integration::config::ssl {
openstack_integration::ssl_key { 'neutron':
notify => Service['neutron-server'],
@ -142,6 +151,10 @@ class openstack_integration::neutron (
true => 'vpnaas',
default => undef,
}
$taas_plugin = $taas_enabled ? {
true => 'taas',
default => undef,
}
$bgpvpn_plugin = $bgpvpn_enabled ? {
true => 'bgpvpn',
default => undef,
@ -175,6 +188,7 @@ class openstack_integration::neutron (
'router', 'qos', 'trunk',
$metering_plugin,
$vpaaas_plugin,
$taas_plugin,
$bgpvpn_plugin,
$l2gw_plugin,
$bgp_dr_plugin
@ -286,6 +300,11 @@ class openstack_integration::neutron (
case $driver {
'openvswitch': {
$agent_extensions = $taas_enabled ? {
true => ['taas'],
default => $facts['os_service_default'],
}
class { 'neutron::agents::ml2::ovs':
local_ip => $::openstack_integration::config::host,
tunnel_types => ['vxlan'],
@ -293,6 +312,7 @@ class openstack_integration::neutron (
manage_vswitch => false,
firewall_driver => 'iptables_hybrid',
of_listen_address => $::openstack_integration::config::host,
extensions => $agent_extensions,
}
}
'ovn': {
@ -404,6 +424,21 @@ class openstack_integration::neutron (
vpn_device_driver => $vpn_device_driver,
}
}
if $taas_enabled {
class { 'neutron::agents::taas': }
class { 'neutron::services::taas': }
if $facts['os']['family'] == 'RedHat' {
# NOTE(tkajinam): Remove this once bz 2259076 is fixed
# https://bugzilla.redhat.com/show_bug.cgi?id=2259076
Exec { 'fix-taas-synlink':
command => 'mv /usr/share/neutron/server/taas_plugin.ini /usr/share/neutron/server/taas_plugin.conf',
unless => 'test -e /usr/share/neutron/server/taas_plugin.conf',
path => ['/bin', '/usr/bin'],
}
Anchor['neutron::config::begin'] -> Anchor['neutron::config::end']
}
}
}
if $baremetal_enabled {

View File

@ -112,6 +112,10 @@
# (optional) Define if Neutron VPNaaS needs to be tested.
# Default to false.
#
# [*taas*]
# (optional) Define if Neutron TaaS needs to be tested.
# Default to false.
#
# [*watcher*]
# (optional) Define if Watcher needs to be tested.
# Default to false.
@ -185,6 +189,7 @@ class openstack_integration::tempest (
$watcher = false,
$vitrage = false,
$vpnaas = false,
$taas = false,
$zaqar = false,
$reseller_admin_role = 'ResellerAdmin',
$attach_encrypted_volume = false,
@ -264,6 +269,10 @@ class openstack_integration::tempest (
true => ['vpnaas'],
default => [],
}
$neutron_taas_extensions = $taas ? {
true => ['taas', 'taas-vlan-filter'],
default => [],
}
$neutron_api_extensions_real = sort(
$neutron_base_extensions +
@ -272,7 +281,8 @@ class openstack_integration::tempest (
$neutron_metering_extensions +
$neutron_l2gw_extensions +
$neutron_bgpvpn_extensions +
$neutron_vpnaas_extensions
$neutron_vpnaas_extensions +
$neutron_taas_extensions
)
}

View File

@ -324,6 +324,9 @@ echo "TestEncryptedCinderVolumes" >> /tmp/openstack/tempest/test-include-list.tx
# Mistral
echo "test_create_and_delete_workflow" >> /tmp/openstack/tempest/test-include-list.txt
# TaaS
echo "test_create_tap_service_and_flow" >> /tmp/openstack/tempest/test-include-list.txt
# BGPVPN
echo "test_create_bgpvpn" >> /tmp/openstack/tempest/test-include-list.txt