ODL Lithium SR1

Integrate ODL Lithium SR1 with Openstack Juno.

Change-Id: If6fe1d29dc1244444acdf19647ed418fa6dcc485
This commit is contained in:
Michal Skalski
2015-09-16 10:45:11 +02:00
parent 2860ac191a
commit f13066eaef
15 changed files with 49 additions and 105 deletions

View File

@@ -30,6 +30,7 @@ Limitations
* Supports only environments with Neutron
* HA for ovsdb feature is not implemented in Lithium release - one instance of ODL controller runs on primary OpenStack controller.
* L3 traffic managed by neutron agent - lack of drivers in OpenStack Juno.
* VM live migration not supported by ovsdb
Installation Guide
==================
@@ -122,6 +123,10 @@ Release Notes
* Integrate Lithium release with OpenStack Juno.
**0.6.1**
* Integrate Lithium SR1 with OpenStack Juno.
Development
===========

View File

@@ -2,6 +2,6 @@ include opendaylight
include firewall
class { 'opendaylight::service':
tomcat_port => $opendaylight::rest_api_port,
rest_port => $opendaylight::rest_api_port,
bind_address => $opendaylight::node_internal_address
}

View File

@@ -16,7 +16,7 @@ exec { 'remove-ovs-logs':
path => '/bin:/usr/sbin:/usr/bin',
}
exec { 'remove-ovs-db':
command => 'rm -f /etc/openvswitch/*',
command => 'rm -f /etc/openvswitch/*; rm -f /etc/openvswitch/.conf.db.~lock~',
path => '/bin:/usr/sbin:/usr/bin',
}
exec { 'ovs-set-manager':

View File

@@ -1,13 +1,14 @@
class opendaylight::service (
$tomcat_port = 8282,
$rest_port = 8282,
$bind_address = undef
) {
$nodes_hash = hiera('nodes', {})
$roles = node_roles($nodes_hash, hiera('uid'))
$management_vip = hiera('management_vip')
$karaf_default_features = ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management']
$karaf_odl_features = ['odl-base-all', 'odl-restconf', 'odl-ovsdb-openstack', 'odl-dlux-all', 'odl-mdsal-apidocs']
$karaf_odl_features = ['odl-restconf-all', 'odl-aaa-authn', 'odl-dlux-all', 'odl-mdsal-apidocs', 'odl-ovsdb-openstack']
if member($roles, 'primary-controller') {
@@ -24,19 +25,12 @@ class opendaylight::service (
ensure => running,
enable => true,
require => File[
'/opt/opendaylight/configuration/tomcat-server.xml',
'/opt/opendaylight/etc/jetty.xml',
'/opt/opendaylight/etc/custom.properties',
'/opt/opendaylight/etc/org.apache.karaf.features.cfg'],
}
debug("Set odl rest api port to ${tomcat_port}")
file { '/opt/opendaylight/configuration/tomcat-server.xml':
ensure => file,
owner => 'odl',
content => template('opendaylight/tomcat-server.xml.erb')
}
debug("Set odl rest api port to ${rest_port}")
file { '/opt/opendaylight/etc/jetty.xml':
ensure => file,
@@ -57,10 +51,10 @@ class opendaylight::service (
}
exec { 'wait-until-odl-ready':
command => 'netstat -lpen --tcp | grep java | grep 6653',
command => "curl -o /dev/null --fail --silent --head -u admin:admin http://${management_vip}:${rest_port}/restconf/operational/network-topology:network-topology/topology/netvirt:1",
path => '/bin:/usr/bin',
tries => 60,
try_sleep => 10,
try_sleep => 20,
require => Service['opendaylight'],
}
}

View File

@@ -88,7 +88,7 @@ ovsdb.of.version=1.3
# ovsdb can be configured with ml2 to perform l3 forwarding. When used in that scenario, the mac address of the default
# gateway --on the external subnet-- is expected to be resolved from its inet address. The config below overrides that
# specific arp/neighDiscovery lookup.
# ovsdb.l3gateway.mac=00:00:5E:00:02:01
# ovsdb.l3gateway.mac=
# TLS configuration
# To enable TLS, set secureChannelEnabled=true and specify the location of controller Java KeyStore and TrustStore files.

View File

@@ -49,6 +49,25 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
</Arg>
</Call>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">
<Property name="jetty.host" <% if @bind_address %> default="<%= @bind_address %>" <% end %> />
</Set>
<Set name="port">
<Property name="jetty.port" default="<%= @rest_port %>" />
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<!-- =========================================================== -->
<!-- Configure Authentication Realms -->
<!-- Realms may be configured for the entire server here, or -->

View File

@@ -36,7 +36,7 @@
#
# Comma separated list of features repositories to register by default
#
featuresRepositories = mvn:org.apache.karaf.features/standard/3.0.3/xml/features,mvn:org.apache.karaf.features/enterprise/3.0.3/xml/features,mvn:org.ops4j.pax.web/pax-web-features/3.1.4/xml/features,mvn:org.apache.karaf.features/spring/3.0.3/xml/features,mvn:org.opendaylight.integration/features-integration-index/0.3.0-Lithium/xml/features
featuresRepositories = mvn:org.apache.karaf.features/standard/3.0.3/xml/features,mvn:org.apache.karaf.features/enterprise/3.0.3/xml/features,mvn:org.ops4j.pax.web/pax-web-features/3.1.4/xml/features,mvn:org.apache.karaf.features/spring/3.0.3/xml/features,mvn:org.opendaylight.integration/features-integration-index/0.3.1-Lithium-SR1/xml/features
#
# Comma separated list of features to install at startup

View File

@@ -1,61 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Server>
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<Service name="Catalina">
<Connector port="<%= @tomcat_port %>" protocol="HTTP/1.1"
address="<%= @bind_address %>"
connectionTimeout="20000"
redirectPort="8663" />
<!--
Please remove the comments around the following Connector tag to enable HTTPS Authentication support.
Remember to add a valid keystore in the configuration folder.
More info : http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration
-->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="configuration/keystore"
keystorePass="changeit"/>
-->
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase=""
unpackWARs="false" autoDeploy="false"
deployOnStartup="false" createDirs="false">
<Realm className="org.opendaylight.controller.karafsecurity.ControllerCustomRealm" />
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="web_access_log_" suffix=".txt" resolveHosts="false"
rotatable="true" fileDateFormat="yyyy-MM"
pattern="%{yyyy-MM-dd HH:mm:ss.SSS z}t - [%a] - %r"/>
</Host>
</Engine>
</Service>
</Server>

View File

@@ -3,7 +3,7 @@ name: opendaylight
# Human-readable name for your plugin
title: OpenDaylight Lithium plugin
# Plugin version
version: '0.6.0'
version: '0.6.1'
# Description
description: 'This plugin provides OpenDaylight as a backend for neutron.
Use the same IP address as for OpenStack Horizon and port 8181 to reach dlux web ui and apidoc explorer.

View File

@@ -1,17 +1,17 @@
From 3c00c2ebd660616c2ca38ba5bc2f5d3d7c026452 Mon Sep 17 00:00:00 2001
From 26cce1d21550c621a4ccd6bcfd31688a9b1c1a6e Mon Sep 17 00:00:00 2001
From: Michal Skalski <mskalski@mirantis.com>
Date: Thu, 16 Jul 2015 15:15:53 +0200
Subject: [PATCH] Change names of external bridge and external patch port names
Date: Wed, 16 Sep 2015 10:01:02 +0200
Subject: [PATCH] Fuel patch
---
.../java/org/opendaylight/ovsdb/openstack/netvirt/api/Constants.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
.../java/org/opendaylight/ovsdb/openstack/netvirt/api/Constants.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/api/Constants.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/api/Constants.java
index 36ce971..f8ee636 100644
index 05a9a07..3669ef0 100644
--- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/api/Constants.java
+++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/api/Constants.java
@@ -28,10 +28,10 @@ public final class Constants {
@@ -28,7 +28,7 @@ public final class Constants {
public static final String TUNNEL_ENDPOINT_KEY = "local_ip";
public static final String INTEGRATION_BRIDGE = "br-int";
public static final String NETWORK_BRIDGE = "br-net";
@@ -19,11 +19,6 @@ index 36ce971..f8ee636 100644
+ public static final String EXTERNAL_BRIDGE = "br-floating";
public static final String PATCH_PORT_TO_INTEGRATION_BRIDGE_NAME = "patch-int";
public static final String PATCH_PORT_TO_NETWORK_BRIDGE_NAME = "patch-net";
- public static final String PATCH_PORT_TO_EXTERNAL_BRIDGE_NAME = "patch-ext";
+ public static final String PATCH_PORT_TO_EXTERNAL_BRIDGE_NAME = "p_br-floating-0";
public static final String PROVIDER_MAPPINGS_KEY = "provider_mappings";
public static final String PROVIDER_MAPPING = "physnet1:eth1";
--
public static final String PATCH_PORT_TO_EXTERNAL_BRIDGE_NAME = "patch-ext";
--
2.1.4

View File

@@ -10,7 +10,7 @@ setuid odl
env KARAF_HOME="/opt/opendaylight"
env JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
env JAVA_OPTS="-server -Xms128M -Xmx4096M -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:MaxPermSize=512M -Dcom.sun.management.jmxremote"
env JAVA_OPTS="-server -Xms256M -Xmx2048M -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:MaxPermSize=512M -Dcom.sun.management.jmxremote"
env OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
env MAIN="org.apache.karaf.main.Main"

View File

@@ -7,17 +7,13 @@ set -eux
# Where we can find odl karaf distribution tarball
# can be http(s) url or absolute path
ODL_TARBALL_LOCATION="https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.0-Lithium/distribution-karaf-0.3.0-Lithium.tar.gz"
ODL_TARBALL_LOCATION="https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.1-Lithium-SR1/distribution-karaf-0.3.1-Lithium-SR1.tar.gz"
#Verion number used in deb/rpm package
ODL_VERSION_NUMBER="0.3.0"
ODL_VERSION_NUMBER="0.3.1"
ODL_DESCRIPTION="OpenDaylight SDN Controller"
TMP_NAME="karaf-odl.tar.gz"
# URL of fuel library
FUEL_LIBRARY_COMMIT="c9a86ac0e6da95d36e328ce5130715792a2eb177"
FUEL_LIBRARY_TARBALL_URL="https://github.com/stackforge/fuel-library/archive/${FUEL_LIBRARY_COMMIT}.tar.gz"
# For which systems odl package should be build
BUILD_FOR="centos ubuntu"
@@ -38,7 +34,7 @@ function unpack {
}
function patch_odl {
cp "${DIR}/odl_package/odl_lithium_patch/openstack.net-virt-1.1.0-Lithium.jar" "${DIR}/package/system/org/opendaylight/ovsdb/openstack.net-virt/1.1.0-Lithium/openstack.net-virt-1.1.0-Lithium.jar"
cp "${DIR}/odl_package/odl_lithium_patch/openstack.net-virt-1.1.1-Lithium-SR1.jar" "${DIR}/package/system/org/opendaylight/ovsdb/openstack.net-virt/1.1.1-Lithium-SR1/openstack.net-virt-1.1.1-Lithium-SR1.jar"
}
function build_pkg {
@@ -78,8 +74,4 @@ do
build_pkg $system
done
wget -qO- "${FUEL_LIBRARY_TARBALL_URL}" | \
tar -C "${MODULES}" --strip-components=3 -zxvf - \
fuel-library-${FUEL_LIBRARY_COMMIT}/deployment/puppet/{inifile,firewall,corosync,pacemaker}
cleanup

View File

@@ -13,7 +13,7 @@
parameters:
puppet_manifest: puppet/manifests/odl-service.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 720
timeout: 1400
- id: odl_delete_predefined_net
role: ['primary-controller']
stage: post_deployment/4460