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>
This commit is contained in:
Daniel Alvarez 2018-08-17 15:57:18 +02:00 committed by Kamil Sambor
parent 2399828ca1
commit 6053eb1964
32 changed files with 612 additions and 94 deletions

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 | | 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 | | | | | | | | neutron-bgpvpn | | | | | wip | | | | | | |
+----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ +----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+

View File

@ -4,6 +4,7 @@ resource_registry:
# Some infra instances don't pass the ping test but are otherwise working. # 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. # 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::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml
OS::TripleO::Services::OVNDBs: ../../docker/services/ovn-dbs.yaml
parameter_defaults: parameter_defaults:
ControllerServices: ControllerServices:
@ -16,12 +17,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy - OS::TripleO::Services::HAproxy

View File

@ -1,7 +1,7 @@
resource_registry: resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: nic-configs/cinder-storage.yaml 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::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: nic-configs/swift-storage.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: nic-configs/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: nic-configs/ceph-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: nic-configs/ceph-storage.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}

View File

@ -1,7 +1,7 @@
resource_registry: resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: nic-configs/cinder-storage.yaml 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::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: nic-configs/swift-storage.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: nic-configs/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: nic-configs/ceph-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: nic-configs/ceph-storage.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}

View File

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

View File

@ -44,12 +44,11 @@ parameter_defaults:
- OS::TripleO::Services::HeatEngine - OS::TripleO::Services::HeatEngine
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy - OS::TripleO::Services::HAproxy

View File

@ -36,12 +36,11 @@ parameter_defaults:
- OS::TripleO::Services::HeatEngine - OS::TripleO::Services::HeatEngine
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy - OS::TripleO::Services::HAproxy

View File

@ -35,12 +35,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy - OS::TripleO::Services::HAproxy

View File

@ -51,12 +51,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy - OS::TripleO::Services::HAproxy

View File

@ -19,12 +19,11 @@ parameter_defaults:
- OS::TripleO::Services::IronicPxe - OS::TripleO::Services::IronicPxe
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OsloMessagingRpc
- OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingNotify
- OS::TripleO::Services::HAproxy - OS::TripleO::Services::HAproxy

View File

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

View File

@ -4,6 +4,10 @@ resource_registry:
OS::TripleO::Services::OpenDaylightApi: ../../docker/services/opendaylight-api.yaml OS::TripleO::Services::OpenDaylightApi: ../../docker/services/opendaylight-api.yaml
OS::TripleO::Services::OpenDaylightOvs: ../../puppet/services/opendaylight-ovs.yaml OS::TripleO::Services::OpenDaylightOvs: ../../puppet/services/opendaylight-ovs.yaml
OS::TripleO::Docker::NeutronMl2PluginBase: ../../puppet/services/neutron-plugin-ml2-odl.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: parameter_defaults:
ControllerServices: ControllerServices:

View File

@ -39,12 +39,11 @@ parameter_defaults:
- OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::MySQL - OS::TripleO::Services::MySQL
- OS::TripleO::Services::MySQLClient - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer - OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin - 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::OctaviaApi
- OS::TripleO::Services::OctaviaDeploymentConfig - OS::TripleO::Services::OctaviaDeploymentConfig
- OS::TripleO::Services::OctaviaHealthManager - OS::TripleO::Services::OctaviaHealthManager

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,6 +2,19 @@
# This works by configuring L3 and Metadata agents on the # This works by configuring L3 and Metadata agents on the
# compute nodes. # compute nodes.
resource_registry: 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::ComputeNeutronL3Agent: ../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronMetadataAgent: ../deployment/neutron/neutron-metadata-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. # bridge to be connected to a physical network.
OS::TripleO::Compute::Net::SoftwareConfig: ../net-config-bridge.yaml 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 # DVR requires that the L2 population feature is enabled
NeutronMechanismDrivers: ['openvswitch', 'l2population'] NeutronMechanismDrivers: ['openvswitch', 'l2population']
NeutronEnableL2Pop: 'True' 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 # Setting NeutronEnableDVR enables distributed routing support in the
# ML2 plugin and agents that support this feature # ML2 plugin and agents that support this feature
NeutronEnableDVR: true NeutronEnableDVR: true

View File

@ -1,18 +1,39 @@
# A Heat environment file that enables DVR in the overcloud. Used with Compute # A Heat environment file that deploys ML2/OVS in the overcloud.
# 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: 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::ComputeNeutronL3Agent: ../../deployment/neutron/neutron-l3-container-puppet.yaml
OS::TripleO::Services::ComputeNeutronMetadataAgent: ../../deployment/neutron/neutron-metadata-container-puppet.yaml OS::TripleO::Services::ComputeNeutronMetadataAgent: ../../deployment/neutron/neutron-metadata-container-puppet.yaml
OS::TripleO::ComputeDVR::Net::SoftwareConfig: ../../net-config-bridge.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: parameter_defaults:
# DVR requires that the L2 population feature is enabled # DVR requires that the L2 population feature is enabled
NeutronMechanismDrivers: ['openvswitch', 'l2population'] NeutronMechanismDrivers: ['openvswitch', 'l2population']
NeutronEnableL2Pop: 'True' 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 # Setting NeutronEnableDVR enables distributed routing support in the
# ML2 plugin and agents that support this feature # ML2 plugin and agents that support this feature
NeutronEnableDVR: true NeutronEnableDVR: true

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

View File

