Dmitriy Rabotyagov 4e855db6b2 Add VPNaaS OVN support
At the moment it's possible to deploy VPNaaS for non-OVN environemnts only.
OVN implementation is slighly different and requires a standalone agent to
run on gateway hosts, where OVN router is active.

This agent spawns namespaces as used to do and talks through RPC with API.

More detailed spec on the feature can be found here [1]. There's also
configuration reference in progress of writing [2].

[1] https://opendev.org/openstack/neutron-specs/src/branch/master/specs/xena/vpnaas-ovn.rst
[2] https://review.opendev.org/c/openstack/neutron-vpnaas/+/895651
Change-Id: Idb223ee0d8187f372682aafda1b8d6fd78cb71d1

Change-Id: Iad163ac7b032a97bd49164d94490b0f0deb83d90
2024-02-20 12:37:13 +00:00

132 lines
3.0 KiB
YAML

---
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
neutron_ovs_distro_packages:
- openvswitch-common
- openvswitch-switch
neutron_ovs_service_name: openvswitch-switch
neutron_ovn_northd_service_name: ovn-central
neutron_ovn_controller_service_name: ovn-host
neutron_ovn_northd_opts: "OVN_CTL_OPTS"
neutron_ovn_northd_opts_file: "/etc/default/ovn-central"
neutron_ovn_controller_opts: "OVN_CTL_OPTS"
neutron_ovn_controller_opts_file: "/etc/default/ovn-host"
neutron_ovn_system_user_name: root
neutron_ovs_dpdk_required_packages:
- openvswitch-common
- openvswitch-switch-dpdk
- libdpdk-dev
dpdk_service_name: dpdk
vhost_socket_directory_group: "libvirt"
vhost_socket_directory_owner: "libvirt-qemu"
## APT Cache options
cache_timeout: 600
neutron_apparmor_distro_packages:
- apparmor
- apparmor-profiles
- apparmor-utils
neutron_distro_packages:
- conntrack
- dnsmasq-base
- dnsmasq-utils
- ebtables
- libxml2
- ipset
- iptables
- iputils-arping
- net-tools
- keepalived
- radvd
neutron_ovn_distro_packages:
- ovn-common
neutron_ovn_controller_distro_packages:
- ovn-host
- haproxy
neutron_ovn_northd_distro_packages:
- ovn-central
neutron_devel_distro_packages:
- git
- libsystemd-dev
- python3-httplib2
neutron_service_distro_packages:
- python3-binary-memcached
- python3-memcache
- python3-neutron
- python3-systemd
- neutron-plugin-ml2
neutron_optional_ovs_distro_packages:
- neutron-openvswitch-agent
neutron_optional_lxb_distro_packages:
- neutron-linuxbridge-agent
neutron_optional_fwaas_distro_packages:
- python3-neutron-fwaas
neutron_optional_vpnaas_distro_packages:
- neutron-vpnaas-agent
neutron_lxb_distro_packages:
- bridge-utils
neutron_vpnaas_distro_packages:
- strongswan
_neutron_driver_vpnaas: >-
{{
(neutron_plugin_type == 'ml2.ovn') | ternary(
'neutron_vpnaas.services.vpn.device_drivers.ovn_ipsec.OvnStrongSwanDriver',
'neutron_vpnaas.services.vpn.device_drivers.strongswan_ipsec.StrongSwanDriver'
)
}}
_neutron_vpnaas_service_provider: >-
{{
(neutron_plugin_type == 'ml2.ovn') | ternary(
'VPN:strongswan:neutron_vpnaas.services.vpn.service_drivers.ovn_ipsec.IPsecOvnVPNDriver:default',
'VPN:strongswan:neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default'
)
}}
neutron_metadata_agent_distro_packages:
- haproxy
neutron_remove_distro_packages:
- conntrackd
neutron_oslomsg_amqp1_distro_packages:
- libsasl2-modules
- sasl2-bin