Browse Source

composable neutron ml2 and ovs agent

Adds new puppet and puppet pacemaker specific services for
the Neutron ml2 configuration and the Ovs agent.

Partially-implements: blueprint composable-services-within-roles

Change-Id: I896e5dfe6fae49371c9fe7f47c4364eb6f621b07
changes/14/308514/22
Dan Prince 5 years ago
parent
commit
89fbd07afe
  1. 2
      environments/neutron-midonet.yaml
  2. 2
      environments/neutron-nuage-config.yaml
  3. 2
      environments/neutron-opencontrail.yaml
  4. 6
      environments/neutron-plumgrid.yaml
  5. 2
      environments/puppet-pacemaker.yaml
  6. 2
      overcloud-resource-registry-puppet.yaml
  7. 28
      overcloud.yaml
  8. 146
      puppet/controller.yaml
  9. 34
      puppet/manifests/overcloud_controller.pp
  10. 80
      puppet/manifests/overcloud_controller_pacemaker.pp
  11. 71
      puppet/services/neutron-ovs-agent.yaml
  12. 109
      puppet/services/neutron-plugin-ml2.yaml
  13. 25
      puppet/services/pacemaker/neutron-ovs-agent.yaml
  14. 28
      puppet/services/pacemaker/neutron-plugin-ml2.yaml

2
environments/neutron-midonet.yaml

@ -3,13 +3,13 @@ resource_registry:
OS::TripleO::AllNodesExtraConfig: ../puppet/extraconfig/all_nodes/neutron-midonet-all-nodes.yaml
OS::TripleO::Controller::Net::SoftwareConfig: ../net-config-linux-bridge.yaml # We have to avoid any ovs bridge. MidoNet is incompatible with its datapath
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
parameter_defaults:
EnableZookeeperOnController: true
EnableCassandraOnController: true
NeutronCorePlugin: 'midonet.neutron.plugin_v1.MidonetPluginV2' # Overriding default core_plugin in Neutron. Don't touch it
NeutronEnableIsolatedMetadata: true # MidoNet 1.9 needs this one to work. Don't change it
NeutronEnableOVSAgent: false
# Other available options for MidoNet Services
# TunnelZoneName: 'tunnelname'

2
environments/neutron-nuage-config.yaml

@ -4,6 +4,7 @@ resource_registry:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-nuage.yaml
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
parameter_defaults:
NeutronNuageOSControllerIp: '0.0.0.0'
@ -17,7 +18,6 @@ parameter_defaults:
UseForwardedFor: true
NeutronCorePlugin: 'neutron.plugins.nuage.plugin.NuagePlugin'
NeutronEnableDHCPAgent: false
NeutronEnableOVSAgent: false
NeutronServicePlugins: []
NovaOVSBridge: 'alubr0'
controllerExtraConfig:

2
environments/neutron-opencontrail.yaml

@ -6,11 +6,11 @@ resource_registry:
OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
parameter_defaults:
NeutronCorePlugin: neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
NeutronServicePlugins: neutron_plugin_contrail.plugins.opencontrail.loadbalancer.plugin.LoadBalancerPlugin
NeutronEnableOVSAgent: false
NeutronEnableTunnelling: false
# required params:

6
environments/neutron-plumgrid.yaml

@ -2,10 +2,11 @@
# extensions, configured via puppet
resource_registry:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-plumgrid.yaml
# PLUMgrid doesn't require dhcp, l3, and metadata agents
# PLUMgrid doesn't require dhcp, l3, metadata, and ovs agents
OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
parameter_defaults:
NeutronCorePlugin: networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2
@ -25,6 +26,3 @@ parameter_defaults:
#Optional Parameters
#PLUMgridNeutronPluginVersion: present
#PLUMgridPlumlibVersion: present
# PLUMgrid doesn't require the ovs agent
NeutronEnableOVSAgent: false

2
environments/puppet-pacemaker.yaml

