Browse Source

Switch default neutron ML2 mechanism driver to OVN

This patch switches the default mechanism driver for neutron from
openvswitch to OVN.

It will also flip scenario007 job to run with ML2/OVS.

Depends-On: I74ffb6b7f912e1fce6ce428cd23a7283c91b8b96
Depends-On: I99ba2fd6a85b4895b577719a7541b7cbf1fdb85c
Depends-On: Ib60de9b0df451273d1d81ba049b46b5214e09080
Depends-On: Iaed7304adf40a87a0f14b7a95339f8416140e947
Change-Id: Iab52cdf5d0f7a392c4f17c884493b5c5beb1d89f
Co-Authored-By: Kamil Sambor <ksambor@redhat.com>
changes/56/593056/78
Daniel Alvarez 3 years ago
committed by Kamil Sambor
parent
commit
6053eb1964
32 changed files with 612 additions and 94 deletions
  1. +1
    -1
      README.rst
  2. +4
    -4
      ci/environments/multinode-containers.yaml
  3. +1
    -1
      ci/environments/network/multiple-nics-ipv6/network-environment.yaml
  4. +189
    -0
      ci/environments/network/multiple-nics-ipv6/nic-configs/compute-dvr.yaml
  5. +1
    -1
      ci/environments/network/multiple-nics/network-environment.yaml
  6. +188
    -0
      ci/environments/network/multiple-nics/nic-configs/compute-dvr.yaml
  7. +6
    -6
      ci/environments/ovb-ha.yaml
  8. +3
    -4
      ci/environments/scenario001-multinode-containers.yaml
  9. +3
    -4
      ci/environments/scenario002-multinode-containers.yaml
  10. +3
    -4
      ci/environments/scenario003-multinode-containers.yaml
  11. +3
    -4
      ci/environments/scenario004-multinode-containers.yaml
  12. +3
    -4
      ci/environments/scenario006-multinode-containers.yaml
  13. +26
    -18
      ci/environments/scenario007-multinode-containers.yaml
  14. +4
    -0
      ci/environments/scenario008-multinode-containers.yaml
  15. +3
    -4
      ci/environments/scenario010-multinode-containers.yaml
  16. +4
    -5
      ci/environments/scenario012-multinode-containers.yaml
  17. +1
    -1
      deployment/container-image-prepare/container-image-prepare-baremetal-ansible.j2.yaml
  18. +1
    -1
      deployment/kernel/kernel-baremetal-puppet.yaml
  19. +9
    -4
      deployment/neutron/neutron-api-container-puppet.yaml
  20. +8
    -3
      deployment/neutron/neutron-ovs-agent-container-puppet.yaml
  21. +24
    -1
      environments/neutron-ovs-dvr.yaml
  22. +25
    -4
      environments/services/neutron-ovs-dvr.yaml
  23. +35
    -0
      environments/services/neutron-ovs.yaml
  24. +1
    -0
      environments/standalone/standalone-tripleo.yaml
  25. +9
    -0
      environments/undercloud.yaml
  26. +8
    -0
      environments/updates/update-from-ml2-ovs-from-rocky.yaml
  27. +13
    -11
      overcloud-resource-registry-puppet.j2.yaml
  28. +1
    -1
      puppet/services/neutron-base.yaml
  29. +12
    -4
      puppet/services/neutron-plugin-ml2-ovn.yaml
  30. +4
    -4
      puppet/services/neutron-plugin-ml2.yaml
  31. +16
    -0
      releasenotes/notes/switch-to-default-ovn-driver-ab4ae9d348158d61.yaml
  32. +3
    -0
      sample-env-generator/standalone.yaml

+ 1
- 1
README.rst View File

@ -82,7 +82,7 @@ and should be executed according to the following table:
+----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| mysql | X | X | X | X | X | X | X | | X | X | X |
+----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| neutron | | ovs | ovs | ovs | ovs | ovs | ovn | | ovs | ovs | ovs |
| neutron | | ovn | ovn | ovn | ovn | ovn | ovs | | ovn | ovn | ovn |
+----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| neutron-bgpvpn | | | | | wip | | | | | | |
+----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+


+ 4
- 4
ci/environments/multinode-containers.yaml View File

@ -4,6 +4,7 @@ resource_registry:
# Some infra instances don't pass the ping test but are otherwise working.
# Since the OVB jobs also test this functionality we can shut it off here.
OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml
OS::TripleO::Services::OVNDBs: ../../docker/services/ovn-dbs.yaml
parameter_defaults:
ControllerServices:
@ -16,12 +17,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy


+ 1
- 1
ci/environments/network/multiple-nics-ipv6/network-environment.yaml View File

@ -1,7 +1,7 @@
resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: nic-configs/cinder-storage.yaml
OS::TripleO::Compute::Net::SoftwareConfig: nic-configs/compute.yaml
OS::TripleO::Compute::Net::SoftwareConfig: nic-configs/compute-dvr.yaml
OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: nic-configs/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: nic-configs/ceph-storage.yaml


