Commit c43b4a2a authored by bobzh's avatar bobzh Committed by Tim Rozet

Adds onos support

Changes include:
 - ONOS artifacts are cached on build server until moved to OPNFV artifacts
 - tht patch is now unified to single opnfv patch, based on upstream
   commit 0f41e0d0309c7bc061dbaed6a8c1e38cb4bdfe19

Change-Id: Iea3d14773dded6c9709c08ef1beb47b254582860
Signed-off-by: default avatarbob zhou <bob.zh@huawei.com>
Signed-off-by: default avatarTim Rozet <trozet@redhat.com>
parent 194784ad
......@@ -4,6 +4,7 @@ declare -i CNT
#rdo_images_uri=https://repos.fedorapeople.org/repos/openstack-m/rdo-images-centos-liberty-opnfv
rdo_images_uri=file:///stable-images
onos_artifacts_uri=file:///stable-images/onos
vm_index=4
RDO_RELEASE=liberty
......@@ -235,7 +236,7 @@ pushd stack
# make a copy of the cached overcloud-full image
cp overcloud-full.qcow2 overcloud-full-odl.qcow2
# remove unnessesary packages and install nessesary packages
# remove unnecessary packages and install necessary packages
LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum remove -y openstack-neutron-openvswitch" \
--upload /etc/yum.repos.d/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \
--install opendaylight,python-networking-odl -a overcloud-full-odl.qcow2
......@@ -253,8 +254,8 @@ LIBGUESTFS_BACKEND=direct virt-customize --upload puppet-opendaylight.tar.gz:/et
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-opendaylight.tar.gz" -a overcloud-full-odl.qcow2
# Patch in OpenDaylight installation and configuration
LIBGUESTFS_BACKEND=direct virt-customize --upload ../opendaylight-tripleo-heat-templates.patch:/tmp \
--run-command "cd /usr/share/openstack-tripleo-heat-templates/ && patch -Np1 < /tmp/opendaylight-tripleo-heat-templates.patch" \
LIBGUESTFS_BACKEND=direct virt-customize --upload ../opnfv-tripleo-heat-templates.patch:/tmp \
--run-command "cd /usr/share/openstack-tripleo-heat-templates/ && patch -Np1 < /tmp/opnfv-tripleo-heat-templates.patch" \
-a instack.qcow2
LIBGUESTFS_BACKEND=direct virt-customize --upload ../opendaylight-puppet-neutron.patch:/tmp \
--run-command "cd /etc/puppet/modules/neutron && patch -Np1 < /tmp/opendaylight-puppet-neutron.patch" \
......@@ -262,6 +263,29 @@ LIBGUESTFS_BACKEND=direct virt-customize --upload ../opendaylight-puppet-neutron
## END WORK AROUND
popd
## WORK AROUND
## when ONOS lands in upstream OPNFV artifacts this can be removed
# upload the onos puppet module
pushd stack
rm -rf puppet-onos
git clone https://github.com/bobzhouHW/puppet-onos.git
pushd puppet-onos
# download jdk, onos and maven dependancy packages.
pushd files
curl ${onos_artifacts_uri}/jdk-8u51-linux-x64.tar.gz -o ./jdk-8u51-linux-x64.tar.gz
curl ${onos_artifacts_uri}/onos-1.3.0.tar.gz -o ./onos-1.3.0.tar.gz
curl ${onos_artifacts_uri}/repository.tar -o ./repository.tar
popd
git archive --format=tar.gz --prefix=onos/ HEAD > ../puppet-onos.tar.gz
popd
LIBGUESTFS_BACKEND=direct virt-customize --upload puppet-onos.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-onos.tar.gz" -a overcloud-full-odl.qcow2
## END WORK AROUND
popd
# move and Sanitize private keys from instack.json file
mv stack/instackenv.json instackenv-virt.json
sed -i '/pm_password/c\ "pm_password": "INSERT_STACK_USER_PRIV_KEY",' instackenv-virt.json
......
From 94df637aa818881118c52b6e25d3266e0fa6b853 Mon Sep 17 00:00:00 2001
From 63f8b6412f526ba245d86f40eb6b1ae1ee06485d Mon Sep 17 00:00:00 2001
From: Dan Radez <dradez@redhat.com>
Date: Sun, 13 Dec 2015 21:20:40 -0500
Subject: [PATCH] Adds OpenDaylight support
......@@ -6,25 +6,43 @@ Subject: [PATCH] Adds OpenDaylight support
To enable OpenDaylight on controllers use environments/opendaylight.yaml
To enable OpenDaylight on external node use
environments/opendaylight-external.yaml
Adds onos support
---
environments/opendaylight-external.yaml | 25 +++
environments/opendaylight.yaml | 25 +++
environments/onos.yaml | 8 +
environments/opendaylight-external.yaml | 25 ++
environments/opendaylight.yaml | 25 ++
overcloud-resource-registry-puppet.yaml | 3 +
overcloud-without-mergepy.yaml | 62 ++++++
overcloud-without-mergepy.yaml | 62 +++++
puppet/all-nodes-config.yaml | 6 +
puppet/compute.yaml | 19 ++
puppet/controller.yaml | 27 +++
puppet/manifests/overcloud_compute.pp | 27 ++-
puppet/manifests/overcloud_controller.pp | 47 ++++-
puppet/manifests/overcloud_controller_pacemaker.pp | 184 +++++++++++-------
puppet/manifests/overcloud_opendaylight.pp | 26 +++
puppet/opendaylight-puppet.yaml | 209 +++++++++++++++++++++
12 files changed, 580 insertions(+), 80 deletions(-)
puppet/compute.yaml | 25 ++
puppet/controller.yaml | 35 +++
puppet/manifests/overcloud_compute.pp | 33 ++-
puppet/manifests/overcloud_controller.pp | 80 +++++-
puppet/manifests/overcloud_controller_pacemaker.pp | 299 +++++++++++++--------
puppet/manifests/overcloud_opendaylight.pp | 26 ++
puppet/opendaylight-puppet.yaml | 209 ++++++++++++++
13 files changed, 712 insertions(+), 124 deletions(-)
create mode 100644 environments/onos.yaml
create mode 100644 environments/opendaylight-external.yaml
create mode 100644 environments/opendaylight.yaml
create mode 100644 puppet/manifests/overcloud_opendaylight.pp
create mode 100644 puppet/opendaylight-puppet.yaml
diff --git a/environments/onos.yaml b/environments/onos.yaml
new file mode 100644
index 0000000..510aca9
--- /dev/null
+++ b/environments/onos.yaml
@@ -0,0 +1,8 @@
+parameters:
+ #This a bug for odl deployment. Once bug fixed OpenDaylightCount can be remove.
+ OpenDaylightCount: 0
+ NeutronL3HA: false
+ ExtraConfig:
+ neutron_service_plugins: ['onos_router']
+ neutron_mechanism_drivers: ['onos_ml2']
+ neutron_tenant_network_type: vxlan
diff --git a/environments/opendaylight-external.yaml b/environments/opendaylight-external.yaml
new file mode 100644
index 0000000..411df21
......@@ -241,10 +259,10 @@ index 2bc519b..98283c2 100644
list_join:
- ','
diff --git a/puppet/compute.yaml b/puppet/compute.yaml
index e259cff..d2184bd 100644
index e259cff..5527669 100644
--- a/puppet/compute.yaml
+++ b/puppet/compute.yaml
@@ -213,6 +213,19 @@ parameters:
@@ -213,6 +213,23 @@ parameters:
NtpServer:
type: string
default: ''
......@@ -261,34 +279,40 @@ index e259cff..d2184bd 100644
+ type: string
+ description: The password for the opendaylight server.
+ hidden: true
+ ONOSPort:
+ default: 8181
+ description: Set onos service port
+ type: number
RabbitHost:
type: string
default: '' # Has to be here because of the ignored empty value bug
@@ -415,6 +428,9 @@ resources:
@@ -415,6 +432,10 @@ resources:
neutron::rabbit_user: {get_input: rabbit_username}
neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
neutron::rabbit_port: {get_input: rabbit_client_port}
+ opendaylight_port: {get_input: opendaylight_port}
+ opendaylight_username: {get_input: opendaylight_username}
+ opendaylight_password: {get_input: opendaylight_password}
+ onos_port: {get_input: onos_port}
neutron_flat_networks: {get_input: neutron_flat_networks}
neutron_host: {get_input: neutron_host}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
@@ -468,6 +484,9 @@ resources:
@@ -468,6 +489,10 @@ resources:
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
+ opendaylight_port: {get_param: OpenDaylightPort}
+ opendaylight_username: {get_param: OpenDaylightUsername}
+ opendaylight_password: {get_param: OpenDaylightPassword}
+ onos_port: {get_param: ONOSPort}
neutron_flat_networks: {get_param: NeutronFlatNetworks}
neutron_host: {get_param: NeutronHost}
neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index fdc1821..955fdc4 100644
index fdc1821..865a838 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -443,6 +443,23 @@ parameters:
@@ -443,6 +443,27 @@ parameters:
NtpServer:
type: string
default: ''
......@@ -309,10 +333,14 @@ index fdc1821..955fdc4 100644
+ type: string
+ description: The password for the opendaylight server.
+ hidden: true
+ ONOSPort:
+ default: 8181
+ description: Set onos service port
+ type: number
PcsdPassword:
type: string
description: The password for the 'pcsd' user.
@@ -819,6 +836,10 @@ resources:
@@ -819,6 +840,11 @@ resources:
template: tripleo-CLUSTER
params:
CLUSTER: {get_param: MysqlClusterUniquePart}
......@@ -320,10 +348,11 @@ index fdc1821..955fdc4 100644
+ opendaylight_install: {get_param: OpenDaylightInstall}
+ opendaylight_username: {get_param: OpenDaylightUsername}
+ opendaylight_password: {get_param: OpenDaylightPassword}
+ onos_port: {get_param: ONOSPort}
neutron_flat_networks: {get_param: NeutronFlatNetworks}
neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
neutron_agent_mode: {get_param: NeutronAgentMode}
@@ -1151,6 +1172,12 @@ resources:
@@ -1151,6 +1177,15 @@ resources:
mysql_bind_host: {get_input: mysql_network}
mysql_virtual_ip: {get_input: mysql_virtual_ip}
......@@ -332,15 +361,18 @@ index fdc1821..955fdc4 100644
+ opendaylight_install: {get_input: opendaylight_install}
+ opendaylight_username: {get_input: opendaylight_username}
+ opendaylight_password: {get_input: opendaylight_password}
+
+ # ONOS
+ onos_port: {get_input: onos_port}
+
# Neutron
neutron::bind_host: {get_input: neutron_api_network}
neutron::rabbit_password: {get_input: rabbit_password}
diff --git a/puppet/manifests/overcloud_compute.pp b/puppet/manifests/overcloud_compute.pp
index cd41cc7..a81f88d 100644
index cd41cc7..b8336ee 100644
--- a/puppet/manifests/overcloud_compute.pp
+++ b/puppet/manifests/overcloud_compute.pp
@@ -75,9 +75,30 @@ class { '::neutron::plugins::ml2':
@@ -75,9 +75,36 @@ class { '::neutron::plugins::ml2':
tenant_network_types => [hiera('neutron_tenant_network_type')],
}
......@@ -366,6 +398,12 @@ index cd41cc7..a81f88d 100644
+ }
+ }
+
+} elsif 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ $controller_ips = split(hiera('controller_node_ips'), ',')
+ class {'onos::ovs_computer':
+ manager_ip => $controller_ips[0]
+ }
+
+} else {
+ class { 'neutron::agents::ml2::ovs':
+ bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
......@@ -375,10 +413,10 @@ index cd41cc7..a81f88d 100644
if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index 1b0429b..9f99e45 100644
index 1b0429b..d3f3d2d 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -30,6 +30,13 @@ if hiera('step') >= 1 {
@@ -30,6 +30,20 @@ if hiera('step') >= 1 {
if hiera('step') >= 2 {
......@@ -388,11 +426,43 @@ index 1b0429b..9f99e45 100644
+ odl_rest_port => hiera('opendaylight_port'),
+ }
+ }
+
+ if 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ # install onos and config ovs
+ class {"onos":
+ controllers_ip => $controller_node_ips
+ }
+ }
+
if count(hiera('ntp::servers')) > 0 {
include ::ntp
}
@@ -243,10 +250,43 @@ if hiera('step') >= 3 {
@@ -223,9 +237,7 @@
include ::nova::scheduler
include ::nova::scheduler::filter
- include ::neutron
include ::neutron::server
- include ::neutron::agents::l3
include ::neutron::agents::dhcp
include ::neutron::agents::metadata
@@ -238,15 +250,71 @@ if hiera('step') >= 3 {
require => Package['neutron'],
}
+ if 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ # config neutron service_plugins to onos driver
+ class { '::neutron':
+ service_plugins => [hiera('neutron_service_plugins')]
+ }
+ } else {
+ include ::neutron
+ include ::neutron::agents::l3
+ }
+
class { '::neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
mechanism_drivers => [hiera('neutron_mechanism_drivers')],
}
......@@ -425,6 +495,18 @@ index 1b0429b..9f99e45 100644
+ odl_password => hiera('opendaylight_password'),
+ }
+ }
+ Service['neutron-server'] -> Service['neutron-l3']
+
+ } elsif 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ #config ml2_conf.ini with onos url address
+ $onos_port = hiera('onos_port')
+ $private_ip = hiera('neutron::agents::ml2::ovs::local_ip')
+
+ neutron_plugin_ml2 {
+ 'onos/username': value => 'admin';
+ 'onos/password': value => 'admin';
+ 'onos/url_path': value => "http://${controller_node_ips[0]}:${onos_port}/onos/vtn";
+ }
+
+ } else {
+
......@@ -434,24 +516,26 @@ index 1b0429b..9f99e45 100644
+ }
+
+ Service['neutron-server'] -> Service['neutron-ovs-agent-service']
+ Service['neutron-server'] -> Service['neutron-l3']
}
+
if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::nexus1000v
@@ -282,7 +322,6 @@ if hiera('step') >= 3 {
@@ -281,8 +349,6 @@ if hiera('step') >= 3 {
}
Service['neutron-server'] -> Service['neutron-dhcp-service']
Service['neutron-server'] -> Service['neutron-l3']
- Service['neutron-server'] -> Service['neutron-l3']
- Service['neutron-server'] -> Service['neutron-ovs-agent-service']
Service['neutron-server'] -> Service['neutron-metadata']
include ::cinder
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index 863cc5f..1a99985 100644
index 863cc5f..5b1c37a 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -380,6 +380,13 @@ if hiera('step') >= 2 {
@@ -380,6 +380,20 @@ if hiera('step') >= 2 {
}
......@@ -462,10 +546,50 @@ index 863cc5f..1a99985 100644
+ }
+ }
+
+ if 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ # install onos and config ovs
+ class {"onos":
+ controllers_ip => $controller_node_ips
+ }
+ }
+
exec { 'galera-ready' :
command => '/usr/bin/clustercheck >/dev/null',
timeout => 30,
@@ -615,13 +622,43 @@ if hiera('step') >= 3 {
@@ -584,7 +598,14 @@ if hiera('step') >= 3 {
include ::nova::network::neutron
# Neutron class definitions
- include ::neutron
+ if 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ # config neutron service_plugins to onos driver
+ class { '::neutron':
+ service_plugins => [hiera('neutron_service_plugins')]
+ }
+ } else {
+ include ::neutron
+ }
class { '::neutron::server' :
sync_db => $sync_db,
manage_service => false,
@@ -595,10 +616,6 @@ if hiera('step') >= 3 {
manage_service => false,
enabled => false,
}
- class { '::neutron::agents::l3' :
- manage_service => false,
- enabled => false,
- }
class { '::neutron::agents::metadata':
manage_service => false,
enabled => false,
@@ -610,18 +627,66 @@ if hiera('step') >= 3 {
notify => Service['neutron-dhcp-service'],
require => Package['neutron'],
}
+
class { '::neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
mechanism_drivers => [hiera('neutron_mechanism_drivers')],
}
......@@ -502,9 +626,26 @@ index 863cc5f..1a99985 100644
+ odl_password => hiera('opendaylight_password'),
+ }
+ }
+ class { '::neutron::agents::l3' :
+ manage_service => false,
+ enabled => false,
+ }
+ } elsif 'onos_ml2' in hiera('neutron_mechanism_drivers') {
+ #config ml2_conf.ini with onos url address
+ $onos_port = hiera('onos_port')
+ $private_ip = hiera('neutron::agents::ml2::ovs::local_ip')
+
+ } else {
+ neutron_plugin_ml2 {
+ 'onos/username': value => 'admin';
+ 'onos/password': value => 'admin';
+ 'onos/url_path': value => "http://${controller_node_ips[0]}:${onos_port}/onos/vtn";
+ }
+ } else {
+ class { '::neutron::agents::l3' :
+ manage_service => false,
+ enabled => false,
+ }
+ class { 'neutron::agents::ml2::ovs':
+ manage_service => false,
+ enabled => false,
......@@ -515,7 +656,30 @@ index 863cc5f..1a99985 100644
if 'cisco_ucsm' in hiera('neutron_mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
@@ -1079,56 +1116,13 @@ if hiera('step') >= 4 {
@@ -646,8 +711,10 @@ if hiera('step') >= 3 {
if hiera('neutron_enable_bigswitch_ml2', false) {
include ::neutron::plugins::ml2::bigswitch::restproxy
}
- neutron_l3_agent_config {
- 'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false);
+ if !('onos_ml2' in hiera('neutron_mechanism_drivers')) {
+ neutron_l3_agent_config {
+ 'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false);
+ }
}
neutron_dhcp_agent_config {
'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false);
@@ -1073,62 +1140,21 @@ if hiera('step') >= 4 {
require => Pacemaker::Resource::Service[$::keystone::params::service_name]
}
}
- pacemaker::resource::service { $::neutron::params::l3_agent_service:
- clone_params => 'interleave=true',
+ if !('onos_ml2' in hiera('neutron_mechanism_drivers')) {
+ pacemaker::resource::service { $::neutron::params::l3_agent_service:
+ clone_params => 'interleave=true',
+ }
}
pacemaker::resource::service { $::neutron::params::dhcp_agent_service:
clone_params => 'interleave=true',
}
......@@ -572,7 +736,7 @@ index 863cc5f..1a99985 100644
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
constraint_type => 'order',
first_resource => "${::keystone::params::service_name}-clone",
@@ -1138,31 +1132,75 @@ if hiera('step') >= 4 {
@@ -1138,65 +1164,110 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
Pacemaker::Resource::Service[$::neutron::params::server_service]],
}
......@@ -635,13 +799,6 @@ index 863cc5f..1a99985 100644
+ Pacemaker::Resource::Service["${::neutron::params::ovs_agent_service}"]],
+ }
- }
- pacemaker::constraint::colocation { 'neutron-openvswitch-agent-to-dhcp-agent-colocation':
- source => "${::neutron::params::dhcp_agent_service}-clone",
- target => "${::neutron::params::ovs_agent_service}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service],
- Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
+ #another chain keystone-->neutron-server-->ovs-agent-->dhcp-->l3
+ pacemaker::constraint::base { 'neutron-server-to-openvswitch-agent-constraint':
+ constraint_type => "order",
......@@ -670,8 +827,82 @@ index 863cc5f..1a99985 100644
+ Pacemaker::Resource::Service["${::neutron::params::dhcp_agent_service}"]],
+ }
}
pacemaker::constraint::base { 'neutron-dhcp-agent-to-l3-agent-constraint':
constraint_type => 'order',
- pacemaker::constraint::colocation { 'neutron-openvswitch-agent-to-dhcp-agent-colocation':
- source => "${::neutron::params::dhcp_agent_service}-clone",
- target => "${::neutron::params::ovs_agent_service}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service],
- Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
- }
- pacemaker::constraint::base { 'neutron-dhcp-agent-to-l3-agent-constraint':
- constraint_type => 'order',
- first_resource => "${::neutron::params::dhcp_agent_service}-clone",
- second_resource => "${::neutron::params::l3_agent_service}-clone",
- first_action => 'start',
- second_action => 'start',
- require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
- Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]],
- }
- pacemaker::constraint::colocation { 'neutron-dhcp-agent-to-l3-agent-colocation':
- source => "${::neutron::params::l3_agent_service}-clone",
- target => "${::neutron::params::dhcp_agent_service}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
- Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]],
- }
- pacemaker::constraint::base { 'neutron-l3-agent-to-metadata-agent-constraint':
- constraint_type => 'order',
- first_resource => "${::neutron::params::l3_agent_service}-clone",
- second_resource => "${::neutron::params::metadata_agent_service}-clone",
- first_action => 'start',
- second_action => 'start',
- require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
- Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
- }
- pacemaker::constraint::colocation { 'neutron-l3-agent-to-metadata-agent-colocation':
- source => "${::neutron::params::metadata_agent_service}-clone",
- target => "${::neutron::params::l3_agent_service}-clone",
- score => 'INFINITY',
- require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
- Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
+ if !('onos_ml2' in hiera('neutron_mechanism_drivers')) {
+ pacemaker::constraint::base { 'neutron-dhcp-agent-to-l3-agent-constraint':
+ constraint_type => 'order',
+ first_resource => "${::neutron::params::dhcp_agent_service}-clone",
+ second_resource => "${::neutron::params::l3_agent_service}-clone",
+ first_action => 'start',
+ second_action => 'start',
+ require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
+ Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]],
+ }
+ pacemaker::constraint::colocation { 'neutron-dhcp-agent-to-l3-agent-colocation':
+ source => "${::neutron::params::l3_agent_service}-clone",
+ target => "${::neutron::params::dhcp_agent_service}-clone",
+ score => 'INFINITY',
+ require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
+ Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]],
+ }
+ pacemaker::constraint::base { 'neutron-l3-agent-to-metadata-agent-constraint':
+ constraint_type => 'order',
+ first_resource => "${::neutron::params::l3_agent_service}-clone",
+ second_resource => "${::neutron::params::metadata_agent_service}-clone",
+ first_action => 'start',
+ second_action => 'start',
+ require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
+ Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
+ }
+ pacemaker::constraint::colocation { 'neutron-l3-agent-to-metadata-agent-colocation':
+ source => "${::neutron::params::metadata_agent_service}-clone",
+ target => "${::neutron::params::l3_agent_service}-clone",
+ score => 'INFINITY',
+ require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
+ Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
+ }
}
-
# Nova
pacemaker::resource::service { $::nova::params::api_service_name :
clone_params => 'interleave=true',
diff --git a/puppet/manifests/overcloud_opendaylight.pp b/puppet/manifests/overcloud_opendaylight.pp
new file mode 100644
index 0000000..aea6568
......
......@@ -698,8 +698,7 @@ function undercloud_prep_overcloud_deploy {
elif [ ${deploy_options_array['sdn_controller']} == 'opendaylight-external' ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight-external.yaml"
elif [ ${deploy_options_array['sdn_controller']} == 'onos' ]; then
echo -e "${red}ERROR: ONOS is currently unsupported...exiting${reset}"
exit 1
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/onos.yaml"
elif [ ${deploy_options_array['sdn_controller']} == 'opencontrail' ]; then
echo -e "${red}ERROR: OpenContrail is currently unsupported...exiting${reset}"
exit 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment