summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Radez <dradez@redhat.com>2016-02-15 18:49:00 -0500
committerMichael Chapman <woppin@gmail.com>2016-02-22 14:14:32 +1100
commitc86bd1f24647646b7489cd72e0a0bb91f4a505f1 (patch)
treeb9ee9a1e7832f9cf361578e5177d53b584a14194
parent01b56b61e6dc1f4eb34787fca498eb624a2dcb64 (diff)
Adding SDNVPN support
Change-Id: Id2d6d46a53129d4ae2f93fad835536da067e42df JIRA: APEX-51 Signed-off-by: Dan Radez <dradez@redhat.com>
-rwxr-xr-xbuild/instack.sh1
-rw-r--r--build/opnfv-tripleo-heat-templates.patch121
-rwxr-xr-xci/deploy.sh7
-rw-r--r--config/deploy/deploy_settings.yaml1
-rw-r--r--config/deploy/os-nosdn-nofeature-ha.yaml1
-rw-r--r--config/deploy/os-odl_l2-nofeature-ha.yaml1
-rw-r--r--config/deploy/os-odl_l2-sdnvpn-ha.yaml10
-rw-r--r--config/deploy/os-odl_l2-sfc-noha.yaml1
-rw-r--r--config/deploy/os-odl_l3-nofeature-ha.yaml1
-rw-r--r--config/deploy/os-onos-nofeature-ha.yaml1
-rw-r--r--config/deploy/os-opencontrail-nofeature-ha.yaml1
11 files changed, 97 insertions, 49 deletions
diff --git a/build/instack.sh b/build/instack.sh
index e8fcf7ba..932de57b 100755
--- a/build/instack.sh
+++ b/build/instack.sh
@@ -261,6 +261,7 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--run-command "yum remove -y openstack-neutron-openvswitch" \
--run-command "echo 'nf_conntrack_proto_sctp' > /etc/modules-load.d/nf_conntrack_proto_sctp.conf" \
--run-command "if ! rpm -q epel-release > /dev/null; then yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm; fi" \
+ --install https://github.com/michaeltchapman/networking_rpm/raw/master/openstack-neutron-bgpvpn-2015.2-1.el7.centos.noarch.rpm \
--install "$AODH_PKG,ceph" \
-a overcloud-full-opendaylight.qcow2
diff --git a/build/opnfv-tripleo-heat-templates.patch b/build/opnfv-tripleo-heat-templates.patch
index 7933927a..f75c430b 100644
--- a/build/opnfv-tripleo-heat-templates.patch
+++ b/build/opnfv-tripleo-heat-templates.patch
@@ -1,35 +1,14 @@
-From 9593cf0e62cb324a50163f931842a3f32d11cae6 Mon Sep 17 00:00:00 2001
+From d86b6e5cc493645e01484a1ea6cfff29cce2fa3d Mon Sep 17 00:00:00 2001
From: Tim Rozet <tdrozet@gmail.com>
Date: Tue, 12 Jan 2016 16:49:57 -0500
-Subject: [PATCH] Adds current opnfv patch with ODL and ONOS support Adds
- opendaylight L3 support Fixes missing opendaylight install param for ODL L3
- Deploy Aodh services, replacing Ceilometer Alarm Ceilometer Alarm is
- deprecated in Liberty by Aodh.
+Subject: [PATCH] Adds current opnfv patch with ODL and ONOS support
-This patch:
-* manage Aodh Keystone resources
-* deploy Aodh API under WSGI, Notifier, Listener and Evaluator
-* manage new parameters to customize Aodh deployment
-* uses ceilometer DB for the upgrade path
-
-WIP - pacemaker work needs to be finished.
-Fixes OpenDaylightEnableL3 to set to 'yes' string
-Adds AODH Pacemaker constraint for keystone
-Fixes cinder keystone auth uri
-aodh fixes
-Adds specific env for SFC, and parameterizes ODL feature boot
-Fixes SFC and SFC coexistence
-Fix aodh database connection
-Set to mongo rather than the default sqlite
-Also move the aodh config to step 4 before pacemaker starts services
-Move ceilometer event pipeline to correct place
-Was missing .yaml
-update the nova floating pool id
---
environments/onos.yaml | 8 +
environments/opendaylight-external.yaml | 25 ++
environments/opendaylight.yaml | 25 ++
environments/opendaylight_l3.yaml | 9 +
+ environments/opendaylight_sdnvpn.yaml | 29 ++
environments/opendaylight_sfc.yaml | 28 ++
network/endpoints/endpoint_map.yaml | 31 ++
overcloud-resource-registry-puppet.yaml | 3 +
@@ -41,14 +20,15 @@ update the nova floating pool id
puppet/hieradata/controller.yaml | 5 +-
puppet/manifests/overcloud_compute.pp | 31 +-
puppet/manifests/overcloud_controller.pp | 128 +++++-
- puppet/manifests/overcloud_controller_pacemaker.pp | 444 ++++++++++++++-------
+ puppet/manifests/overcloud_controller_pacemaker.pp | 456 ++++++++++++++-------
puppet/manifests/overcloud_opendaylight.pp | 27 ++
- puppet/opendaylight-puppet.yaml | 223 +++++++++++
- 18 files changed, 1064 insertions(+), 162 deletions(-)
+ puppet/opendaylight-puppet.yaml | 223 ++++++++++
+ 19 files changed, 1105 insertions(+), 162 deletions(-)
create mode 100644 environments/onos.yaml
create mode 100644 environments/opendaylight-external.yaml
create mode 100644 environments/opendaylight.yaml
create mode 100644 environments/opendaylight_l3.yaml
+ create mode 100644 environments/opendaylight_sdnvpn.yaml
create mode 100644 environments/opendaylight_sfc.yaml
create mode 100644 puppet/manifests/overcloud_opendaylight.pp
create mode 100644 puppet/opendaylight-puppet.yaml
@@ -144,6 +124,41 @@ index 0000000..05c0aff
+ neutron_mechanism_drivers: ['opendaylight']
+ neutron_tenant_network_type: vxlan
+ opendaylight_install: true
+diff --git a/environments/opendaylight_sdnvpn.yaml b/environments/opendaylight_sdnvpn.yaml
+new file mode 100644
+index 0000000..3a14975
+--- /dev/null
++++ b/environments/opendaylight_sdnvpn.yaml
+@@ -0,0 +1,29 @@
++# Environment file used to enable OpenDaylight
++# Currently uses overcloud image that is assumed
++# to be virt-customized with ODL RPM already on it
++
++# These parameters customize the OpenDaylight Node
++# The user name and password are for the ODL service
++# Defaults are included here for reference
++#parameter_defaults:
++# OpenDaylightFlavor: baremetal
++# OpenDaylightHostname: opendaylight-server
++# OpenDaylightImage: overcloud-full
++# OpenDaylightUsername: admin
++# OpenDaylightPassword: admin
++
++parameters:
++ # increase this if you need more ODL nodes
++ # OpenDaylightCount: 1
++ ControllerEnableSwiftStorage: false
++ OpenDaylightFeatures: "odl-ovsdb-openstack,odl-vpnservice-api,odl-vpnservice-impl,odl-vpnservice-impl-rest,odl-vpnservice-impl-ui,odl-vpnservice-core"
++ NeutronL3HA: false
++ NeutronServicePlugins: "router,qos,networking_bgpvpn.neutron.services.plugin.BGPVPNPlugin"
++ ExtraConfig:
++ tripleo::ringbuilder::build_ring: False
++ neutron_mechanism_drivers: ['opendaylight']
++ neutron_tenant_network_type: vxlan
++ # Enable this if you want OpenDaylight on the contollers
++ # reduce OpenDaylightCount to 0 if you don't want any
++ # OpenDaylight only nodes
++ opendaylight_install: true
diff --git a/environments/opendaylight_sfc.yaml b/environments/opendaylight_sfc.yaml
new file mode 100644
index 0000000..3dd1e13
@@ -1076,7 +1091,7 @@ index 1f6c2be..1095758 100644
include ::heat
include ::heat::api
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
-index 3fb92f3..732afa2 100644
+index 3fb92f3..cb00e9a 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -380,6 +380,21 @@ if hiera('step') >= 2 {
@@ -1128,11 +1143,23 @@ index 3fb92f3..732afa2 100644
class { '::neutron::agents::metadata':
manage_service => false,
enabled => false,
-@@ -609,18 +627,68 @@ if hiera('step') >= 3 {
+@@ -609,18 +627,80 @@ if hiera('step') >= 3 {
notify => Service['neutron-dhcp-service'],
require => Package['neutron'],
}
+
++ # SDNVPN Hack
++ if ('networking_bgpvpn.neutron.services.plugin.BGPVPNPlugin' in hiera('neutron::service_plugins'))
++ {
++ class { 'neutron::config':
++ server_config => {
++ 'service_providers/service_provider' => {
++ 'value' => 'BGPVPN:Dummy:networking_bgpvpn.neutron.services.service_drivers.driver_api.BGPVPNDriver:default'
++ }
++ }
++ }
++ }
++
class { '::neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
@@ -1161,7 +1188,7 @@ index 3fb92f3..732afa2 100644
+ odl_password => hiera('opendaylight_password'),
+ odl_port => hiera('opendaylight_port'),
+ }
-
++
+ if str2bool(hiera('opendaylight_install', 'false')) {
+ class { 'neutron::plugins::ovs::opendaylight':
+ odl_controller_ip => $opendaylight_controller_ip,
@@ -1181,7 +1208,7 @@ index 3fb92f3..732afa2 100644
+ #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';
@@ -1203,7 +1230,7 @@ index 3fb92f3..732afa2 100644
if 'cisco_ucsm' in hiera('neutron_mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
-@@ -645,8 +713,10 @@ if hiera('step') >= 3 {
+@@ -645,8 +725,10 @@ if hiera('step') >= 3 {
if hiera('neutron_enable_bigswitch_ml2', false) {
include ::neutron::plugins::ml2::bigswitch::restproxy
}
@@ -1216,7 +1243,7 @@ index 3fb92f3..732afa2 100644
}
neutron_dhcp_agent_config {
'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false);
-@@ -813,13 +883,13 @@ if hiera('step') >= 3 {
+@@ -813,13 +895,13 @@ if hiera('step') >= 3 {
swift::storage::filter::healthcheck { $swift_components : }
}
@@ -1231,7 +1258,7 @@ index 3fb92f3..732afa2 100644
$ceilometer_database_connection = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
}
}
-@@ -879,6 +949,62 @@ if hiera('step') >= 3 {
+@@ -879,6 +961,62 @@ if hiera('step') >= 3 {
enabled => false,
}
@@ -1294,7 +1321,7 @@ index 3fb92f3..732afa2 100644
# httpd/apache and horizon
# NOTE(gfidente): server-status can be consumed by the pacemaker resource agent
class { '::apache' :
-@@ -1055,62 +1181,21 @@ if hiera('step') >= 4 {
+@@ -1055,62 +1193,21 @@ if hiera('step') >= 4 {
clone_params => 'interleave=true',
require => Pacemaker::Resource::Service[$::keystone::params::service_name],
}
@@ -1361,7 +1388,7 @@ index 3fb92f3..732afa2 100644
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
constraint_type => 'order',
first_resource => "${::keystone::params::service_name}-clone",
-@@ -1120,65 +1205,110 @@ if hiera('step') >= 4 {
+@@ -1120,65 +1217,110 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
Pacemaker::Resource::Service[$::neutron::params::server_service]],
}
@@ -1528,7 +1555,7 @@ index 3fb92f3..732afa2 100644
# Nova
pacemaker::resource::service { $::nova::params::api_service_name :
clone_params => 'interleave=true',
-@@ -1276,7 +1406,7 @@ if hiera('step') >= 4 {
+@@ -1276,7 +1418,7 @@ if hiera('step') >= 4 {
Pacemaker::Resource::Service[$::nova::params::conductor_service_name]],
}
@@ -1537,21 +1564,21 @@ index 3fb92f3..732afa2 100644
case downcase(hiera('ceilometer_backend')) {
/mysql/: {
pacemaker::resource::service { $::ceilometer::params::agent_central_service_name :
-@@ -1298,10 +1428,19 @@ if hiera('step') >= 4 {
+@@ -1298,10 +1440,19 @@ if hiera('step') >= 4 {
pacemaker::resource::service { $::ceilometer::params::api_service_name :
clone_params => 'interleave=true',
}
- pacemaker::resource::service { $::ceilometer::params::alarm_evaluator_service_name :
+ pacemaker::resource::service { $::aodh::params::notifier_service_name :
-+ clone_params => 'interleave=true',
-+ }
+ clone_params => 'interleave=true',
+ }
+- pacemaker::resource::service { $::ceilometer::params::alarm_notifier_service_name :
+ pacemaker::resource::service { $::aodh::params::expirer_package_serice :
+ clone_params => 'interleave=true',
+ }
+ pacemaker::resource::service { $::aodh::params::listener_service_name :
- clone_params => 'interleave=true',
- }
-- pacemaker::resource::service { $::ceilometer::params::alarm_notifier_service_name :
++ clone_params => 'interleave=true',
++ }
+ pacemaker::resource::service { $::aodh::params::api_service_name :
+ clone_params => 'interleave=true',
+ }
@@ -1559,7 +1586,7 @@ index 3fb92f3..732afa2 100644
clone_params => 'interleave=true',
}
pacemaker::resource::service { $::ceilometer::params::agent_notification_service_name :
-@@ -1315,8 +1454,19 @@ if hiera('step') >= 4 {
+@@ -1315,8 +1466,19 @@ if hiera('step') >= 4 {
# Fedora doesn't know `require-all` parameter for constraints yet
if $::operatingsystem == 'Fedora' {
$redis_ceilometer_constraint_params = undef
@@ -1579,7 +1606,7 @@ index 3fb92f3..732afa2 100644
}
pacemaker::constraint::base { 'redis-then-ceilometer-central-constraint':
constraint_type => 'order',
-@@ -1328,6 +1478,16 @@ if hiera('step') >= 4 {
+@@ -1328,6 +1490,16 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Ocf['redis'],
Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name]],
}
@@ -1596,7 +1623,7 @@ index 3fb92f3..732afa2 100644
pacemaker::constraint::base { 'keystone-then-ceilometer-central-constraint':
constraint_type => 'order',
first_resource => "${::keystone::params::service_name}-clone",
-@@ -1378,53 +1538,37 @@ if hiera('step') >= 4 {
+@@ -1378,53 +1550,37 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
Pacemaker::Resource::Ocf['delay']],
}
@@ -1929,5 +1956,5 @@ index 0000000..6488e0e
+ - - {get_attr: [OpenDaylightDeployment, deploy_stdout]}
+ - {get_param: UpdateIdentifier}
--
-2.5.0
+1.8.3.1
diff --git a/ci/deploy.sh b/ci/deploy.sh
index c89dd584..1b8f36f0 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -304,8 +304,8 @@ parse_inventory_file() {
fi
eval $(parse_yaml $INVENTORY_FILE) || {
- echo "${red}Failed to parse inventory.yaml. Aborting.${reset}" &&
- exit 1
+ echo "${red}Failed to parse inventory.yaml. Aborting.${reset}" &&
+ exit 1
}
instack_env_output="
@@ -801,6 +801,8 @@ function undercloud_prep_overcloud_deploy {
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_l3.yaml"
elif [ "${deploy_options_array['sfc']}" == 'true' ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_sfc.yaml"
+ elif [ "${deploy_options_array['vpn']}" == 'true' ]; then
+ DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_sdnvpn.yaml"
else
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight.yaml"
fi
@@ -884,6 +886,7 @@ function undercloud_prep_overcloud_deploy {
if [ "$debug" == 'TRUE' ]; then
LIBGUESTFS_BACKEND=direct virt-customize -a overcloud-full.qcow2 --root-password password:opnfvapex
fi
+
source stackrc
set -o errexit
echo "Uploading overcloud glance images"
diff --git a/config/deploy/deploy_settings.yaml b/config/deploy/deploy_settings.yaml
index 04101485..8292dee5 100644
--- a/config/deploy/deploy_settings.yaml
+++ b/config/deploy/deploy_settings.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: false
+ vpn: false
diff --git a/config/deploy/os-nosdn-nofeature-ha.yaml b/config/deploy/os-nosdn-nofeature-ha.yaml
index becd6e57..0313f9c1 100644
--- a/config/deploy/os-nosdn-nofeature-ha.yaml
+++ b/config/deploy/os-nosdn-nofeature-ha.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: false
+ vpn: false
diff --git a/config/deploy/os-odl_l2-nofeature-ha.yaml b/config/deploy/os-odl_l2-nofeature-ha.yaml
index 04101485..8292dee5 100644
--- a/config/deploy/os-odl_l2-nofeature-ha.yaml
+++ b/config/deploy/os-odl_l2-nofeature-ha.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: false
+ vpn: false
diff --git a/config/deploy/os-odl_l2-sdnvpn-ha.yaml b/config/deploy/os-odl_l2-sdnvpn-ha.yaml
new file mode 100644
index 00000000..73507772
--- /dev/null
+++ b/config/deploy/os-odl_l2-sdnvpn-ha.yaml
@@ -0,0 +1,10 @@
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ sdn_controller: opendaylight
+ sdn_l3: false
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: true
diff --git a/config/deploy/os-odl_l2-sfc-noha.yaml b/config/deploy/os-odl_l2-sfc-noha.yaml
index 92372a90..6d088af8 100644
--- a/config/deploy/os-odl_l2-sfc-noha.yaml
+++ b/config/deploy/os-odl_l2-sfc-noha.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: true
+ vpn: false
diff --git a/config/deploy/os-odl_l3-nofeature-ha.yaml b/config/deploy/os-odl_l3-nofeature-ha.yaml
index 84f97602..69ab5e7e 100644
--- a/config/deploy/os-odl_l3-nofeature-ha.yaml
+++ b/config/deploy/os-odl_l3-nofeature-ha.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: false
+ vpn: false
diff --git a/config/deploy/os-onos-nofeature-ha.yaml b/config/deploy/os-onos-nofeature-ha.yaml
index 53912e9c..7f56fbc0 100644
--- a/config/deploy/os-onos-nofeature-ha.yaml
+++ b/config/deploy/os-onos-nofeature-ha.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: false
+ vpn: false
diff --git a/config/deploy/os-opencontrail-nofeature-ha.yaml b/config/deploy/os-opencontrail-nofeature-ha.yaml
index f6ac253b..f01a8a92 100644
--- a/config/deploy/os-opencontrail-nofeature-ha.yaml
+++ b/config/deploy/os-opencontrail-nofeature-ha.yaml
@@ -7,3 +7,4 @@ deploy_options:
tacker: false
congress: false
sfc: false
+ vpn: false