OpenContrail heat templates
Deploy a TripleO overcloud with OpenContrail Vrouter plugin configured to interact with an existing OpenContrail Server Manager. OpenContrail is an Apache 2.0-licensed project that is built using standards-based protocols and provides all the necessary components for network virtualization–SDN controller, virtual router, analytics engine, and published northbound APIs. It has an extensive REST API to configure and gather operational and analytics data from the system. Co-Authored-By: Jiri Stransky <jistr@redhat.com> Change-Id: I699a7c4ea09d024fe4d70c6a507c524f0a7aafd5
This commit is contained in:
parent
5720819516
commit
fd922970e8
22
environments/neutron-opencontrail.yaml
Normal file
22
environments/neutron-opencontrail.yaml
Normal 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
|
@ -437,6 +437,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}
|
||||
|
@ -1207,6 +1207,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}
|
||||
|
@ -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]}
|
@ -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]}
|
@ -106,6 +106,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
|
||||
|
@ -284,11 +284,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
|
||||
|
@ -654,6 +654,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 => $public_vip,
|
||||
|
Loading…
Reference in New Issue
Block a user