SFC specific ODL version

ODL_BORON_TARBALL_LOCATION env variable can be used to point to dedicated
version of ODL for SFC, opendaylight-boron deb package will be created.

Change-Id: Ia9ec2457de82e793b29af494b48c37d567fc7e72
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
This commit is contained in:
Michal Skalski 2016-06-30 12:55:40 +02:00
parent 65f80ef389
commit ae7f56df70
4 changed files with 47 additions and 15 deletions

View File

@ -3,6 +3,7 @@ class opendaylight {
$network_metadata = hiera_hash('network_metadata')
$node_uid = hiera('uid')
$rest_api_port = $odl_settings['rest_api_port']
$package_name = $odl_settings['package_name']
$jetty_port = $odl_settings['metadata']['jetty_port']
$odl_nodes_hash = get_nodes_hash_by_roles($network_metadata, ['opendaylight'])
$odl_mgmt_ips_hash = get_node_to_ipaddr_map_by_network_role($odl_nodes_hash, 'management')

View File

@ -6,13 +6,14 @@ class opendaylight::install (
$management_vip = hiera('management_vip')
$conf_dir = '/opt/opendaylight/etc'
$jetty_port = $opendaylight::jetty_port
$odl_package = $opendaylight::package_name
$manage_l3_traffic = $opendaylight::odl_settings['enable_l3_odl'] ? {
true => 'yes',
default => 'no',
}
package { 'opendaylight':
package { $odl_package:
ensure => installed,
}
@ -66,7 +67,7 @@ class opendaylight::install (
value => $enabled_features,
}
Package['opendaylight'] ->
Package[$odl_package] ->
Ini_setting <||> ->
Firewall <||> ->
File <||> ->

View File

@ -1,6 +1,6 @@
attributes:
enable_l3_odl:
weight: 12
weight: 10
type: "checkbox"
value: false
label: "Use ODL to manage L3 traffic"
@ -8,12 +8,12 @@ attributes:
- networking_parameters:segmentation_type == 'vlan': Use tunneling segmentation type.
- settings:public_network_assignment.assign_to_all_nodes.value == false: Assign public network to all nodes
enable_sfc:
weight: 13
weight: 20
type: "checkbox"
value: false
label: "SFC features"
sfc_class:
weight: 14
weight: 21
type: "select"
value: "ncr"
label: "Classifier used by SFC"
@ -29,8 +29,25 @@ attributes:
restrictions:
- condition: "settings:opendaylight.enable_sfc.value == false"
action: "hide"
package_name:
weight: 22
type: "select"
value: "opendaylight"
label: "Name of opendaylight deb package"
values:
- data: "opendaylight"
label: "opendaylight"
- data: "opendaylight-boron"
label: "opendaylight-boron"
description:
>
Plugin can be build with dedicated package for SFC.
Before choosing opendaylight-boron ensure that plugin include this package.
restrictions:
- condition: "settings:opendaylight.enable_sfc.value == false"
action: "hide"
enable_bgpvpn:
weight: 15
weight: 40
type: "checkbox"
value: false
label: "BGPVPN extensions"
@ -45,7 +62,7 @@ attributes:
message: "BGPVPN (fuel-plugin-bgpvpn) plugin must be installed and enabled."
- networking_parameters:segmentation_type == 'vlan': This feature works only with segmentation_type != vlan
bgpvpn_gateway:
weight: 16
weight: 50
type: "text"
value: "0.0.0.0"
description: "Define the default gateway for BGPVPN"
@ -56,7 +73,7 @@ attributes:
source: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
error: 'Invalid ip number'
odl_v2:
weight: 17
weight: 60
type: "checkbox"
value: false
label: "Use V2 ML2 driver"
@ -103,7 +120,7 @@ attributes:
value: '8282'
label: 'Port number'
description: 'Port on which ODL REST API will be available.'
weight: 40
weight: 70
type: "text"
regex:
source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$

View File

@ -8,6 +8,7 @@ set -eux
# Where we can find odl karaf distribution tarball
# can be http(s) url or absolute path
ODL_TARBALL_LOCATION=${ODL_TARBALL_LOCATION:-https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.4.2-Beryllium-SR2/distribution-karaf-0.4.2-Beryllium-SR2.tar.gz}
ODL_BORON_TARBALL_LOCATION=${ODL_BORON_TARBALL_LOCATION:-false}
#ODL openflowjava NSH subtype patch related
# The patch's TAG should mach with ODL release being patched
@ -28,6 +29,7 @@ bdart=''
#Verion number used in deb/rpm package
ODL_VERSION_NUMBER=${ODL_VERSION_NUMBER:-0.4.2}
ODL_BORON_VERSION_NUMBER=${ODL_BORON_VERSION_NUMBER:-0.5.0}
ODL_DESCRIPTION="OpenDaylight SDN Controller"
TMP_NAME="karaf-odl.tar.gz"
@ -157,6 +159,16 @@ function patch_networking_odl_deb {
fi
}
function get_karaf {
if [[ "$1" =~ ^http.* ]]
then
download $1 $2
unpack $2 $3
else
unpack $1 $3
fi
}
function build_pkg {
case $1 in
centos)
@ -167,6 +179,9 @@ function build_pkg {
ubuntu)
pushd "${DIR}/repositories/${1}/"
fpm --architecture all --force -s dir -t deb -m 'mskalski@mirantis.com' --version "${ODL_VERSION_NUMBER}" --description "${ODL_DESCRIPTION}" --prefix /opt/opendaylight --deb-upstart "${DIR}/odl_package/${1}/opendaylight" --after-install "${DIR}/odl_package/${1}/opendaylight-post" --name opendaylight -d openjdk-8-jre-headless -C "${TMP_DIR}/opendaylight_src"
if [ "$ODL_BORON_TARBALL_LOCATION" != false ] ; then
fpm --architecture all --force -s dir -t deb -m 'mskalski@mirantis.com' --version "${ODL_BORON_VERSION_NUMBER}" --description "${ODL_DESCRIPTION}" --prefix /opt/opendaylight --deb-upstart "${DIR}/odl_package/${1}/opendaylight" --after-install "${DIR}/odl_package/${1}/opendaylight-post" --name opendaylight-boron -d openjdk-8-jre-headless -C "${TMP_DIR}/opendaylight_boron_src"
fi
patch_networking_odl_deb ${TMP_DIR}/networking_odl/requirements.txt
fpm --architecture all --force -s python -t deb -m 'mskalski@mirantis.com' --python-install-lib /usr/lib/python2.7/dist-packages ${TMP_DIR}/networking_odl/setup.py
popd
@ -184,12 +199,10 @@ mkdir -p "${TMP_DIR}"
pushd $TMP_DIR
if [[ "$ODL_TARBALL_LOCATION" =~ ^http.* ]]
then
download $ODL_TARBALL_LOCATION $TMP_NAME
unpack $TMP_NAME 'opendaylight_src'
else
unpack $ODL_TARBALL_LOCATION 'opendaylight_src'
get_karaf $ODL_TARBALL_LOCATION "karaf-odl.tar.gz" "opendaylight_src"
if [ "$ODL_BORON_TARBALL_LOCATION" != false ] ; then
get_karaf $ODL_BORON_TARBALL_LOCATION "karaf-boron-odl.tar.gz" "opendaylight_boron_src"
fi
if [ "$ENA_NSH_SUB_PATCH" = true ] ; then