Merge "OpenContrail heat templates"

This commit is contained in:
Jenkins 2016-02-29 15:31:51 +00:00 committed by Gerrit Code Review
commit 6677663e11
8 changed files with 149 additions and 2 deletions

View File

@ -0,0 +1,22 @@
# A Heat environment file which can be used to enable OpenContrail
# extensions, configured via puppet
resource_registry:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-opencontrail.yaml
OS::TripleO::ComputeExtraConfigPre: ../puppet/extraconfig/pre_deploy/compute/neutron-opencontrail.yaml
parameter_defaults:
NeutronCorePlugin: neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
NeutronServicePlugins: neutron_plugin_contrail.plugins.opencontrail.loadbalancer.plugin.LoadBalancerPlugin
NeutronEnableDHCPAgent: false
NeutronEnableL3Agent: false
NeutronEnableMetadataAgent: false
NeutronEnableOVSAgent: false
NeutronEnableTunnelling: false
# required params:
#ContrailApiServerIp:
#ContrailExtensions: ''
# optional params
# ContrailApiServerPort: 8082
# ContrailMultiTenancy: false

View File

@ -451,6 +451,7 @@ resources:
- cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
- nova_nuage_data # Optionally provided by ComputeExtraConfigPre
- midonet_data # Optionally provided by AllNodesExtraConfig
- neutron_opencontrail_data # Optionally provided by ComputeExtraConfigPre
datafiles:
compute_extraconfig:
mapped_data: {get_param: NovaComputeExtraConfig}

View File

@ -1226,6 +1226,7 @@ resources:
- cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
- neutron_nuage_data # Optionally provided by ControllerExtraConfigPre
- midonet_data #Optionally provided by AllNodesExtraConfig
- neutron_opencontrail_data # Optionally provided by ControllerExtraConfigPre
datafiles:
controller_extraconfig:
mapped_data: {get_param: ControllerExtraConfig}

View File

@ -0,0 +1,47 @@
heat_template_version: 2015-04-30
description: Compute node hieradata for Neutron OpenContrail configuration
parameters:
server:
description: ID of the compute node to apply this config to
type: string
ContrailApiServerIp:
description: IP address of the OpenContrail API server
type: string
ContrailApiServerPort:
description: Port of the OpenContrail API
type: string
default: 8082
resources:
ComputeContrailConfig:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
hiera:
datafiles:
neutron_opencontrail_data:
mapped_data:
nova::network::neutron::network_api_class: nova.network.neutronv2.api.API
contrail::vrouter::provision_vrouter::api_address: {get_input: contrail_api_server_ip}
contrail::vrouter::provision_vrouter::api_port: {get_input: contrail_api_server_port}
contrail::vrouter::provision_vrouter::keystone_admin_user: admin
contrail::vrouter::provision_vrouter::keystone_admin_tenant_name: admin
contrail::vrouter::provision_vrouter::keystone_admin_password: '"%{::admin_password}"'
ComputeContrailDeployment:
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: ComputeContrailConfig}
server: {get_param: server}
input_values:
contrail_api_server_ip: {get_param: ContrailApiServerIp}
contrail_api_server_port: {get_param: ContrailApiServerPort}
outputs:
deploy_stdout:
description: Output of the extra hiera data deployment
value: {get_attr: [ComputeContrailDeployment, deploy_stdout]}

View File

@ -0,0 +1,62 @@
heat_template_version: 2015-04-30
description: Controller hieradata for Neutron OpenContrail configuration
parameters:
server:
description: ID of the controller node to apply this config to
type: string
ContrailApiServerIp:
description: IP address of the OpenContrail API server
type: string
ContrailApiServerPort:
description: Port of the OpenContrail API
type: string
default: 8082
ContrailMultiTenancy:
description: Whether to enable multi tenancy
type: boolean
default: false
ContrailExtensions:
description: List of OpenContrail extensions to be enabled
type: comma_delimited_list
default: ''
resources:
ControllerContrailConfig:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
hiera:
datafiles:
neutron_opencontrail_data:
mapped_data:
neutron::api_extensions_path: /usr/lib/python2.7/site-packages/neutron_plugin_contrail/extensions
neutron::plugins::opencontrail::api_server_ip: {get_input: contrail_api_server_ip}
neutron::plugins::opencontrail::api_server_port: {get_input: contrail_api_server_port}
neutron::plugins::opencontrail::multi_tenancy: {get_input: contrail_multi_tenancy}
neutron::plugins::opencontrail::contrail_extensions: {get_input: contrail_extensions}
neutron::plugins::opencontrail::keystone_auth_url: '"%{hiera(''keystone_auth_uri'')}"'
neutron::plugins::opencontrail::keystone_admin_user: admin
neutron::plugins::opencontrail::keystone_admin_tenant_name: admin
neutron::plugins::opencontrail::keystone_admin_password: '"%{hiera(''admin_password'')}"'
neutron::plugins::opencontrail::keystone_admin_token: '"%{hiera(''keystone::admin_token'')}"'
ControllerContrailDeployment:
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: ControllerContrailConfig}
server: {get_param: server}
input_values:
contrail_api_server_ip: {get_param: ContrailApiServerIp}
contrail_api_server_port: {get_param: ContrailApiServerPort}
contrail_multi_tenancy: {get_param: ContrailMultiTenancy}
contrail_extensions: {get_param: ContrailExtensions}
outputs:
deploy_stdout:
description: Output of the extra hiera data deployment
value: {get_attr: [ControllerContrailDeployment, deploy_stdout]}

View File

@ -120,6 +120,15 @@ elsif hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV
cassandra_seeds => $cassandra_node_ips
}
}
elsif hiera('neutron::core_plugin') == 'neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2' {
include ::contrail::vrouter
# NOTE: it's not possible to use this class without a functional
# contrail controller up and running
#class {'::contrail::vrouter::provision_vrouter':
# require => Class['contrail::vrouter'],
#}
}
else {
include ::neutron::plugins::ml2

View File

@ -304,11 +304,13 @@ if hiera('step') >= 3 {
include ::neutron::server
include ::neutron::server::notifications
# If the value of core plugin is set to 'nuage',
# include nuage core plugin, and it does not
# If the value of core plugin is set to 'nuage' or 'opencontrail',
# include nuage or opencontrail core plugins, and it does not
# need the l3, dhcp and metadata agents
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
} else {
include ::neutron::agents::l3
include ::neutron::agents::dhcp

View File

@ -678,6 +678,9 @@ if hiera('step') >= 3 {
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
include ::neutron::plugins::nuage
}
if hiera('neutron::core_plugin') == 'neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2' {
include ::neutron::plugins::opencontrail
}
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
class {'::neutron::plugins::midonet':
midonet_api_ip => hiera('tripleo::loadbalancer::public_virtual_ip'),