import code

Change-Id: Ia1df8d96ce69941f739c40aae557f82b58d9c026
This commit is contained in:
Michal Skalski 2015-12-10 11:04:36 +01:00
parent ce1fde73c8
commit fae23b9890
8 changed files with 180 additions and 0 deletions

75
README.md Normal file
View File

@ -0,0 +1,75 @@
BGPVPN Plugin for Fuel
================================
BGPVPN plugin
-----------------------
Overview
--------
BGPVPN fuel plugin.
Requirements
------------
| Requirement | Version/Comment |
|----------------------------------|-----------------|
| Mirantis OpenStack compatibility | 7.0 |
Recommendations
---------------
None.
Limitations
-----------
Installation Guide
==================
OpenDaylight plugin installation
----------------------------------------
1. Clone the fuel-plugin-bgpvpn repo from github:
git clone https://github.com/openstack/fuel-plugin-bgpvpn
2. Install the Fuel Plugin Builder:
pip install fuel-plugin-builder
3. Install the [fpm gem](https://github.com/jordansissel/fpm):
gem install fpm
4. Build bgpvpn Fuel plugin:
fpb --build fuel-plugin-bgpvpn/
5. The *bgpvpn-[x.x.x].rpm* plugin package will be created in the plugin folder.
6. Move this file to the Fuel Master node with secure copy (scp):
scp bgpnvpn-[x.x.x].rpm root@<the_Fuel_Master_node_IP address>:/tmp
7. While logged in Fuel Master install the OpenDaylight plugin:
fuel plugins --install bgpvpn-[x.x.x].rpm
8. Check if the plugin was installed successfully:
fuel plugins
id | name | version | package_version
---|--------------|---------|----------------
1 | bgpvpn | 0.1.0 | 3.0.0
9. Plugin is ready to use and can be enabled on the Settings tab of the Fuel web UI.
User Guide
==========
Contributors
------------

View File

@ -0,0 +1,6 @@
package {'python-networking-bgpvpn':
ensure => installed,
} ->
neutron_config { 'DEFAULT/service_plugins': value => 'networking_bgpvpn.neutron.services.plugin.BGPVPNPlugin';}

9
deployment_tasks.yaml Normal file
View File

@ -0,0 +1,9 @@
- id: bgpvpn_configure
role: ['primary-controller', 'controller']
requires: [post_deployment_start]
required_for: [post_deployment_end]
type: puppet
parameters:
puppet_manifest: puppet/manifests/install-bgpvpn.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1400

6
environment_config.yaml Normal file
View File

@ -0,0 +1,6 @@
attributes:
metadata:
restrictions:
- "cluster:net_provider != 'neutron'": "Only neutron is supported by OpenDaylight"
label: "BGPVPN plugin"
weight: 90

30
metadata.yaml Normal file
View File

@ -0,0 +1,30 @@
# Plugin name
name: bgpvpn
# Human-readable name for your plugin
title: BGPVPN plugin
# Plugin version
version: '0.1.0'
# Description
description: 'This plugin provides BGPVPN extension for neutron.'
# Required fuel version
fuel_version: ['7.0']
# Specify license of your plugin
licenses: ['Apache License Version 2.0']
# Specify author or company name
authors: ['Michal Skalski, Mirantis']
# A link to the plugin's page
homepage: 'https://github.com/openstack/fuel-plugin-bgpvpn'
# Specify a group which your plugin implements, possible options:
# network, storage, storage::cinder, storage::glance, hypervisor
groups: ['network']
# The plugin is compatible with releases in the list
releases:
- os: ubuntu
version: 2015.1.0-7.0
mode: ['ha', 'multinode']
deployment_scripts_path: deployment_scripts/
repository_path: repositories/ubuntu
# Version of plugin package
package_version: '3.0.0'

54
pre_build_hook Executable file
View File

@ -0,0 +1,54 @@
#!/bin/bash
# Add here any the actions which are required before plugin build
# like packages building, packages downloading from mirrors and so on.
# The script should return 0 if there were no errors.
set -eux
# Networking bgpvpn
NETWORKING_BGPVPN_REPO=${NETWORKING_BGPVPN_REPO:-https://github.com/openstack/networking-bgpvpn.git}
NETWORKING_BGPVPN_BRANCH=${NETWORKING_BGPVPN_BRANCH:-backport/kilo}
# For which systems odl package should be build
BUILD_FOR=${BUILD_FOR:-ubuntu}
DIR="$(dirname `readlink -f $0`)"
TMP_DIR="${DIR}/tmp"
function cleanup {
rm -rf "${TMP_DIR}"
}
function build_pkg {
case $1 in
ubuntu)
pushd "${DIR}/repositories/${1}/"
fpm --force -s python -t deb -m 'mskalski@mirantis.com' --python-disable-dependency oslo.config ${TMP_DIR}/networking-bgpvpn/setup.py
popd
;;
*) echo "Not supported system"; exit 1;;
esac
}
command -v fpm >/dev/null 2>&1 || { echo >&2 "fpm ruby gem required but it's not installed. Aborting."; exit 1; }
cleanup
mkdir -p "${TMP_DIR}"
pushd $TMP_DIR
git clone $NETWORKING_BGPVPN_REPO networking-bgpvpn
pushd networking-bgpvpn
git checkout $NETWORKING_BGPVPN_BRANCH
sed -i -- 's/sphinxcontrib-blockdiag/sphinxcontrib.blockdiag/' ./requirements.txt
sed -i -- 's/sphinxcontrib-seqdiag/sphinxcontrib.seqdiag/' ./requirements.txt
popd
for system in $BUILD_FOR
do
build_pkg $system
done
cleanup

View File

View File