@ -23,6 +23,8 @@ resource_registry:
OS::TripleO::Services::NeutronL3Agent: ../puppet/services/pacemaker/neutron-l3.yaml
OS::TripleO::Services::NeutronMetadataAgent: ../puppet/services/pacemaker/neutron-metadata.yaml
OS::TripleO::Services::NeutronServer: ../puppet/services/pacemaker/neutron-server.yaml
OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/pacemaker/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronOvsAgent: ../puppet/services/pacemaker/neutron-ovs-agent.yaml
OS::TripleO::Services::RabbitMQ: ../puppet/services/pacemaker/rabbitmq.yaml
OS::TripleO::Services::HAproxy: ../puppet/services/pacemaker/haproxy.yaml
OS::TripleO::Services::Memcached: ../puppet/services/pacemaker/memcached.yaml

2
overcloud-resource-registry-puppet.yaml

@ -136,6 +136,8 @@ resource_registry:
OS::TripleO::Services::NeutronL3Agent: puppet/services/neutron-l3.yaml
OS::TripleO::Services::NeutronMetadataAgent: puppet/services/neutron-metadata.yaml
OS::TripleO::Services::NeutronServer: puppet/services/neutron-server.yaml
OS::TripleO::Services::NeutronCorePlugin: puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronOvsAgent: puppet/services/neutron-ovs-agent.yaml
OS::TripleO::Services::RabbitMQ: puppet/services/rabbitmq.yaml
OS::TripleO::Services::HAproxy: puppet/services/haproxy.yaml
OS::TripleO::Services::Keepalived: puppet/services/keepalived.yaml

28
overcloud.yaml

@ -198,17 +198,6 @@ parameters:
description: |
The tunnel types for the Neutron tenant network.
type: comma_delimited_list
NeutronTunnelIdRanges:
description: |
Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
of GRE tunnel IDs that are available for tenant network allocation
default: ["1:4094", ]
type: comma_delimited_list
NeutronVniRanges:
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", ]
type: comma_delimited_list
NeutronCorePlugin:
default: 'ml2'
@ -232,10 +221,6 @@ parameters:
description: |
The mechanism drivers for the Neutron tenant network.
type: comma_delimited_list
NeutronPluginExtensions:
default: "qos,port_security"
description: |
Comma-separated list of extensions enabled for the Neutron plugin.
type: comma_delimited_list
NeutronAgentExtensions:
default: "qos"
@ -637,6 +622,8 @@ parameters:
- OS::TripleO::Services::NeutronL3Agent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronServer
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::RabbitMQ
- OS::TripleO::Services::HAproxy
- OS::TripleO::Services::Keepalived
@ -911,12 +898,7 @@ resources:
MysqlMaxConnections: {get_param: MysqlMaxConnections}
MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
NeutronTenantMtu: {get_param: NeutronTenantMtu}
NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
NeutronPublicInterface: {get_param: NeutronPublicInterface}
NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
@ -926,12 +908,6 @@ resources:
NeutronAgentMode: {get_param: NeutronAgentMode}
NeutronCorePlugin: {get_param: NeutronCorePlugin}
NeutronServicePlugins: {get_param: NeutronServicePlugins}
NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
NeutronNetworkType: {get_param: NeutronNetworkType}
NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
NovaIPv6: {get_param: NovaIPv6}
NovaPassword: {get_param: NovaPassword}
NtpServer: {get_param: NtpServer}

146
puppet/controller.yaml