+ 189
- 0
ci/environments/network/multiple-nics-ipv6/nic-configs/compute-dvr.yaml View File

@ -0,0 +1,189 @@
heat_template_version: rocky
parameters:
ControlPlaneIp:
default: ''
description: IP address/subnet on the ctlplane network
type: string
InternalApiIpSubnet:
default: ''
description: IP address/subnet on the internal_api network
type: string
InternalApiInterfaceRoutes:
default: []
description: >
Routes for the internal_api network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
InternalApiMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the
InternalApi network.
type: number
StorageIpSubnet:
default: ''
description: IP address/subnet on the storage network
type: string
StorageInterfaceRoutes:
default: []
description: >
Routes for the storage network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
StorageMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the
Storage network.
type: number
TenantIpSubnet:
default: ''
description: IP address/subnet on the tenant network
type: string
TenantInterfaceRoutes:
default: []
description: >
Routes for the tenant network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
TenantMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the
Tenant network.
type: number
BondInterfaceOvsOptions:
default: 'bond_mode=active-backup'
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
type: string
InternalApiNetworkVlanID:
default: 20
description: Vlan ID for the internal_api network traffic.
type: number
StorageNetworkVlanID:
default: 30
description: Vlan ID for the storage network traffic.
type: number
TenantNetworkVlanID:
default: 50
description: Vlan ID for the tenant network traffic.
type: number
ControlPlaneSubnetCidr:
default: ''
description: >
The subnet CIDR of the control plane network. (The parameter is
automatically resolved from the ctlplane subnet's cidr attribute.)
type: string
ControlPlaneDefaultRoute:
default: ''
description: The default route of the control plane network. (The parameter
is automatically resolved from the ctlplane subnet's gateway_ip attribute.)
type: string
ControlPlaneStaticRoutes:
default: []
description: >
Routes for the ctlplane network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
ControlPlaneMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the network.
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number
DnsServers: # Override this via parameter_defaults
default: []
description: >
DNS servers to use for the Overcloud (2 max for some implementations).
If not set the nameservers configured in the ctlplane subnet's
dns_nameservers attribute will be used.
type: comma_delimited_list
EC2MetadataIp:
default: ''
description: The IP address of the EC2 metadata server. (The parameter
is automatically resolved from the ctlplane subnet's host_routes attribute.)
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
description: default route for the external network
type: string
resources:
OsNetConfigImpl:
properties:
config:
str_replace:
params:
$network_config:
network_config:
- type: interface
name: nic1
mtu: 1350
use_dhcp: false
addresses:
- ip_netmask:
list_join:
- /
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
- default: true
ip_netmask: 0.0.0.0/0
next_hop: {get_param: ControlPlaneDefaultRoute}
- ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
- type: interface
name: nic3
mtu: 1350
use_dhcp: false
addresses:
- ip_netmask: {get_param: InternalApiIpSubnet}
- type: interface
name: nic4
mtu: 1350
use_dhcp: false
addresses:
- ip_netmask: {get_param: StorageIpSubnet}
- type: ovs_bridge
name: br-tenant
dns_servers: {get_param: DnsServers}
use_dhcp: false
addresses:
- ip_netmask: {get_param: TenantIpSubnet}
members:
- type: interface
name: nic6
mtu: 1350
primary: true
- type: ovs_bridge
name: br-ex
dns_servers: {get_param: DnsServers}
use_dhcp: false
routes:
- ip_netmask: 0.0.0.0/0
next_hop: {get_param: ExternalInterfaceDefaultRoute}
members:
- type: interface
name: nic2
mtu: 1350
primary: true
template:
get_file: ../../../../../network/scripts/run-os-net-config.sh
group: script
type: OS::Heat::SoftwareConfig
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}

+ 1
- 1
ci/environments/network/multiple-nics/network-environment.yaml View File

@ -1,7 +1,7 @@
resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: nic-configs/cinder-storage.yaml
OS::TripleO::Compute::Net::SoftwareConfig: nic-configs/compute.yaml
OS::TripleO::Compute::Net::SoftwareConfig: nic-configs/compute-dvr.yaml
OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: nic-configs/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: nic-configs/ceph-storage.yaml


+ 188
- 0
ci/environments/network/multiple-nics/nic-configs/compute-dvr.yaml View File

@ -0,0 +1,188 @@
heat_template_version: rocky
parameters:
ControlPlaneIp:
default: ''
description: IP address/subnet on the ctlplane network
type: string
InternalApiIpSubnet:
default: ''
description: IP address/subnet on the internal_api network
type: string
InternalApiInterfaceRoutes:
default: []
description: >
Routes for the internal_api network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
InternalApiMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the
InternalApi network.
type: number
StorageIpSubnet:
default: ''
description: IP address/subnet on the storage network
type: string
StorageInterfaceRoutes:
default: []
description: >
Routes for the storage network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
StorageMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the
Storage network.
type: number
TenantIpSubnet:
default: ''
description: IP address/subnet on the tenant network
type: string
TenantInterfaceRoutes:
default: []
description: >
Routes for the tenant network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
TenantMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the
Tenant network.
type: number
BondInterfaceOvsOptions:
default: 'bond_mode=active-backup'
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
type: string
InternalApiNetworkVlanID:
default: 20
description: Vlan ID for the internal_api network traffic.
type: number
StorageNetworkVlanID:
default: 30
description: Vlan ID for the storage network traffic.
type: number
TenantNetworkVlanID:
default: 50
description: Vlan ID for the tenant network traffic.
type: number
ControlPlaneSubnetCidr:
default: ''
description: >
The subnet CIDR of the control plane network. (The parameter is
automatically resolved from the ctlplane subnet's cidr attribute.)
type: string
ControlPlaneDefaultRoute:
default: ''
description: The default route of the control plane network. (The parameter
is automatically resolved from the ctlplane subnet's gateway_ip attribute.)
type: string
ControlPlaneStaticRoutes:
default: []
description: >
Routes for the ctlplane network traffic.
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json
ControlPlaneMtu:
default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is
guaranteed to pass through the data path of the segments in the network.
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number
DnsServers: # Override this via parameter_defaults
default: []
description: >
DNS servers to use for the Overcloud (2 max for some implementations).
If not set the nameservers configured in the ctlplane subnet's
dns_nameservers attribute will be used.
type: comma_delimited_list
EC2MetadataIp:
default: ''
description: The IP address of the EC2 metadata server. (The parameter
is automatically resolved from the ctlplane subnet's host_routes attribute.)
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
description: default route for the external network
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
str_replace:
template:
get_file: ../../../../../network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
mtu: 1350
use_dhcp: false
addresses:
- ip_netmask:
list_join:
- /
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
- ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
- default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
- type: ovs_bridge
name: br-ex
dns_servers: {get_param: DnsServers}
use_dhcp: false
routes:
- ip_netmask: 0.0.0.0/0
next_hop: {get_param: ExternalInterfaceDefaultRoute}
members:
- type: interface
name: nic2
mtu: 1350
primary: true
- type: interface
name: nic3
mtu: 1350
use_dhcp: false
addresses:
- ip_netmask: {get_param: InternalApiIpSubnet}
- type: interface
name: nic4
mtu: 1350
use_dhcp: false
addresses:
- ip_netmask: {get_param: StorageIpSubnet}
- type: ovs_bridge
name: br-tenant
dns_servers: {get_param: DnsServers}
use_dhcp: false
addresses:
- ip_netmask: {get_param: TenantIpSubnet}
members:
- type: interface
name: nic6
mtu: 1350
primary: true
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}

+ 6
- 6
ci/environments/ovb-ha.yaml View File

@ -16,10 +16,6 @@ parameter_defaults:
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronApi
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::NovaApi
- OS::TripleO::Services::NovaConductor
- OS::TripleO::Services::NovaMetadata
@ -37,10 +33,11 @@ parameter_defaults:
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNDBs
ComputeServices:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::ComputeNeutronCorePlugin
- OS::TripleO::Services::ComputeNeutronOvsAgent
- OS::TripleO::Services::Docker
- OS::TripleO::Services::Ipsec
- OS::TripleO::Services::Iscsid
@ -54,6 +51,9 @@ parameter_defaults:
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
ControllerExtraConfig:
nova::compute::libvirt::services::libvirt_virt_type: qemu
nova::compute::libvirt::libvirt_virt_type: qemu


+ 3
- 4
ci/environments/scenario001-multinode-containers.yaml View File

@ -44,12 +44,11 @@ parameter_defaults:
- OS::TripleO::Services::HeatEngine
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy


+ 3
- 4
ci/environments/scenario002-multinode-containers.yaml View File

@ -36,12 +36,11 @@ parameter_defaults:
- OS::TripleO::Services::HeatEngine
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy


+ 3
- 4
ci/environments/scenario003-multinode-containers.yaml View File

@ -35,12 +35,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy


+ 3
- 4
ci/environments/scenario004-multinode-containers.yaml View File

@ -51,12 +51,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy


+ 3
- 4
ci/environments/scenario006-multinode-containers.yaml View File

@ -19,12 +19,11 @@ parameter_defaults:
- OS::TripleO::Services::IronicPxe
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy


+ 26
- 18
ci/environments/scenario007-multinode-containers.yaml View File

@ -1,10 +1,16 @@
resource_registry:
OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode-os-net-config.yaml
OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode-os-net-config.yaml
OS::TripleO::Docker::NeutronMl2PluginBase: ../../puppet/services/neutron-plugin-ml2-ovn.yaml
OS::TripleO::Services::OVNController: ../../docker/services/ovn-controller.yaml
OS::TripleO::Services::OVNDBs: ../../docker/services/ovn-dbs.yaml
OS::TripleO::Services::OVNMetadataAgent: ../../docker/services/ovn-metadata.yaml
OS::TripleO::Docker::NeutronMl2PluginBase: ../../puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronServer: ../../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronApi: ../../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronCorePlugin: ../../docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronMetadataAgent: ../../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::Services::NeutronOvsAgent: ../../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronDhcpAgent: ../../deployment/neutron/neutron-dhcp-container-puppet.yaml
OS::TripleO::Services::NeutronL3Agent: ../../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
# Some infra instances don't pass the ping test but are otherwise working.
# Since the OVB jobs also test this functionality we can shut it off here.
OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml
@ -12,6 +18,10 @@ resource_registry:
OS::TripleO::Services::SwiftProxy: OS::Heat::None
OS::TripleO::Services::SwiftStorage: OS::Heat::None
OS::TripleO::Services::SwiftRingBuilder: OS::Heat::None
# Disable OVN services
OS::TripleO::Services::OVNController: OS::Heat::None
OS::TripleO::Services::OVNDBs: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None
# TODO(mandre) fix the tacker service - https://bugs.launchpad.net/tripleo/+bug/1714270
# OS::TripleO::Services::Tacker: ../../docker/services/tacker.yaml
# TODO tacker still wip https://bugs.launchpad.net/tripleo/+bug/1714270
@ -41,9 +51,10 @@ parameter_defaults:
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy
@ -72,17 +83,14 @@ parameter_defaults:
nova::compute::libvirt::libvirt_virt_type: qemu
# Required for Centos 7.3 and Qemu 2.6.0
nova::compute::libvirt::libvirt_cpu_mode: 'none'
# For OVN.
NeutronMechanismDrivers: ovn
OVNVifType: ovs
OVNNeutronSyncMode: log
OVNQosDriver: ovn-qos
OVNTunnelEncapType: geneve
NeutronTypeDrivers: 'geneve,vlan,flat,vxlan'
NeutronNetworkType: 'geneve'
NeutronServicePlugins: 'qos,networking_ovn.l3.l3_ovn.OVNL3RouterPlugin'
NeutronVniRanges: ['1:65536', ]
OVNBridgeMappings: 'datacentre:br-ex'
# For ML2/OVS
NeutronMechanismDrivers: 'openvswitch'
NeutronTypeDrivers: 'vxlan,vlan,flat,gre'
NeutronNetworkType: 'vxlan'
NeutronServicePlugins: 'router,qos,segments,trunk'
NeutronVniRanges: ['1:4094', ]
NeutronEnableDVR: false
KernelIpNonLocalBind: 0
Debug: true
DockerPuppetDebug: True
BannerText: |


+ 4
- 0
ci/environments/scenario008-multinode-containers.yaml View File

@ -4,6 +4,10 @@ resource_registry:
OS::TripleO::Services::OpenDaylightApi: ../../docker/services/opendaylight-api.yaml
OS::TripleO::Services::OpenDaylightOvs: ../../puppet/services/opendaylight-ovs.yaml
OS::TripleO::Docker::NeutronMl2PluginBase: ../../puppet/services/neutron-plugin-ml2-odl.yaml
# Disable OVN services
OS::TripleO::Services::OVNController: OS::Heat::None
OS::TripleO::Services::OVNDBs: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None
parameter_defaults:
ControllerServices:


+ 3
- 4
ci/environments/scenario010-multinode-containers.yaml View File

@ -39,12 +39,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OctaviaApi
- OS::TripleO::Services::OctaviaDeploymentConfig
- OS::TripleO::Services::OctaviaHealthManager


+ 4
- 5
ci/environments/scenario012-multinode-containers.yaml View File

@ -32,12 +32,11 @@ parameter_defaults:
- OS::TripleO::Services::IronicPxe
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::OVNDBs
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy
@ -72,7 +71,7 @@ parameter_defaults:
SwiftCeilometerPipelineEnabled: false
IronicCleaningDiskErase: 'metadata'
NovaSchedulerDiscoverHostsInCellsInterval: 15
NeutronMechanismDrivers: openvswitch,ansible
NeutronMechanismDrivers: ovn,ansible
NeutronNetworkType: vlan
NeutronTypeDrivers: local,vxlan,vlan,flat
IronicDefaultNetworkInterface: neutron


+ 1
- 1
deployment/container-image-prepare/container-image-prepare-baremetal-ansible.j2.yaml View File

@ -48,7 +48,7 @@ parameters:
default: []
NeutronMechanismDrivers:
default: 'openvswitch'
default: 'ovn'
description: |
The mechanism drivers for the Neutron tenant network.
type: comma_delimited_list


+ 1
- 1
deployment/kernel/kernel-baremetal-puppet.yaml View File

@ -43,7 +43,7 @@ parameters:
description: Configures net.ipv4.ip_forward key
type: number
KernelIpNonLocalBind:
default: 0
default: 1
description: Configures net.ipv{4,6}.ip_nonlocal_bind key
type: number
NeighbourGcThreshold1:


+ 9
- 4
deployment/neutron/neutron-api-container-puppet.yaml View File

@ -90,8 +90,8 @@ parameters:
hidden: true
NeutronEnableDVR:
description: Enable Neutron DVR.
default: false
type: boolean
default: ''
type: string
KeystoneRegion:
type: string
default: 'regionOne'
@ -150,6 +150,7 @@ conditions:
neutron_rpc_workers_unset: {equals : [{get_param: NeutronRpcWorkers}, '']}
neutron_ovs_int_br_unset: {equals : [{get_param: NeutronOvsIntegrationBridge}, '']}
internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]}
neutron_dvr_unset: {equals : [{get_param: NeutronEnableDVR}, '']}
resources:
@ -228,8 +229,6 @@ outputs:
dport:
- 9696
- 13696
neutron::server::router_distributed: {get_param: NeutronEnableDVR}
neutron::server::enable_dvr: {get_param: NeutronEnableDVR}
# NOTE: bind IP is found in hiera replacing the network name with the local node IP
# for the given network; replacement examples (eg. for internal_api):
# internal_api -> IP
@ -261,6 +260,12 @@ outputs:
params:
$NETWORK: {get_param: [ServiceNetMap, NeutronApiNetwork]}
tripleo::profile::base::neutron::server::l3_ha_override: {get_param: NeutronL3HA}
-
if:
- neutron_dvr_unset
- {}
- neutron::server::router_distributed: {get_param: NeutronEnableDVR}
neutron::server::enable_dvr: {get_param: NeutronEnableDVR}
-
if:
- neutron_workers_unset


+ 8
- 3
deployment/neutron/neutron-ovs-agent-container-puppet.yaml View File

@ -83,9 +83,9 @@ parameters:
Comma-separated list of extensions enabled for the Neutron agents.
type: comma_delimited_list
NeutronEnableDVR:
default: False
default: ''
description: Enable Neutron DVR.
type: boolean
type: string
NeutronEnableARPResponder:
default: false
description: |
@ -123,6 +123,7 @@ parameters:
conditions:
no_firewall_driver: {equals : [{get_param: NeutronOVSFirewallDriver}, '']}
docker_puppet_mount_host: {equals: [{get_param: DockerPuppetMountHostPuppet}, true]}
neutron_dvr_unset: {equals : [{get_param: NeutronEnableDVR}, '']}
resources:
@ -172,7 +173,6 @@ outputs:
- get_attr: [RoleParametersValue, value]
- get_attr: [NeutronLogging, config_settings]
- neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
neutron::agents::ml2::ovs::arp_responder: {get_param: NeutronEnableARPResponder}
neutron::agents::ml2::ovs::tunnel_types: {get_param: NeutronTunnelTypes}
neutron::agents::ml2::ovs::extensions: {get_param: NeutronAgentExtensions}
@ -195,6 +195,11 @@ outputs:
dport: 4789
'136 neutron gre networks':
proto: 'gre'
-
if:
- neutron_dvr_unset
- {}
- neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
-
if:
- no_firewall_driver


+ 24
- 1
environments/neutron-ovs-dvr.yaml View File

@ -2,6 +2,19 @@
# This works by configuring L3 and Metadata agents on the
# compute nodes.
resource_registry:
# Default Neutron ML2 puppet plugin to use when NeutronCorePlugin is set to ML2
# FIXME(bogdando): can not be switched yet due to puppet-base issues
# see https://review.openstack.org/#/c/563443
OS::TripleO::Docker::NeutronMl2PluginBase: ../puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronServer: ../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronApi: ../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronCorePlugin: ../docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronMetadataAgent: ../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::Services::NeutronOvsAgent: ../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronDhcpAgent: ../deployment/neutron/neutron-dhcp-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronL3Agent: ../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronL3Agent: ../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronMetadataAgent: ../deployment/neutron/neutron-metadata-container-puppet.yaml
@ -9,12 +22,22 @@ resource_registry:
# bridge to be connected to a physical network.
OS::TripleO::Compute::Net::SoftwareConfig: ../net-config-bridge.yaml
parameter_defaults:
# Disable OVN services
OS::TripleO::Services::OVNController: OS::Heat::None
OS::TripleO::Services::OVNDBs: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None
parameter_defaults:
# DVR requires that the L2 population feature is enabled
NeutronMechanismDrivers: ['openvswitch', 'l2population']
NeutronEnableL2Pop: 'True'
NeutronTypeDrivers: 'vxlan,vlan,flat,gre'
NeutronNetworkType: 'vxlan'
NeutronServicePlugins: 'router,qos,segments,trunk'
NeutronVniRanges: ['1:4094', ]
KernelIpNonLocalBind: 0
# Setting NeutronEnableDVR enables distributed routing support in the
# ML2 plugin and agents that support this feature
NeutronEnableDVR: true


+ 25
- 4
environments/services/neutron-ovs-dvr.yaml View File

@ -1,18 +1,39 @@
# A Heat environment file that enables DVR in the overcloud. Used with Compute
# DVR role. Note that the network configuration is consistent with the default
# tripleo network templates so some customization is likely required for
# production deployments.
# A Heat environment file that deploys ML2/OVS in the overcloud.
resource_registry:
# Default Neutron ML2 puppet plugin to use when NeutronCorePlugin is set to ML2
# FIXME(bogdando): can not be switched yet due to puppet-base issues
# see https://review.openstack.org/#/c/563443
OS::TripleO::Docker::NeutronMl2PluginBase: ../../puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronServer: ../../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronApi: ../../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronCorePlugin: ../../docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronMetadataAgent: ../../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::Services::NeutronOvsAgent: ../../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronDhcpAgent: ../../deployment/neutron/neutron-dhcp-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronL3Agent: ../../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronL3Agent: ../../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronMetadataAgent: ../../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::ComputeDVR::Net::SoftwareConfig: ../../net-config-bridge.yaml
# Disable OVN services
OS::TripleO::Services::OVNController: OS::Heat::None
OS::TripleO::Services::OVNDBs: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None
parameter_defaults:
# DVR requires that the L2 population feature is enabled
NeutronMechanismDrivers: ['openvswitch', 'l2population']
NeutronEnableL2Pop: 'True'
NeutronTypeDrivers: 'vxlan,vlan,flat,gre'
NeutronNetworkType: 'vxlan'
NeutronServicePlugins: 'router,qos,segments,trunk'
NeutronVniRanges: ['1:4094', ]
KernelIpNonLocalBind: 0
# Setting NeutronEnableDVR enables distributed routing support in the
# ML2 plugin and agents that support this feature
NeutronEnableDVR: true


+ 35
- 0
environments/services/neutron-ovs.yaml View File

@ -0,0 +1,35 @@
# A Heat environment file that enables DVR in the overcloud. Used with Compute
# DVR role. Note that the network configuration is consistent with the default
# tripleo network templates so some customization is likely required for
# production deployments.
resource_registry:
# Default Neutron ML2 puppet plugin to use when NeutronCorePlugin is set to ML2
# FIXME(bogdando): can not be switched yet due to puppet-base issues
# see https://review.openstack.org/#/c/563443
OS::TripleO::Docker::NeutronMl2PluginBase: ../../puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronServer: ../../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronApi: ../../deployment/neutron/neutron-api-container-puppet.yaml
OS::TripleO::Services::NeutronCorePlugin: ../../docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronMetadataAgent: ../../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::Services::NeutronOvsAgent: ../../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronDhcpAgent: ../../deployment/neutron/neutron-dhcp-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronL3Agent: ../../deployment/neutron/neutron-l3-container-puppet.yaml
# Disable OVN services
OS::TripleO::Services::OVNController: OS::Heat::None
OS::TripleO::Services::OVNDBs: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None
parameter_defaults:
NeutronMechanismDrivers: ['openvswitch']
NeutronTypeDrivers: 'vxlan,vlan,flat,gre'
NeutronNetworkType: 'vxlan'
NeutronServicePlugins: 'router,qos,segments,trunk'
NeutronVniRanges: ['1:4094', ]
KernelIpNonLocalBind: 0
NeutronEnableDVR: false

+ 1
- 0
environments/standalone/standalone-tripleo.yaml View File

@ -111,6 +111,7 @@ resource_registry:
OS::TripleO::Services::MistralEngine: OS::Heat::None
OS::TripleO::Services::MistralEventEngine: OS::Heat::None
OS::TripleO::Services::MistralExecutor: OS::Heat::None
OS::TripleO::Services::OVNDBs: ../../docker/services/ovn-dbs.yaml
OS::TripleO::Services::OpenStackClients: ../../puppet/services/openstack-clients.yaml
OS::TripleO::Services::PankoApi: OS::Heat::None
OS::TripleO::Services::Podman: ../../deployment/podman/podman-baremetal-ansible.yaml


+ 9
- 0
environments/undercloud.yaml View File

@ -8,6 +8,14 @@ resource_registry:
# Allows us to control the external VIP for Undercloud SSL
OS::TripleO::Network::Ports::ExternalVipPort: ../network/ports/external_from_pool.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronMetadataAgent: ../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::Services::NeutronOvsAgent: ../deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronDhcpAgent: ../deployment/neutron/neutron-dhcp-container-puppet.yaml
OS::TripleO::Services::NeutronL3Agent: ../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::NeutronCorePlugin: ../docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Docker::NeutronMl2PluginBase: ../puppet/services/neutron-plugin-ml2.yaml
# We managed this in instack-undercloud, so we need to manage it here.
OS::TripleO::Services::SELinux: ../deployment/selinux/selinux-baremetal-puppet.yaml
OS::TripleO::Services::OpenStackClients: ../puppet/services/openstack-clients.yaml
@ -124,6 +132,7 @@ parameter_defaults:
NeutronTunnelIdRanges: '20:100'
NeutronTypeDrivers: ['local','flat','vlan','gre','vxlan']
NeutronVniRanges: '10:100'
NeutronEnableDVR: false
NeutronPortQuota: '-1'
SwiftCorsAllowedOrigin: '*'
SwiftReplicas: 1


+ 8
- 0
environments/updates/update-from-ml2-ovs-from-rocky.yaml View File

@ -0,0 +1,8 @@
# This environment file provides default previous values for ml2/ovs
parameter_defaults:
OVNQosDriver: NULL
NeutronMechanismDrivers: 'openvswitch'
NeutronTypeDrivers: "vxlan,vlan,flat,gre"
NeutronVniRanges: ["1:65536", ]
NeutronNetworkType: 'vxlan'

+ 13
- 11
overcloud-resource-registry-puppet.j2.yaml View File

@ -134,14 +134,14 @@ resource_registry:
OS::TripleO::Services::NeutronBgpVpnApi: OS::Heat::None
OS::TripleO::Services::NeutronBgpVpnBagpipe: OS::Heat::None
OS::TripleO::Services::NeutronSfcApi: OS::Heat::None
OS::TripleO::Services::NeutronDhcpAgent: deployment/neutron/neutron-dhcp-container-puppet.yaml
OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
OS::TripleO::Services::NeutronL2gwApi: OS::Heat::None
OS::TripleO::Services::NeutronL3Agent: deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronL2gwAgent: OS::Heat::None
OS::TripleO::Services::NeutronLbaasv2Agent: OS::Heat::None
OS::TripleO::Services::NeutronLbaasv2Api: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: docker/services/ovn-metadata.yaml
# FIXME(shardy) the duplicate NeutronServer line can be removed when we've updated
# the multinode job ControllerServices after this patch merges
OS::TripleO::Services::NeutronServer: deployment/neutron/neutron-api-container-puppet.yaml
@ -149,25 +149,26 @@ resource_registry:
OS::TripleO::Services::NeutronCorePlugin: docker/services/neutron-plugin-ml2.yaml
# can be the same as NeutronCorePlugin but some vendors install different
# things where VMs run
OS::TripleO::Services::ComputeNeutronCorePlugin: docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
OS::TripleO::Services::ComputeNeutronCorePluginNuage: puppet/services/neutron-compute-plugin-nuage.yaml
# Neutron Core Plugin Vendors (these typically override NeutronCorePlugin)
OS::TripleO::Services::NeutronCorePluginML2OVN: puppet/services/neutron-plugin-ml2-ovn.yaml
OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.yaml
OS::TripleO::Services::NeutronCorePluginNuage: puppet/services/neutron-plugin-nuage.yaml
OS::TripleO::Services::NeutronCorePluginML2Nuage: puppet/services/neutron-plugin-ml2-nuage.yaml
OS::TripleO::Services::NeutronCorePluginNSX: docker/services/neutron-plugin-nsx.yaml
OS::TripleO::Services::OVNDBs: OS::Heat::None
OS::TripleO::Services::OVNController: OS::Heat::None
OS::TripleO::Services::NeutronCorePluginNSX: puppet/services/neutron-plugin-nsx.yaml
OS::TripleO::Services::OVNDBs: docker/services/pacemaker/ovn-dbs.yaml
OS::TripleO::Services::OVNController: docker/services/ovn-controller.yaml
OS::TripleO::Services::NeutronCorePluginMLNXSDN: puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml
OS::TripleO::Services::NeutronCorePluginMidonet: puppet/services/neutron-midonet.yaml
OS::TripleO::Services::NeutronCorePluginVTS: docker/services/neutron-plugin-ml2-cisco-vts.yaml
OS::TripleO::Services::NeutronCorePluginML2Ansible: docker/services/neutron-plugin-ml2-ansible.yaml
OS::TripleO::Services::NeutronNuageVrs: puppet/services/neutron-controller-plugin-nuage.yaml
OS::TripleO::Services::NeutronOvsAgent: deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::NeutronLinuxbridgeAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronOvsAgent: deployment/neutron/neutron-ovs-agent-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronOvsDpdk: OS::Heat::None
OS::TripleO::Services::Pacemaker: OS::Heat::None
OS::TripleO::Services::PacemakerRemote: OS::Heat::None
@ -332,7 +333,7 @@ resource_registry:
# Default Neutron ML2 puppet plugin to use when NeutronCorePlugin is set to ML2
# FIXME(bogdando): can not be switched yet due to puppet-base issues
# see https://review.openstack.org/#/c/563443
OS::TripleO::Docker::NeutronMl2PluginBase: puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Docker::NeutronMl2PluginBase: puppet/services/neutron-plugin-ml2-ovn.yaml
OS::TripleO::Services::Multipathd: deployment/multipathd/multipathd-container.yaml
# Logging
@ -359,6 +360,7 @@ resource_registry:
OS::TripleO::Services::BootParams: extraconfig/pre_network/boot-params-service.yaml
parameter_defaults:
NeutronMechanismDrivers: ovn
EnablePackageInstall: false
SoftwareConfigTransport: POLL_TEMP_URL


+ 1
- 1
puppet/services/neutron-base.yaml View File

@ -27,7 +27,7 @@ parameters:
from neutron.core_plugins namespace.
type: string
NeutronServicePlugins:
default: "router,qos,segments,trunk"
default: "qos,ovn-router,trunk"
description: |
Comma-separated list of service plugin entrypoints to be loaded from the
neutron.service_plugins namespace.


+ 12
- 4
puppet/services/neutron-plugin-ml2-ovn.yaml View File

@ -58,15 +58,15 @@ parameters:
OVNQosDriver:
description: OVN notification driver for Neutron QOS service plugin
type: string
default: NULL
default: ovn-qos
NeutronGeneveMaxHeaderSize:
description: Geneve encapsulation header size
type: number
default: 38
NeutronEnableDVR:
description: Enable Neutron DVR.
default: false
type: boolean
default: ''
type: string
OVNMetadataEnabled:
description: Whether Metadata Service has to be enabled
type: boolean
@ -80,11 +80,15 @@ parameters:
- allowed_values:
- geneve
- vlan
OVNDnsServers:
default: []
description: List of servers to use as as dns forwarders
type: comma_delimited_list
conditions:
neutron_dvr_unset: {equals : [{get_param: NeutronEnableDVR}, '']}
resources:
NeutronMl2Base:
@ -113,9 +117,13 @@ outputs:
neutron::plugins::ml2::ovn::ovn_metadata_enabled: {get_param: OVNMetadataEnabled}
neutron::server::qos_notification_drivers: {get_param: OVNQosDriver}
neutron::plugins::ml2::max_header_size: {get_param: NeutronGeneveMaxHeaderSize}
neutron::plugins::ml2::ovn::dvr_enabled: {get_param: NeutronEnableDVR}
neutron::plugins::ml2::ovn::dns_servers: {get_param: OVNDnsServers}
neutron::plugins::ml2::tenant_network_types: {get_param: NeutronNetworkType}
-
if:
- neutron_dvr_unset
- neutron::plugins::ml2::ovn::dvr_enabled: true
- neutron::plugins::ml2::ovn::dvr_enabled: {get_param: NeutronEnableDVR}
step_config: |
include ::tripleo::profile::base::neutron::plugins::ml2
metadata_settings:


+ 4
- 4
puppet/services/neutron-plugin-ml2.yaml View File

@ -31,12 +31,12 @@ parameters:
via parameter_defaults in the resource registry.
type: json
NeutronMechanismDrivers:
default: 'openvswitch'
default: 'ovn'
description: |
The mechanism drivers for the Neutron tenant network.
type: comma_delimited_list
NeutronTypeDrivers:
default: "vxlan,vlan,flat,gre"
default: "geneve,vlan,flat"
description: |
Comma-separated list of network type driver entrypoints to be loaded.
type: comma_delimited_list
@ -66,10 +66,10 @@ parameters:
description: |
Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
of VXLAN VNI IDs that are available for tenant network allocation
default: ["1:4094", ]
default: ["1:65536", ]
type: comma_delimited_list
NeutronNetworkType:
default: 'vxlan'
default: 'geneve'
description: The tenant network type for Neutron.
type: comma_delimited_list
NeutronFirewallDriver:


+ 16
- 0
releasenotes/notes/switch-to-default-ovn-driver-ab4ae9d348158d61.yaml View File

@ -0,0 +1,16 @@
---
features:
- |
This patch switches the default mechanism driver for neutron from
openvswitch to OVN. DVR is now enabled by default which in the case
of OVN means that we're distributing FIP N/S traffic
as E/W is anyways distributed
upgrade:
- |
During upgrade from ml2/ovs please remember to provide similar
environment file to environments/updates/update-from-ml2-ovs-from-rocky.yaml.
This is good also to remember to provide this file as a first
to avoid overwriting custom modification by upgrade environment
file. If you will not provide such file during upgrade from
ml2/ovs you will see error and notification about problems witch
mutually exclusive network drivers.

+ 3
- 0
sample-env-generator/standalone.yaml View File

@ -62,6 +62,9 @@ environments:
OS::TripleO::Standalone::Net::SoftwareConfig: ../../net-config-standalone.yaml
OS::TripleO::NodeExtraConfigPost: ../../extraconfig/post_deploy/standalone_post.yaml
# OVN
OS::TripleO::Services::OVNDBs: ../../docker/services/ovn-dbs.yaml
# Manage SELinux
OS::TripleO::Services::SELinux: ../../deployment/selinux/selinux-baremetal-puppet.yaml


Loading…
Cancel
Save