OVN heat templates

Installs and configures OVN databases and process and also configures
the neutron plugin for OVN.

Implements: blueprint tripleo-ovn
Change-Id: Ic3e415bb0587dd85b71f6c14a96f6b2c86a7b30f
This commit is contained in:
Babu Shanmugam 2016-04-01 08:03:41 +00:00 committed by Russell Bryant
parent f9000048e5
commit d42c83a51e
4 changed files with 143 additions and 0 deletions

View File

@ -0,0 +1,18 @@
# A Heat environment file which can be used to enable OVN
# extensions, configured via puppet
resource_registry:
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2OVN
OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-compute-plugin-ovn.yaml
parameter_defaults:
NeutronMechanismDrivers: ovn
OVNDbHost: '0.0.0.0'
OVNSouthboundServerPort: 6642
OVNNorthboundServerPort: 6641
OVNDbConnectionTimeout: 60
OVNVifType: ovs
OVNNeutronSyncMode: log
OVNQosDriver: ovn-qos
OVNTunnelEncapType: geneve

View File

@ -161,6 +161,7 @@ resource_registry:
# things where VMs run
OS::TripleO::Services::ComputeNeutronCorePlugin: puppet/services/neutron-plugin-ml2.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::NeutronCorePluginOpencontrail: puppet/services/neutron-plugin-opencontrail.yaml

View File

@ -0,0 +1,45 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron Compute OVN agent
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
DefaultPasswords:
default: {}
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
OVNDbHost:
description: IP address on which the OVN DB servers are listening
type: string
OVNSouthboundServerPort:
description: Port of the Southbound DB Server
type: number
default: 6642
OVNTunnelEncapType:
description: Tunnel encapsulation type
type: string
default: geneve
outputs:
role_data:
description: Role data for the Neutron Compute OVN agent
value:
service_name: neutron_compute_plugin_ovn
config_settings:
tripleo::profile::base::neutron::agents::ovn::ovn_db_host: {get_param: OVNDbHost}
ovn::southbound::port: {get_param: OVNSouthboundServerPort}
ovn::southbound::encap_type: {get_param: OVNTunnelEncapType}
ovn::controller::ovn_encap_ip: {get_param: [ServiceNetMap, NeutronApiNetwork]}
step_config: |
include ::tripleo::profile::base::neutron::agents::ovn

View File

@ -0,0 +1,79 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron ML2/OVN plugin configured with Puppet
parameters:
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
OVNDbHost:
description: IP address on which the OVN DB servers are listening
type: string
OVNNorthboundServerPort:
description: Port of the OVN Northbound DB server
type: number
default: 6641
OVNDbConnectionTimeout:
description: Timeout in seconds for the OVSDB connection transaction
type: number
default: 60
OVNVifType:
description: Type of VIF to be used for ports
type: string
default: ovs
constraints:
- allowed_values:
- ovs
- vhostuser
OVNNeutronSyncMode:
description: The synchronization mode of OVN with Neutron DB
type: string
default: log
constraints:
- allowed_values:
- log
- off
- repair
OVNQosDriver:
description: OVN notification driver for Neutron QOS service plugin
type: string
default: NULL
resources:
NeutronMl2Base:
type: ./neutron-plugin-ml2.yaml
properties:
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
outputs:
role_data:
description: Role data for the Neutron ML2/OVN plugin.
value:
service_name: neutron_plugin_ml2_ovn
config_settings:
map_merge:
- get_attr: [NeutronMl2Base, role_data, config_settings]
- ovn::northbound::port: {get_param: OVNNorthboundServerPort}
tripleo::profile::base::neutron::plugins::ml2::ovn::ovn_db_host: {get_param: OVNDbHost}
neutron::plugins::ovn::ovsdb_connection_timeout: {get_param: OVNDbConnectionTimeout}
neutron::plugins::ovn::neutron_sync_mode: {get_param: OVNNeutronSyncMode}
neutron::plugins::ovn::ovn_l3_mode: true
neutron::plugins::ovn::vif_type: {get_param: OVNVifType}
neutron::server::qos_notification_drivers: {get_param: OVNQosDriver}
step_config: |
include ::tripleo::profile::base::neutron::plugins::ml2