Merge "PLUMgrid Neutron integration"
This commit is contained in:
commit
e47ac07d4f
29
environments/neutron-plumgrid.yaml
Executable file
29
environments/neutron-plumgrid.yaml
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
# A Heat environment file which can be used to enable PLUMgrid
|
||||||
|
# extensions, configured via puppet
|
||||||
|
resource_registry:
|
||||||
|
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-plumgrid.yaml
|
||||||
|
|
||||||
|
parameter_defaults:
|
||||||
|
NeutronCorePlugin: networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2
|
||||||
|
PLUMgridDirectorServer: 127.0.0.1
|
||||||
|
PLUMgridDirectorServerPort: 443
|
||||||
|
PLUMgridUsername: username
|
||||||
|
PLUMgridPassword: password
|
||||||
|
PLUMgridServerTimeOut: 99
|
||||||
|
PLUMgridNovaMetadataIP: 169.254.169.254
|
||||||
|
PLUMgridNovaMetadataPort: 8775
|
||||||
|
PLUMgridL2GatewayVendor: vendor
|
||||||
|
PLUMgridL2GatewayUsername: username
|
||||||
|
PLUMgridL2GatewayPassword: password
|
||||||
|
PLUMgridIdentityVersion: v2.0
|
||||||
|
PLUMgridConnectorType: distributed
|
||||||
|
|
||||||
|
#Optional Parameters
|
||||||
|
#PLUMgridNeutronPluginVersion: present
|
||||||
|
#PLUMgridPlumlibVersion: present
|
||||||
|
|
||||||
|
# PLUMgrid doesn't require dhcp, l3, ovs and metadata agents
|
||||||
|
NeutronEnableDHCPAgent: false
|
||||||
|
NeutronEnableL3Agent: false
|
||||||
|
NeutronEnableMetadataAgent: false
|
||||||
|
NeutronEnableOVSAgent: false
|
@ -1314,6 +1314,7 @@ resources:
|
|||||||
- neutron_nuage_data # Optionally provided by ControllerExtraConfigPre
|
- neutron_nuage_data # Optionally provided by ControllerExtraConfigPre
|
||||||
- midonet_data #Optionally provided by AllNodesExtraConfig
|
- midonet_data #Optionally provided by AllNodesExtraConfig
|
||||||
- neutron_opencontrail_data # Optionally provided by ControllerExtraConfigPre
|
- neutron_opencontrail_data # Optionally provided by ControllerExtraConfigPre
|
||||||
|
- neutron_plumgrid_data # Optionally provided by ControllerExtraConfigPre
|
||||||
datafiles:
|
datafiles:
|
||||||
controller_extraconfig:
|
controller_extraconfig:
|
||||||
mapped_data: {get_param: ControllerExtraConfig}
|
mapped_data: {get_param: ControllerExtraConfig}
|
||||||
|
113
puppet/extraconfig/pre_deploy/controller/neutron-plumgrid.yaml
Executable file
113
puppet/extraconfig/pre_deploy/controller/neutron-plumgrid.yaml
Executable file
@ -0,0 +1,113 @@
|
|||||||
|
heat_template_version: 2015-04-30
|
||||||
|
|
||||||
|
description: Controller hieradata for Neutron PLUMgrid configuration
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
server:
|
||||||
|
description: ID of the controller node to apply this config to
|
||||||
|
type: string
|
||||||
|
PLUMgridDirectorServer:
|
||||||
|
description: IP address of the PLUMgrid Director Server
|
||||||
|
type: string
|
||||||
|
default: 127.0.0.1
|
||||||
|
PLUMgridDirectorServerPort:
|
||||||
|
description: Port of the PLUMgrid Director Server
|
||||||
|
type: string
|
||||||
|
default: 443
|
||||||
|
PLUMgridUsername:
|
||||||
|
description: Username for PLUMgrid platform
|
||||||
|
type: string
|
||||||
|
PLUMgridPassword:
|
||||||
|
description: Password for PLUMgrid platform
|
||||||
|
type: string
|
||||||
|
hidden: true
|
||||||
|
PLUMgridServerTimeOut:
|
||||||
|
description: Request timeout duration (seconds) to PLUMgrid platform
|
||||||
|
type: string
|
||||||
|
default: 99
|
||||||
|
PLUMgridNovaMetadataIP:
|
||||||
|
description: IP address of Nova Metadata
|
||||||
|
type: string
|
||||||
|
default: 169.254.169.254
|
||||||
|
PLUMgridNovaMetadataPort:
|
||||||
|
description: Port of Nova Metadata
|
||||||
|
type: string
|
||||||
|
default: 8775
|
||||||
|
PLUMgridL2GatewayVendor:
|
||||||
|
description: Vendor for L2 Gateway Switch
|
||||||
|
type: string
|
||||||
|
default: vendor
|
||||||
|
PLUMgridL2GatewayUsername:
|
||||||
|
description: Username for L2 Gateway Switch
|
||||||
|
type: string
|
||||||
|
default: username
|
||||||
|
PLUMgridL2GatewayPassword:
|
||||||
|
description: Password for L2 Gateway Switch
|
||||||
|
type: string
|
||||||
|
hidden: true
|
||||||
|
PLUMgridIdentityVersion:
|
||||||
|
description: Keystone Identity version
|
||||||
|
type: string
|
||||||
|
default: v2.0
|
||||||
|
PLUMgridConnectorType:
|
||||||
|
description: Neutron Network Connector Type
|
||||||
|
type: string
|
||||||
|
default: distributed
|
||||||
|
PLUMgridNeutronPluginVersion:
|
||||||
|
description: PLUMgrid Neutron Plugin version
|
||||||
|
type: string
|
||||||
|
default: present
|
||||||
|
PLUMgridPlumlibVersion:
|
||||||
|
description: PLUMgrid Plumlib version
|
||||||
|
type: string
|
||||||
|
default: present
|
||||||
|
|
||||||
|
|
||||||
|
resources:
|
||||||
|
ControllerPLUMgridConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
hiera:
|
||||||
|
datafiles:
|
||||||
|
neutron_plumgrid_data:
|
||||||
|
mapped_data:
|
||||||
|
neutron::plugins::plumgrid::director_server: {get_input: plumgrid_director_server}
|
||||||
|
neutron::plugins::plumgrid::director_server_port: {get_input: plumgrid_director_server_port}
|
||||||
|
neutron::plugins::plumgrid::username: {get_input: plumgrid_username}
|
||||||
|
neutron::plugins::plumgrid::password: {get_input: plumgrid_password}
|
||||||
|
neutron::plugins::plumgrid::nova_metadata_ip: {get_input: plumgrid_nova_metadata_ip}
|
||||||
|
neutron::plugins::plumgrid::nova_metadata_port: {get_input: plumgrid_nova_metadata_port}
|
||||||
|
neutron::plugins::plumgrid::l2gateway_vendor: {get_input: plumgrid_l2gateway_vendor}
|
||||||
|
neutron::plugins::plumgrid::l2gateway_sw_username: {get_input: plumgrid_l2gateway_sw_username}
|
||||||
|
neutron::plugins::plumgrid::l2gateway_sw_password: {get_input: plumgrid_l2gateway_sw_password}
|
||||||
|
neutron::plugins::plumgrid::connector_type: {get_input: plumgrid_connector_type}
|
||||||
|
neutron::plugins::plumgrid::identity_version: {get_input: plumgrid_identity_version}
|
||||||
|
neutron::plugins::plumgrid::package_ensure: {get_input: plumgrid_neutron_plugin_version}
|
||||||
|
neutron::plugins::plumgrid::plumlib_package_ensure: {get_input: plumgrid_plumlib_version}
|
||||||
|
|
||||||
|
ControllerPLUMgridDeployment:
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
config: {get_resource: ControllerPLUMgridConfig}
|
||||||
|
server: {get_param: server}
|
||||||
|
input_values:
|
||||||
|
plumgrid_director_server: {get_param: PLUMgridDirectorServer}
|
||||||
|
plumgrid_director_server_port: {get_param: PLUMgridDirectorServerPort}
|
||||||
|
plumgrid_username: {get_param: PLUMgridUsername}
|
||||||
|
plumgrid_password: {get_param: PLUMgridPassword}
|
||||||
|
plumgrid_nova_metadata_ip: {get_param: PLUMgridNovaMetadataIP}
|
||||||
|
plumgrid_nova_metadata_port: {get_param: PLUMgridNovaMetadataPort}
|
||||||
|
plumgrid_l2gateway_vendor: {get_param: PLUMgridL2GatewayVendor}
|
||||||
|
plumgrid_l2gateway_sw_username: {get_param: PLUMgridL2GatewayUsername}
|
||||||
|
plumgrid_l2gateway_sw_password: {get_param: PLUMgridL2GatewayPassword}
|
||||||
|
plumgrid_identity_version: {get_param: PLUMgridIdentityVersion}
|
||||||
|
plumgrid_connector_type: {get_param: PLUMgridConnectorType}
|
||||||
|
plumgrid_neutron_plugin_version: {get_param: PLUMgridNeutronPluginVersion}
|
||||||
|
plumgrid_plumlib_version: {get_param: PLUMgridPlumlibVersion}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
deploy_stdout:
|
||||||
|
description: Deployment reference, used to trigger puppet apply on changes
|
||||||
|
value: {get_attr: [ControllerPLUMgridDeployment, deploy_stdout]}
|
@ -152,6 +152,20 @@ elsif hiera('neutron::core_plugin') == 'neutron_plugin_contrail.plugins.opencont
|
|||||||
# require => Class['contrail::vrouter'],
|
# require => Class['contrail::vrouter'],
|
||||||
#}
|
#}
|
||||||
}
|
}
|
||||||
|
elsif hiera('neutron::core_plugin') == 'networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2' {
|
||||||
|
# forward all ipv4 traffic
|
||||||
|
# this is required for the vms to pass through the gateways public interface
|
||||||
|
sysctl::value { 'net.ipv4.ip_forward': value => '1' }
|
||||||
|
|
||||||
|
# ifc_ctl_pp needs to be invoked by root as part of the vif.py when a VM is powered on
|
||||||
|
file { '/etc/sudoers.d/ifc_ctl_sudoers':
|
||||||
|
ensure => file,
|
||||||
|
owner => root,
|
||||||
|
group => root,
|
||||||
|
mode => '0440',
|
||||||
|
content => "nova ALL=(root) NOPASSWD: /opt/pg/bin/ifc_ctl_pp *\n",
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
include ::neutron::plugins::ml2
|
include ::neutron::plugins::ml2
|
||||||
|
@ -344,13 +344,21 @@ if hiera('step') >= 4 {
|
|||||||
include ::neutron::server
|
include ::neutron::server
|
||||||
include ::neutron::server::notifications
|
include ::neutron::server::notifications
|
||||||
|
|
||||||
# If the value of core plugin is set to 'nuage' or 'opencontrail',
|
# If the value of core plugin is set to 'nuage' or'opencontrail' or 'plumgrid',
|
||||||
# include nuage or opencontrail core plugins, and it does not
|
# include nuage or opencontrail or plumgrid core plugins
|
||||||
# need the l3, dhcp and metadata agents
|
# else use the default value of 'ml2'
|
||||||
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
||||||
include ::neutron::plugins::nuage
|
include ::neutron::plugins::nuage
|
||||||
} elsif hiera('neutron::core_plugin') == 'neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2' {
|
} elsif hiera('neutron::core_plugin') == 'neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2' {
|
||||||
include ::neutron::plugins::opencontrail
|
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 {
|
} else {
|
||||||
include ::neutron::agents::l3
|
include ::neutron::agents::l3
|
||||||
include ::neutron::agents::dhcp
|
include ::neutron::agents::dhcp
|
||||||
|
@ -792,6 +792,14 @@ if hiera('step') >= 4 {
|
|||||||
keystone_password => hiera('neutron::server::auth_password')
|
keystone_password => hiera('neutron::server::auth_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 hiera('neutron::enable_dhcp_agent',true) {
|
if hiera('neutron::enable_dhcp_agent',true) {
|
||||||
class { '::neutron::agents::dhcp' :
|
class { '::neutron::agents::dhcp' :
|
||||||
manage_service => false,
|
manage_service => false,
|
||||||
|
Loading…
Reference in New Issue
Block a user