@ -111,6 +111,7 @@ resource_registry:
OS::TripleO::Services::MistralEngine: OS::Heat::None OS::TripleO::Services::MistralEngine: OS::Heat::None
OS::TripleO::Services::MistralEventEngine: OS::Heat::None OS::TripleO::Services::MistralEventEngine: OS::Heat::None
OS::TripleO::Services::MistralExecutor: 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::OpenStackClients: ../../puppet/services/openstack-clients.yaml
OS::TripleO::Services::PankoApi: OS::Heat::None OS::TripleO::Services::PankoApi: OS::Heat::None
OS::TripleO::Services::Podman: ../../deployment/podman/podman-baremetal-ansible.yaml OS::TripleO::Services::Podman: ../../deployment/podman/podman-baremetal-ansible.yaml

View File

@ -8,6 +8,14 @@ resource_registry:
# Allows us to control the external VIP for Undercloud SSL # Allows us to control the external VIP for Undercloud SSL
OS::TripleO::Network::Ports::ExternalVipPort: ../network/ports/external_from_pool.yaml 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. # 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::SELinux: ../deployment/selinux/selinux-baremetal-puppet.yaml
OS::TripleO::Services::OpenStackClients: ../puppet/services/openstack-clients.yaml OS::TripleO::Services::OpenStackClients: ../puppet/services/openstack-clients.yaml
@ -124,6 +132,7 @@ parameter_defaults:
NeutronTunnelIdRanges: '20:100' NeutronTunnelIdRanges: '20:100'
NeutronTypeDrivers: ['local','flat','vlan','gre','vxlan'] NeutronTypeDrivers: ['local','flat','vlan','gre','vxlan']
NeutronVniRanges: '10:100' NeutronVniRanges: '10:100'
NeutronEnableDVR: false
NeutronPortQuota: '-1' NeutronPortQuota: '-1'
SwiftCorsAllowedOrigin: '*' SwiftCorsAllowedOrigin: '*'
SwiftReplicas: 1 SwiftReplicas: 1

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'

View File

@ -134,14 +134,14 @@ resource_registry:
OS::TripleO::Services::NeutronBgpVpnApi: OS::Heat::None OS::TripleO::Services::NeutronBgpVpnApi: OS::Heat::None
OS::TripleO::Services::NeutronBgpVpnBagpipe: OS::Heat::None OS::TripleO::Services::NeutronBgpVpnBagpipe: OS::Heat::None
OS::TripleO::Services::NeutronSfcApi: 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::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::NeutronL2gwAgent: OS::Heat::None
OS::TripleO::Services::NeutronLbaasv2Agent: OS::Heat::None OS::TripleO::Services::NeutronLbaasv2Agent: OS::Heat::None
OS::TripleO::Services::NeutronLbaasv2Api: OS::Heat::None OS::TripleO::Services::NeutronLbaasv2Api: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: deployment/neutron/neutron-metadata-container-puppet.yaml OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::OVNMetadataAgent: 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 # FIXME(shardy) the duplicate NeutronServer line can be removed when we've updated
# the multinode job ControllerServices after this patch merges # the multinode job ControllerServices after this patch merges
OS::TripleO::Services::NeutronServer: deployment/neutron/neutron-api-container-puppet.yaml 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 OS::TripleO::Services::NeutronCorePlugin: docker/services/neutron-plugin-ml2.yaml
# can be the same as NeutronCorePlugin but some vendors install different # can be the same as NeutronCorePlugin but some vendors install different
# things where VMs run # 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 OS::TripleO::Services::ComputeNeutronCorePluginNuage: puppet/services/neutron-compute-plugin-nuage.yaml
# Neutron Core Plugin Vendors (these typically override NeutronCorePlugin) # Neutron Core Plugin Vendors (these typically override NeutronCorePlugin)
OS::TripleO::Services::NeutronCorePluginML2OVN: puppet/services/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::NeutronCorePluginML2OVN: puppet/services/neutron-plugin-ml2-ovn.yaml
OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.yaml OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.yaml
OS::TripleO::Services::NeutronCorePluginNuage: puppet/services/neutron-plugin-nuage.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::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::NeutronCorePluginNSX: puppet/services/neutron-plugin-nsx.yaml
OS::TripleO::Services::OVNController: OS::Heat::None 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::NeutronCorePluginMLNXSDN: puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml
OS::TripleO::Services::NeutronCorePluginMidonet: puppet/services/neutron-midonet.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::NeutronCorePluginVTS: docker/services/neutron-plugin-ml2-cisco-vts.yaml
OS::TripleO::Services::NeutronCorePluginML2Ansible: docker/services/neutron-plugin-ml2-ansible.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::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::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::ComputeNeutronOvsDpdk: OS::Heat::None
OS::TripleO::Services::Pacemaker: OS::Heat::None OS::TripleO::Services::Pacemaker: OS::Heat::None
OS::TripleO::Services::PacemakerRemote: 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 # 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 # FIXME(bogdando): can not be switched yet due to puppet-base issues
# see https://review.openstack.org/#/c/563443 # 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 OS::TripleO::Services::Multipathd: deployment/multipathd/multipathd-container.yaml
# Logging # Logging
@ -359,6 +360,7 @@ resource_registry:
OS::TripleO::Services::BootParams: extraconfig/pre_network/boot-params-service.yaml OS::TripleO::Services::BootParams: extraconfig/pre_network/boot-params-service.yaml
parameter_defaults: parameter_defaults:
NeutronMechanismDrivers: ovn
EnablePackageInstall: false EnablePackageInstall: false
SoftwareConfigTransport: POLL_TEMP_URL SoftwareConfigTransport: POLL_TEMP_URL

View File

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

View File

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

View File

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

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.

View File

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