From 5d11066250c34d4d990e2b54bdd2c82aba7f26d7 Mon Sep 17 00:00:00 2001 From: Michal Skalski Date: Wed, 13 Jan 2016 15:10:34 +0100 Subject: [PATCH] Support MOS 8.0. - Support MOS 8.0. - Move ODL installation and configuration to main phase of deployment. - L3 traffic managed by ODL possible when vxlan tunneling is used. - Include snapshot of OpenDaylight Beryllium, stable version not available at this moment. - Get rid of hardcoded configuration related to specific ODL version. Now plugin is more elastic and should support a broader number of ODL versions. - odl_network_scheme function overrided standard network scheme so custom network templates are not required. - ODL is no longer patched to use br-floating bridge Change-Id: I8d1391817ff3a012697aac487ce9eaea489d8df6 --- .gitignore | 3 + CHANGELOG.md | 17 ++ LICENSE | 26 --- README.md | 30 +-- deployment_scripts/clean-neutron.sh | 11 - .../puppet/manifests/controller-pre.pp | 14 -- .../puppet/manifests/disable-ovs-agent.pp | 26 --- .../puppet/manifests/hiera-override.pp | 2 + .../puppet/manifests/ml2-configuration.pp | 10 - .../puppet/manifests/neutron-configuration.pp | 188 +++++++++++++++++ .../puppet/manifests/odl-install.pp | 7 + .../puppet/manifests/odl-ml2-configuration.pp | 174 ++++++++++++++++ .../puppet/manifests/odl-netconfig.pp | 114 +++++++++++ .../odl-nol3-configure_default_route.pp | 31 +++ .../puppet/manifests/odl-service.pp | 8 +- .../puppet/manifests/quagga_extension.pp | 3 - .../puppet/manifests/recreate-neutron-db.pp | 21 -- .../puppet/manifests/recreate-ovs.pp | 65 ------ .../puppet/manifests/setup-floating.pp | 17 -- .../puppet/manifests/start-neutron.pp | 71 ------- .../puppet/manifests/stop-neutron.pp | 13 -- .../parser/functions/odl_hiera_overrides.rb | 42 ++++ .../parser/functions/odl_karaf_features.rb | 16 ++ .../parser/functions/odl_network_scheme.rb | 61 ++++++ .../opendaylight/manifests/ha/haproxy.pp | 8 +- .../manifests/ha/haproxy_service.pp | 78 ------- .../opendaylight/manifests/hiera_override.pp | 12 ++ .../modules/opendaylight/manifests/install.pp | 89 ++++++++ .../modules/opendaylight/manifests/service.pp | 68 +------ .../templates/custom.properties.erb | 132 ------------ .../org.apache.karaf.features.cfg.erb | 49 ----- deployment_tasks.yaml | 191 ++++++++++++------ environment_config.yaml | 5 +- figures/opendaylight-options.png | Bin 90997 -> 0 bytes metadata.yaml | 15 +- odl_package/odl_lithium_patch/LICENSE | 70 ------- odl_package/odl_lithium_patch/README | 5 - odl_package/odl_lithium_patch/fuel.patch | 24 --- .../openstack.net-virt-1.1.2-Lithium-SR2.jar | Bin 231749 -> 0 bytes pre_build_hook | 19 +- 40 files changed, 911 insertions(+), 824 deletions(-) create mode 100644 .gitignore delete mode 100755 deployment_scripts/clean-neutron.sh delete mode 100644 deployment_scripts/puppet/manifests/controller-pre.pp delete mode 100644 deployment_scripts/puppet/manifests/disable-ovs-agent.pp create mode 100644 deployment_scripts/puppet/manifests/hiera-override.pp delete mode 100644 deployment_scripts/puppet/manifests/ml2-configuration.pp create mode 100644 deployment_scripts/puppet/manifests/neutron-configuration.pp create mode 100644 deployment_scripts/puppet/manifests/odl-install.pp create mode 100644 deployment_scripts/puppet/manifests/odl-ml2-configuration.pp create mode 100644 deployment_scripts/puppet/manifests/odl-netconfig.pp create mode 100644 deployment_scripts/puppet/manifests/odl-nol3-configure_default_route.pp delete mode 100644 deployment_scripts/puppet/manifests/quagga_extension.pp delete mode 100644 deployment_scripts/puppet/manifests/recreate-neutron-db.pp delete mode 100644 deployment_scripts/puppet/manifests/recreate-ovs.pp delete mode 100644 deployment_scripts/puppet/manifests/setup-floating.pp delete mode 100644 deployment_scripts/puppet/manifests/start-neutron.pp delete mode 100644 deployment_scripts/puppet/manifests/stop-neutron.pp create mode 100644 deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_hiera_overrides.rb create mode 100644 deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_karaf_features.rb create mode 100644 deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_network_scheme.rb delete mode 100644 deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy_service.pp create mode 100644 deployment_scripts/puppet/modules/opendaylight/manifests/hiera_override.pp create mode 100644 deployment_scripts/puppet/modules/opendaylight/manifests/install.pp delete mode 100644 deployment_scripts/puppet/modules/opendaylight/templates/custom.properties.erb delete mode 100644 deployment_scripts/puppet/modules/opendaylight/templates/org.apache.karaf.features.cfg.erb delete mode 100644 figures/opendaylight-options.png delete mode 100644 odl_package/odl_lithium_patch/LICENSE delete mode 100644 odl_package/odl_lithium_patch/README delete mode 100644 odl_package/odl_lithium_patch/fuel.patch delete mode 100644 odl_package/odl_lithium_patch/openstack.net-virt-1.1.2-Lithium-SR2.jar diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5c28c9a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.rpm +*.deb +.build/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 8446646..a3c5540 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,20 @@ +## 0.8.0 + + - Support MOS 8.0. + - Move ODL installation and configuration + to main phase of deployment. + - L3 traffic managed by ODL possible when vxlan + tunneling is used. + - Include snapshot of OpenDaylight Beryllium, + stable version not available at this moment. + - Get rid of hardcoded configurations related to specific ODL versions. + Now plugin is more elastic and should support a broader + number of ODL versions. + - odl_network_scheme function overrided standard network scheme + so custom network templates are not required. + - ODL is no longer patched to use br-floating bridge. + + ## 0.7.0 - Support for MOS 7.0 diff --git a/LICENSE b/LICENSE index e06d208..d0381d6 100644 --- a/LICENSE +++ b/LICENSE @@ -174,29 +174,3 @@ Apache License of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed 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. - diff --git a/README.md b/README.md index cbb33ce..0a94159 100644 --- a/README.md +++ b/README.md @@ -17,19 +17,12 @@ Requirements | Requirement | Version/Comment | |----------------------------------|-----------------| -| Mirantis OpenStack compatibility | 7.0 | - -Recommendations ---------------- - -None. +| Mirantis OpenStack compatibility | 8.0 | Limitations ----------- -* Supports only environments with Neutron. -* HA for ovsdb feature is not implemented yet. -* L3 traffic managed by neutron agent. +* HA for ODL controller is not implemented yet. Installation Guide ================== @@ -82,7 +75,7 @@ OpenDaylight plugin configuration 1. Create a new environment with the Fuel UI wizard. 2. Click on the Settings tab of the Fuel web UI. -3. Select "OpenDaylight Lithium plugin" section. +3. Select "OpenDaylight plugin" section. 4. Tick the checkbox and click "Save Settings" button. 5. Assign role OPENDAYLIGHT to one of the node. @@ -92,29 +85,16 @@ Build options It is possible to modify process of building plugin by setting environment variables. Look into [pre_build_hook file](pre_build_hook) for more details. -Dependencies ------------- - -OpenDaylight controller require Java Runtime Environment. -If you plan to use plugin in environment without internet access or/and CentOS environment modify build command: - - INCLUDE_DEPENDENCIES=true fpb --build fuel-plugin-opendaylight/ - -Pre build script will try download required dependencies so it become part of the compiled plugin. - -Note: List of packages for [ubuntu](odl_package/ubuntu/dependencies.txt) and [centos](odl_package/centos/dependencies.txt) may need to be modified if packages in centos or ubuntu repositories will change. - Testing ------- Use the same IP address as for OpenStack Horizon panel and port 8181 to reach dlux web ui and apidoc explorer: * DLUX: http://horizon_ip:8181/index.html -* APIDOC: http://horizon_ip:8181/apidoc/explorer/index.html -OpenDaylight files are stored on primary controller inside */opt/opendaylight* directory. +OpenDaylight files are stored on node with 'OpenDaylight' role assigned inside */opt/opendaylight* directory. -To log in to OpenDayligt shell run */opt/opendaylight/bin/client* +To log in to OpenDayligt shell run */opt/opendaylight/bin/client -u karaf* Known issues ------------ diff --git a/deployment_scripts/clean-neutron.sh b/deployment_scripts/clean-neutron.sh deleted file mode 100755 index 3dacca1..0000000 --- a/deployment_scripts/clean-neutron.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source /root/openrc -router_id=`neutron router-list | grep "network_id" | awk '{print $2}'` -neutron router-gateway-clear $router_id -subnet_id=`neutron router-port-list $router_id | grep "subnet_id" | awk '{print $8}' | awk -F '\"' '{print $2}'` -neutron router-interface-delete $router_id $subnet_id -neutron router-delete $router_id -neutron subnet-delete $subnet_id -neutron net-delete net04 -neutron net-delete net04_ext diff --git a/deployment_scripts/puppet/manifests/controller-pre.pp b/deployment_scripts/puppet/manifests/controller-pre.pp deleted file mode 100644 index 812aee2..0000000 --- a/deployment_scripts/puppet/manifests/controller-pre.pp +++ /dev/null @@ -1,14 +0,0 @@ -$java_package = $operatingsystem ? { - 'CentOS' => 'java-1.7.0-openjdk', - 'Ubuntu' => 'openjdk-7-jre-headless', -} - -package { 'java-jre': - ensure => installed, - name => $java_package, -} - -package { 'opendaylight': - ensure => installed, - require => Package['java-jre'], -} diff --git a/deployment_scripts/puppet/manifests/disable-ovs-agent.pp b/deployment_scripts/puppet/manifests/disable-ovs-agent.pp deleted file mode 100644 index c4be895..0000000 --- a/deployment_scripts/puppet/manifests/disable-ovs-agent.pp +++ /dev/null @@ -1,26 +0,0 @@ -$nodes_hash = hiera('nodes', {}) -$roles = node_roles($nodes_hash, hiera('uid')) -$odl = hiera('opendaylight') - -$ovs_agent_name = $operatingsystem ? { - 'CentOS' => 'neutron-openvswitch-agent', - 'Ubuntu' => 'neutron-plugin-openvswitch-agent', -} - -if member($roles, 'primary-controller') { - cs_resource { "p_${ovs_agent_name}": - ensure => absent, - } - - if $odl['enable_l3_odl'] { - cs_resource { 'p_neutron-l3-agent': - ensure => absent, - } - } - -} else { - service {$ovs_agent_name: - ensure => stopped, - enable => false, - } -} diff --git a/deployment_scripts/puppet/manifests/hiera-override.pp b/deployment_scripts/puppet/manifests/hiera-override.pp new file mode 100644 index 0000000..82c6af6 --- /dev/null +++ b/deployment_scripts/puppet/manifests/hiera-override.pp @@ -0,0 +1,2 @@ +include opendaylight +class { '::opendaylight::hiera_override': } diff --git a/deployment_scripts/puppet/manifests/ml2-configuration.pp b/deployment_scripts/puppet/manifests/ml2-configuration.pp deleted file mode 100644 index 61b02ca..0000000 --- a/deployment_scripts/puppet/manifests/ml2-configuration.pp +++ /dev/null @@ -1,10 +0,0 @@ -include opendaylight - -$address = hiera('management_vip') -$port = $opendaylight::rest_api_port -neutron_plugin_ml2 { - 'ml2/mechanism_drivers': value => 'opendaylight'; - 'ml2_odl/password': value => 'admin'; - 'ml2_odl/username': value => 'admin'; - 'ml2_odl/url': value => "http://${address}:${port}/controller/nb/v2/neutron"; -} diff --git a/deployment_scripts/puppet/manifests/neutron-configuration.pp b/deployment_scripts/puppet/manifests/neutron-configuration.pp new file mode 100644 index 0000000..26301e2 --- /dev/null +++ b/deployment_scripts/puppet/manifests/neutron-configuration.pp @@ -0,0 +1,188 @@ +notice('MODULAR: neutron-configuration.pp') + +include opendaylight +$use_neutron = hiera('use_neutron', false) +$address = hiera('management_vip') +$port = $opendaylight::rest_api_port +$odl = hiera('opendaylight') +$nodes_hash = hiera('nodes', {}) +$roles = node_roles($nodes_hash, hiera('uid')) + + +if $use_neutron { + + package {'python-networking-odl': + ensure => installed, + } + + neutron_plugin_ml2 { + 'ml2/mechanism_drivers': value => 'opendaylight'; + 'ml2_odl/password': value => 'admin'; + 'ml2_odl/username': value => 'admin'; + 'ml2_odl/url': value => "http://${address}:${port}/controller/nb/v2/neutron"; + } + + + exec { 'ovs-set-manager': + command => "ovs-vsctl set-manager tcp:${opendaylight::manager_ip_address}:6640", + path => '/usr/bin' + } + + if $odl['enable_l3_odl'] or member($roles, 'primary-controller') or member($roles, 'controller') { + $patch_jacks_names = get_pair_of_jack_names(['br-ex', 'br-ex-lnx']) + $ext_interface = $patch_jacks_names[0] + } + + $openstack_network_hash = hiera_hash('openstack_network', { }) + $neutron_config = hiera_hash('neutron_config') + + $core_plugin = 'neutron.plugins.ml2.plugin.Ml2Plugin' + + if $odl['enable_l3_odl'] { + $service_plugins = [ + 'networking_odl.l3.l3_odl.OpenDaylightL3RouterPlugin', + 'neutron.services.metering.metering_plugin.MeteringPlugin', + ] + } else { + $service_plugins = [ + 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin', + 'neutron.services.metering.metering_plugin.MeteringPlugin', + ] + } + + $rabbit_hash = hiera_hash('rabbit_hash', { }) + $ceilometer_hash = hiera_hash('ceilometer', { }) + $network_scheme = hiera('network_scheme') + + $verbose = pick($openstack_network_hash['verbose'], hiera('verbose', true)) + $debug = pick($openstack_network_hash['debug'], hiera('debug', true)) + $use_syslog = hiera('use_syslog', true) + $use_stderr = hiera('use_stderr', false) + $log_facility = hiera('syslog_log_facility_neutron', 'LOG_LOCAL4') + + prepare_network_config($network_scheme) + $bind_host = get_network_role_property('neutron/api', 'ipaddr') + + $base_mac = $neutron_config['L2']['base_mac'] + $use_ceilometer = $ceilometer_hash['enabled'] + $amqp_hosts = split(hiera('amqp_hosts', ''), ',') + $amqp_user = $rabbit_hash['user'] + $amqp_password = $rabbit_hash['password'] + + $segmentation_type = try_get_value($neutron_config, 'L2/segmentation_type') + + $nets = $neutron_config['predefined_networks'] + + if $segmentation_type == 'vlan' { + $net_role_property = 'neutron/private' + $iface = get_network_role_property($net_role_property, 'phys_dev') + $mtu_for_virt_network = pick(get_transformation_property('mtu', $iface[0]), '1500') + $overlay_net_mtu = $mtu_for_virt_network + + if $ext_interface { + exec { 'ovs-set-provider-mapping': + command => "ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) other_config:provider_mappings=br-ex:${ext_interface},physnet2:br-aux", + path => '/usr/bin', + require => Exec['ovs-set-manager'], + } + } else { + exec { 'ovs-set-provider-mapping': + command => "ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) other_config:provider_mappings=physnet2:br-aux", + path => '/usr/bin', + require => Exec['ovs-set-manager'], + } + } + + } else { + $net_role_property = 'neutron/mesh' + $iface = get_network_role_property($net_role_property, 'phys_dev') + $tunneling_ip = get_network_role_property($net_role_property, 'ipaddr') + + if $ext_interface { + exec { 'ovs-set-provider-mapping': + command => "ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) other_config:provider_mappings=br-ex:${ext_interface}", + path => '/usr/bin', + require => Exec['ovs-set-manager'], + } + } + exec { 'ovs-set-tunnel-endpoint': + command => "ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) other_config:local_ip=${tunneling_ip}", + path => '/usr/bin', + require => Exec['ovs-set-manager'], + } + + $physical_net_mtu = pick(get_transformation_property('mtu', $iface[0]), '1500') + + if $segmentation_type == 'gre' { + $mtu_offset = '42' + } else { + # vxlan is the default segmentation type for non-vlan cases + $mtu_offset = '50' + } + + if $physical_net_mtu { + $overlay_net_mtu = $physical_net_mtu - $mtu_offset + } else { + $overlay_net_mtu = '1500' - $mtu_offset + } + + } + + $default_log_levels = hiera_hash('default_log_levels') + + class { 'neutron' : + verbose => $verbose, + debug => $debug, + use_syslog => $use_syslog, + use_stderr => $use_stderr, + log_facility => $log_facility, + bind_host => $bind_host, + base_mac => $base_mac, + core_plugin => $core_plugin, + service_plugins => $service_plugins, + allow_overlapping_ips => true, + mac_generation_retries => '32', + dhcp_lease_duration => '600', + dhcp_agents_per_network => '2', + report_interval => '10', + rabbit_user => $amqp_user, + rabbit_hosts => $amqp_hosts, + rabbit_password => $amqp_password, + kombu_reconnect_delay => '5.0', + network_device_mtu => $overlay_net_mtu, + advertise_mtu => true, + } + + if $default_log_levels { + neutron_config { + 'DEFAULT/default_log_levels' : + value => join(sort(join_keys_to_values($default_log_levels, '=')), ','); + } + } else { + neutron_config { 'DEFAULT/default_log_levels' : ensure => absent; } + } + + if $use_syslog { + neutron_config { 'DEFAULT/use_syslog_rfc_format': value => true; } + } + + if $use_ceilometer { + neutron_config { 'DEFAULT/notification_driver': value => 'messaging' } + } + +} + +### SYSCTL ### + +# All nodes with network functions should have net forwarding. +# Its a requirement for network namespaces to function. +sysctl::value { 'net.ipv4.ip_forward': value => '1' } + +# All nodes with network functions should have these thresholds +# to avoid "Neighbour table overflow" problem +sysctl::value { 'net.ipv4.neigh.default.gc_thresh1': value => '4096' } +sysctl::value { 'net.ipv4.neigh.default.gc_thresh2': value => '8192' } +sysctl::value { 'net.ipv4.neigh.default.gc_thresh3': value => '16384' } + +Sysctl::Value <| |> -> Package['python-networking-odl'] -> Nova_config <||> +Sysctl::Value <| |> -> Package['python-networking-odl'] -> Neutron_config <||> diff --git a/deployment_scripts/puppet/manifests/odl-install.pp b/deployment_scripts/puppet/manifests/odl-install.pp new file mode 100644 index 0000000..dc3d7f3 --- /dev/null +++ b/deployment_scripts/puppet/manifests/odl-install.pp @@ -0,0 +1,7 @@ +include opendaylight +include firewall + +class { 'opendaylight::install': + rest_port => $opendaylight::rest_api_port, + bind_address => $opendaylight::node_internal_address +} diff --git a/deployment_scripts/puppet/manifests/odl-ml2-configuration.pp b/deployment_scripts/puppet/manifests/odl-ml2-configuration.pp new file mode 100644 index 0000000..75de896 --- /dev/null +++ b/deployment_scripts/puppet/manifests/odl-ml2-configuration.pp @@ -0,0 +1,174 @@ +notice('MODULAR: odl-ml2.pp') + +$use_neutron = hiera('use_neutron', false) + +class neutron {} +class { 'neutron' :} + +if $use_neutron { + include ::neutron::params + + $node_name = hiera('node_name') + $primary_controller = roles_include(['primary-controller']) + + $neutron_config = hiera_hash('neutron_config') + $neutron_server_enable = pick($neutron_config['neutron_server_enable'], true) + $neutron_nodes = hiera_hash('neutron_nodes') + + $management_vip = hiera('management_vip') + $service_endpoint = hiera('service_endpoint', $management_vip) + $auth_api_version = 'v2.0' + $identity_uri = "http://${service_endpoint}:5000" + $auth_url = "${identity_uri}/${auth_api_version}" + $auth_password = $neutron_config['keystone']['admin_password'] + $auth_user = pick($neutron_config['keystone']['admin_user'], 'neutron') + $auth_tenant = pick($neutron_config['keystone']['admin_tenant'], 'services') + $auth_region = hiera('region', 'RegionOne') + $auth_endpoint_type = 'internalURL' + + $network_scheme = hiera_hash('network_scheme') + prepare_network_config($network_scheme) + + $neutron_advanced_config = hiera_hash('neutron_advanced_configuration', { }) + $l2_population = try_get_value($neutron_advanced_config, 'neutron_l2_pop', false) + $dvr = try_get_value($neutron_advanced_config, 'neutron_dvr', false) + $segmentation_type = try_get_value($neutron_config, 'L2/segmentation_type') + $extension_drivers = ['port_security'] + + if $compute and ! $dvr { + $do_floating = false + } else { + $do_floating = true + } + + $network_vlan_ranges = generate_physnet_vlan_ranges($neutron_config, $network_scheme, { + 'do_floating' => $do_floating, + 'do_tenant' => true, + 'do_provider' => false + }) + + if $segmentation_type == 'vlan' { + $net_role_property = 'neutron/private' + $iface = get_network_role_property($net_role_property, 'phys_dev') + $overlay_net_mtu = pick(get_transformation_property('mtu', $iface[0]), '1500') + $enable_tunneling = false + $physical_network_mtus = generate_physnet_mtus($neutron_config, $network_scheme, { + 'do_floating' => $do_floating, + 'do_tenant' => true, + 'do_provider' => false + }) + $tunnel_id_ranges = [] + $network_type = 'vlan' + $tunnel_types = [] + } else { + $net_role_property = 'neutron/mesh' + $tunneling_ip = get_network_role_property($net_role_property, 'ipaddr') + $iface = get_network_role_property($net_role_property, 'phys_dev') + $physical_net_mtu = pick(get_transformation_property('mtu', $iface[0]), '1500') + $tunnel_id_ranges = [try_get_value($neutron_config, 'L2/tunnel_id_ranges')] + $physical_network_mtus = generate_physnet_mtus($neutron_config, $network_scheme, { + 'do_floating' => $do_floating, + 'do_tenant' => false, + 'do_provider' => false + }) + + if $segmentation_type == 'gre' { + $mtu_offset = '42' + $network_type = 'gre' + } else { + # vxlan is the default segmentation type for non-vlan cases + $mtu_offset = '50' + $network_type = 'vxlan' + } + $tunnel_types = [$network_type] + + if $physical_net_mtu { + $overlay_net_mtu = $physical_net_mtu - $mtu_offset + } else { + $overlay_net_mtu = '1500' - $mtu_offset + } + + $enable_tunneling = true + } + + $type_drivers = ['local', 'flat', 'vlan', 'gre', 'vxlan'] + $tenant_network_types = ['flat', $network_type] + $default_mechanism_drivers = $l2_population ? { true => 'openvswitch,l2population', default => 'openvswitch'} + $mechanism_drivers = split(try_get_value($neutron_config, 'L2/mechanism_drivers', $default_mechanism_drivers), ',') + $flat_networks = ['*'] + $vxlan_group = '224.0.0.1' + + class { 'neutron::plugins::ml2': + type_drivers => $type_drivers, + tenant_network_types => $tenant_network_types, + mechanism_drivers => $mechanism_drivers, + flat_networks => $flat_networks, + network_vlan_ranges => $network_vlan_ranges, + tunnel_id_ranges => $tunnel_id_ranges, + vxlan_group => $vxlan_group, + vni_ranges => $tunnel_id_ranges, + physical_network_mtus => $physical_network_mtus, + path_mtu => $overlay_net_mtu, + extension_drivers => $extension_drivers, + } + + # Synchronize database after plugin was configured + if $primary_controller { + include ::neutron::db::sync + } + + if $node_name in keys($neutron_nodes) { + if $neutron_server_enable { + $service_ensure = 'running' + } else { + $service_ensure = 'stopped' + } + service { 'neutron-server': + name => $::neutron::params::server_service, + enable => $neutron_server_enable, + ensure => $service_ensure, + hasstatus => true, + hasrestart => true, + tag => 'neutron-service', + } -> + exec { 'waiting-for-neutron-api': + environment => [ + "OS_TENANT_NAME=${auth_tenant}", + "OS_USERNAME=${auth_user}", + "OS_PASSWORD=${auth_password}", + "OS_AUTH_URL=${auth_url}", + "OS_REGION_NAME=${auth_region}", + "OS_ENDPOINT_TYPE=${auth_endpoint_type}", + ], + path => '/usr/sbin:/usr/bin:/sbin:/bin', + tries => '30', + try_sleep => '4', + command => 'neutron net-list --http-timeout=4 2>&1 > /dev/null', + provider => 'shell' + } + + $ha_agent = try_get_value($neutron_advanced_config, 'l2_agent_ha', true) + if $ha_agent { + #Exec<| title == 'waiting-for-neutron-api' |> -> + class { 'cluster::neutron::ovs' : + primary => $primary_controller, + } + } + } + + # Stub for upstream neutron manifests + package { 'neutron': + name => 'binutils', + ensure => 'installed', + } + + # override neutron options + $override_configuration = hiera_hash('configuration', {}) + override_resources { 'neutron_plugin_ml2': + data => $override_configuration['neutron_plugin_ml2'] + } + override_resources { 'neutron_agent_ovs': + data => $override_configuration['neutron_agent_ovs'] + } + +} diff --git a/deployment_scripts/puppet/manifests/odl-netconfig.pp b/deployment_scripts/puppet/manifests/odl-netconfig.pp new file mode 100644 index 0000000..6629712 --- /dev/null +++ b/deployment_scripts/puppet/manifests/odl-netconfig.pp @@ -0,0 +1,114 @@ +notice('MODULAR: odl-netconfig.pp') + +$nodes_hash = hiera('nodes', {}) +$roles = node_roles($nodes_hash, hiera('uid')) + +$network_scheme = odl_network_scheme($roles) + +if ( $::l23_os =~ /(?i:centos6)/ and $::kernelmajversion == '3.10' ) { + $ovs_datapath_package_name = 'kmod-openvswitch-lt' +} + +class { 'l23network' : + use_ovs => hiera('use_ovs', false), + use_ovs_dkms_datapath_module => $::l23_os ? { + /(?i:redhat7|centos7)/ => false, + default => true + }, + ovs_datapath_package_name => $ovs_datapath_package_name, +} +prepare_network_config($network_scheme) +$sdn = generate_network_config() +notify {'SDN': message => $sdn } + +#Set arp_accept to 1 by default #lp1456272 +sysctl::value { 'net.ipv4.conf.all.arp_accept': value => '1' } +sysctl::value { 'net.ipv4.conf.default.arp_accept': value => '1' } + +#Disable rp_filter +sysctl::value { 'net.ipv4.conf.all.rp_filter': value => '0' } +sysctl::value { 'net.ipv4.conf.default.rp_filter': value => '0' } + + +# setting kernel reserved ports +# defaults are 49000,49001,35357,41055,41056,58882 +class { 'openstack::reserved_ports': } + +### TCP connections keepalives and failover related parameters ### +# configure TCP keepalive for host OS. +# Send 3 probes each 8 seconds, if the connection was idle +# for a 30 seconds. Consider it dead, if there was no responces +# during the check time frame, i.e. 30+3*8=54 seconds overall. +# (note: overall check time frame should be lower then +# nova_report_interval). +class { 'openstack::keepalive' : + tcpka_time => '30', + tcpka_probes => '8', + tcpka_intvl => '3', + tcp_retries2 => '5', +} + +# increase network backlog for performance on fast networks +sysctl::value { 'net.core.netdev_max_backlog': value => '261144' } + +L2_port<||> -> Sysfs_config_value<||> +L3_ifconfig<||> -> Sysfs_config_value<||> +L3_route<||> -> Sysfs_config_value<||> + +class { 'sysfs' :} + +if hiera('set_rps', true) { + sysfs_config_value { 'rps_cpus' : + ensure => 'present', + name => '/etc/sysfs.d/rps_cpus.conf', + value => cpu_affinity_hex($::processorcount), + sysfs => '/sys/class/net/*/queues/rx-*/rps_cpus', + exclude => '/sys/class/net/lo/*', + } +} + +if hiera('set_xps', true) { + sysfs_config_value { 'xps_cpus' : + ensure => 'present', + name => '/etc/sysfs.d/xps_cpus.conf', + value => cpu_affinity_hex($::processorcount), + sysfs => '/sys/class/net/*/queues/tx-*/xps_cpus', + exclude => '/sys/class/net/lo/*', + } +} + +if !defined(Package['irqbalance']) { + package { 'irqbalance': + ensure => installed, + } +} + +if !defined(Service['irqbalance']) { + service { 'irqbalance': + ensure => running, + require => Package['irqbalance'], + } +} + +# We need to wait at least 30 seconds for the bridges and other interfaces to +# come up after being created. This should allow for all interfaces to be up +# and ready for traffic before proceeding with further deploy steps. LP#1458954 +exec { 'wait-for-interfaces': + path => '/usr/bin:/bin', + command => 'sleep 32', +} + +# check that network was configured successfully +# and the default gateway is online +$default_gateway = hiera('default_gateway') + +ping_host { $default_gateway : + ensure => 'up', +} +L2_port<||> -> Ping_host[$default_gateway] +L2_bond<||> -> Ping_host[$default_gateway] +L3_ifconfig<||> -> Ping_host[$default_gateway] +L3_route<||> -> Ping_host[$default_gateway] + +Class['l23network'] -> +Exec['wait-for-interfaces'] diff --git a/deployment_scripts/puppet/manifests/odl-nol3-configure_default_route.pp b/deployment_scripts/puppet/manifests/odl-nol3-configure_default_route.pp new file mode 100644 index 0000000..7c85b27 --- /dev/null +++ b/deployment_scripts/puppet/manifests/odl-nol3-configure_default_route.pp @@ -0,0 +1,31 @@ +notice('MODULAR: configure_default_route.pp') + + +$nodes_hash = hiera('nodes', {}) +$roles = node_roles($nodes_hash, hiera('uid')) +$network_scheme = odl_network_scheme($roles) +$management_vrouter_vip = hiera('management_vrouter_vip') +$management_role = 'management' +$fw_admin_role = 'fw-admin' + +if ( $::l23_os =~ /(?i:centos6)/ and $::kernelmajversion == '3.10' ) { + $ovs_datapath_package_name = 'kmod-openvswitch-lt' +} + +class { 'l23network' : + use_ovs => hiera('use_ovs', false), + use_ovs_dkms_datapath_module => $::l23_os ? { + /(?i:redhat7|centos7)/ => false, + default => true + }, + ovs_datapath_package_name => $ovs_datapath_package_name, +} + +$new_network_scheme = configure_default_route($network_scheme, $management_vrouter_vip, $fw_admin_role, $management_role ) +notice ($new_network_scheme) + +if !empty($new_network_scheme) { + prepare_network_config($new_network_scheme) + $sdn = generate_network_config() + notify {'SDN': message => $sdn } +} diff --git a/deployment_scripts/puppet/manifests/odl-service.pp b/deployment_scripts/puppet/manifests/odl-service.pp index c6529f0..73d4e40 100644 --- a/deployment_scripts/puppet/manifests/odl-service.pp +++ b/deployment_scripts/puppet/manifests/odl-service.pp @@ -1,7 +1 @@ -include opendaylight -include firewall - -class { 'opendaylight::service': - rest_port => $opendaylight::rest_api_port, - bind_address => $opendaylight::node_internal_address -} +class { 'opendaylight::service':} diff --git a/deployment_scripts/puppet/manifests/quagga_extension.pp b/deployment_scripts/puppet/manifests/quagga_extension.pp deleted file mode 100644 index 9bbbb7b..0000000 --- a/deployment_scripts/puppet/manifests/quagga_extension.pp +++ /dev/null @@ -1,3 +0,0 @@ -package {'opnfv-quagga': - ensure => installed, -} \ No newline at end of file diff --git a/deployment_scripts/puppet/manifests/recreate-neutron-db.pp b/deployment_scripts/puppet/manifests/recreate-neutron-db.pp deleted file mode 100644 index 750323b..0000000 --- a/deployment_scripts/puppet/manifests/recreate-neutron-db.pp +++ /dev/null @@ -1,21 +0,0 @@ -exec { 'drop_neutron_db': - command => "mysql -e 'drop database if exists neutron;'", - path => '/usr/bin', -} - -exec { 'create_neutron_db': - command => "mysql -e 'create database neutron character set utf8;'", - path => '/usr/bin', -} - -exec { 'grant_neutron_db': - command => "mysql -e \"grant all on neutron.* to 'neutron'@'%';\"", - path => '/usr/bin', -} - -exec { 'neutron_db_sync': - command => 'neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head', - path => '/usr/bin', -} - -Exec['drop_neutron_db'] -> Exec['create_neutron_db'] -> Exec['grant_neutron_db'] -> Exec['neutron_db_sync'] diff --git a/deployment_scripts/puppet/manifests/recreate-ovs.pp b/deployment_scripts/puppet/manifests/recreate-ovs.pp deleted file mode 100644 index ea62bb4..0000000 --- a/deployment_scripts/puppet/manifests/recreate-ovs.pp +++ /dev/null @@ -1,65 +0,0 @@ -include opendaylight - -$network_scheme = hiera('network_scheme', {}) -$neutron_config = hiera_hash('quantum_settings') -prepare_network_config($network_scheme) - - -$ovs_service_name = $operatingsystem ? { - 'CentOS' => 'openvswitch', - 'Ubuntu' => 'openvswitch-switch', -} - -exec { 'stop-ovs-service': - command => "service ${ovs_service_name} stop", - path => '/bin:/usr/sbin:/usr/bin:/sbin', - logoutput => true, -} - -exec { 'remove-ovs-logs': - command => 'rm -f /var/log/openvswitch/*', - path => '/bin:/usr/sbin:/usr/bin', -} -exec { 'remove-ovs-db': - command => 'rm -f /etc/openvswitch/*; rm -f /etc/openvswitch/.conf.db.~lock~', - path => '/bin:/usr/sbin:/usr/bin', -} -exec { 'ovs-set-manager': - command => "ovs-vsctl set-manager tcp:${opendaylight::manager_ip_address}:6640", - path => '/usr/bin' -} - -if $neutron_config['L2']['segmentation_type'] != 'vlan' { - $net_role_property = 'neutron/mesh' - $tunneling_ip = get_network_role_property($net_role_property, 'ipaddr') - exec { 'ovs-set-tunnel-endpoint': - command => "ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) other_config={'local_ip'='${tunneling_ip}'}", - path => '/usr/bin', - require => Exec['ovs-set-manager'] - } -} else { - $net_role_property = 'neutron/private' - $iface = get_network_role_property($net_role_property, 'phys_dev') - exec { 'ovs-br-int-to-phy': - command => "ovs-vsctl --may-exist add-port br-int ${iface} -- set Interface ${iface} type=internal", - path => '/usr/bin', - tries => 30, - try_sleep => 5, - require => Exec['ovs-set-manager'] - } - exec { 'ovs-set-provider-mapping': - command => "ovs-vsctl set Open_vSwitch $(ovs-vsctl show | head -n 1) other_config:provider_mappings=physnet2:${iface}", - path => '/usr/bin', - require => Exec['ovs-br-int-to-phy'] - } -} - -service { $ovs_service_name: - ensure => running, -} - -Exec['stop-ovs-service'] -> -Exec['remove-ovs-logs'] -> -Exec['remove-ovs-db'] -> -Service[$ovs_service_name] -> -Exec['ovs-set-manager'] diff --git a/deployment_scripts/puppet/manifests/setup-floating.pp b/deployment_scripts/puppet/manifests/setup-floating.pp deleted file mode 100644 index ad3964f..0000000 --- a/deployment_scripts/puppet/manifests/setup-floating.pp +++ /dev/null @@ -1,17 +0,0 @@ -$bridges = ['br-floating', 'br-ex'] - -$patch_jacks_names = get_pair_of_jack_names($bridges) - -exec { 'add-br-floating': - command => 'ovs-vsctl add-br br-floating', - unless => 'ovs-vsctl br-exists br-floating', - path => '/usr/bin', -} -> -exec { 'set-br-floating-id': - command => 'ovs-vsctl br-set-external-id br-floating bridge-id br-floating', - path => '/usr/bin', -} -> -exec { 'add-floating-patch': - command => "ovs-vsctl --may-exist add-port br-floating ${patch_jacks_names[0]} -- set Interface ${patch_jacks_names[0]} type=internal", - path => '/usr/bin', -} diff --git a/deployment_scripts/puppet/manifests/start-neutron.pp b/deployment_scripts/puppet/manifests/start-neutron.pp deleted file mode 100644 index 50fc38a..0000000 --- a/deployment_scripts/puppet/manifests/start-neutron.pp +++ /dev/null @@ -1,71 +0,0 @@ -include opendaylight - -$access_hash = hiera('access', {}) -$keystone_admin_tenant = $access_hash[tenant] -$neutron_config = hiera_hash('quantum_settings') -$segmentation_type = $neutron_config['L2']['segmentation_type'] -$nets = $neutron_config['predefined_networks'] -$odl = hiera('opendaylight') -$nodes_hash = hiera('nodes', {}) -$roles = node_roles($nodes_hash, hiera('uid')) - -if $segmentation_type != 'vlan' { - if $segmentation_type =='gre' { - $network_type = 'gre' - } else { - $network_type = 'vxlan' - } -} else { - $network_type = 'vlan' -} - -service { 'neutron-server': - ensure => running, -} - -if member($roles, 'primary-controller') { - exec {'refresh-dhcp-agent': - command => 'crm resource restart p_neutron-dhcp-agent', - path => '/usr/bin:/usr/sbin', - tries => 3, - try_sleep => 10, - } -> - exec {'refresh-metadata-agent': - command => 'crm resource restart p_neutron-metadata-agent', - path => '/usr/bin:/usr/sbin', - tries => 3, - try_sleep => 10, - } - unless $odl['enable_l3_odl'] { - exec {'refresh-l3-agent': - command => 'crm resource restart p_neutron-l3-agent', - path => '/usr/bin:/usr/sbin', - tries => 3, - try_sleep => 10, - } - } - - if $nets and !empty($nets) { - - Service<| title == 'neutron-server' |> -> - Openstack::Network::Create_network <||> - - Service<| title == 'neutron-server' |> -> - Openstack::Network::Create_router <||> - - openstack::network::create_network{'net04': - netdata => $nets['net04'], - segmentation_type => $network_type, - } -> - openstack::network::create_network{'net04_ext': - netdata => $nets['net04_ext'], - segmentation_type => 'local', - } -> - openstack::network::create_router{'router04': - internal_network => 'net04', - external_network => 'net04_ext', - tenant_name => $keystone_admin_tenant - } - - } -} diff --git a/deployment_scripts/puppet/manifests/stop-neutron.pp b/deployment_scripts/puppet/manifests/stop-neutron.pp deleted file mode 100644 index 4f580d2..0000000 --- a/deployment_scripts/puppet/manifests/stop-neutron.pp +++ /dev/null @@ -1,13 +0,0 @@ -$odl = hiera('opendaylight') - -service { 'neutron-server': - ensure => stopped, -} - -package {'python-networking-odl': - ensure => installed, -} - -if $odl['enable_l3_odl'] { - neutron_config { 'DEFAULT/service_plugins': value => 'networking_odl.l3.l3_odl.OpenDaylightL3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin'; } -} diff --git a/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_hiera_overrides.rb b/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_hiera_overrides.rb new file mode 100644 index 0000000..5ca6278 --- /dev/null +++ b/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_hiera_overrides.rb @@ -0,0 +1,42 @@ +require 'yaml' + +module Puppet::Parser::Functions + newfunction(:odl_hiera_overrides) do |args| + filename = args[0] + node_roles = args[1] + hiera_overrides = {} + + # When L3 forward is disabled in ODL set external_network_bridge option + # to use neutron L3 agent to create qg port on selected bridge + # Without this floating IPs doesn't work. + # This option will be no longer used in Mitaka release. + # Must be changed before that! + l3_agent = {'neutron_l3_agent_config' => + {'DEFAULT/external_network_bridge' => + {'value' => 'br-ex'} + } + } + + hiera_overrides['configuration'] = l3_agent + # override neutron_config/quantum_settings + neutron_config = function_hiera(['neutron_config']) + neutron_config['L2']['mechanism_drivers'] = 'opendaylight' + neutron_config['L2']['phys_nets']['physnet1']['bridge'] = 'br-ex' + hiera_overrides['neutron_config'] = neutron_config + hiera_overrides['quantum_settings'] = neutron_config + + # override neutron_advanced_configuration + neutron_advanced_configuration = function_hiera(['neutron_advanced_configuration']) + neutron_advanced_configuration['neutron_dvr'] = false + neutron_advanced_configuration['neutron_l2_pop'] = false + neutron_advanced_configuration['l2_agent_ha'] = false + hiera_overrides['neutron_advanced_configuration'] = neutron_advanced_configuration + + # override network scheme + network_scheme = function_odl_network_scheme( [node_roles] ) + + hiera_overrides['network_scheme'] = network_scheme + # write to hiera override yaml file + File.open(filename, 'w') { |file| file.write(hiera_overrides.to_yaml) } + end +end diff --git a/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_karaf_features.rb b/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_karaf_features.rb new file mode 100644 index 0000000..cbc0a3f --- /dev/null +++ b/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_karaf_features.rb @@ -0,0 +1,16 @@ +module Puppet::Parser::Functions + newfunction(:odl_karaf_features, :type => :rvalue) do |args| + odl_settings = function_hiera(['opendaylight']) + bgpvpn = function_hiera(['bgpvpn', false]) + features_set = odl_settings['metadata']['odl_features'] + + enabled_features = [] + enabled_features << features_set['default'] + enabled_features << features_set['ovs'] + enabled_features << features_set['sfc'] if odl_settings['enable_sfc'] + enabled_features << features_set['gbp'] if odl_settings['enable_gbp'] + enabled_features << features_set['vpn'] if bgpvpn + + enabled_features.join(',') + end +end diff --git a/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_network_scheme.rb b/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_network_scheme.rb new file mode 100644 index 0000000..ba89eb2 --- /dev/null +++ b/deployment_scripts/puppet/modules/opendaylight/lib/puppet/parser/functions/odl_network_scheme.rb @@ -0,0 +1,61 @@ +# +# Modify default network schema. +# ODL use only br-int and br-ex bridges and both of them +# should be created on OVS. +# Override hiera hierarchy is not enough because of default hash deep merge policy. +# +module Puppet::Parser::Functions + newfunction(:odl_network_scheme, :type => :rvalue) do |args| + node_roles = args[0] + # override network_scheme + odl = function_hiera(['opendaylight']) + network_scheme = function_hiera(['network_scheme']) + management_vrouter_vip = function_hiera(['management_vrouter_vip']) + delete_bridges = ['br-prv'] + + debug "ODL network before transformation: #{network_scheme}" + + endpoints = network_scheme['endpoints'] + transformations = network_scheme['transformations'] + transformations.delete_if { |action| action['action'] == 'add-br' and delete_bridges.include?(action['name']) } + transformations.delete_if { |action| action['action'] == 'add-patch' and not (action['bridges'] & delete_bridges).empty? } + transformations.delete_if { |action| action['action'] == 'add-port' and delete_bridges.include?(action['bridge']) } + + # Modify only once + if not endpoints.has_key? 'br-ex-lnx' + transformations.each { |action| action['name'] = 'br-ex-lnx' if (action['action'] == 'add-br' and action['name'] == 'br-ex') } + transformations.each { |action| action['bridge'] = 'br-ex-lnx' if (action['action'] == 'add-port' and action['bridge'] == 'br-ex') } + end + + transformations.each { |action| action['name'] = 'br-ex' if (action['action'] == 'add-br' and action['name'] == 'br-floating') } + transformations.each { |action| action['bridge'] = 'br-ex' if (action['action'] == 'add-port' and action['bridge'] == 'br-floating') } + + transformations.each { |action| action['bridges'] = ['br-ex', 'br-ex-lnx'] if (action['action'] == 'add-patch' and action['bridges'] == ['br-floating', 'br-ex']) } + + roles = network_scheme['roles'] + roles.each { |role,bridge| roles[role] = 'br-ex-lnx' if bridge == 'br-ex' } + roles['neutron/private'] = 'br-aux' if roles.has_key?('neutron/private') + roles['neutron/floating'] = 'br-ex' if roles.has_key?('neutron/floating') + + if endpoints.has_key? 'br-ex' and not endpoints.has_key? 'br-ex-lnx' + endpoints['br-ex-lnx'] = endpoints.delete 'br-ex' + end + if endpoints.has_key? 'br-floating' + endpoints['br-ex'] = endpoints.delete 'br-floating' + end + if endpoints.has_key? 'br-prv' + endpoints['br-aux'] = endpoints.delete 'br-prv' + end + + if node_roles.include?('compute') and odl['enable_l3_odl'] + if endpoints.has_key? 'br-ex-lnx' + debug 'ODL: not use br-ex-lnx as gateway on compute node' + endpoints['br-ex-lnx'].delete('gateway') + endpoints['br-ex-lnx']['IP'] = 'none' + endpoints['br-mgmt']['gateway'] = management_vrouter_vip + end + end + debug "ODL network after transformation: #{network_scheme}" + network_scheme + end +end diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy.pp index 1a95d9e..2d19259 100644 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy.pp +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy.pp @@ -18,6 +18,8 @@ class opendaylight::ha::haproxy { $public_vip = hiera('public_vip') $management_vip = hiera('management_vip') $nodes_hash = hiera('nodes') + $odl = hiera('opendaylight') + $api_port = $odl['rest_api_port'] $primary_controller_nodes = filter_nodes($nodes_hash,'role','primary-controller') $odl_controllers = filter_nodes($nodes_hash,'role','opendaylight') @@ -44,11 +46,11 @@ class opendaylight::ha::haproxy { balancermember_options => 'check inter 2000 fall 3', } - openstack::ha::haproxy_service { 'odl-tomcat': + openstack::ha::haproxy_service { 'odl-neutron-endpoint': order => '215', - listen_port => $opendaylight::rest_api_port, + listen_port => $api_port, haproxy_config_options => { - 'option' => ['httpchk /apidoc/explorer', 'httplog'], + 'option' => ['httpchk /index', 'httplog'], 'timeout client' => '3h', 'timeout server' => '3h', 'balance' => 'source', diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy_service.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy_service.pp deleted file mode 100644 index 7877f24..0000000 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/ha/haproxy_service.pp +++ /dev/null @@ -1,78 +0,0 @@ -# -# Copyright 2015 Mirantis, Inc. -# -# Licensed 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. -# -# Register a service with HAProxy -define opendaylight::ha::haproxy_service ( - $order, - $server_names, - $ipaddresses, - $listen_port, - $public_virtual_ip, - $internal_virtual_ip, - - $mode = undef, - $haproxy_config_options = { 'option' => ['httplog'], 'balance' => 'roundrobin' }, - $balancermember_options = 'check', - $balancermember_port = $listen_port, - $define_cookies = false, - - # use active-passive failover, mark all backends except the first one - # as backups - $define_backups = false, - - # by default, listen only on internal VIP - $public = false, - $internal = true, - - # if defined, restart this service before registering it with HAProxy - $require_service = undef, - - # if true, configure this service before starting the haproxy service; - # HAProxy will refuse to start with no listening services defined - $before_start = false, -) { - - if $public and $internal { - $virtual_ips = [$public_virtual_ip, $internal_virtual_ip] - } elsif $internal { - $virtual_ips = [$internal_virtual_ip] - } elsif $public { - $virtual_ips = [$public_virtual_ip] - } - - haproxy::listen { $name: - order => $order, - ipaddress => $virtual_ips, - ports => $listen_port, - options => $haproxy_config_options, - mode => $mode, - } - - haproxy::balancermember { $name: - order => $order, - listening_service => $name, - server_names => $server_names, - ipaddresses => $ipaddresses, - ports => $balancermember_port, - options => $balancermember_options, - define_cookies => $define_cookies, - define_backups => $define_backups, - } - - if $require_service { - Service[$require_service] -> Haproxy::Listen[$name] - Service[$require_service] -> Haproxy::Balancermember[$name] - } -} diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/hiera_override.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/hiera_override.pp new file mode 100644 index 0000000..2bab1f2 --- /dev/null +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/hiera_override.pp @@ -0,0 +1,12 @@ +class opendaylight::hiera_override { + $override_file = '/etc/hiera/override/opendaylight.yaml' + $nodes_hash = hiera('nodes', {}) + $roles = node_roles($nodes_hash, hiera('uid')) + odl_hiera_overrides($override_file, $roles) + + file_line {'opendaylight_hiera_override': + path => '/etc/hiera.yaml', + line => ' - override/opendaylight', + after => ' - "override/module/%{calling_module}"', + } +} diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp new file mode 100644 index 0000000..27dfa4a --- /dev/null +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp @@ -0,0 +1,89 @@ +class opendaylight::install ( + $rest_port = $opendaylight::rest_api_port, + $bind_address = undef, +) { + + $nodes_hash = hiera('nodes', {}) + $roles = node_roles($nodes_hash, hiera('uid')) + $management_vip = hiera('management_vip') + $odl = hiera('opendaylight') + $conf_dir = '/opt/opendaylight/etc' + + if $odl['enable_l3_odl'] { + $manage_l3_traffic = 'yes' + } else { + $manage_l3_traffic = 'no' + } + + + $java_package = $operatingsystem ? { + 'CentOS' => 'java-1.7.0-openjdk', + 'Ubuntu' => 'openjdk-7-jre-headless', + } + + package { 'java-jre': + ensure => installed, + name => $java_package, + } + + package { 'opendaylight': + ensure => installed, + require => Package['java-jre'], + } + + package {'opnfv-quagga': + ensure => installed, + } + + firewall {'215 odl': + port => [ $opendaylight::rest_api_port, 6633, 6640, 6653, 8181, 8101], + proto => 'tcp', + action => 'accept', + } + + service { 'opendaylight' : + ensure => running, + enable => true, + } + + debug("Set odl rest api port to ${rest_port}") + + file { "${conf_dir}/jetty.xml": + ensure => file, + owner => 'odl', + content => template('opendaylight/jetty.xml.erb') + } + + $karaf_custom_properties_file = { + 'path' => "${conf_dir}/custom.properties", + 'ensure' => 'present', + 'key_val_separator' => '=', + } + $karaf_custom_properties = { + '' => { + 'of.address' => $bind_address, + 'of.listenPort' => '6653', + 'ovsdb.of.version' => '1.3', + 'ovsdb.l3.fwd.enabled' => $manage_l3_traffic, + } + } + + create_ini_settings($karaf_custom_properties, $karaf_custom_properties_file) + + $enabled_features = odl_karaf_features() + + ini_setting {'karaf_features': + ensure => present, + section => '', + key_val_separator => '=', + path => "${conf_dir}/org.apache.karaf.features.cfg", + setting => 'featuresBoot', + value => $enabled_features, + } + + Package['opendaylight'] -> + Ini_setting <||> -> + Firewall <||> -> + File <||> -> + Service['opendaylight'] +} diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/service.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/service.pp index c3b1904..9dd73a3 100644 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/service.pp +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/service.pp @@ -1,77 +1,19 @@ -class opendaylight::service ( - $rest_port = $opendaylight::rest_api_port, - $bind_address = undef, -) { - +class opendaylight::service { $nodes_hash = hiera('nodes', {}) $roles = node_roles($nodes_hash, hiera('uid')) $management_vip = hiera('management_vip') $odl = hiera('opendaylight') - $features = $odl['metadata']['odl_features'] - $enable = {} - $enable_l3_odl = $odl['enable_l3_odl'] + $rest_port = $odl['rest_api_port'] - if member($roles, 'opendaylight') { - - firewall {'215 odl': - port => [ $opendaylight::rest_api_port, 6633, 6640, 6653, 8181, 8101], - proto => 'tcp', - action => 'accept', - before => Service['opendaylight'], - } - - service { 'opendaylight' : - ensure => running, - enable => true, - require => File[ - '/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 ${rest_port}") - - file { '/opt/opendaylight/etc/jetty.xml': - ensure => file, - owner => 'odl', - content => template('opendaylight/jetty.xml.erb') - } - - file { '/opt/opendaylight/etc/custom.properties': - ensure => file, - owner => 'odl', - content => template('opendaylight/custom.properties.erb'), - } - - $enable['default'] = $features['default'] - $enable['ovs'] = $features['ovs'] - if $odl['enable_sfc'] { - $enable['sfc'] = $features['sfc'] - } - if $odl['enable_gbp'] { - $enable['gbp'] = $features['gbp'] - } - - if hiera('bgpvpn', false) { - $enable['vpn'] = $features['vpn'] - } - - file { '/opt/opendaylight/etc/org.apache.karaf.features.cfg': - ensure => file, - owner => 'odl', - content => template('opendaylight/org.apache.karaf.features.cfg.erb'), - } + include opendaylight::ha::haproxy + if member($roles, 'primary-controller') { exec { 'wait-until-odl-ready': 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 => 20, - require => Service['opendaylight'], + require => Class['opendaylight::ha::haproxy'], } } - - if member($roles, 'controller') or member($roles, 'primary-controller') { - include opendaylight::ha::haproxy - } } diff --git a/deployment_scripts/puppet/modules/opendaylight/templates/custom.properties.erb b/deployment_scripts/puppet/modules/opendaylight/templates/custom.properties.erb deleted file mode 100644 index 9c0f435..0000000 --- a/deployment_scripts/puppet/modules/opendaylight/templates/custom.properties.erb +++ /dev/null @@ -1,132 +0,0 @@ -# Extra packages to import from the boot class loader -org.osgi.framework.system.packages.extra=org.apache.karaf.branding,sun.reflect,sun.reflect.misc,sun.misc,sun.nio.ch - -# https://bugs.eclipse.org/bugs/show_bug.cgi?id=325578 -# Extend the framework to avoid the resources to be presented with -# a URL of type bundleresource: but to be presented as file: -osgi.hook.configurators.include=org.eclipse.virgo.kernel.equinox.extensions.hooks.ExtensionsHookConfigurator - -# Embedded Tomcat configuration File -org.eclipse.gemini.web.tomcat.config.path=configuration/tomcat-server.xml -org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true - -# Use Equinox as default OSGi Framework Implementation -karaf.framework=equinox - -# Netconf startup configuration -netconf.tcp.address=127.0.0.1 -netconf.tcp.port=8383 - -netconf.tcp.client.address=127.0.0.1 -netconf.tcp.client.port=8383 - -netconf.ssh.address=0.0.0.0 -netconf.ssh.port=1830 -# Use Linux style path -netconf.ssh.pk.path = ./configuration/RSA.pk -# Set security provider to BouncyCastle -org.apache.karaf.security.providers = org.bouncycastle.jce.provider.BouncyCastleProvider - - -netconf.config.persister.active=1 - -netconf.config.persister.1.storageAdapterClass=org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter -netconf.config.persister.1.properties.fileStorage=etc/opendaylight/current/controller.currentconfig.xml -netconf.config.persister.1.properties.numberOfBackups=1 - -# logback configuration -logback.configurationFile=configuration/logback.xml - -# Container configuration -container.profile = Container - -# Connection manager configuration -connection.scheme = ANY_CONTROLLER_ONE_MASTER - -# Open Flow related system parameters -# TCP port on which the controller is listening (default 6633) -of.listenPort=6653 -# IP address of the controller (default: wild card) -of.address = <%= @bind_address %> -# The time (in milliseconds) the controller will wait for a response after sending a Barrier Request or a Statistic Request message (default 2000 msec) -# of.messageResponseTimer=2000 -# The switch liveness timeout value (default 60500 msec) -# of.switchLivenessTimeout=60500 -# The size of the queue holding pending statistics requests (default 64). For large networks of n switches, it is recommended to set the queue size to n -# of.statsQueueSize = 64 -# The flow statistics polling interval in second (default 10 sec) -# of.flowStatsPollInterval=10 -# The port statistics polling interval in second (default 5 sec) -# of.portStatsPollInterval=5 -# The description statistics polling interval in second (default 60 sec) -# of.descStatsPollInterval=60 -# The table statistics polling interval in second (default 10 sec) -# of.tableStatsPollInterval=10 -# The maximum number of asynchronous messages can be sent before sending a Barrier Request (default 100) -# of.barrierMessagePriorCount=100 -# The interval which determines how often the discovery packets should be sent (default 300 sec) -# of.discoveryInterval=300 -# The timeout multiple of discovery interval -# of.discoveryTimeoutMultiple=2 -# For newly added ports, allow one more retry if the elapsed time exceeds this threshold (default 30 sec) -# of.discoveryThreshold=30 -# The maximum number of ports handled in one discovery batch (default 512) -# of.discoveryBatchMaxPorts=512 - -# OVSDB configuration -# ovsdb plugin supports both active and passive connections. It listens on port 6640 by default for Active connections. -ovsdb.listenPort=6640 - -# ovsdb creates Openflow nodes/bridges. This configuration configures the bridge's Openflow version. -# default Openflow version = 1.0, we also support 1.3. -ovsdb.of.version=1.3 - -# ovsdb can be configured with ml2 to perform l3 forwarding. The config below enables that functionality, which is -# disabled by default. -# ovsdb.l3.fwd.enabled=false -<% if @enable_l3_odl %>ovsdb.l3.fwd.enabled=yes<% end %> - -# 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= - -# TLS configuration -# To enable TLS, set secureChannelEnabled=true and specify the location of controller Java KeyStore and TrustStore files. -# The Java KeyStore contains controller's private key and certificate. The Java TrustStore contains the trusted certificate -# entries, including switches' Certification Authority (CA) certificates. For example, -# secureChannelEnabled=true -# controllerKeyStore=./configuration/ctlKeyStore -# controllerKeyStorePassword=xxxxxxxx (this password should match the password used for KeyStore generation and at least 6 characters) -# controllerTrustStore=./configuration/ctlTrustStore -# controllerTrustStorePassword=xxxxxxxx (this password should match the password used for TrustStore generation and at least 6 characters) - -secureChannelEnabled=false -controllerKeyStore= -controllerKeyStorePassword= -controllerTrustStore= -controllerTrustStorePassword= - -# User Manager configurations -enableStrongPasswordCheck = false - -#Jolokia configurations -#org.jolokia.listenForHttpService=false - -# Logging configuration for Tomcat-JUL logging -java.util.logging.config.file=configuration/tomcat-logging.properties - -#Hosttracker hostsdb key scheme setting -hosttracker.keyscheme=IP - -# LISP Flow Mapping configuration -# Map-Register messages overwrite existing RLOC sets in EID-to-RLOC mappings (default: true) -lisp.mappingOverwrite = true -# Enable the Solicit-Map-Request (SMR) mechanism (default: true) -lisp.smr = true -# Choose policy for Explicit Locator Path (ELP) handling -# There are three options: -# default: don't add or remove locator records, return mapping as-is -# both: keep the ELP, but add the next hop as a standalone non-LCAF locator with a lower priority -# replace: remove the ELP, add the next hop as a standalone non-LCAF locator -lisp.elpPolicy = default diff --git a/deployment_scripts/puppet/modules/opendaylight/templates/org.apache.karaf.features.cfg.erb b/deployment_scripts/puppet/modules/opendaylight/templates/org.apache.karaf.features.cfg.erb deleted file mode 100644 index be41a6b..0000000 --- a/deployment_scripts/puppet/modules/opendaylight/templates/org.apache.karaf.features.cfg.erb +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# -# 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. -# -################################################################################ - -# -# Defines if the startlvl should be respected during feature startup. The default value is true. The default -# behavior for 2.x is false (!) for this property -# -# Be aware that this property is deprecated and will be removed in Karaf 4.0. So, if you need to -# set this to false, please use this only as a temporary solution! -# -#respectStartLvlDuringFeatureStartup=true - - -# -# Defines if the startlvl should be respected during feature uninstall. The default value is true. -# If true, means stop bundles respecting the descend order of start level in a certain feature. -# -#respectStartLvlDuringFeatureUninstall=true - -# -# 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.2-Lithium-SR2/xml/features - -# -# Comma separated list of features to install at startup -# -featuresBoot=<%= @enable.map{|k,v| "#{v.join(',')}"}.join(',') %> - -# -# Defines if the boot features are started in asynchronous mode (in a dedicated thread) -# -featuresBootAsynchronous=false diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml index a71d3fc..1ebf18a 100644 --- a/deployment_tasks.yaml +++ b/deployment_tasks.yaml @@ -3,7 +3,7 @@ role: [opendaylight] requires: [deploy_start] required_for: [deploy_end, primary-controller, controller] - tasks: [fuel_pkgs, hiera, globals, tools, logging, netconfig, + tasks: [fuel_pkgs, hiera, globals, tools, logging, odl-netconfig, hosts, firewall, deploy_start, odl_install] parameters: strategy: @@ -12,99 +12,156 @@ type: puppet groups: [opendaylight] requires: [deploy_start] - required_for: [deploy_end] + required_for: [openstack-network-start, odl_configure] requires: [hosts, firewall, globals] - required_for: [deploy_end, openstack-network] parameters: - puppet_manifest: puppet/manifests/controller-pre.pp + puppet_manifest: puppet/manifests/odl-install.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 720 -- id: quagga_install - role: [opendaylight] +- id: netconfig + type: skipped +- id: odl-netconfig type: puppet - requires: [deploy_start] - required_for: [deploy_end, primary-controller, controller] + groups: [primary-controller, controller, cinder, cinder-vmware, compute, ceph-osd, primary-mongo, mongo, virt, ironic] + required_for: [firewall, hosts, connectivity_tests, openstack-network-start, generate_vms, primary-controller, controller, cinder, cinder-vmware, compute, ceph-osd, primary-mongo, mongo, virt, ironic, compute-vmware, opendaylight, deploy_end] + requires: [tools, hiera-override] + reexecute_on: [deploy_changes] parameters: - puppet_manifest: puppet/manifests/quagga_extension.pp + puppet_manifest: puppet/manifests/odl-netconfig.pp + puppet_modules: puppet/modules:/etc/puppet/modules + timeout: 3600 +- id: hiera-override + type: puppet + groups: ['primary-controller','controller','compute', 'opendaylight'] + required_for: [odl-netconfig] + requires: [globals] + parameters: + puppet_manifest: puppet/manifests/hiera-override.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 120 - id: odl_configure - role: ['primary-controller', 'controller', 'compute', 'opendaylight'] - requires: [post_deployment_start] - required_for: [post_deployment_end] + groups: ['primary-controller', 'controller'] + requires: [deploy_start, cluster-haproxy] + required_for: [neutron-configuration, openstack-haproxy, openstack-network-end] type: puppet parameters: puppet_manifest: puppet/manifests/odl-service.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 1400 -- id: odl_delete_predefined_net - role: ['primary-controller'] - requires: [odl_configure] - required_for: [post_deployment_end] - type: shell - parameters: - cmd: ./clean-neutron.sh - timeout: 120 -- id: odl_disable_ovs_agent - role: ['primary-controller', 'compute'] - requires: [odl_delete_predefined_net] - required_for: [post_deployment_end] +- id: openstack-network-common-config + type: skipped +- id: neutron-configuration type: puppet + groups: [primary-controller,controller,compute] + required_for: [openstack-network-end, openstack-network-server-config] + requires: [openstack-network-start] parameters: - puppet_manifest: puppet/manifests/disable-ovs-agent.pp + puppet_manifest: puppet/manifests/neutron-configuration.pp puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 120 -- id: odl_stop_neutron - role: ['primary-controller', 'controller'] - requires: [odl_disable_ovs_agent] - required_for: [post_deployment_end] + timeout: 1800 +- id: primary-openstack-network-plugins-l2 + type: skipped +- id: openstack-network-plugins-l2 + type: skipped +- id: odl-network-plugins-l2 type: puppet + version: 2.0.0 + groups: [primary-controller] + required_for: [openstack-network-end] + requires: [neutron-configuration, openstack-network-server-config] + refresh_on: [neutron_plugin_ml2, neutron_config, neutron_api_config] parameters: - puppet_manifest: puppet/manifests/stop-neutron.pp + puppet_manifest: puppet/manifests/odl-ml2-configuration.pp puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 120 -- id: odl_recreate_ovs - role: ['primary-controller', 'controller', 'compute'] - requires: [odl_stop_neutron] - required_for: [post_deployment_end] + timeout: 1800 + +# We have two tracks here. +# If user wants to use ODL to control L3 traffic +# then we skip tasks which spawn neutron L3 agents +# and move networks and router creation on the end. +# In other case standard path is preserved, but additional +# condition is added to tasks +- id: openstack-network-networks + type: skipped +- id: odl-openstack-network-networks type: puppet - parameters: - puppet_manifest: puppet/manifests/recreate-ovs.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 120 -- id: odl_ml2_configuration - role: ['primary-controller', 'controller', 'compute'] - requires: [odl_recreate_ovs] + version: 2.0.0 + role: [primary-controller] required_for: [post_deployment_end] - type: puppet + requires: [post_deployment_start] parameters: - puppet_manifest: puppet/manifests/ml2-configuration.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 120 -- id: odl_recreate_neutron_db - role: ['primary-controller'] - requires: [odl_ml2_configuration] + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/networks.pp + puppet_modules: /etc/puppet/modules + timeout: 1800 +- id: openstack-network-routers + type: skipped +- id: odl-openstack-network-routers + type: puppet + version: 2.0.0 + role: [primary-controller] required_for: [post_deployment_end] - type: puppet + requires: [post_deployment_start, odl-openstack-network-networks] parameters: - puppet_manifest: puppet/manifests/recreate-neutron-db.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 180 -- id: odl_setup_floating - role: ['primary-controller', 'controller', 'compute'] - requires: [odl_recreate_neutron_db] + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/routers.pp + puppet_modules: /etc/puppet/modules + timeout: 1800 +# Additional task for routers when L3 HA is enabled +# HA routers must be created on post-deployment step when all L3 agents are available +- id: openstack-network-routers-ha + type: skipped +- id: odl-openstack-network-routers-ha + type: puppet + version: 2.0.0 + role: [primary-controller] + condition: "settings:neutron_advanced_configuration.neutron_l3_ha.value == true and settings:opendaylight.enable_l3_odl.value == false" required_for: [post_deployment_end] - type: puppet + requires: [post_deployment_start] parameters: - puppet_manifest: puppet/manifests/setup-floating.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 120 -- id: odl_start_neutron - role: ['primary-controller', 'controller'] - requires: [odl_setup_floating] + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/routers.pp + puppet_modules: /etc/puppet/modules + timeout: 1800 + cwd: / +- id: primary-openstack-network-agents-l3 + type: skipped +- id: odl-nol3-primary-openstack-network-agents-l3 + type: puppet + version: 2.0.0 + groups: [primary-controller] + condition: "settings:opendaylight.enable_l3_odl.value == false" + required_for: [openstack-network-end] + requires: [odl-network-plugins-l2] + refresh_on: [neutron_l3_agent_config] + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/agents/l3.pp + puppet_modules: /etc/puppet/modules + timeout: 1800 +- id: openstack-network-agents-l3 + type: skipped +- id: odl-nol3-openstack-network-agents-l3 + type: puppet + version: 2.0.0 + groups: [controller,compute] + condition: "settings:opendaylight.enable_l3_odl.value == false" + required_for: [primary-openstack-network-agents-dhcp, openstack-network-agents-dhcp, primary-openstack-network-agents-metadata, openstack-network-agents-metadata, openstack-network-end] + requires: [odl-network-plugins-l2] + refresh_on: [neutron_l3_agent_config] + cross-depends: + - name: /(primary-)?openstack-network-plugins-l2/ + - name: odl-primary-openstack-network-agents-l3 + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/agents/l3.pp + puppet_modules: /etc/puppet/modules + timeout: 1800 +- id: configure_default_route + type: skipped +- id: odl-nol3-configure_default_route + type: puppet + version: 2.0.0 + role: [primary-mongo, mongo, compute, ceph-osd, cinder] + condition: "settings:opendaylight.enable_l3_odl.value == false" + requires: [post_deployment_start] required_for: [post_deployment_end] - type: puppet parameters: - puppet_manifest: puppet/manifests/start-neutron.pp + puppet_manifest: puppet/manifests/odl-nol3-configure_default_route.pp puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 210 + timeout: 3600 diff --git a/environment_config.yaml b/environment_config.yaml index 5729392..8e85308 100644 --- a/environment_config.yaml +++ b/environment_config.yaml @@ -8,7 +8,10 @@ attributes: weight: 12 type: "checkbox" value: false - label: "EXPERIMENTAL: Use ODL to manage L3 traffic" + label: "Use ODL to manage L3 traffic" + restrictions: + - 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 type: "checkbox" diff --git a/figures/opendaylight-options.png b/figures/opendaylight-options.png deleted file mode 100644 index 683b847a875027e1f6b6fa9cdec6690ab0fe8a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90997 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�U9<5>szEi3Ln;2v$Akr$H2qCito79VO8iVG}U_`@i zrpk(g*A!e^GYlf+3_axo;@ah?*kkQav<59EH^GZipkG;d?w$w0l=JhU{ z)?P5&9NlGBfwnSB?qw+SlGmd7c&JxlQcqonGIV!1hQ1vr?MEltVnmLt?e02dvcOUb zeDYvpUtN^>5;%tIwuM+?L-CmpY3EG+cVTFcrC9I2~Q$ ziteiPs(CZ6x7Vq(>T|~}knW!?OvbNHL6#)NNLZeG8Nvj&+y=M^6u>+OjO1iz=Vq?B zDac&7MZB38QOws~nmRm5l4z6P)~{5loZ`;)iGWLXN4DQ->jYT$u7c&pdP&2Kup!R| zd5O_;0pI6)7fV&!f+$4#Nt~4{uG9d0?^(0YW-6D75@Y7BbV`pwHBndYQ%uVfRAr!$N}2&M&2ZuY3o6}MNKF>p9znT=JF2Xtoj)c8(r?Zf z(Hh9mJfkV)vP@>Cqy%%teRONytn4 zEd!hQhCJ4v9UANlS4692Zz4tBCN1Z}k6PXBeZ33Njpz3`rqlv_M2L(RuTRxj56CY7 zTDM&1XXA*J&gw}w%1U=-*xc7C9mm;#n63PR&g&sF8Qz@>6LVU_Pq+yik9O*)Zeq|= zm4-fs>hdxoX0^p{RbkJLCcgeCS@PA2n_7_85>eB>w_M+Q&HTcl1$r0gleh}E5S=r2 zvQOKyiSy@Hssl@FmV5NEH#tk4Vu&x(&+o2ATgdu`j%ii+{diP8V|DTx%d2*e}@XQzE0M2iVVTRTXYM+5EWT zHIAv9(A3n7xjpLMj0>n;_S?{Yp8W3J25S~2jE)oIErN#iGm5~f=O0@{-nbMUPZPPw zD^i$x;PZ5IWSsgjN(2bHGWTrc=O;Hne(D6oAaQLTeaCT_W1sh|G9>+S(_g8$<^$8= zIy#wCkf+4!z2Saj+HIu12U6<<>-Z+JrGIe8-@Nb0e$qwxQc790!a(0QQCC|%0^D#> zKYW8TZINcPVNW^v@Z-aklL;Xsj3QB587ky3O0}nFlT=zH*>|20X{IrznqI^F!!Ydy zsh2xt$Nk~-@upNzM76$5Y^v;P^muIUr9R!j{>r(0@`2>(@;HTG(}EhW+;MRT%Axfr zYkzDSTM@aTFuc>$G<|;qXAz~s^XU|^1NWIc8fNpaDP^gQG05LFDwUXng_ZDKrohtQ zY#pYnjWvTB0?^Eqcj4O}6{|U?0hhuZQ@_Yw1gYP(W|S7_fJ=fvxw%O(<0m$AqT2la zwha_-apxI>sPC&iVO#yNsAIqNT&mQn&3dv7u; zPJN*orw_47q#l4H(xb*wHJ}j3@QKs5iL>jZepj@Razb+$N^&}zxCMD1=a(ra*d>-4 zj?v*CmX>Z*L*3x&`^%@$HsqG_Y|$5&hKIO9g^lU>+*W?%JA71!TNl4riN{B?yPg;8 z^?vRp)>$40MMu_gHNGBlGEsbWVd{bp*I&;}r>lE#$9=dIv=u^fI@}7V_t#pS{aRTo zBS{qJqYXSw9{x_x+N7{4Hd3If`7Sw3)vygAYZqNW_K%_QAa1=3U3^=1Ye`$E>&93Q z^=mrY955MZ>tOyOS2Mae%9T$Y=?xU96KVII1oUkD^sqi6tGVWH}4tHopoNGxb*d*|Hk=+O1J zxE_n3nM}s9=E3AG-pQ81^RPojmFE+nECFxXU!_=v9^en$(?L9kE0H;*o7&4rchLg2 zns+8dDg|c{ft)nEih$*|9r9H_WD2#O%fh?J9T68ngM44?HgCsKgE==zsYBz&^#vx? zZT+;_oDq^nzuT*#B9~TY^g=$!lv+qrK2+NwCTIK($F3>Pin$e z`sfi@6`rQ^H4QzIbGB*=StQ2)!WXK!D^@)<nYyY?S=7vo0igo1xr`c=3YwafM19!5@qqiz)Lo1M6eSf)9(^r&;gQ*JMfe7j;J@n~O4$Kl_=RTr%m6n-Qb^ zO_A*28Gdz7B`9B>0)(^aT|THd>{8O!-Def+zf~buZ?|JnzZ4q-bj2cp*!gWRLcuC+ zEccl=>AZh5VdNxZ(4q?7LUq@eJ!+Awsv_(B;xi8tKkmcCtUcV%tRNtCcOi z-&ACXZ7>erQa%&inBEw$a*gG{*>&0P?T@=ew!OBQw;c^m+&O^8mx<+wjzlTmYLnAu zRLMv^5|Mt9WO*0sKea(#^{WK8RiJp)O-j37S=6YRIT)+{wa9TGCGQgjRjmi`@D4`< ziiM+}YovR@a?Hh|z{o)N0cH0@+P5+ z1eZ()>S@H&S(hEn-t?+L-Yw5BmJz90dootmKThbt`=91)dfS}v46-B+|IaNK;O9T1>U=C(A?B{=dGPn%H%Ek{0?8WeyhdDrbFbDgrNCN^^$bl6vc5~n2 zawP}7sFH>4MCKkm78~g>{NR14j4MZPgJVZqa;xjx6;B4NYxk!&gvz^bd?mkh_ztt# zy`d;3b2{us#a_FrDdIhOW6~8n%zKTLbDZbnR+3ysj!q3(fShC(d4hZKm>|d-dp+iW zOTv|C`r|KjVt{FAGsx|@@TbV=>GAHO&1haEcO^WkZIHXiurx_}M%1jXQ-Q-la(klQ z{3tEMg8Q-{8Ldx^?1<%HGcuyuc|-M;h0D`Gl9a|ne}aQ2=&Q%IJ=yq^#b(fJugrml zho`&863Ds+&X6kg-NB@nN-j)Rp4#XnzmJZ+@3(h<*vF4atCB6Ljwa4zrrk~m^!A$$ zw&+05JAqba`08g-73au(*d42@);Tn*Ona`&!7+NC>0&!IL^2z_vlmwKLaeDHV$$dd8sfp1?lXq%UAjuWs?u(B{dc%>-6eSZnyGep-s z#Ivuk+WCwCB$oF=WKluRfvq4)H6|d;Bp@av3fm`y=(I?CUpGwk;HcI;>`PoS_H*ZnPC(Y-arZw#-FKCfF}5ZoI>hd1O4F z@~9E@Vy7^FF@`Q49UIdasrRMzfdH3QGjdt^u!^SWLU!?mmasPUTISQ65z(r>jqGA8 zs~v`I&FCgkpW;^03E8HK?F%*vDBU7|cBUw%VV55H^U{aNxNI+c)6;GHC!~8rK)Q(G zP>g@pP}Ep5RC;oOb67=;RuEm<*N8qbsJ&Sp^$V#bp|q}O5%i_Ju+l@^9yhFaRb3r4 z?C;(f9PHkhIPKrq;r-zaL-D^2=PQ{YIEsj7a7Y5QvBG>cP~odKD$#4V!z(uE1Tt!nO5ir!*GfYNO~`m+-I+lBB)xP8&?DruSN>zZ)nCTz&8W z21#v(Dn<~|SsmA>&-I8(3N_>u#HB9Q-MmqqSN4U{!%fV z+H$#1u-Fj$y@A@V!swh)`o?#k3I{rBWDSWnrT|nkJQ}FFAkPBdUl@c`DSL&sK_6b5wdFoFyCINYU@z3@Q=ZGPFQa{1<K)Fn@6u>f%1^-TY;66^iUTQ~PoHj#LZd4yE5F4iow{Va2_=tD@}GK~kupfgW3sDrC8B}G>gAXSpsnS(n7aYPa1=Y%)VE*EoFLW!dbD_S_|4w zP{XwOaY;{3rcX-5T*R@x);Id0rgO~EfUJd^#_Jkk-edKqbW6b%e+iZ3!XMwp0fZC6*SR^B(r+Wx<%d4z|8t4i)8n!Mex! zlL>>nA>(;jnfyj+-^$^b_mg?)wigoH>an4N2AOr)-c#*^YW3%^v~oE5OafL4CW_nL zmJ3LT9j5k3u{>r^%s}>H-!KPUFD|qu966Nkmp8F2^&h59!0H2>4Y2P<2 z9G6dkirrFMSRJbyKTGUG@Iro3o{_PRU$Sz!<=DQy(`VEP*va3>vvrY1-6BR$n2iSH zbJ#aM@lz=tnBAN@s8BHrN$Y38=RxnmDG#0#Hb$009aC5ug^dVcfU;;vvF3XXP}o5( zx=CP?cJe{)E$dYLq^--3;$bB|)!b|sn z^cR`|WcjNer9**;o;+>KCrmMIpsAA+lM>94SL$SJhwp&x{1C_{HmpZMjJWL3BXz8k zOkC*{jQ#E>Qks$Qr>Kt1gxH}`m{pU5zp_$|=qA0>>2Q^mGHb2FU{i{o z{_8Ez_o=g-F(;CE1@-lMhFGJ_aPQ|L2R%?N>qTZ4@G&?bzqo%QHoK~6N?Y6D!p%@5 zr$$0qRqSMg*3a^jsHbgJn%}9Hz5gNu+~v(n<3#wy!CKxv)?dmP3uin;#r#;9jYP8( zDl-I)Zu4jVY$1X-Ea-|{&RCu=8tzjGf{m{(FQw!ue)fk zKmBKe!>SNh$Yo2bfr}SRk!Z>*s@TbJuP!eOFqgVG!=Lim zuHsjgefWTHW$xy~-3G@LJWek_rc5gTD&F{Cm6hVQRI;8X_A<{ACQ~6Dd=DVo3wVeo z{;qe3n@0~H7$EGWwfRFu?f-+sKL#)(DP-5Ui`y098G;YU5vzKklkHu}C?tmYubRq1 zBxuDZ-TfC^%HN5N4Jz3+Vw4j%Uj}*eCh=;*jpD6*2U@MF-y=X=%^8$)bpmt8Ue?Zd zfS1e@^)8qHAJP5q1~QTyK8?V||9-h1UC)kpy{|j}0T5o$8`7x=xaD{OH8u5H zWo2zQH}HKxs_eTznbPU{lmgsxlrI~i>lQX`N)`X@+bbf8{a~T?vaK&qpFTzJ>;9r5 z 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:8181/index.html' # Required fuel version -fuel_version: ['7.0'] +fuel_version: ['8.0'] # Specify license of your plugin licenses: ['Apache License Version 2.0'] # Specify author or company name @@ -24,8 +23,8 @@ groups: ['network'] # The plugin is compatible with releases in the list releases: - os: ubuntu - version: 2015.1.0-7.0 - mode: ['ha', 'multinode'] + version: liberty-8.0 + mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu diff --git a/odl_package/odl_lithium_patch/LICENSE b/odl_package/odl_lithium_patch/LICENSE deleted file mode 100644 index 79e486c..0000000 --- a/odl_package/odl_lithium_patch/LICENSE +++ /dev/null @@ -1,70 +0,0 @@ -Eclipse Public License - v 1.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - -a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and -b) in the case of each subsequent Contributor: -i) changes to the Program, and -ii) additions to the Program; -where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. -"Contributor" means any person or entity that distributes the Program. - -"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. - -"Program" means the Contributions distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. - -2. GRANT OF RIGHTS - -a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. -b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. -c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. -d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. -3. REQUIREMENTS - -A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: - -a) it complies with the terms and conditions of this Agreement; and -b) its license agreement: -i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; -ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; -iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and -iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. -When the Program is made available in source code form: - -a) it must be made available under this Agreement; and -b) a copy of this Agreement must be included with each copy of the Program. -Contributors may not remove or alter any copyright notices contained within the Program. - -Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. - -This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. diff --git a/odl_package/odl_lithium_patch/README b/odl_package/odl_lithium_patch/README deleted file mode 100644 index 1ad6a46..0000000 --- a/odl_package/odl_lithium_patch/README +++ /dev/null @@ -1,5 +0,0 @@ -This directory contains compiled code which is a part of -ovsdb opendaylight project which source code can be found -here https://github.com/opendaylight/ovsdb/tree/release/lithium - -Changes against orginal code are described inside fuel.patch file. diff --git a/odl_package/odl_lithium_patch/fuel.patch b/odl_package/odl_lithium_patch/fuel.patch deleted file mode 100644 index d35ebd4..0000000 --- a/odl_package/odl_lithium_patch/fuel.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 26cce1d21550c621a4ccd6bcfd31688a9b1c1a6e Mon Sep 17 00:00:00 2001 -From: Michal Skalski -Date: Wed, 16 Sep 2015 10:01:02 +0200 -Subject: [PATCH] Fuel patch - ---- - .../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 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,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"; -- public static final String EXTERNAL_BRIDGE = "br-ex"; -+ 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"; --- -2.1.4 diff --git a/odl_package/odl_lithium_patch/openstack.net-virt-1.1.2-Lithium-SR2.jar b/odl_package/odl_lithium_patch/openstack.net-virt-1.1.2-Lithium-SR2.jar deleted file mode 100644 index 5d4cb4cc2728c2f928c9356ce1e06a3d5bd8f930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231749 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

