Composable Neutron Plumgrid plugin

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

Depends-On: I8536782d433f97a9b619e54a1eb1ea0edb8fdaf0
Change-Id: I3309997413998f1d90117e361d1578da3633e56c
This commit is contained in:
Dan Prince 2016-06-08 15:57:18 -04:00
parent dea033bca6
commit cf04308ee5
7 changed files with 81 additions and 18 deletions

@ -7,6 +7,8 @@ resource_registry:
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
# Override the Neutron core plugin to use PLUMgrid
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginPlumgrid
parameter_defaults:
NeutronCorePlugin: networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2

@ -24,6 +24,9 @@ resource_registry:
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
# Neutron Core Plugin Vendors (these typically override NeutronCorePlugin)
OS::TripleO::Services::NeutronCorePluginPlumgrid: ../puppet/services/pacemaker/neutron-plugin-plumgrid.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

@ -137,6 +137,9 @@ resource_registry:
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
# Neutron Core Plugin Vendors (these typically override NeutronCorePlugin)
OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.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

@ -215,21 +215,13 @@ if hiera('step') >= 4 {
}
# If the value of core plugin is set to 'nuage' or'opencontrail' or 'plumgrid',
# include nuage or opencontrail or plumgrid core plugins
# If the value of core plugin is set to 'nuage' or'opencontrail'
# include nuage or opencontrail core plugins
# else use the default value of 'ml2'
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
include ::neutron::plugins::nuage
} elsif hiera('neutron::core_plugin') == 'neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2' {
include ::neutron::plugins::opencontrail
}
elsif hiera('neutron::core_plugin') == 'networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2' {
class { '::neutron::plugins::plumgrid' :
connection => hiera('neutron::server::database_connection'),
controller_priv_host => hiera('keystone_admin_api_vip'),
admin_password => hiera('admin_password'),
metadata_proxy_shared_secret => hiera('nova::api::neutron_metadata_proxy_shared_secret'),
}
} else {
# If the value of core plugin is set to 'midonet',

@ -454,14 +454,6 @@ MYSQL_HOST=localhost\n",
keystone_password => hiera('neutron::server::password')
}
}
if hiera('neutron::core_plugin') == 'networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2' {
class { '::neutron::plugins::plumgrid' :
connection => hiera('neutron::server::database_connection'),
controller_priv_host => hiera('keystone_admin_api_vip'),
admin_password => hiera('admin_password'),
metadata_proxy_shared_secret => hiera('nova::api::neutron_metadata_proxy_shared_secret'),
}
}
if $enable_ceph {
$ceph_pools = hiera('ceph_pools')

@ -0,0 +1,43 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron Plumgrid plugin
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
NeutronPassword:
description: The password for the neutron service and db account, used by neutron agents.
type: string
hidden: true
NeutronMetadataProxySharedSecret:
description: Shared secret to prevent spoofing
type: string
hidden: true
AdminPassword:
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
type: string
hidden: true
outputs:
role_data:
description: Role data for the Neutron Plumgrid plugin
value:
config_settings:
neutron::plugins::plumgrid::connection:
list_join:
- ''
- - {get_param: [EndpointMap, MysqlInternal, protocol]}
- '://neutron:'
- {get_param: NeutronPassword}
- '@'
- {get_param: [EndpointMap, MysqlInternal, host]}
- '/ovs_neutron?charset=utf8'
neutron::plugins::plumgrid::controller_priv_host: {get_param: [EndpointMap, KeystoneAdmin, host]}
neutron::plugins::plumgrid::admin_password: {get_param: AdminPassword}
neutron::plugins::plumgrid::metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
step_config: |
include tripleo::profile::base::neutron::plugins::plumgrid

@ -0,0 +1,28 @@
heat_template_version: 2016-04-08
description: >
OpenStack Neutron PLUMgrid 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:
NeutronPluginPlumgridBase:
type: ../neutron-plugin-ml2.yaml
properties:
EndpointMap: {get_param: EndpointMap}
outputs:
role_data:
description: Role data for the Neutron PLUMgrid plugin.
value:
config_settings:
map_merge:
- get_attr: [NeutronPluginPlumgridBase, role_data, config_settings]
step_config: |
include ::tripleo::profile::pacemaker::neutron::plugins::plumgrid