@ -247,20 +247,6 @@ parameters:
type: string
hidden: true
default: '' # Has to be here because of the ignored empty value bug
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
documentation for details. Defaults to mapping br-ex - the external
bridge on hosts - to a physical name 'datacentre' which can be used
to create provider networks (and we use this for the default floating
network) - if changing this either use different post-install network
scripts or be sure to keep 'datacentre' as a mapping network name.
type: comma_delimited_list
default: "datacentre:br-ex"
NeutronEnableOVSAgent:
description: Knob to enable/disable OVS Agent
type: boolean
default: true
NeutronAgentMode:
default: 'dvr_snat'
description: Agent mode for the neutron-l3-agent on the controller hosts
@ -285,39 +271,6 @@ parameters:
Comma-separated list of service plugin entrypoints to be loaded from the
neutron.service_plugins namespace.
type: comma_delimited_list
NeutronTypeDrivers:
default: "vxlan,vlan,flat,gre"
description: |
Comma-separated list of network type driver entrypoints to be loaded.
type: comma_delimited_list
NeutronMechanismDrivers:
default: 'openvswitch'
description: |
The mechanism drivers for the Neutron tenant network.
type: comma_delimited_list
NeutronEnableTunnelling:
type: string
default: "True"
NeutronEnableL2Pop:
type: string
description: >
Enable/disable the L2 population feature in the Neutron agents.
default: "False"
NeutronFlatNetworks:
type: comma_delimited_list
default: 'datacentre'
description: If set, flat networks to configure in neutron plugins.
NeutronNetworkType:
default: 'vxlan'
description: The tenant network type for Neutron.
type: comma_delimited_list
NeutronNetworkVLANRanges:
default: 'datacentre:1:1000'
description: >
The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
Neutron documentation for permitted values. Defaults to permitting any
VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
type: comma_delimited_list
NeutronPassword:
description: The password for the neutron service and db account, used by neutron agents.
type: string
@ -357,33 +310,6 @@ parameters:
will determine the MTU that is assigned to the VM host through DHCP.
default: 1400
type: number
NeutronTunnelTypes:
default: 'vxlan'
description: |
The tunnel types for the Neutron tenant network.
type: comma_delimited_list
NeutronTunnelIdRanges:
description: |
Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
of GRE tunnel IDs that are available for tenant network allocation
default: ["1:4094", ]
type: comma_delimited_list
NeutronVniRanges:
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", ]
type: comma_delimited_list
NeutronPluginExtensions:
default: "qos,port_security"
description: |
Comma-separated list of extensions enabled for the Neutron plugin.
type: comma_delimited_list
NeutronAgentExtensions:
default: "qos"
description: |
Comma-separated list of extensions enabled for the Neutron agents.
type: comma_delimited_list
NovaApiVirtualIP:
type: string
default: ''
@ -744,8 +670,6 @@ resources:
bootstack_nodeid: {get_attr: [Controller, name]}
ceilometer_workers: {get_param: CeilometerWorkers}
nova_workers: {get_param: NovaWorkers}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
haproxy_log_address: {get_param: HAProxySyslogAddress}
haproxy_stats_password: {get_param: HAProxyStatsPassword}
haproxy_stats_user: {get_param: HAProxyStatsUser}
@ -780,11 +704,6 @@ resources:
template: tripleo-CLUSTER
params:
CLUSTER: {get_param: MysqlClusterUniquePart}
neutron_flat_networks:
str_replace:
template: NETWORKS
params:
NETWORKS: {get_param: NeutronFlatNetworks}
neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
neutron_agent_mode: {get_param: NeutronAgentMode}
neutron_router_distributed: {get_param: NeutronDVR}
@ -794,61 +713,10 @@ resources:
template: PLUGINS
params:
PLUGINS: {get_param: NeutronServicePlugins}
neutron_type_drivers:
str_replace:
template: DRIVERS
params:
DRIVERS: {get_param: NeutronTypeDrivers}
neutron_enable_ovs_agent: {get_param: NeutronEnableOVSAgent}
neutron_mechanism_drivers:
str_replace:
template: MECHANISMS
params:
MECHANISMS: {get_param: NeutronMechanismDrivers}
neutron_network_vlan_ranges:
str_replace:
template: RANGES
params:
RANGES: {get_param: NeutronNetworkVLANRanges}
neutron_bridge_mappings:
str_replace:
template: MAPPINGS
params:
MAPPINGS: {get_param: NeutronBridgeMappings}
neutron_public_interface: {get_param: NeutronPublicInterface}
neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
neutron_public_interface_default_route: {get_param: NeutronPublicInterfaceDefaultRoute}
neutron_public_interface_tag: {get_param: NeutronPublicInterfaceTag}
neutron_tunnel_id_ranges:
str_replace:
template: RANGES
params:
RANGES: {get_param: NeutronTunnelIdRanges}
neutron_vni_ranges:
str_replace:
template: RANGES
params:
RANGES: {get_param: NeutronVniRanges}
neutron_tenant_network_types:
str_replace:
template: TYPES
params:
TYPES: {get_param: NeutronNetworkType}
neutron_tunnel_types:
str_replace:
template: TYPES
params:
TYPES: {get_param: NeutronTunnelTypes}
neutron_plugin_extensions:
str_replace:
template: PLUGIN_EXTENSIONS
params:
PLUGIN_EXTENSIONS: {get_param: NeutronPluginExtensions}
neutron_agent_extensions:
str_replace:
template: AGENT_EXTENSIONS
params:
AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
neutron_password: {get_param: NeutronPassword}
neutron_tenant_mtu: {get_param: NeutronTenantMtu}
neutron_internal_url: { get_param: [ EndpointMap, NeutronInternal, uri ] }
@ -1125,30 +993,16 @@ resources:
# Neutron
neutron::bind_host: {get_input: neutron_api_network}
neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
neutron::plugins::ml2::flat_networks: {get_input: neutron_flat_networks}
neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
neutron_agent_mode: {get_input: neutron_agent_mode}
neutron_router_distributed: {get_input: neutron_router_distributed}
neutron::core_plugin: {get_input: neutron_core_plugin}
neutron::service_plugins: {get_input: neutron_service_plugins}
neutron::enable_ovs_agent: {get_input: neutron_enable_ovs_agent}
neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
neutron::plugins::ml2::mechanism_drivers: {get_input: neutron_mechanism_drivers}
neutron::plugins::ml2::extension_drivers: {get_input: neutron_plugin_extensions}
neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
neutron::agents::ml2::ovs::bridge_mappings: {get_input: neutron_bridge_mappings}
neutron_public_interface: {get_input: neutron_public_interface}
neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
neutron_public_interface_default_route: {get_input: neutron_public_interface_default_route}
neutron_public_interface_tag: {get_input: neutron_public_interface_tag}
neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
neutron::agents::ml2::ovs::tunnel_types: {get_input: neutron_tunnel_types}
neutron::agents::ml2::ovs::extensions: {get_input: neutron_agent_extensions}
neutron::keystone::auth::public_url: {get_input: neutron_public_url }
neutron::keystone::auth::internal_url: {get_input: neutron_internal_url }
neutron::keystone::auth::admin_url: {get_input: neutron_admin_url }