W 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

f5C+EmilN+X*j&-2S;+zXIS4l`0khi3*ags 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 z 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νYNZ5zSGq> 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 z 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 DA1-iq diff --git a/pre_build_hook b/pre_build_hook index aa85ec1..b5b1a32 100755 --- a/pre_build_hook +++ b/pre_build_hook @@ -7,16 +7,16 @@ 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/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.3.2-Lithium-SR2/distribution-karaf-0.3.2-Lithium-SR2.tar.gz} +ODL_TARBALL_LOCATION=${ODL_TARBALL_LOCATION:-https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.4.0-SNAPSHOT/distribution-karaf-0.4.0-20160118.091622-3555.tar.gz} #Verion number used in deb/rpm package -ODL_VERSION_NUMBER=${ODL_VERSION_NUMBER:-0.3.2} +ODL_VERSION_NUMBER=${ODL_VERSION_NUMBER:-0.4.0} ODL_DESCRIPTION="OpenDaylight SDN Controller" TMP_NAME="karaf-odl.tar.gz" #Networking odl NETWORKING_ODL_REPO=${NETWORKING_ODL_REPO:-https://github.com/openstack/networking-odl.git} -NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/kilo} +NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/liberty} #Opnfv-quagga-packaging OPNFV_QUAGGE_PACKAGING_REPO=${OPNFV_QUAGGE_PACKAGING_REPO:-https://github.com/nikolas-hermanns/opnfv-quagga-packaging} @@ -33,9 +33,6 @@ MODULES="${DIR}/deployment_scripts/puppet/modules" # Useful for offline deployments. INCLUDE_DEPENDENCIES=${INCLUDE_DEPENDENCIES:-false} -# Patch ODL to use br-floating as external bridge -USE_FUEL_PATCH=${USE_FUEL_PATCH:-true} - function cleanup { rm -rf "${TMP_DIR}" } @@ -64,9 +61,6 @@ function add_opnfv_quagga { popd } -function patch_odl { - cp "${DIR}/odl_package/odl_lithium_patch/openstack.net-virt-1.1.2-Lithium-SR2.jar" "${TMP_DIR}/opendaylight_src/system/org/opendaylight/ovsdb/openstack.net-virt/1.1.2-Lithium-SR2/openstack.net-virt-1.1.2-Lithium-SR2.jar" -} # Download packages required by ODL. # List generated with commands: @@ -90,7 +84,7 @@ function build_pkg { ubuntu) pushd "${DIR}/repositories/${1}/" fpm --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-7-jre-headless" -C "${TMP_DIR}/opendaylight_src" - fpm --force -s python -t deb -m 'mskalski@mirantis.com' --no-python-dependencies -d python-pbr -d python-babel -d python-neutron ${TMP_DIR}/networking_odl/setup.py + fpm --force -s python -t deb -m 'mskalski@mirantis.com' --python-install-lib /usr/lib/python2.7/dist-packages ${TMP_DIR}/networking_odl/setup.py download_dependencies ${1} popd add_opnfv_quagga "${DIR}/repositories/${1}/" @@ -115,11 +109,6 @@ else unpack $ODL_TARBALL_LOCATION 'opendaylight_src' fi -if [ "$USE_FUEL_PATCH" = true ] -then - patch_odl -fi - git clone $NETWORKING_ODL_REPO networking_odl pushd networking_odl git checkout $NETWORKING_ODL_BRANCH