34
puppet/manifests/overcloud_controller.pp

@ -247,42 +247,10 @@ if hiera('step') >= 4 {
keystone_tenant => hiera('neutron::server::auth_tenant'),
keystone_password => hiera('neutron::server::password')
}
} else {
include ::neutron::plugins::ml2
include ::neutron::agents::ml2::ovs
if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus1000v
class { '::neutron::agents::n1kv_vem':
n1kv_source => hiera('n1kv_vem_source', undef),
n1kv_version => hiera('n1kv_vem_version', undef),
}
class { '::n1k_vsm':
n1kv_source => hiera('n1kv_vsm_source', undef),
n1kv_version => hiera('n1kv_vsm_version', undef),
pacemaker_control => false,
}
}
if 'cisco_ucsm' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
if 'cisco_nexus' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus
include ::neutron::plugins::ml2::cisco::type_nexus_vxlan
}
if 'bsn_ml2' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::bigswitch::restproxy
include ::neutron::agents::bigswitch
}
Service['neutron-server'] -> Service['neutron-ovs-agent-service']
}
Service['neutron-server'] -> Service['neutron-metadata']
}
if $enable_ceph {

80
puppet/manifests/overcloud_controller_pacemaker.pp

@ -469,37 +469,6 @@ MYSQL_HOST=localhost\n",
metadata_proxy_shared_secret => hiera('nova::api::neutron_metadata_proxy_shared_secret'),
}
}
include ::neutron::plugins::ml2
class { '::neutron::agents::ml2::ovs':
manage_service => false,
enabled => false,
}
if 'cisco_ucsm' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
if 'cisco_nexus' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus
include ::neutron::plugins::ml2::cisco::type_nexus_vxlan
}
if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus1000v
class { '::neutron::agents::n1kv_vem':
n1kv_source => hiera('n1kv_vem_source', undef),
n1kv_version => hiera('n1kv_vem_version', undef),
}
class { '::n1k_vsm':
n1kv_source => hiera('n1kv_vsm_source', undef),
n1kv_version => hiera('n1kv_vsm_version', undef),
}
}
if 'bsn_ml2' in hiera('neutron::plugins::ml2::mechanism_drivers') {
include ::neutron::plugins::ml2::bigswitch::restproxy
include ::neutron::agents::bigswitch
}
if $enable_ceph {
$ceph_pools = hiera('ceph_pools')
@ -730,60 +699,11 @@ password=\"${mysql_root_password}\"",
Pacemaker::Resource::Ocf['openstack-core']],
}
if hiera('neutron::enable_ovs_agent', true) {
pacemaker::resource::service { $::neutron::params::ovs_agent_service:
clone_params => 'interleave=true',
}
}
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
pacemaker::resource::service {'tomcat':
clone_params => 'interleave=true',
}
}
if hiera('neutron::enable_ovs_agent', true) {
pacemaker::resource::ocf { $::neutron::params::ovs_cleanup_service:
ocf_agent_name => 'neutron:OVSCleanup',
clone_params => 'interleave=true',
}
pacemaker::resource::ocf { 'neutron-netns-cleanup':
ocf_agent_name => 'neutron:NetnsCleanup',
clone_params => 'interleave=true',
}
# neutron - one chain ovs-cleanup-->netns-cleanup-->ovs-agent
pacemaker::constraint::base { 'neutron-ovs-cleanup-to-netns-cleanup-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::ovs_cleanup_service}-clone",
second_resource => 'neutron-netns-cleanup-clone',
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Ocf[$::neutron::params::ovs_cleanup_service],
Pacemaker::Resource::Ocf['neutron-netns-cleanup']],
}
pacemaker::constraint::colocation { 'neutron-ovs-cleanup-to-netns-cleanup-colocation':
source => 'neutron-netns-cleanup-clone',
target => "${::neutron::params::ovs_cleanup_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Ocf[$::neutron::params::ovs_cleanup_service],
Pacemaker::Resource::Ocf['neutron-netns-cleanup']],
}
pacemaker::constraint::base { 'neutron-netns-cleanup-to-openvswitch-agent-constraint':
constraint_type => 'order',
first_resource => 'neutron-netns-cleanup-clone',
second_resource => "${::neutron::params::ovs_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Ocf['neutron-netns-cleanup'],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
pacemaker::constraint::colocation { 'neutron-netns-cleanup-to-openvswitch-agent-colocation':
source => "${::neutron::params::ovs_agent_service}-clone",
target => 'neutron-netns-cleanup-clone',
score => 'INFINITY',
require => [Pacemaker::Resource::Ocf['neutron-netns-cleanup'],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
}
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
#midonet-chain chain keystone-->neutron-server-->dhcp-->metadata->tomcat
pacemaker::constraint::base { 'neutron-server-to-dhcp-agent-constraint':

71
puppet/services/neutron-ovs-agent.yaml

@ -0,0 +1,71 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron OVS agent configured with Puppet
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
NeutronEnableTunnelling:
type: string
default: "True"
NeutronEnableL2Pop:
type: string
description: >
Enable/disable the L2 population feature in the Neutron agents.
default: "False"
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
documentation for details. Defaults to mapping br-ex - the external
bridge on hosts - to a physical name 'datacentre' which can be used
to create provider networks (and we use this for the default floating
network) - if changing this either use different post-install network
scripts or be sure to keep 'datacentre' as a mapping network name.
type: comma_delimited_list
default: "datacentre:br-ex"
NeutronTunnelTypes:
default: 'vxlan'
description: |
The tunnel types for the Neutron tenant network.
type: comma_delimited_list
NeutronAgentExtensions:
default: "qos"
description: |
Comma-separated list of extensions enabled for the Neutron agents.
type: comma_delimited_list
resources:
NeutronBase:
type: ./neutron-base.yaml
outputs:
role_data:
description: Role data for the Neutron OVS agent service.
value:
config_settings:
map_merge:
- get_attr: [NeutronBase, role_data, config_settings]
neutron::agents::ml2::ovs::enable_tunneling: {get_param: NeutronEnableTunnelling}
neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
neutron::agents::ml2::ovs::bridge_mappings:
str_replace:
template: MAPPINGS
params:
MAPPINGS: {get_param: NeutronBridgeMappings}
neutron::agents::ml2::ovs::tunnel_types:
str_replace:
template: TYPES
params:
TYPES: {get_param: NeutronTunnelTypes}
neutron::agents::ml2::ovs::extensions:
str_replace:
template: AGENT_EXTENSIONS
params:
AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
step_config: |
include ::tripleo::profile::base::neutron::ovs

109
puppet/services/neutron-plugin-ml2.yaml

@ -0,0 +1,109 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron ML2 Plugin configured with Puppet
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
NeutronMechanismDrivers:
default: 'openvswitch'
description: |
The mechanism drivers for the Neutron tenant network.
type: comma_delimited_list
NeutronTypeDrivers:
default: "vxlan,vlan,flat,gre"
description: |
Comma-separated list of network type driver entrypoints to be loaded.
type: comma_delimited_list
NeutronFlatNetworks:
type: comma_delimited_list
default: 'datacentre'
description: If set, flat networks to configure in neutron plugins.
NeutronPluginExtensions:
default: "qos,port_security"
description: |
Comma-separated list of extensions enabled for the Neutron plugin.
type: comma_delimited_list
NeutronNetworkVLANRanges:
default: 'datacentre:1:1000'
description: >
The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
Neutron documentation for permitted values. Defaults to permitting any
VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
type: comma_delimited_list
NeutronTunnelIdRanges:
description: |
Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
of GRE tunnel IDs that are available for tenant network allocation
default: ["1:4094", ]
type: comma_delimited_list
NeutronVniRanges:
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", ]
type: comma_delimited_list
NeutronNetworkType:
default: 'vxlan'
description: The tenant network type for Neutron.
type: comma_delimited_list
resources:
NeutronBase:
type: ./neutron-base.yaml
outputs:
role_data:
description: Role data for the Neutron ML2 plugin.
value:
config_settings:
map_merge:
- get_attr: [NeutronBase, role_data, config_settings]
- neutron::plugins::ml2::mechanism_drivers:
str_replace:
template: MECHANISMS
params:
MECHANISMS: {get_param: NeutronMechanismDrivers}
neutron::plugins::ml2::type_drivers:
str_replace:
template: DRIVERS
params:
DRIVERS: {get_param: NeutronTypeDrivers}
neutron::plugins::ml2::flat_networks:
str_replace:
template: NETWORKS
params:
NETWORKS: {get_param: NeutronFlatNetworks}
neutron::plugins::ml2::extension_drivers:
str_replace:
template: PLUGIN_EXTENSIONS
params:
PLUGIN_EXTENSIONS: {get_param: NeutronPluginExtensions}
neutron::plugins::ml2::network_vlan_ranges:
str_replace:
template: RANGES
params:
RANGES: {get_param: NeutronNetworkVLANRanges}
neutron::plugins::ml2::tunnel_id_ranges:
str_replace:
template: RANGES
params:
RANGES: {get_param: NeutronTunnelIdRanges}
neutron::plugins::ml2::vni_ranges:
str_replace:
template: RANGES
params:
RANGES: {get_param: NeutronVniRanges}
neutron::plugins::ml2::tenant_network_types:
str_replace:
template: TYPES
params:
TYPES: {get_param: NeutronNetworkType}
step_config: |
include ::tripleo::profile::base::neutron::ml2

25
puppet/services/pacemaker/neutron-ovs-agent.yaml

@ -0,0 +1,25 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron OVS agent with Pacemaker configured with Puppet
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
resources:
NeutronOvsBase:
type: ../neutron-ovs-agent.yaml
outputs:
role_data:
description: Role data for the Neutron OVS agent service.
value:
config_settings:
get_attr: [NeutronOvsBase, role_data, config_settings]
step_config: |
include ::tripleo::profile::pacemaker::neutron::ovs

28
puppet/services/pacemaker/neutron-plugin-ml2.yaml

@ -0,0 +1,28 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron ML2 Plugin with Pacemaker configured with Puppet
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
resources:
NeutronMl2Base:
type: ../neutron-plugin-ml2.yaml
outputs:
role_data:
description: Role data for the Neutron ML2 plugin.
value:
config_settings:
map_merge:
- get_attr: [NeutronMl2Base, role_data, config_settings]
- neutron::agents::ml2::ovs::enabled: false
neutron::agents::ml2::ovs::manage_service: false
step_config: |
include ::tripleo::profile::pacemaker::neutron::ml2
Loading…
Cancel
Save